diff options
author | dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | 2024-07-06 19:11:10 +0000 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-07-09 19:34:23 +0200 |
commit | 6062b3432caab625369ae32cfe6c8e4a0c413370 (patch) | |
tree | 24c71a1914733c77fc5dd0789f51e95b9d79aee9 /dist/dav-settings-personal-availability.js.map | |
parent | 7a3a8cdac47c74841dbf44727c8964978fa6cefb (diff) | |
download | nextcloud-server-6062b3432caab625369ae32cfe6c8e4a0c413370.tar.gz nextcloud-server-6062b3432caab625369ae32cfe6c8e4a0c413370.zip |
build(deps): Bump @nextcloud/calendar-availability-vue
Bumps [@nextcloud/calendar-availability-vue](https://github.com/nextcloud/calendar-availability-vue) from 2.2.0 to 2.2.2.
- [Release notes](https://github.com/nextcloud/calendar-availability-vue/releases)
- [Changelog](https://github.com/nextcloud/calendar-availability-vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud/calendar-availability-vue/compare/v2.2.0...v2.2.2)
---
updated-dependencies:
- dependency-name: "@nextcloud/calendar-availability-vue"
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'dist/dav-settings-personal-availability.js.map')
-rw-r--r-- | dist/dav-settings-personal-availability.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/dav-settings-personal-availability.js.map b/dist/dav-settings-personal-availability.js.map index 3dfc12ed434..d4dfe30dedb 100644 --- a/dist/dav-settings-personal-availability.js.map +++ b/dist/dav-settings-personal-availability.js.map @@ -1 +1 @@ -{"version":3,"file":"dav-settings-personal-availability.js?v=ee426a6b2432210ed280","mappings":"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qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,+BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,S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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/dav/src/utils/date.js","webpack:///nextcloud/apps/dav/src/service/logger.js","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?fb7f","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?0782","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?5b67","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?ba59","webpack://nextcloud/./node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-1OlNbSWJ.css?7392","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/native.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/rng.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/stringify.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/v4.js","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/dist/index.mjs","webpack:///nextcloud/apps/dav/src/dav/client.js","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dav/src/service/CalendarService.js","webpack:///nextcloud/apps/dav/src/service/PreferenceService.js","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?23dd","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?1bb2","webpack:///nextcloud/apps/dav/src/views/Availability.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dav/src/views/Availability.vue","webpack://nextcloud/./apps/dav/src/views/Availability.vue?aa5a","webpack://nextcloud/./apps/dav/src/views/Availability.vue?4eb1","webpack:///nextcloud/apps/dav/src/settings-personal-availability.js","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-1OlNbSWJ.css","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/ical.js/build/ical.js","webpack:///nextcloud/node_modules/icalzone/dist/index.js","webpack:///nextcloud/node_modules/icalzone/dist/zones.js","webpack:///nextcloud/node_modules/lodash/_LazyWrapper.js","webpack:///nextcloud/node_modules/lodash/_LodashWrapper.js","webpack:///nextcloud/node_modules/lodash/_baseFlatten.js","webpack:///nextcloud/node_modules/lodash/_baseLodash.js","webpack:///nextcloud/node_modules/lodash/_baseSetData.js","webpack:///nextcloud/node_modules/lodash/_composeArgs.js","webpack:///nextcloud/node_modules/lodash/_composeArgsRight.js","webpack:///nextcloud/node_modules/lodash/_countHolders.js","webpack:///nextcloud/node_modules/lodash/_createBind.js","webpack:///nextcloud/node_modules/lodash/_createCtor.js","webpack:///nextcloud/node_modules/lodash/_createCurry.js","webpack:///nextcloud/node_modules/lodash/_createHybrid.js","webpack:///nextcloud/node_modules/lodash/_createPartial.js","webpack:///nextcloud/node_modules/lodash/_createRecurry.js","webpack:///nextcloud/node_modules/lodash/_createWrap.js","webpack:///nextcloud/node_modules/lodash/_flatRest.js","webpack:///nextcloud/node_modules/lodash/_getData.js","webpack:///nextcloud/node_modules/lodash/_getFuncName.js","webpack:///nextcloud/node_modules/lodash/_getHolder.js","webpack:///nextcloud/node_modules/lodash/_getWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_insertWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_isFlattenable.js","webpack:///nextcloud/node_modules/lodash/_isLaziable.js","webpack:///nextcloud/node_modules/lodash/_mergeData.js","webpack:///nextcloud/node_modules/lodash/_metaMap.js","webpack:///nextcloud/node_modules/lodash/_realNames.js","webpack:///nextcloud/node_modules/lodash/_reorder.js","webpack:///nextcloud/node_modules/lodash/_replaceHolders.js","webpack:///nextcloud/node_modules/lodash/_setData.js","webpack:///nextcloud/node_modules/lodash/_setWrapToString.js","webpack:///nextcloud/node_modules/lodash/_updateWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_wrapperClone.js","webpack:///nextcloud/node_modules/lodash/ary.js","webpack:///nextcloud/node_modules/lodash/curry.js","webpack:///nextcloud/node_modules/lodash/flatten.js","webpack:///nextcloud/node_modules/lodash/fp/_baseConvert.js","webpack:///nextcloud/node_modules/lodash/fp/_mapping.js","webpack:///nextcloud/node_modules/lodash/fp/_util.js","webpack:///nextcloud/node_modules/lodash/fp/convert.js","webpack:///nextcloud/node_modules/lodash/fp/memoize.js","webpack:///nextcloud/node_modules/lodash/fp/placeholder.js","webpack:///nextcloud/node_modules/lodash/isError.js","webpack:///nextcloud/node_modules/lodash/isWeakMap.js","webpack:///nextcloud/node_modules/lodash/iteratee.js","webpack:///nextcloud/node_modules/lodash/rearg.js","webpack:///nextcloud/node_modules/lodash/toFinite.js","webpack:///nextcloud/node_modules/lodash/toInteger.js","webpack:///nextcloud/node_modules/lodash/toPath.js","webpack:///nextcloud/node_modules/lodash/wrapperLodash.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @author Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Format a date as 'YYYY-MM-DD'.\n *\n * @param {Date} date A date instance to format.\n * @return {string} 'YYYY-MM-DD'\n */\nexport function formatDateAsYMD(date) {\n\tconst year = date.getFullYear()\n\tconst month = (date.getMonth() + 1).toString().padStart(2, '0')\n\tconst day = date.getDate().toString().padStart(2, '0')\n\treturn `${year}-${month}-${day}`\n}\n","/*\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst logger = getLoggerBuilder()\n\t.setApp('dav')\n\t.detectUser()\n\t.build()\n\nexport default logger\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @author Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU General Public License as published by\n - the Free Software Foundation, either version 3 of the License, or\n - (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU General Public License for more details.\n -\n - You should have received a copy of the GNU General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<form class=\"absence\" @submit.prevent=\"saveForm\">\n\t\t<div class=\"absence__dates\">\n\t\t\t<NcDateTimePickerNative id=\"absence-first-day\"\n\t\t\t\tv-model=\"firstDay\"\n\t\t\t\t:label=\"$t('dav', 'First day')\"\n\t\t\t\tclass=\"absence__dates__picker\"\n\t\t\t\t:required=\"true\" />\n\t\t\t<NcDateTimePickerNative id=\"absence-last-day\"\n\t\t\t\tv-model=\"lastDay\"\n\t\t\t\t:label=\"$t('dav', 'Last day (inclusive)')\"\n\t\t\t\tclass=\"absence__dates__picker\"\n\t\t\t\t:required=\"true\" />\n\t\t</div>\n\t\t<NcTextField :value.sync=\"status\" :label=\"$t('dav', 'Short absence status')\" :required=\"true\" />\n\t\t<NcTextArea :value.sync=\"message\" :label=\"$t('dav', 'Long absence Message')\" :required=\"true\" />\n\n\t\t<div class=\"absence__buttons\">\n\t\t\t<NcButton :disabled=\"loading || !valid\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\tnative-type=\"submit\">\n\t\t\t\t{{ $t('dav', 'Save') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton :disabled=\"loading || !valid\"\n\t\t\t\ttype=\"error\"\n\t\t\t\t@click=\"clearAbsence\">\n\t\t\t\t{{ $t('dav', 'Disable absence') }}\n\t\t\t</NcButton>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\nimport NcTextArea from '@nextcloud/vue/dist/Components/NcTextArea.js'\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { formatDateAsYMD } from '../utils/date.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\n\nimport logger from '../service/logger.js'\n\nexport default {\n\tname: 'AbsenceForm',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcTextField,\n\t\tNcTextArea,\n\t\tNcDateTimePickerNative,\n\t},\n\tdata() {\n\t\tconst { firstDay, lastDay, status, message } = loadState('dav', 'absence', {})\n\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tstatus: status ?? '',\n\t\t\tmessage: message ?? '',\n\t\t\tfirstDay: firstDay ? new Date(firstDay) : new Date(),\n\t\t\tlastDay: lastDay ? new Date(lastDay) : null,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tvalid() {\n\t\t\t// Translate the two date objects to midnight for an accurate comparison\n\t\t\tconst firstDay = new Date(this.firstDay?.getTime())\n\t\t\tconst lastDay = new Date(this.lastDay?.getTime())\n\t\t\tfirstDay?.setHours(0, 0, 0, 0)\n\t\t\tlastDay?.setHours(0, 0, 0, 0)\n\n\t\t\treturn !!this.firstDay\n\t\t\t\t&& !!this.lastDay\n\t\t\t\t&& !!this.status\n\t\t\t\t&& !!this.message\n\t\t\t\t&& lastDay >= firstDay\n\t\t},\n\t},\n\tmethods: {\n\t\tresetForm() {\n\t\t\tthis.status = ''\n\t\t\tthis.message = ''\n\t\t\tthis.firstDay = new Date()\n\t\t\tthis.lastDay = null\n\t\t},\n\t\tasync saveForm() {\n\t\t\tif (!this.valid) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.post(generateOcsUrl('/apps/dav/api/v1/outOfOffice/{userId}', { userId: getCurrentUser().uid }), {\n\t\t\t\t\tfirstDay: formatDateAsYMD(this.firstDay),\n\t\t\t\t\tlastDay: formatDateAsYMD(this.lastDay),\n\t\t\t\t\tstatus: this.status,\n\t\t\t\t\tmessage: this.message,\n\t\t\t\t})\n\t\t\t\tshowSuccess(this.$t('dav', 'Absence saved'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(this.$t('dav', 'Failed to save your absence settings'))\n\t\t\t\tlogger.error('Could not save absence', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync clearAbsence() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.delete(generateOcsUrl('/apps/dav/api/v1/outOfOffice/{userId}', { userId: getCurrentUser().uid }))\n\t\t\t\tthis.resetForm()\n\t\t\t\tshowSuccess(this.$t('dav', 'Absence cleared'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(this.$t('dav', 'Failed to clear your absence settings'))\n\t\t\t\tlogger.error('Could not clear absence', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.absence {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 5px;\n\n\t&__dates {\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\t\twidth: 100%;\n\n\t\t&__picker {\n\t\t\tflex: 1 auto;\n\n\t\t\t::v-deep .native-datetime-picker--input {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 5px;\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AbsenceForm.vue?vue&type=template&id=716172ba&scoped=true\"\nimport script from \"./AbsenceForm.vue?vue&type=script&lang=js\"\nexport * from \"./AbsenceForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"716172ba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"absence\",on:{\"submit\":function($event){$event.preventDefault();return _vm.saveForm.apply(null, arguments)}}},[_c('div',{staticClass:\"absence__dates\"},[_c('NcDateTimePickerNative',{staticClass:\"absence__dates__picker\",attrs:{\"id\":\"absence-first-day\",\"label\":_vm.$t('dav', 'First day'),\"required\":true},model:{value:(_vm.firstDay),callback:function ($$v) {_vm.firstDay=$$v},expression:\"firstDay\"}}),_vm._v(\" \"),_c('NcDateTimePickerNative',{staticClass:\"absence__dates__picker\",attrs:{\"id\":\"absence-last-day\",\"label\":_vm.$t('dav', 'Last day (inclusive)'),\"required\":true},model:{value:(_vm.lastDay),callback:function ($$v) {_vm.lastDay=$$v},expression:\"lastDay\"}})],1),_vm._v(\" \"),_c('NcTextField',{attrs:{\"value\":_vm.status,\"label\":_vm.$t('dav', 'Short absence status'),\"required\":true},on:{\"update:value\":function($event){_vm.status=$event}}}),_vm._v(\" \"),_c('NcTextArea',{attrs:{\"value\":_vm.message,\"label\":_vm.$t('dav', 'Long absence Message'),\"required\":true},on:{\"update:value\":function($event){_vm.message=$event}}}),_vm._v(\" \"),_c('div',{staticClass:\"absence__buttons\"},[_c('NcButton',{attrs:{\"disabled\":_vm.loading || !_vm.valid,\"type\":\"primary\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Save'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":_vm.loading || !_vm.valid,\"type\":\"error\"},on:{\"click\":_vm.clearAbsence}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Disable absence'))+\"\\n\\t\\t\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"time-zone\"},[_c('label',{staticClass:\"time-zone__heading\",attrs:{\"for\":`vs${_vm.timeZonePickerId}__combobox`}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Time zone:'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"time-zone-text\"},[_c('NcTimezonePicker',{attrs:{\"uid\":_vm.timeZonePickerId},model:{value:(_vm.timezone),callback:function ($$v) {_vm.timezone=$$v},expression:\"timezone\"}})],1)]),_vm._v(\" \"),_c('CalendarAvailability',{attrs:{\"slots\":_vm.slots,\"loading\":_vm.loading,\"l10n-to\":_vm.$t('dav', 'to'),\"l10n-delete-slot\":_vm.$t('dav', 'Delete slot'),\"l10n-empty-day\":_vm.$t('dav', 'No working hours set'),\"l10n-add-slot\":_vm.$t('dav', 'Add slot'),\"l10n-week-day-list-label\":_vm.$t('dav', 'Weekdays'),\"l10n-monday\":_vm.$t('dav', 'Monday'),\"l10n-tuesday\":_vm.$t('dav', 'Tuesday'),\"l10n-wednesday\":_vm.$t('dav', 'Wednesday'),\"l10n-thursday\":_vm.$t('dav', 'Thursday'),\"l10n-friday\":_vm.$t('dav', 'Friday'),\"l10n-saturday\":_vm.$t('dav', 'Saturday'),\"l10n-sunday\":_vm.$t('dav', 'Sunday'),\"l10n-start-picker-label\":(dayName) => _vm.$t('dav', 'Pick a start time for {dayName}', { dayName }),\"l10n-end-picker-label\":(dayName) => _vm.$t('dav', 'Pick a end time for {dayName}', { dayName })},on:{\"update:slots\":function($event){_vm.slots=$event}}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.automated},on:{\"update:checked\":function($event){_vm.automated=$event}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":_vm.loading || _vm.saving,\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Save'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-1OlNbSWJ.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-1OlNbSWJ.css\";\n export default content && content.locals ? content.locals : undefined;\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import './assets/index-1OlNbSWJ.css';\nimport h from \"@nextcloud/vue/dist/Components/NcDateTimePickerNative.js\";\nimport b from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport g from \"vue-material-design-icons/Delete.vue\";\nimport v from \"vue-material-design-icons/Plus.vue\";\nimport { getFirstDay as C } from \"@nextcloud/l10n\";\nimport { getZoneString as T } from \"icalzone\";\nimport { parse as D, Component as _ } from \"ical.js\";\nimport { v4 as k } from \"uuid\";\nimport { getLoggerBuilder as P } from \"@nextcloud/logger\";\nfunction $(n, t, e, s, o, u, i, r) {\n var a = typeof n == \"function\" ? n.options : n;\n t && (a.render = t, a.staticRenderFns = e, a._compiled = !0), s && (a.functional = !0), u && (a._scopeId = \"data-v-\" + u);\n var l;\n if (i ? (l = function(c) {\n c = c || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !c && typeof __VUE_SSR_CONTEXT__ < \"u\" && (c = __VUE_SSR_CONTEXT__), o && o.call(this, c), c && c._registeredComponents && c._registeredComponents.add(i);\n }, a._ssrRegister = l) : o && (l = r ? function() {\n o.call(\n this,\n (a.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : o), l)\n if (a.functional) {\n a._injectStyles = l;\n var p = a.render;\n a.render = function(S, m) {\n return l.call(m), p(S, m);\n };\n } else {\n var d = a.beforeCreate;\n a.beforeCreate = d ? [].concat(d, l) : [l];\n }\n return {\n exports: n,\n options: a\n };\n}\nconst A = {\n name: \"CalendarAvailability\",\n components: {\n NcDateTimePickerNative: h,\n NcButton: b,\n IconAdd: v,\n IconDelete: g\n },\n props: {\n slots: {\n type: Object,\n required: !0\n },\n loading: {\n type: Boolean,\n default: !1\n },\n l10nTo: {\n type: String,\n required: !0\n },\n l10nDeleteSlot: {\n type: String,\n required: !0\n },\n l10nEmptyDay: {\n type: String,\n required: !0\n },\n l10nAddSlot: {\n type: String,\n required: !0\n },\n l10nWeekDayListLabel: {\n type: String,\n default: \"Weekdays\"\n },\n l10nMonday: {\n type: String,\n required: !0\n },\n l10nTuesday: {\n type: String,\n required: !0\n },\n l10nWednesday: {\n type: String,\n required: !0\n },\n l10nThursday: {\n type: String,\n required: !0\n },\n l10nFriday: {\n type: String,\n required: !0\n },\n l10nSaturday: {\n type: String,\n required: !0\n },\n l10nSunday: {\n type: String,\n required: !0\n },\n l10nStartPickerLabel: {\n type: Function,\n default: (n) => \"Pick a start time for \".concat(n)\n },\n l10nEndPickerLabel: {\n type: Function,\n default: (n) => \"Pick a end time for \".concat(n)\n }\n },\n data() {\n return {\n internalSlots: this.slotsToInternalData(this.slots)\n };\n },\n watch: {\n slots() {\n this.internalSlots = this.slotsToInternalData(this.slots);\n }\n },\n methods: {\n timeStampSlotsToDateObjectSlots(n) {\n return n.map((t) => ({\n start: new Date(t.start * 1e3),\n end: new Date(t.end * 1e3)\n }));\n },\n slotsToInternalData() {\n const n = [\n {\n id: \"MO\",\n displayName: this.l10nMonday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.MO)\n },\n {\n id: \"TU\",\n displayName: this.l10nTuesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TU)\n },\n {\n id: \"WE\",\n displayName: this.l10nWednesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.WE)\n },\n {\n id: \"TH\",\n displayName: this.l10nThursday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TH)\n },\n {\n id: \"FR\",\n displayName: this.l10nFriday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.FR)\n },\n {\n id: \"SA\",\n displayName: this.l10nSaturday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SA)\n }\n ], t = {\n id: \"SU\",\n displayName: this.l10nSunday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SU)\n };\n return C() === 1 ? [...n, t] : [t, ...n];\n },\n internalDataToSlots() {\n const n = {};\n return this.internalSlots.forEach(({ id: t, slots: e }) => {\n n[t] = e.map((s) => ({\n start: Math.round(s.start.getTime() / 1e3),\n end: Math.round(s.end.getTime() / 1e3)\n }));\n }), n;\n },\n addSlot(n) {\n const t = /* @__PURE__ */ new Date();\n t.setHours(9, 0, 0, 0);\n const e = /* @__PURE__ */ new Date();\n e.setHours(17, 0, 0, 0), n.slots.push({\n start: t,\n end: e\n }), this.onChangeSlots();\n },\n removeSlot(n, t) {\n n.slots.splice(t, 1), this.onChangeSlots();\n },\n onChangeSlots() {\n this.$emit(\"update:slots\", this.internalDataToSlots());\n }\n }\n};\nvar N = function() {\n var t = this, e = t._self._c;\n return e(\"ul\", { staticClass: \"week-day-container\", attrs: { \"aria-label\": t.l10nWeekDayListLabel } }, [t._l(t.internalSlots, function(s) {\n return [e(\"li\", { key: \"day-label-\".concat(s.id), staticClass: \"day-container\" }, [e(\"div\", { staticClass: \"label-weekday\" }, [e(\"span\", { attrs: { id: s.displayName + \"-label\" } }, [t._v(t._s(s.displayName))])]), e(\"div\", { key: \"day-slots-\".concat(s.id), staticClass: \"availability-slots\" }, [e(\"div\", { staticClass: \"availability-slot-group\" }, [t._l(s.slots, function(o, u) {\n var i, r;\n return [e(\"div\", { key: \"slot-\".concat(s.id, \"-\").concat(u), staticClass: \"availability-slot\" }, [e(\"NcDateTimePickerNative\", { staticClass: \"start-date\", attrs: { id: \"start-\".concat(s.id, \"-\").concat(u), type: \"time\", label: (i = t.l10nStartPickerLabel) == null ? void 0 : i.call(t, s.displayName), \"hide-label\": !0 }, on: { change: t.onChangeSlots }, model: { value: o.start, callback: function(a) {\n t.$set(o, \"start\", a);\n }, expression: \"slot.start\" } }), e(\"span\", { staticClass: \"to-text\" }, [t._v(\" \" + t._s(t.l10nTo) + \" \")]), e(\"NcDateTimePickerNative\", { staticClass: \"end-date\", attrs: { id: \"end-\".concat(s.id, \"-\").concat(u), type: \"time\", label: (r = t.l10nEndPickerLabel) == null ? void 0 : r.call(t, s.displayName), \"hide-label\": !0 }, on: { change: t.onChangeSlots }, model: { value: o.end, callback: function(a) {\n t.$set(o, \"end\", a);\n }, expression: \"slot.end\" } }), e(\"NcButton\", { key: \"slot-\".concat(s.id, \"-\").concat(u, \"-btn\"), staticClass: \"button\", attrs: { type: \"tertiary\", \"aria-label\": t.l10nDeleteSlot, title: t.l10nDeleteSlot }, on: { click: function(a) {\n return t.removeSlot(s, u);\n } }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [e(\"IconDelete\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) })], 1)];\n })], 2), s.slots.length === 0 ? e(\"span\", { staticClass: \"empty-content\" }, [t._v(\" \" + t._s(t.l10nEmptyDay) + \" \")]) : t._e()]), e(\"NcButton\", { key: \"add-slot-\".concat(s.id), staticClass: \"add-another button\", attrs: { disabled: t.loading, title: t.l10nAddSlot, \"aria-label\": t.l10nAddSlot }, on: { click: function(o) {\n return t.addSlot(s);\n } }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [e(\"IconAdd\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) })], 1)];\n })], 2);\n}, F = [], L = /* @__PURE__ */ $(\n A,\n N,\n F,\n !1,\n null,\n \"1b69eb8d\",\n null,\n null\n);\nconst U = L.exports;\n/*\n * @copyright Copyright (c) 2022 Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @author Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst w = P().detectUser().setApp(\"@nextcloud/calendar-availability-vue\").build();\nfunction W() {\n return {\n MO: [],\n TU: [],\n WE: [],\n TH: [],\n FR: [],\n SA: [],\n SU: []\n };\n}\nfunction H(n) {\n const t = D(n), e = new _(t), s = e.getFirstSubcomponent(\"vavailability\");\n let o;\n const u = e.getFirstSubcomponent(\"vtimezone\");\n u && (o = u.getFirstProperty(\"tzid\").getFirstValue());\n const i = s.getAllSubcomponents(\"available\"), r = W();\n return i.forEach((a) => {\n const l = a.getFirstProperty(\"dtstart\").getFirstValue().toJSDate(), p = a.getFirstProperty(\"dtend\").getFirstValue().toJSDate(), d = a.getFirstProperty(\"rrule\");\n if (d.getFirstValue().freq !== \"WEEKLY\") {\n w.warn(\"rrule not supported\", {\n rrule: d.toICALString()\n });\n return;\n }\n d.getFirstValue().getComponent(\"BYDAY\").forEach((c) => {\n r[c].push({\n start: l.getTime() / 1e3,\n end: p.getTime() / 1e3\n });\n });\n }), {\n slots: r,\n timezoneId: o\n };\n}\nfunction B(n, t) {\n const e = new ICAL.Component(\"vcalendar\");\n e.addPropertyWithValue(\"prodid\", \"Nextcloud DAV app\");\n const s = T(t);\n if (s) {\n const i = new ICAL.Component(ICAL.parse(s));\n e.addSubcomponent(i);\n } else {\n const i = new ICAL.Component(\"vtimezone\");\n i.addPropertyWithValue(\"tzid\", t), e.addSubcomponent(i);\n }\n const o = new ICAL.Component(\"vavailability\"), u = n.reduce((i, r) => {\n var d;\n const a = new Date(r.start * 1e3), l = new Date(r.end * 1e3), p = [\n a.getHours(),\n a.getMinutes(),\n l.getHours(),\n l.getMinutes()\n ].join(\"-\");\n return {\n ...i,\n [p]: [...(d = i[p]) != null ? d : [], r]\n };\n }, {});\n return Object.keys(u).map((i) => {\n const r = u[i], a = r[0].start, l = r[0].end, p = r.map((m) => m.day).filter((m, y, f) => f.indexOf(m) === y), d = new ICAL.Component(\"available\");\n return d.addPropertyWithValue(\"dtstart\", ICAL.Time.fromJSDate(new Date(a * 1e3), !1)).setParameter(\"tzid\", t), d.addPropertyWithValue(\"dtend\", ICAL.Time.fromJSDate(new Date(l * 1e3), !1)).setParameter(\"tzid\", t), d.addPropertyWithValue(\"uid\", k()), d.addPropertyWithValue(\"rrule\", {\n freq: \"WEEKLY\",\n byday: p\n }), d;\n }).map(o.addSubcomponent.bind(o)), e.addSubcomponent(o), e.toString();\n}\nexport {\n U as CalendarAvailability,\n W as getEmptySlots,\n B as slotsToVavailability,\n H as vavailabilityToSlots\n};\n","/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { createClient } from 'webdav'\nimport memoize from 'lodash/fp/memoize.js'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\nexport const getClient = memoize((service) => {\n\t// init webdav client\n\tconst remote = generateRemoteUrl(`dav/${service}/${getCurrentUser().uid}`)\n\tconst client = createClient(remote)\n\n\t// set CSRF token header\n\tconst setHeaders = (token) => {\n\t\tclient.setHeaders({\n\t\t\t// Add this so the server knows it is an request from the browser\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t// Inject user auth\n\t\t\trequesttoken: token ?? '',\n\t\t})\n\t}\n\n\t// refresh headers when request token changes\n\tonRequestTokenUpdate(setHeaders)\n\tsetHeaders(getRequestToken())\n\n\treturn client;\n})\n","<template>\n\t<div>\n\t\t<div class=\"time-zone\">\n\t\t\t<label :for=\"`vs${timeZonePickerId}__combobox`\" class=\"time-zone__heading\">\n\t\t\t\t{{ $t('dav', 'Time zone:') }}\n\t\t\t</label>\n\t\t\t<span class=\"time-zone-text\">\n\t\t\t\t<NcTimezonePicker v-model=\"timezone\" :uid=\"timeZonePickerId\" />\n\t\t\t</span>\n\t\t</div>\n\n\t\t<CalendarAvailability :slots.sync=\"slots\"\n\t\t\t:loading=\"loading\"\n\t\t\t:l10n-to=\"$t('dav', 'to')\"\n\t\t\t:l10n-delete-slot=\"$t('dav', 'Delete slot')\"\n\t\t\t:l10n-empty-day=\"$t('dav', 'No working hours set')\"\n\t\t\t:l10n-add-slot=\"$t('dav', 'Add slot')\"\n\t\t\t:l10n-week-day-list-label=\"$t('dav', 'Weekdays')\"\n\t\t\t:l10n-monday=\"$t('dav', 'Monday')\"\n\t\t\t:l10n-tuesday=\"$t('dav', 'Tuesday')\"\n\t\t\t:l10n-wednesday=\"$t('dav', 'Wednesday')\"\n\t\t\t:l10n-thursday=\"$t('dav', 'Thursday')\"\n\t\t\t:l10n-friday=\"$t('dav', 'Friday')\"\n\t\t\t:l10n-saturday=\"$t('dav', 'Saturday')\"\n\t\t\t:l10n-sunday=\"$t('dav', 'Sunday')\"\n\t\t\t:l10n-start-picker-label=\"(dayName) => $t('dav', 'Pick a start time for {dayName}', { dayName })\"\n\t\t\t:l10n-end-picker-label=\"(dayName) => $t('dav', 'Pick a end time for {dayName}', { dayName })\" />\n\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"automated\">\n\t\t\t{{ $t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcButton :disabled=\"loading || saving\"\n\t\t\ttype=\"primary\"\n\t\t\t@click=\"save\">\n\t\t\t{{ $t('dav', 'Save') }}\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport { CalendarAvailability } from '@nextcloud/calendar-availability-vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport {\n\tshowError,\n\tshowSuccess,\n} from '@nextcloud/dialogs'\nimport {\n\tfindScheduleInboxAvailability,\n\tgetEmptySlots,\n\tsaveScheduleInboxAvailability,\n} from '../service/CalendarService.js'\nimport {\n\tenableUserStatusAutomation,\n\tdisableUserStatusAutomation,\n} from '../service/PreferenceService.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcTimezonePicker from '@nextcloud/vue/dist/Components/NcTimezonePicker.js'\n\nexport default {\n\tname: 'AvailabilityForm',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tCalendarAvailability,\n\t\tNcTimezonePicker,\n\t},\n\tdata() {\n\t\t// Try to determine the current timezone, and fall back to UTC otherwise\n\t\tconst defaultTimezoneId = (new Intl.DateTimeFormat())?.resolvedOptions()?.timeZone ?? 'UTC'\n\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tsaving: false,\n\t\t\ttimezone: defaultTimezoneId,\n\t\t\tslots: getEmptySlots(),\n\t\t\tautomated: loadState('dav', 'user_status_automation') === 'yes',\n\t\t}\n\t},\n\tcomputed: {\n\t\ttimeZonePickerId() {\n\t\t\treturn `tz-${(Math.random() + 1).toString(36).substring(7)}`\n\t\t},\n\t},\n\tasync mounted() {\n\t\ttry {\n\t\t\tconst slotData = await findScheduleInboxAvailability()\n\t\t\tif (!slotData) {\n\t\t\t\tconsole.info('no availability is set')\n\t\t\t\tthis.slots = getEmptySlots()\n\t\t\t} else {\n\t\t\t\tconst { slots, timezoneId } = slotData\n\t\t\t\tthis.slots = slots\n\t\t\t\tif (timezoneId) {\n\t\t\t\t\tthis.timezone = timezoneId\n\t\t\t\t}\n\t\t\t\tconsole.info('availability loaded', this.slots, this.timezoneId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('could not load existing availability', e)\n\n\t\t\tshowError(t('dav', 'Failed to load availability'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\tmethods: {\n\t\tasync save() {\n\t\t\ttry {\n\t\t\t\tthis.saving = true\n\n\t\t\t\tawait saveScheduleInboxAvailability(this.slots, this.timezone)\n\t\t\t\tif (this.automated) {\n\t\t\t\t\tawait enableUserStatusAutomation()\n\t\t\t\t} else {\n\t\t\t\t\tawait disableUserStatusAutomation()\n\t\t\t\t}\n\n\t\t\t\tshowSuccess(t('dav', 'Saved availability'))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('could not save availability', e)\n\n\t\t\t\tshowError(t('dav', 'Failed to save availability'))\n\t\t\t} finally {\n\t\t\t\tthis.saving = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.availability-day) {\n\tpadding: 0 10px 0 10px;\n\tposition: absolute;\n}\n:deep(.availability-slots) {\n\tdisplay: flex;\n\twhite-space: normal;\n}\n:deep(.availability-slot) {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tflex-wrap: wrap;\n}\n:deep(.availability-slot-group) {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n:deep(.mx-input-wrapper) {\n\twidth: 85px;\n}\n:deep(.mx-datepicker) {\n\twidth: 97px;\n}\n:deep(.multiselect) {\n\tborder: 1px solid var(--color-border-dark);\n\twidth: 120px;\n}\n.time-zone {\n\tpadding: 32px 12px 12px 0;\n display: flex;\n flex-wrap: wrap;\n\n\t&__heading {\n\t\tmargin-right: calc(var(--default-grid-baseline) * 2);\n\t\tline-height: var(--default-clickable-area);\n\t\tfont-weight: bold;\n\t}\n}\n.grid-table {\n\tdisplay: grid;\n\tmargin-bottom: 32px;\n\tgrid-column-gap: 24px;\n\tgrid-row-gap: 6px;\n\tgrid-template-columns: min-content auto min-content;\n\tmax-width: 500px;\n}\n.button {\n\talign-self: flex-end;\n}\n:deep(.label-weekday) {\n\tposition: relative;\n\tdisplay: inline-flex;\n\tpadding-top: 4px;\n\talign-self: center;\n}\n\n:deep(.delete-slot) {\n\tpadding-bottom: unset;\n}\n\n:deep(.add-another) {\n\talign-self: center;\n}\n\n.to-text {\n\tpadding-right: 12px;\n}\n\n.empty-content {\n\tcolor: var(--color-text-lighter);\n\tmargin-top: 4px;\n\talign-self: center;\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=script&lang=js\"","/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getClient } from '../dav/client.js'\nimport logger from './logger.js'\nimport { parseXML } from 'webdav'\n\nimport {\n\tslotsToVavailability,\n\tvavailabilityToSlots,\n} from '@nextcloud/calendar-availability-vue'\n\n/**\n *\n */\nexport function getEmptySlots() {\n\treturn {\n\t\tMO: [],\n\t\tTU: [],\n\t\tWE: [],\n\t\tTH: [],\n\t\tFR: [],\n\t\tSA: [],\n\t\tSU: [],\n\t}\n}\n\n/**\n *\n */\nexport async function findScheduleInboxAvailability() {\n\tconst client = getClient('calendars')\n\n\tconst response = await client.customRequest('inbox', {\n\t\tmethod: 'PROPFIND',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propfind xmlns:x0=\"DAV:\">\n\t\t\t <x0:prop>\n\t\t\t\t<x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\"/>\n\t\t\t </x0:prop>\n\t\t\t</x0:propfind>`,\n\t})\n\n\tconst xml = await parseXML(response.data)\n\n\tif (!xml) {\n\t\treturn undefined\n\t}\n\n\tconst availability = xml?.multistatus?.response[0]?.propstat?.prop['calendar-availability']\n\tif (!availability) {\n\t\treturn undefined\n\t}\n\n\treturn vavailabilityToSlots(availability)\n}\n\n/**\n * @param {any} slots -\n * @param {any} timezoneId -\n */\nexport async function saveScheduleInboxAvailability(slots, timezoneId) {\n\tconst all = [...Object.keys(slots).flatMap(dayId => slots[dayId].map(slot => ({\n\t\t...slot,\n\t\tday: dayId,\n\t})))]\n\n\tconst vavailability = slotsToVavailability(all, timezoneId)\n\n\tlogger.debug('New availability ical created', {\n\t\tvavailability,\n\t})\n\n\tconst client = getClient('calendars')\n\tawait client.customRequest('inbox', {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propertyupdate xmlns:x0=\"DAV:\">\n\t\t\t <x0:set>\n\t\t\t\t<x0:prop>\n\t\t\t\t <x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\">${vavailability}</x1:calendar-availability>\n\t\t\t\t</x0:prop>\n\t\t\t </x0:set>\n\t\t\t</x0:propertyupdate>`,\n\t})\n}\n","/**\n * @copyright 2022 Joas Schilling <coding@schilljs.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Enable user status automation based on availability\n */\nexport async function enableUserStatusAutomation() {\n\treturn await axios.post(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t}),\n\t\t{\n\t\t\tconfigValue: 'yes',\n\t\t}\n\t)\n}\n\n/**\n * Disable user status automation based on availability\n */\nexport async function disableUserStatusAutomation() {\n\treturn await axios.delete(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t})\n\t)\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvailabilityForm.vue?vue&type=template&id=0275a141&scoped=true\"\nimport script from \"./AvailabilityForm.vue?vue&type=script&lang=js\"\nexport * from \"./AvailabilityForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0275a141\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=script&lang=js\"","<template>\n\t<div>\n\t\t<NcSettingsSection :name=\"$t('dav', 'Availability')\"\n\t\t\t:description=\"$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')\">\n\t\t\t<AvailabilityForm />\n\t\t</NcSettingsSection>\n\t\t<NcSettingsSection v-if=\"!hideAbsenceSettings\"\n\t\t\t:name=\"$t('dav', 'Absence')\"\n\t\t\t:description=\"$t('dav', 'Configure your next absence period.')\">\n\t\t\t<AbsenceForm />\n\t\t</NcSettingsSection>\n\t</div>\n</template>\n\n<script>\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport AbsenceForm from '../components/AbsenceForm.vue'\nimport AvailabilityForm from '../components/AvailabilityForm.vue'\nimport { loadState } from '@nextcloud/initial-state'\n\nexport default {\n\tname: 'Availability',\n\tcomponents: {\n\t\tNcSettingsSection,\n\t\tAbsenceForm,\n\t\tAvailabilityForm,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\thideAbsenceSettings: loadState('dav', 'hide_absence_settings', true),\n\t\t}\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./Availability.vue?vue&type=template&id=23e55ed8\"\nimport script from \"./Availability.vue?vue&type=script&lang=js\"\nexport * from \"./Availability.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSettingsSection',{attrs:{\"name\":_vm.$t('dav', 'Availability'),\"description\":_vm.$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')}},[_c('AvailabilityForm')],1),_vm._v(\" \"),(!_vm.hideAbsenceSettings)?_c('NcSettingsSection',{attrs:{\"name\":_vm.$t('dav', 'Absence'),\"description\":_vm.$t('dav', 'Configure your next absence period.')}},[_c('AbsenceForm')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { translate } from '@nextcloud/l10n'\nimport Availability from './views/Availability.vue'\n\nVue.prototype.$t = translate\n\nconst View = Vue.extend(Availability);\n\n(new View({})).$mount('#settings-personal-availability')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.availability-day[data-v-1b69eb8d] {\n padding: 0 10px;\n position: absolute;\n}\n.availability-slots[data-v-1b69eb8d] {\n max-width: 332px;\n width: 100%;\n display: flex;\n justify-content: flex-start;\n white-space: nowrap;\n}\n.availability-slot[data-v-1b69eb8d] {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.availability-slot-group[data-v-1b69eb8d] {\n display: flex;\n flex-direction: column;\n}\n.time-zone[data-v-1b69eb8d] {\n padding: 32px 12px 12px 0;\n}\n.week-day-container[data-v-1b69eb8d] {\n box-sizing: border-box;\n margin-bottom: 32px;\n max-width: 500px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 6px;\n}\n.button[data-v-1b69eb8d] {\n align-self: flex-end;\n}\n.label-weekday[data-v-1b69eb8d] {\n position: relative;\n display: flex;\n align-items: flex-start;\n min-width: 77px;\n width: 77px;\n}\n.label-weekday > span[data-v-1b69eb8d] {\n height: 50px;\n display: flex;\n align-items: center;\n}\n.add-another[data-v-1b69eb8d] {\n background-color: transparent;\n border: none;\n opacity: .5;\n display: inline-flex;\n padding: 0;\n margin: 0 0 3px;\n}\n.add-another[data-v-1b69eb8d]:hover {\n opacity: 1;\n}\n.to-text[data-v-1b69eb8d] {\n padding-right: 12px;\n}\n.time-zone-text[data-v-1b69eb8d] {\n padding-left: 22px;\n}\n.empty-content[data-v-1b69eb8d] {\n color: var(--color-text-lighter);\n display: inline-flex;\n align-items: center;\n}\n.start-date[data-v-1b69eb8d] {\n padding-right: 12px;\n}\n.day-container[data-v-1b69eb8d] {\n display: flex;\n max-width: 500px;\n width: 100%;\n gap: 24px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-1OlNbSWJ.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,2BAA2B;EAC3B,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,QAAQ;AACV;AACA;EACE,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,eAAe;EACf,WAAW;AACb;AACA;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,6BAA6B;EAC7B,YAAY;EACZ,WAAW;EACX,oBAAoB;EACpB,UAAU;EACV,eAAe;AACjB;AACA;EACE,UAAU;AACZ;AACA;EACE,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gCAAgC;EAChC,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,SAAS;AACX\",\"sourcesContent\":[\".availability-day[data-v-1b69eb8d] {\\n padding: 0 10px;\\n position: absolute;\\n}\\n.availability-slots[data-v-1b69eb8d] {\\n max-width: 332px;\\n width: 100%;\\n display: flex;\\n justify-content: flex-start;\\n white-space: nowrap;\\n}\\n.availability-slot[data-v-1b69eb8d] {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n.availability-slot-group[data-v-1b69eb8d] {\\n display: flex;\\n flex-direction: column;\\n}\\n.time-zone[data-v-1b69eb8d] {\\n padding: 32px 12px 12px 0;\\n}\\n.week-day-container[data-v-1b69eb8d] {\\n box-sizing: border-box;\\n margin-bottom: 32px;\\n max-width: 500px;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n gap: 6px;\\n}\\n.button[data-v-1b69eb8d] {\\n align-self: flex-end;\\n}\\n.label-weekday[data-v-1b69eb8d] {\\n position: relative;\\n display: flex;\\n align-items: flex-start;\\n min-width: 77px;\\n width: 77px;\\n}\\n.label-weekday > span[data-v-1b69eb8d] {\\n height: 50px;\\n display: flex;\\n align-items: center;\\n}\\n.add-another[data-v-1b69eb8d] {\\n background-color: transparent;\\n border: none;\\n opacity: .5;\\n display: inline-flex;\\n padding: 0;\\n margin: 0 0 3px;\\n}\\n.add-another[data-v-1b69eb8d]:hover {\\n opacity: 1;\\n}\\n.to-text[data-v-1b69eb8d] {\\n padding-right: 12px;\\n}\\n.time-zone-text[data-v-1b69eb8d] {\\n padding-left: 22px;\\n}\\n.empty-content[data-v-1b69eb8d] {\\n color: var(--color-text-lighter);\\n display: inline-flex;\\n align-items: center;\\n}\\n.start-date[data-v-1b69eb8d] {\\n padding-right: 12px;\\n}\\n.day-container[data-v-1b69eb8d] {\\n display: flex;\\n max-width: 500px;\\n width: 100%;\\n gap: 24px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.absence[data-v-716172ba]{display:flex;flex-direction:column;gap:5px}.absence__dates[data-v-716172ba]{display:flex;gap:10px;width:100%}.absence__dates__picker[data-v-716172ba]{flex:1 auto}.absence__dates__picker[data-v-716172ba] .native-datetime-picker--input{margin-bottom:0}.absence__buttons[data-v-716172ba]{display:flex;gap:5px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/components/AbsenceForm.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iCACC,YAAA,CACA,QAAA,CACA,UAAA,CAEA,yCACC,WAAA,CAEA,wEACC,eAAA,CAKH,mCACC,YAAA,CACA,OAAA\",\"sourcesContent\":[\"\\n.absence {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 5px;\\n\\n\\t&__dates {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 10px;\\n\\t\\twidth: 100%;\\n\\n\\t\\t&__picker {\\n\\t\\t\\tflex: 1 auto;\\n\\n\\t\\t\\t::v-deep .native-datetime-picker--input {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 5px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-0275a141] .availability-day{padding:0 10px 0 10px;position:absolute}[data-v-0275a141] .availability-slots{display:flex;white-space:normal}[data-v-0275a141] .availability-slot{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}[data-v-0275a141] .availability-slot-group{display:flex;flex-direction:column}[data-v-0275a141] .mx-input-wrapper{width:85px}[data-v-0275a141] .mx-datepicker{width:97px}[data-v-0275a141] .multiselect{border:1px solid var(--color-border-dark);width:120px}.time-zone[data-v-0275a141]{padding:32px 12px 12px 0;display:flex;flex-wrap:wrap}.time-zone__heading[data-v-0275a141]{margin-right:calc(var(--default-grid-baseline)*2);line-height:var(--default-clickable-area);font-weight:bold}.grid-table[data-v-0275a141]{display:grid;margin-bottom:32px;grid-column-gap:24px;grid-row-gap:6px;grid-template-columns:min-content auto min-content;max-width:500px}.button[data-v-0275a141]{align-self:flex-end}[data-v-0275a141] .label-weekday{position:relative;display:inline-flex;padding-top:4px;align-self:center}[data-v-0275a141] .delete-slot{padding-bottom:unset}[data-v-0275a141] .add-another{align-self:center}.to-text[data-v-0275a141]{padding-right:12px}.empty-content[data-v-0275a141]{color:var(--color-text-lighter);margin-top:4px;align-self:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/components/AvailabilityForm.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,qBAAA,CACA,iBAAA,CAED,sCACC,YAAA,CACA,kBAAA,CAED,qCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,cAAA,CAED,2CACC,YAAA,CACA,qBAAA,CAED,oCACC,UAAA,CAED,iCACC,UAAA,CAED,+BACC,yCAAA,CACA,WAAA,CAED,4BACC,wBAAA,CACG,YAAA,CACA,cAAA,CAEH,qCACC,iDAAA,CACA,yCAAA,CACA,gBAAA,CAGF,6BACC,YAAA,CACA,kBAAA,CACA,oBAAA,CACA,gBAAA,CACA,kDAAA,CACA,eAAA,CAED,yBACC,mBAAA,CAED,iCACC,iBAAA,CACA,mBAAA,CACA,eAAA,CACA,iBAAA,CAGD,+BACC,oBAAA,CAGD,+BACC,iBAAA,CAGD,0BACC,kBAAA,CAGD,gCACC,+BAAA,CACA,cAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n:deep(.availability-day) {\\n\\tpadding: 0 10px 0 10px;\\n\\tposition: absolute;\\n}\\n:deep(.availability-slots) {\\n\\tdisplay: flex;\\n\\twhite-space: normal;\\n}\\n:deep(.availability-slot) {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\tflex-wrap: wrap;\\n}\\n:deep(.availability-slot-group) {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n:deep(.mx-input-wrapper) {\\n\\twidth: 85px;\\n}\\n:deep(.mx-datepicker) {\\n\\twidth: 97px;\\n}\\n:deep(.multiselect) {\\n\\tborder: 1px solid var(--color-border-dark);\\n\\twidth: 120px;\\n}\\n.time-zone {\\n\\tpadding: 32px 12px 12px 0;\\n display: flex;\\n flex-wrap: wrap;\\n\\n\\t&__heading {\\n\\t\\tmargin-right: calc(var(--default-grid-baseline) * 2);\\n\\t\\tline-height: var(--default-clickable-area);\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n.grid-table {\\n\\tdisplay: grid;\\n\\tmargin-bottom: 32px;\\n\\tgrid-column-gap: 24px;\\n\\tgrid-row-gap: 6px;\\n\\tgrid-template-columns: min-content auto min-content;\\n\\tmax-width: 500px;\\n}\\n.button {\\n\\talign-self: flex-end;\\n}\\n:deep(.label-weekday) {\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\tpadding-top: 4px;\\n\\talign-self: center;\\n}\\n\\n:deep(.delete-slot) {\\n\\tpadding-bottom: unset;\\n}\\n\\n:deep(.add-another) {\\n\\talign-self: center;\\n}\\n\\n.to-text {\\n\\tpadding-right: 12px;\\n}\\n\\n.empty-content {\\n\\tcolor: var(--color-text-lighter);\\n\\tmargin-top: 4px;\\n\\talign-self: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2021 */\n\n/* jshint ignore:start */\nvar ICAL;\n(function() {\n /* istanbul ignore next */\n if (typeof module === 'object') {\n // CommonJS, where exports may be different each time.\n ICAL = module.exports;\n } else if (typeof HTMLScriptElement !== 'undefined' && 'noModule' in HTMLScriptElement.prototype) {\n // Until we use ES6 exports, using <script type=\"module\"> we define ICAL on the window global.\n window.ICAL = ICAL = {};\n } else if (typeof ICAL !== 'object') {\n ICAL = {};\n }\n})();\n/* jshint ignore:end */\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n/**\n * The number of characters before iCalendar line folding should occur\n * @type {Number}\n * @default 75\n */\nICAL.foldLength = 75;\n\n\n/**\n * The character(s) to be used for a newline. The default value is provided by\n * rfc5545.\n * @type {String}\n * @default \"\\r\\n\"\n */\nICAL.newLineChar = '\\r\\n';\n\n\n/**\n * Helper functions used in various places within ical.js\n * @namespace\n */\nICAL.helpers = {\n /**\n * Compiles a list of all referenced TZIDs in all subcomponents and\n * removes any extra VTIMEZONE subcomponents. In addition, if any TZIDs\n * are referenced by a component, but a VTIMEZONE does not exist,\n * an attempt will be made to generate a VTIMEZONE using ICAL.TimezoneService.\n *\n * @param {ICAL.Component} vcal The top-level VCALENDAR component.\n * @return {ICAL.Component} The ICAL.Component that was passed in.\n */\n updateTimezones: function(vcal) {\n var allsubs, properties, vtimezones, reqTzid, i, tzid;\n\n if (!vcal || vcal.name !== \"vcalendar\") {\n //not a top-level vcalendar component\n return vcal;\n }\n\n //Store vtimezone subcomponents in an object reference by tzid.\n //Store properties from everything else in another array\n allsubs = vcal.getAllSubcomponents();\n properties = [];\n vtimezones = {};\n for (i = 0; i < allsubs.length; i++) {\n if (allsubs[i].name === \"vtimezone\") {\n tzid = allsubs[i].getFirstProperty(\"tzid\").getFirstValue();\n vtimezones[tzid] = allsubs[i];\n } else {\n properties = properties.concat(allsubs[i].getAllProperties());\n }\n }\n\n //create an object with one entry for each required tz\n reqTzid = {};\n for (i = 0; i < properties.length; i++) {\n if ((tzid = properties[i].getParameter(\"tzid\"))) {\n reqTzid[tzid] = true;\n }\n }\n\n //delete any vtimezones that are not on the reqTzid list.\n for (i in vtimezones) {\n if (vtimezones.hasOwnProperty(i) && !reqTzid[i]) {\n vcal.removeSubcomponent(vtimezones[i]);\n }\n }\n\n //create any missing, but registered timezones\n for (i in reqTzid) {\n if (\n reqTzid.hasOwnProperty(i) &&\n !vtimezones[i] &&\n ICAL.TimezoneService.has(i)\n ) {\n vcal.addSubcomponent(ICAL.TimezoneService.get(i).component);\n }\n }\n\n return vcal;\n },\n\n /**\n * Checks if the given type is of the number type and also NaN.\n *\n * @param {Number} number The number to check\n * @return {Boolean} True, if the number is strictly NaN\n */\n isStrictlyNaN: function(number) {\n return typeof(number) === 'number' && isNaN(number);\n },\n\n /**\n * Parses a string value that is expected to be an integer, when the valid is\n * not an integer throws a decoration error.\n *\n * @param {String} string Raw string input\n * @return {Number} Parsed integer\n */\n strictParseInt: function(string) {\n var result = parseInt(string, 10);\n\n if (ICAL.helpers.isStrictlyNaN(result)) {\n throw new Error(\n 'Could not extract integer from \"' + string + '\"'\n );\n }\n\n return result;\n },\n\n /**\n * Creates or returns a class instance of a given type with the initialization\n * data if the data is not already an instance of the given type.\n *\n * @example\n * var time = new ICAL.Time(...);\n * var result = ICAL.helpers.formatClassType(time, ICAL.Time);\n *\n * (result instanceof ICAL.Time)\n * // => true\n *\n * result = ICAL.helpers.formatClassType({}, ICAL.Time);\n * (result isntanceof ICAL.Time)\n * // => true\n *\n *\n * @param {Object} data object initialization data\n * @param {Object} type object type (like ICAL.Time)\n * @return {?} An instance of the found type.\n */\n formatClassType: function formatClassType(data, type) {\n if (typeof(data) === 'undefined') {\n return undefined;\n }\n\n if (data instanceof type) {\n return data;\n }\n return new type(data);\n },\n\n /**\n * Identical to indexOf but will only match values when they are not preceded\n * by a backslash character.\n *\n * @param {String} buffer String to search\n * @param {String} search Value to look for\n * @param {Number} pos Start position\n * @return {Number} The position, or -1 if not found\n */\n unescapedIndexOf: function(buffer, search, pos) {\n while ((pos = buffer.indexOf(search, pos)) !== -1) {\n if (pos > 0 && buffer[pos - 1] === '\\\\') {\n pos += 1;\n } else {\n return pos;\n }\n }\n return -1;\n },\n\n /**\n * Find the index for insertion using binary search.\n *\n * @param {Array} list The list to search\n * @param {?} seekVal The value to insert\n * @param {function(?,?)} cmpfunc The comparison func, that can\n * compare two seekVals\n * @return {Number} The insert position\n */\n binsearchInsert: function(list, seekVal, cmpfunc) {\n if (!list.length)\n return 0;\n\n var low = 0, high = list.length - 1,\n mid, cmpval;\n\n while (low <= high) {\n mid = low + Math.floor((high - low) / 2);\n cmpval = cmpfunc(seekVal, list[mid]);\n\n if (cmpval < 0)\n high = mid - 1;\n else if (cmpval > 0)\n low = mid + 1;\n else\n break;\n }\n\n if (cmpval < 0)\n return mid; // insertion is displacing, so use mid outright.\n else if (cmpval > 0)\n return mid + 1;\n else\n return mid;\n },\n\n /**\n * Convenience function for debug output\n * @private\n */\n dumpn: /* istanbul ignore next */ function() {\n if (!ICAL.debug) {\n return;\n }\n\n if (typeof (console) !== 'undefined' && 'log' in console) {\n ICAL.helpers.dumpn = function consoleDumpn(input) {\n console.log(input);\n };\n } else {\n ICAL.helpers.dumpn = function geckoDumpn(input) {\n dump(input + '\\n');\n };\n }\n\n ICAL.helpers.dumpn(arguments[0]);\n },\n\n /**\n * Clone the passed object or primitive. By default a shallow clone will be\n * executed.\n *\n * @param {*} aSrc The thing to clone\n * @param {Boolean=} aDeep If true, a deep clone will be performed\n * @return {*} The copy of the thing\n */\n clone: function(aSrc, aDeep) {\n if (!aSrc || typeof aSrc != \"object\") {\n return aSrc;\n } else if (aSrc instanceof Date) {\n return new Date(aSrc.getTime());\n } else if (\"clone\" in aSrc) {\n return aSrc.clone();\n } else if (Array.isArray(aSrc)) {\n var arr = [];\n for (var i = 0; i < aSrc.length; i++) {\n arr.push(aDeep ? ICAL.helpers.clone(aSrc[i], true) : aSrc[i]);\n }\n return arr;\n } else {\n var obj = {};\n for (var name in aSrc) {\n // uses prototype method to allow use of Object.create(null);\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(aSrc, name)) {\n if (aDeep) {\n obj[name] = ICAL.helpers.clone(aSrc[name], true);\n } else {\n obj[name] = aSrc[name];\n }\n }\n }\n return obj;\n }\n },\n\n /**\n * Performs iCalendar line folding. A line ending character is inserted and\n * the next line begins with a whitespace.\n *\n * @example\n * SUMMARY:This line will be fold\n * ed right in the middle of a word.\n *\n * @param {String} aLine The line to fold\n * @return {String} The folded line\n */\n foldline: function foldline(aLine) {\n var result = \"\";\n var line = aLine || \"\", pos = 0, line_length = 0;\n //pos counts position in line for the UTF-16 presentation\n //line_length counts the bytes for the UTF-8 presentation\n while (line.length) {\n var cp = line.codePointAt(pos);\n if (cp < 128) ++line_length;\n else if (cp < 2048) line_length += 2;//needs 2 UTF-8 bytes\n else if (cp < 65536) line_length += 3;\n else line_length += 4; //cp is less than 1114112\n if (line_length < ICAL.foldLength + 1)\n pos += cp > 65535 ? 2 : 1;\n else {\n result += ICAL.newLineChar + \" \" + line.substring(0, pos);\n line = line.substring(pos);\n pos = line_length = 0;\n }\n }\n return result.substr(ICAL.newLineChar.length + 1);\n },\n\n /**\n * Pads the given string or number with zeros so it will have at least two\n * characters.\n *\n * @param {String|Number} data The string or number to pad\n * @return {String} The number padded as a string\n */\n pad2: function pad(data) {\n if (typeof(data) !== 'string') {\n // handle fractions.\n if (typeof(data) === 'number') {\n data = parseInt(data);\n }\n data = String(data);\n }\n\n var len = data.length;\n\n switch (len) {\n case 0:\n return '00';\n case 1:\n return '0' + data;\n default:\n return data;\n }\n },\n\n /**\n * Truncates the given number, correctly handling negative numbers.\n *\n * @param {Number} number The number to truncate\n * @return {Number} The truncated number\n */\n trunc: function trunc(number) {\n return (number < 0 ? Math.ceil(number) : Math.floor(number));\n },\n\n /**\n * Poor-man's cross-browser inheritance for JavaScript. Doesn't support all\n * the features, but enough for our usage.\n *\n * @param {Function} base The base class constructor function.\n * @param {Function} child The child class constructor function.\n * @param {Object} extra Extends the prototype with extra properties\n * and methods\n */\n inherits: function(base, child, extra) {\n function F() {}\n F.prototype = base.prototype;\n child.prototype = new F();\n\n if (extra) {\n ICAL.helpers.extend(extra, child.prototype);\n }\n },\n\n /**\n * Poor-man's cross-browser object extension. Doesn't support all the\n * features, but enough for our usage. Note that the target's properties are\n * not overwritten with the source properties.\n *\n * @example\n * var child = ICAL.helpers.extend(parent, {\n * \"bar\": 123\n * });\n *\n * @param {Object} source The object to extend\n * @param {Object} target The object to extend with\n * @return {Object} Returns the target.\n */\n extend: function(source, target) {\n for (var key in source) {\n var descr = Object.getOwnPropertyDescriptor(source, key);\n if (descr && !Object.getOwnPropertyDescriptor(target, key)) {\n Object.defineProperty(target, key, descr);\n }\n }\n return target;\n }\n};\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n/** @namespace ICAL */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.design = (function() {\n 'use strict';\n\n var FROM_ICAL_NEWLINE = /\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g;\n var TO_ICAL_NEWLINE = /\\\\|;|,|\\n/g;\n var FROM_VCARD_NEWLINE = /\\\\\\\\|\\\\,|\\\\[Nn]/g;\n var TO_VCARD_NEWLINE = /\\\\|,|\\n/g;\n\n function createTextType(fromNewline, toNewline) {\n var result = {\n matches: /.*/,\n\n fromICAL: function(aValue, structuredEscape) {\n return replaceNewline(aValue, fromNewline, structuredEscape);\n },\n\n toICAL: function(aValue, structuredEscape) {\n var regEx = toNewline;\n if (structuredEscape)\n regEx = new RegExp(regEx.source + '|' + structuredEscape);\n return aValue.replace(regEx, function(str) {\n switch (str) {\n case \"\\\\\":\n return \"\\\\\\\\\";\n case \";\":\n return \"\\\\;\";\n case \",\":\n return \"\\\\,\";\n case \"\\n\":\n return \"\\\\n\";\n /* istanbul ignore next */\n default:\n return str;\n }\n });\n }\n };\n return result;\n }\n\n // default types used multiple times\n var DEFAULT_TYPE_TEXT = { defaultType: \"text\" };\n var DEFAULT_TYPE_TEXT_MULTI = { defaultType: \"text\", multiValue: \",\" };\n var DEFAULT_TYPE_TEXT_STRUCTURED = { defaultType: \"text\", structuredValue: \";\" };\n var DEFAULT_TYPE_INTEGER = { defaultType: \"integer\" };\n var DEFAULT_TYPE_DATETIME_DATE = { defaultType: \"date-time\", allowedTypes: [\"date-time\", \"date\"] };\n var DEFAULT_TYPE_DATETIME = { defaultType: \"date-time\" };\n var DEFAULT_TYPE_URI = { defaultType: \"uri\" };\n var DEFAULT_TYPE_UTCOFFSET = { defaultType: \"utc-offset\" };\n var DEFAULT_TYPE_RECUR = { defaultType: \"recur\" };\n var DEFAULT_TYPE_DATE_ANDOR_TIME = { defaultType: \"date-and-or-time\", allowedTypes: [\"date-time\", \"date\", \"text\"] };\n\n function replaceNewlineReplace(string) {\n switch (string) {\n case \"\\\\\\\\\":\n return \"\\\\\";\n case \"\\\\;\":\n return \";\";\n case \"\\\\,\":\n return \",\";\n case \"\\\\n\":\n case \"\\\\N\":\n return \"\\n\";\n /* istanbul ignore next */\n default:\n return string;\n }\n }\n\n function replaceNewline(value, newline, structuredEscape) {\n // avoid regex when possible.\n if (value.indexOf('\\\\') === -1) {\n return value;\n }\n if (structuredEscape)\n newline = new RegExp(newline.source + '|\\\\\\\\' + structuredEscape);\n return value.replace(newline, replaceNewlineReplace);\n }\n\n var commonProperties = {\n \"categories\": DEFAULT_TYPE_TEXT_MULTI,\n \"url\": DEFAULT_TYPE_URI,\n \"version\": DEFAULT_TYPE_TEXT,\n \"uid\": DEFAULT_TYPE_TEXT\n };\n\n var commonValues = {\n \"boolean\": {\n values: [\"TRUE\", \"FALSE\"],\n\n fromICAL: function(aValue) {\n switch (aValue) {\n case 'TRUE':\n return true;\n case 'FALSE':\n return false;\n default:\n //TODO: parser warning\n return false;\n }\n },\n\n toICAL: function(aValue) {\n if (aValue) {\n return 'TRUE';\n }\n return 'FALSE';\n }\n\n },\n float: {\n matches: /^[+-]?\\d+\\.\\d+$/,\n\n fromICAL: function(aValue) {\n var parsed = parseFloat(aValue);\n if (ICAL.helpers.isStrictlyNaN(parsed)) {\n // TODO: parser warning\n return 0.0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n integer: {\n fromICAL: function(aValue) {\n var parsed = parseInt(aValue);\n if (ICAL.helpers.isStrictlyNaN(parsed)) {\n return 0;\n }\n return parsed;\n },\n\n toICAL: function(aValue) {\n return String(aValue);\n }\n },\n \"utc-offset\": {\n toICAL: function(aValue) {\n if (aValue.length < 7) {\n // no seconds\n // -0500\n return aValue.substr(0, 3) +\n aValue.substr(4, 2);\n } else {\n // seconds\n // -050000\n return aValue.substr(0, 3) +\n aValue.substr(4, 2) +\n aValue.substr(7, 2);\n }\n },\n\n fromICAL: function(aValue) {\n if (aValue.length < 6) {\n // no seconds\n // -05:00\n return aValue.substr(0, 3) + ':' +\n aValue.substr(3, 2);\n } else {\n // seconds\n // -05:00:00\n return aValue.substr(0, 3) + ':' +\n aValue.substr(3, 2) + ':' +\n aValue.substr(5, 2);\n }\n },\n\n decorate: function(aValue) {\n return ICAL.UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n };\n\n var icalParams = {\n // Although the syntax is DQUOTE uri DQUOTE, I don't think we should\n // enfoce anything aside from it being a valid content line.\n //\n // At least some params require - if multi values are used - DQUOTEs\n // for each of its values - e.g. delegated-from=\"uri1\",\"uri2\"\n // To indicate this, I introduced the new k/v pair\n // multiValueSeparateDQuote: true\n //\n // \"ALTREP\": { ... },\n\n // CN just wants a param-value\n // \"CN\": { ... }\n\n \"cutype\": {\n values: [\"INDIVIDUAL\", \"GROUP\", \"RESOURCE\", \"ROOM\", \"UNKNOWN\"],\n allowXName: true,\n allowIanaToken: true\n },\n\n \"delegated-from\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"delegated-to\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n // \"DIR\": { ... }, // See ALTREP\n \"encoding\": {\n values: [\"8BIT\", \"BASE64\"]\n },\n // \"FMTTYPE\": { ... }, // See ALTREP\n \"fbtype\": {\n values: [\"FREE\", \"BUSY\", \"BUSY-UNAVAILABLE\", \"BUSY-TENTATIVE\"],\n allowXName: true,\n allowIanaToken: true\n },\n // \"LANGUAGE\": { ... }, // See ALTREP\n \"member\": {\n valueType: \"cal-address\",\n multiValue: \",\",\n multiValueSeparateDQuote: true\n },\n \"partstat\": {\n // TODO These values are actually different per-component\n values: [\"NEEDS-ACTION\", \"ACCEPTED\", \"DECLINED\", \"TENTATIVE\",\n \"DELEGATED\", \"COMPLETED\", \"IN-PROCESS\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"range\": {\n values: [\"THISANDFUTURE\"]\n },\n \"related\": {\n values: [\"START\", \"END\"]\n },\n \"reltype\": {\n values: [\"PARENT\", \"CHILD\", \"SIBLING\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"role\": {\n values: [\"REQ-PARTICIPANT\", \"CHAIR\",\n \"OPT-PARTICIPANT\", \"NON-PARTICIPANT\"],\n allowXName: true,\n allowIanaToken: true\n },\n \"rsvp\": {\n values: [\"TRUE\", \"FALSE\"]\n },\n \"sent-by\": {\n valueType: \"cal-address\"\n },\n \"tzid\": {\n matches: /^\\//\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"binary\", \"boolean\", \"cal-address\", \"date\", \"date-time\",\n \"duration\", \"float\", \"integer\", \"period\", \"recur\", \"text\",\n \"time\", \"uri\", \"utc-offset\"],\n allowXName: true,\n allowIanaToken: true\n }\n };\n\n // When adding a value here, be sure to add it to the parameter types!\n var icalValues = ICAL.helpers.extend(commonValues, {\n text: createTextType(FROM_ICAL_NEWLINE, TO_ICAL_NEWLINE),\n\n uri: {\n // TODO\n /* ... */\n },\n\n \"binary\": {\n decorate: function(aString) {\n return ICAL.Binary.fromString(aString);\n },\n\n undecorate: function(aBinary) {\n return aBinary.toString();\n }\n },\n \"cal-address\": {\n // needs to be an uri\n },\n \"date\": {\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return ICAL.Time.fromDateString(aValue, aProp);\n } else {\n return ICAL.Time.fromString(aValue, aProp);\n }\n },\n\n /**\n * undecorates a time object.\n */\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n // from: 20120901\n // to: 2012-09-01\n if (!design.strict && aValue.length >= 15) {\n // This is probably a date-time, e.g. 20120901T130000Z\n return icalValues[\"date-time\"].fromICAL(aValue);\n } else {\n return aValue.substr(0, 4) + '-' +\n aValue.substr(4, 2) + '-' +\n aValue.substr(6, 2);\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01\n // to: 20120901\n var len = aValue.length;\n\n if (len == 10) {\n return aValue.substr(0, 4) +\n aValue.substr(5, 2) +\n aValue.substr(8, 2);\n } else if (len >= 19) {\n return icalValues[\"date-time\"].toICAL(aValue);\n } else {\n //TODO: serialize warning?\n return aValue;\n }\n\n }\n },\n \"date-time\": {\n fromICAL: function(aValue) {\n // from: 20120901T130000\n // to: 2012-09-01T13:00:00\n if (!design.strict && aValue.length == 8) {\n // This is probably a date, e.g. 20120901\n return icalValues.date.fromICAL(aValue);\n } else {\n var result = aValue.substr(0, 4) + '-' +\n aValue.substr(4, 2) + '-' +\n aValue.substr(6, 2) + 'T' +\n aValue.substr(9, 2) + ':' +\n aValue.substr(11, 2) + ':' +\n aValue.substr(13, 2);\n\n if (aValue[15] && aValue[15] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n },\n\n toICAL: function(aValue) {\n // from: 2012-09-01T13:00:00\n // to: 20120901T130000\n var len = aValue.length;\n\n if (len == 10 && !design.strict) {\n return icalValues.date.toICAL(aValue);\n } else if (len >= 19) {\n var result = aValue.substr(0, 4) +\n aValue.substr(5, 2) +\n // grab the (DDTHH) segment\n aValue.substr(8, 5) +\n // MM\n aValue.substr(14, 2) +\n // SS\n aValue.substr(17, 2);\n\n if (aValue[19] && aValue[19] === 'Z') {\n result += 'Z';\n }\n return result;\n } else {\n // TODO: error\n return aValue;\n }\n },\n\n decorate: function(aValue, aProp) {\n if (design.strict) {\n return ICAL.Time.fromDateTimeString(aValue, aProp);\n } else {\n return ICAL.Time.fromString(aValue, aProp);\n }\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n duration: {\n decorate: function(aValue) {\n return ICAL.Duration.fromString(aValue);\n },\n undecorate: function(aValue) {\n return aValue.toString();\n }\n },\n period: {\n\n fromICAL: function(string) {\n var parts = string.split('/');\n parts[0] = icalValues['date-time'].fromICAL(parts[0]);\n\n if (!ICAL.Duration.isValueString(parts[1])) {\n parts[1] = icalValues['date-time'].fromICAL(parts[1]);\n }\n\n return parts;\n },\n\n toICAL: function(parts) {\n if (!design.strict && parts[0].length == 10) {\n parts[0] = icalValues.date.toICAL(parts[0]);\n } else {\n parts[0] = icalValues['date-time'].toICAL(parts[0]);\n }\n\n if (!ICAL.Duration.isValueString(parts[1])) {\n if (!design.strict && parts[1].length == 10) {\n parts[1] = icalValues.date.toICAL(parts[1]);\n } else {\n parts[1] = icalValues['date-time'].toICAL(parts[1]);\n }\n }\n\n return parts.join(\"/\");\n },\n\n decorate: function(aValue, aProp) {\n return ICAL.Period.fromJSON(aValue, aProp, !design.strict);\n },\n\n undecorate: function(aValue) {\n return aValue.toJSON();\n }\n },\n recur: {\n fromICAL: function(string) {\n return ICAL.Recur._stringToData(string, true);\n },\n\n toICAL: function(data) {\n var str = \"\";\n for (var k in data) {\n /* istanbul ignore if */\n if (!Object.prototype.hasOwnProperty.call(data, k)) {\n continue;\n }\n var val = data[k];\n if (k == \"until\") {\n if (val.length > 10) {\n val = icalValues['date-time'].toICAL(val);\n } else {\n val = icalValues.date.toICAL(val);\n }\n } else if (k == \"wkst\") {\n if (typeof val === 'number') {\n val = ICAL.Recur.numericDayToIcalDay(val);\n }\n } else if (Array.isArray(val)) {\n val = val.join(\",\");\n }\n str += k.toUpperCase() + \"=\" + val + \";\";\n }\n return str.substr(0, str.length - 1);\n },\n\n decorate: function decorate(aValue) {\n return ICAL.Recur.fromData(aValue);\n },\n\n undecorate: function(aRecur) {\n return aRecur.toJSON();\n }\n },\n\n time: {\n fromICAL: function(aValue) {\n // from: MMHHSS(Z)?\n // to: HH:MM:SS(Z)?\n if (aValue.length < 6) {\n // TODO: parser exception?\n return aValue;\n }\n\n // HH::MM::SSZ?\n var result = aValue.substr(0, 2) + ':' +\n aValue.substr(2, 2) + ':' +\n aValue.substr(4, 2);\n\n if (aValue[6] === 'Z') {\n result += 'Z';\n }\n\n return result;\n },\n\n toICAL: function(aValue) {\n // from: HH:MM:SS(Z)?\n // to: MMHHSS(Z)?\n if (aValue.length < 8) {\n //TODO: error\n return aValue;\n }\n\n var result = aValue.substr(0, 2) +\n aValue.substr(3, 2) +\n aValue.substr(6, 2);\n\n if (aValue[8] === 'Z') {\n result += 'Z';\n }\n\n return result;\n }\n }\n });\n\n var icalProperties = ICAL.helpers.extend(commonProperties, {\n\n \"action\": DEFAULT_TYPE_TEXT,\n \"attach\": { defaultType: \"uri\" },\n \"attendee\": { defaultType: \"cal-address\" },\n \"calscale\": DEFAULT_TYPE_TEXT,\n \"class\": DEFAULT_TYPE_TEXT,\n \"comment\": DEFAULT_TYPE_TEXT,\n \"completed\": DEFAULT_TYPE_DATETIME,\n \"contact\": DEFAULT_TYPE_TEXT,\n \"created\": DEFAULT_TYPE_DATETIME,\n \"description\": DEFAULT_TYPE_TEXT,\n \"dtend\": DEFAULT_TYPE_DATETIME_DATE,\n \"dtstamp\": DEFAULT_TYPE_DATETIME,\n \"dtstart\": DEFAULT_TYPE_DATETIME_DATE,\n \"due\": DEFAULT_TYPE_DATETIME_DATE,\n \"duration\": { defaultType: \"duration\" },\n \"exdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n multiValue: ','\n },\n \"exrule\": DEFAULT_TYPE_RECUR,\n \"freebusy\": { defaultType: \"period\", multiValue: \",\" },\n \"geo\": { defaultType: \"float\", structuredValue: \";\" },\n \"last-modified\": DEFAULT_TYPE_DATETIME,\n \"location\": DEFAULT_TYPE_TEXT,\n \"method\": DEFAULT_TYPE_TEXT,\n \"organizer\": { defaultType: \"cal-address\" },\n \"percent-complete\": DEFAULT_TYPE_INTEGER,\n \"priority\": DEFAULT_TYPE_INTEGER,\n \"prodid\": DEFAULT_TYPE_TEXT,\n \"related-to\": DEFAULT_TYPE_TEXT,\n \"repeat\": DEFAULT_TYPE_INTEGER,\n \"rdate\": {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\", \"period\"],\n multiValue: ',',\n detectType: function(string) {\n if (string.indexOf('/') !== -1) {\n return 'period';\n }\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"recurrence-id\": DEFAULT_TYPE_DATETIME_DATE,\n \"resources\": DEFAULT_TYPE_TEXT_MULTI,\n \"request-status\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"rrule\": DEFAULT_TYPE_RECUR,\n \"sequence\": DEFAULT_TYPE_INTEGER,\n \"status\": DEFAULT_TYPE_TEXT,\n \"summary\": DEFAULT_TYPE_TEXT,\n \"transp\": DEFAULT_TYPE_TEXT,\n \"trigger\": { defaultType: \"duration\", allowedTypes: [\"duration\", \"date-time\"] },\n \"tzoffsetfrom\": DEFAULT_TYPE_UTCOFFSET,\n \"tzoffsetto\": DEFAULT_TYPE_UTCOFFSET,\n \"tzurl\": DEFAULT_TYPE_URI,\n \"tzid\": DEFAULT_TYPE_TEXT,\n \"tzname\": DEFAULT_TYPE_TEXT\n });\n\n // When adding a value here, be sure to add it to the parameter types!\n var vcardValues = ICAL.helpers.extend(commonValues, {\n text: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n uri: createTextType(FROM_VCARD_NEWLINE, TO_VCARD_NEWLINE),\n\n date: {\n decorate: function(aValue) {\n return ICAL.VCardTime.fromDateAndOrTimeString(aValue, \"date\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n if (aValue.length == 8) {\n return icalValues.date.fromICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 6) {\n return aValue.substr(0, 4) + '-' + aValue.substr(4);\n } else {\n return aValue;\n }\n },\n toICAL: function(aValue) {\n if (aValue.length == 10) {\n return icalValues.date.toICAL(aValue);\n } else if (aValue[0] == '-' && aValue.length == 7) {\n return aValue.substr(0, 4) + aValue.substr(5);\n } else {\n return aValue;\n }\n }\n },\n\n time: {\n decorate: function(aValue) {\n return ICAL.VCardTime.fromDateAndOrTimeString(\"T\" + aValue, \"time\");\n },\n undecorate: function(aValue) {\n return aValue.toString();\n },\n fromICAL: function(aValue) {\n var splitzone = vcardValues.time._splitZone(aValue, true);\n var zone = splitzone[0], value = splitzone[1];\n\n //console.log(\"SPLIT: \",splitzone);\n\n if (value.length == 6) {\n value = value.substr(0, 2) + ':' +\n value.substr(2, 2) + ':' +\n value.substr(4, 2);\n } else if (value.length == 4 && value[0] != '-') {\n value = value.substr(0, 2) + ':' + value.substr(2, 2);\n } else if (value.length == 5) {\n value = value.substr(0, 3) + ':' + value.substr(3, 2);\n }\n\n if (zone.length == 5 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.substr(0, 3) + ':' + zone.substr(3);\n }\n\n return value + zone;\n },\n\n toICAL: function(aValue) {\n var splitzone = vcardValues.time._splitZone(aValue);\n var zone = splitzone[0], value = splitzone[1];\n\n if (value.length == 8) {\n value = value.substr(0, 2) +\n value.substr(3, 2) +\n value.substr(6, 2);\n } else if (value.length == 5 && value[0] != '-') {\n value = value.substr(0, 2) + value.substr(3, 2);\n } else if (value.length == 6) {\n value = value.substr(0, 3) + value.substr(4, 2);\n }\n\n if (zone.length == 6 && (zone[0] == '-' || zone[0] == '+')) {\n zone = zone.substr(0, 3) + zone.substr(4);\n }\n\n return value + zone;\n },\n\n _splitZone: function(aValue, isFromIcal) {\n var lastChar = aValue.length - 1;\n var signChar = aValue.length - (isFromIcal ? 5 : 6);\n var sign = aValue[signChar];\n var zone, value;\n\n if (aValue[lastChar] == 'Z') {\n zone = aValue[lastChar];\n value = aValue.substr(0, lastChar);\n } else if (aValue.length > 6 && (sign == '-' || sign == '+')) {\n zone = aValue.substr(signChar);\n value = aValue.substr(0, signChar);\n } else {\n zone = \"\";\n value = aValue;\n }\n\n return [zone, value];\n }\n },\n\n \"date-time\": {\n decorate: function(aValue) {\n return ICAL.VCardTime.fromDateAndOrTimeString(aValue, \"date-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n return vcardValues['date-and-or-time'].fromICAL(aValue);\n },\n\n toICAL: function(aValue) {\n return vcardValues['date-and-or-time'].toICAL(aValue);\n }\n },\n\n \"date-and-or-time\": {\n decorate: function(aValue) {\n return ICAL.VCardTime.fromDateAndOrTimeString(aValue, \"date-and-or-time\");\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n },\n\n fromICAL: function(aValue) {\n var parts = aValue.split('T');\n return (parts[0] ? vcardValues.date.fromICAL(parts[0]) : '') +\n (parts[1] ? 'T' + vcardValues.time.fromICAL(parts[1]) : '');\n },\n\n toICAL: function(aValue) {\n var parts = aValue.split('T');\n return vcardValues.date.toICAL(parts[0]) +\n (parts[1] ? 'T' + vcardValues.time.toICAL(parts[1]) : '');\n\n }\n },\n timestamp: icalValues['date-time'],\n \"language-tag\": {\n matches: /^[a-zA-Z0-9-]+$/ // Could go with a more strict regex here\n }\n });\n\n var vcardParams = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"time\", \"date-time\", \"date-and-or-time\",\n \"timestamp\", \"boolean\", \"integer\", \"float\", \"utc-offset\",\n \"language-tag\"],\n allowXName: true,\n allowIanaToken: true\n }\n };\n\n var vcardProperties = ICAL.helpers.extend(commonProperties, {\n \"adr\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"anniversary\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"bday\": DEFAULT_TYPE_DATE_ANDOR_TIME,\n \"caladruri\": DEFAULT_TYPE_URI,\n \"caluri\": DEFAULT_TYPE_URI,\n \"clientpidmap\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"email\": DEFAULT_TYPE_TEXT,\n \"fburl\": DEFAULT_TYPE_URI,\n \"fn\": DEFAULT_TYPE_TEXT,\n \"gender\": DEFAULT_TYPE_TEXT_STRUCTURED,\n \"geo\": DEFAULT_TYPE_URI,\n \"impp\": DEFAULT_TYPE_URI,\n \"key\": DEFAULT_TYPE_URI,\n \"kind\": DEFAULT_TYPE_TEXT,\n \"lang\": { defaultType: \"language-tag\" },\n \"logo\": DEFAULT_TYPE_URI,\n \"member\": DEFAULT_TYPE_URI,\n \"n\": { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n \"nickname\": DEFAULT_TYPE_TEXT_MULTI,\n \"note\": DEFAULT_TYPE_TEXT,\n \"org\": { defaultType: \"text\", structuredValue: \";\" },\n \"photo\": DEFAULT_TYPE_URI,\n \"related\": DEFAULT_TYPE_URI,\n \"rev\": { defaultType: \"timestamp\" },\n \"role\": DEFAULT_TYPE_TEXT,\n \"sound\": DEFAULT_TYPE_URI,\n \"source\": DEFAULT_TYPE_URI,\n \"tel\": { defaultType: \"uri\", allowedTypes: [\"uri\", \"text\"] },\n \"title\": DEFAULT_TYPE_TEXT,\n \"tz\": { defaultType: \"text\", allowedTypes: [\"text\", \"utc-offset\", \"uri\"] },\n \"xml\": DEFAULT_TYPE_TEXT\n });\n\n var vcard3Values = ICAL.helpers.extend(commonValues, {\n binary: icalValues.binary,\n date: vcardValues.date,\n \"date-time\": vcardValues[\"date-time\"],\n \"phone-number\": {\n // TODO\n /* ... */\n },\n uri: icalValues.uri,\n text: icalValues.text,\n time: icalValues.time,\n vcard: icalValues.text,\n \"utc-offset\": {\n toICAL: function(aValue) {\n return aValue.substr(0, 7);\n },\n\n fromICAL: function(aValue) {\n return aValue.substr(0, 7);\n },\n\n decorate: function(aValue) {\n return ICAL.UtcOffset.fromString(aValue);\n },\n\n undecorate: function(aValue) {\n return aValue.toString();\n }\n }\n });\n\n var vcard3Params = {\n \"type\": {\n valueType: \"text\",\n multiValue: \",\"\n },\n \"value\": {\n // since the value here is a 'type' lowercase is used.\n values: [\"text\", \"uri\", \"date\", \"date-time\", \"phone-number\", \"time\",\n \"boolean\", \"integer\", \"float\", \"utc-offset\", \"vcard\", \"binary\"],\n allowXName: true,\n allowIanaToken: true\n }\n };\n\n var vcard3Properties = ICAL.helpers.extend(commonProperties, {\n fn: DEFAULT_TYPE_TEXT,\n n: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n nickname: DEFAULT_TYPE_TEXT_MULTI,\n photo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n bday: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n\n adr: { defaultType: \"text\", structuredValue: \";\", multiValue: \",\" },\n label: DEFAULT_TYPE_TEXT,\n\n tel: { defaultType: \"phone-number\" },\n email: DEFAULT_TYPE_TEXT,\n mailer: DEFAULT_TYPE_TEXT,\n\n tz: { defaultType: \"utc-offset\", allowedTypes: [\"utc-offset\", \"text\"] },\n geo: { defaultType: \"float\", structuredValue: \";\" },\n\n title: DEFAULT_TYPE_TEXT,\n role: DEFAULT_TYPE_TEXT,\n logo: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n agent: { defaultType: \"vcard\", allowedTypes: [\"vcard\", \"text\", \"uri\"] },\n org: DEFAULT_TYPE_TEXT_STRUCTURED,\n\n note: DEFAULT_TYPE_TEXT_MULTI,\n prodid: DEFAULT_TYPE_TEXT,\n rev: {\n defaultType: \"date-time\",\n allowedTypes: [\"date-time\", \"date\"],\n detectType: function(string) {\n return (string.indexOf('T') === -1) ? 'date' : 'date-time';\n }\n },\n \"sort-string\": DEFAULT_TYPE_TEXT,\n sound: { defaultType: \"binary\", allowedTypes: [\"binary\", \"uri\"] },\n\n class: DEFAULT_TYPE_TEXT,\n key: { defaultType: \"binary\", allowedTypes: [\"binary\", \"text\"] }\n });\n\n /**\n * iCalendar design set\n * @type {ICAL.design.designSet}\n */\n var icalSet = {\n value: icalValues,\n param: icalParams,\n property: icalProperties\n };\n\n /**\n * vCard 4.0 design set\n * @type {ICAL.design.designSet}\n */\n var vcardSet = {\n value: vcardValues,\n param: vcardParams,\n property: vcardProperties\n };\n\n /**\n * vCard 3.0 design set\n * @type {ICAL.design.designSet}\n */\n var vcard3Set = {\n value: vcard3Values,\n param: vcard3Params,\n property: vcard3Properties\n };\n\n /**\n * The design data, used by the parser to determine types for properties and\n * other metadata needed to produce correct jCard/jCal data.\n *\n * @alias ICAL.design\n * @namespace\n */\n var design = {\n /**\n * A designSet describes value, parameter and property data. It is used by\n * ther parser and stringifier in components and properties to determine they\n * should be represented.\n *\n * @typedef {Object} designSet\n * @memberOf ICAL.design\n * @property {Object} value Definitions for value types, keys are type names\n * @property {Object} param Definitions for params, keys are param names\n * @property {Object} property Defintions for properties, keys are property names\n */\n\n /**\n * Can be set to false to make the parser more lenient.\n */\n strict: true,\n\n /**\n * The default set for new properties and components if none is specified.\n * @type {ICAL.design.designSet}\n */\n defaultSet: icalSet,\n\n /**\n * The default type for unknown properties\n * @type {String}\n */\n defaultType: 'unknown',\n\n /**\n * Holds the design set for known top-level components\n *\n * @type {Object}\n * @property {ICAL.design.designSet} vcard vCard VCARD\n * @property {ICAL.design.designSet} vevent iCalendar VEVENT\n * @property {ICAL.design.designSet} vtodo iCalendar VTODO\n * @property {ICAL.design.designSet} vjournal iCalendar VJOURNAL\n * @property {ICAL.design.designSet} valarm iCalendar VALARM\n * @property {ICAL.design.designSet} vtimezone iCalendar VTIMEZONE\n * @property {ICAL.design.designSet} daylight iCalendar DAYLIGHT\n * @property {ICAL.design.designSet} standard iCalendar STANDARD\n *\n * @example\n * var propertyName = 'fn';\n * var componentDesign = ICAL.design.components.vcard;\n * var propertyDetails = componentDesign.property[propertyName];\n * if (propertyDetails.defaultType == 'text') {\n * // Yep, sure is...\n * }\n */\n components: {\n vcard: vcardSet,\n vcard3: vcard3Set,\n vevent: icalSet,\n vtodo: icalSet,\n vjournal: icalSet,\n valarm: icalSet,\n vtimezone: icalSet,\n daylight: icalSet,\n standard: icalSet\n },\n\n\n /**\n * The design set for iCalendar (rfc5545/rfc7265) components.\n * @type {ICAL.design.designSet}\n */\n icalendar: icalSet,\n\n /**\n * The design set for vCard (rfc6350/rfc7095) components.\n * @type {ICAL.design.designSet}\n */\n vcard: vcardSet,\n\n /**\n * The design set for vCard (rfc2425/rfc2426/rfc7095) components.\n * @type {ICAL.design.designSet}\n */\n vcard3: vcard3Set,\n\n /**\n * Gets the design set for the given component name.\n *\n * @param {String} componentName The name of the component\n * @return {ICAL.design.designSet} The design set for the component\n */\n getDesignSet: function(componentName) {\n var isInDesign = componentName && componentName in design.components;\n return isInDesign ? design.components[componentName] : design.defaultSet;\n }\n };\n\n return design;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * Contains various functions to convert jCal and jCard data back into\n * iCalendar and vCard.\n * @namespace\n */\nICAL.stringify = (function() {\n 'use strict';\n\n var LINE_ENDING = '\\r\\n';\n var DEFAULT_VALUE_TYPE = 'unknown';\n\n var design = ICAL.design;\n var helpers = ICAL.helpers;\n\n /**\n * Convert a full jCal/jCard array into a iCalendar/vCard string.\n *\n * @function ICAL.stringify\n * @variation function\n * @param {Array} jCal The jCal/jCard document\n * @return {String} The stringified iCalendar/vCard document\n */\n function stringify(jCal) {\n if (typeof jCal[0] == \"string\") {\n // This is a single component\n jCal = [jCal];\n }\n\n var i = 0;\n var len = jCal.length;\n var result = '';\n\n for (; i < len; i++) {\n result += stringify.component(jCal[i]) + LINE_ENDING;\n }\n\n return result;\n }\n\n /**\n * Converts an jCal component array into a ICAL string.\n * Recursive will resolve sub-components.\n *\n * Exact component/property order is not saved all\n * properties will come before subcomponents.\n *\n * @function ICAL.stringify.component\n * @param {Array} component\n * jCal/jCard fragment of a component\n * @param {ICAL.design.designSet} designSet\n * The design data to use for this component\n * @return {String} The iCalendar/vCard string\n */\n stringify.component = function(component, designSet) {\n var name = component[0].toUpperCase();\n var result = 'BEGIN:' + name + LINE_ENDING;\n\n var props = component[1];\n var propIdx = 0;\n var propLen = props.length;\n\n var designSetName = component[0];\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (designSetName === 'vcard' && component[1].length > 0 &&\n !(component[1][0][0] === \"version\" && component[1][0][3] === \"4.0\")) {\n designSetName = \"vcard3\";\n }\n designSet = designSet || design.getDesignSet(designSetName);\n\n for (; propIdx < propLen; propIdx++) {\n result += stringify.property(props[propIdx], designSet) + LINE_ENDING;\n }\n\n // Ignore subcomponents if none exist, e.g. in vCard.\n var comps = component[2] || [];\n var compIdx = 0;\n var compLen = comps.length;\n\n for (; compIdx < compLen; compIdx++) {\n result += stringify.component(comps[compIdx], designSet) + LINE_ENDING;\n }\n\n result += 'END:' + name;\n return result;\n };\n\n /**\n * Converts a single jCal/jCard property to a iCalendar/vCard string.\n *\n * @function ICAL.stringify.property\n * @param {Array} property\n * jCal/jCard property array\n * @param {ICAL.design.designSet} designSet\n * The design data to use for this property\n * @param {Boolean} noFold\n * If true, the line is not folded\n * @return {String} The iCalendar/vCard string\n */\n stringify.property = function(property, designSet, noFold) {\n var name = property[0].toUpperCase();\n var jsName = property[0];\n var params = property[1];\n\n var line = name;\n\n var paramName;\n for (paramName in params) {\n var value = params[paramName];\n\n /* istanbul ignore else */\n if (params.hasOwnProperty(paramName)) {\n var multiValue = (paramName in designSet.param) && designSet.param[paramName].multiValue;\n if (multiValue && Array.isArray(value)) {\n if (designSet.param[paramName].multiValueSeparateDQuote) {\n multiValue = '\"' + multiValue + '\"';\n }\n value = value.map(stringify._rfc6868Unescape);\n value = stringify.multiValue(value, multiValue, \"unknown\", null, designSet);\n } else {\n value = stringify._rfc6868Unescape(value);\n }\n\n\n line += ';' + paramName.toUpperCase();\n line += '=' + stringify.propertyValue(value);\n }\n }\n\n if (property.length === 3) {\n // If there are no values, we must assume a blank value\n return line + ':';\n }\n\n var valueType = property[2];\n\n if (!designSet) {\n designSet = design.defaultSet;\n }\n\n var propDetails;\n var multiValue = false;\n var structuredValue = false;\n var isDefault = false;\n\n if (jsName in designSet.property) {\n propDetails = designSet.property[jsName];\n\n if ('multiValue' in propDetails) {\n multiValue = propDetails.multiValue;\n }\n\n if (('structuredValue' in propDetails) && Array.isArray(property[3])) {\n structuredValue = propDetails.structuredValue;\n }\n\n if ('defaultType' in propDetails) {\n if (valueType === propDetails.defaultType) {\n isDefault = true;\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n } else {\n if (valueType === DEFAULT_VALUE_TYPE) {\n isDefault = true;\n }\n }\n\n // push the VALUE property if type is not the default\n // for the current property.\n if (!isDefault) {\n // value will never contain ;/:/, so we don't escape it here.\n line += ';VALUE=' + valueType.toUpperCase();\n }\n\n line += ':';\n\n if (multiValue && structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, multiValue, designSet, structuredValue\n );\n } else if (multiValue) {\n line += stringify.multiValue(\n property.slice(3), multiValue, valueType, null, designSet, false\n );\n } else if (structuredValue) {\n line += stringify.multiValue(\n property[3], structuredValue, valueType, null, designSet, structuredValue\n );\n } else {\n line += stringify.value(property[3], valueType, designSet, false);\n }\n\n return noFold ? line : ICAL.helpers.foldline(line);\n };\n\n /**\n * Handles escaping of property values that may contain:\n *\n * COLON (:), SEMICOLON (;), or COMMA (,)\n *\n * If any of the above are present the result is wrapped\n * in double quotes.\n *\n * @function ICAL.stringify.propertyValue\n * @param {String} value Raw property value\n * @return {String} Given or escaped value when needed\n */\n stringify.propertyValue = function(value) {\n\n if ((helpers.unescapedIndexOf(value, ',') === -1) &&\n (helpers.unescapedIndexOf(value, ':') === -1) &&\n (helpers.unescapedIndexOf(value, ';') === -1)) {\n\n return value;\n }\n\n return '\"' + value + '\"';\n };\n\n /**\n * Converts an array of ical values into a single\n * string based on a type and a delimiter value (like \",\").\n *\n * @function ICAL.stringify.multiValue\n * @param {Array} values List of values to convert\n * @param {String} delim Used to join the values (\",\", \";\", \":\")\n * @param {String} type Lowecase ical value type\n * (like boolean, date-time, etc..)\n * @param {?String} innerMulti If set, each value will again be processed\n * Used for structured values\n * @param {ICAL.design.designSet} designSet\n * The design data to use for this property\n *\n * @return {String} iCalendar/vCard string for value\n */\n stringify.multiValue = function(values, delim, type, innerMulti, designSet, structuredValue) {\n var result = '';\n var len = values.length;\n var i = 0;\n\n for (; i < len; i++) {\n if (innerMulti && Array.isArray(values[i])) {\n result += stringify.multiValue(values[i], innerMulti, type, null, designSet, structuredValue);\n } else {\n result += stringify.value(values[i], type, designSet, structuredValue);\n }\n\n if (i !== (len - 1)) {\n result += delim;\n }\n }\n\n return result;\n };\n\n /**\n * Processes a single ical value runs the associated \"toICAL\" method from the\n * design value type if available to convert the value.\n *\n * @function ICAL.stringify.value\n * @param {String|Number} value A formatted value\n * @param {String} type Lowercase iCalendar/vCard value type\n * (like boolean, date-time, etc..)\n * @return {String} iCalendar/vCard value for single value\n */\n stringify.value = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'toICAL' in designSet.value[type]) {\n return designSet.value[type].toICAL(value, structuredValue);\n }\n return value;\n };\n\n /**\n * Internal helper for rfc6868. Exposing this on ICAL.stringify so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @param {String} val The value to unescape\n * @return {String} The escaped value\n */\n stringify._rfc6868Unescape = function(val) {\n return val.replace(/[\\n^\"]/g, function(x) {\n return RFC6868_REPLACE_MAP[x];\n });\n };\n var RFC6868_REPLACE_MAP = { '\"': \"^'\", \"\\n\": \"^n\", \"^\": \"^^\" };\n\n return stringify;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * Contains various functions to parse iCalendar and vCard data.\n * @namespace\n */\nICAL.parse = (function() {\n 'use strict';\n\n var CHAR = /[^ \\t]/;\n var MULTIVALUE_DELIMITER = ',';\n var VALUE_DELIMITER = ':';\n var PARAM_DELIMITER = ';';\n var PARAM_NAME_DELIMITER = '=';\n var DEFAULT_VALUE_TYPE = 'unknown';\n var DEFAULT_PARAM_TYPE = 'text';\n\n var design = ICAL.design;\n var helpers = ICAL.helpers;\n\n /**\n * An error that occurred during parsing.\n *\n * @param {String} message The error message\n * @memberof ICAL.parse\n * @extends {Error}\n * @class\n */\n function ParserError(message) {\n this.message = message;\n this.name = 'ParserError';\n\n try {\n throw new Error();\n } catch (e) {\n if (e.stack) {\n var split = e.stack.split('\\n');\n split.shift();\n this.stack = split.join('\\n');\n }\n }\n }\n\n ParserError.prototype = Error.prototype;\n\n /**\n * Parses iCalendar or vCard data into a raw jCal object. Consult\n * documentation on the {@tutorial layers|layers of parsing} for more\n * details.\n *\n * @function ICAL.parse\n * @variation function\n * @todo Fix the API to be more clear on the return type\n * @param {String} input The string data to parse\n * @return {Object|Object[]} A single jCal object, or an array thereof\n */\n function parser(input) {\n var state = {};\n var root = state.component = [];\n\n state.stack = [root];\n\n parser._eachLine(input, function(err, line) {\n parser._handleContentLine(line, state);\n });\n\n\n // when there are still items on the stack\n // throw a fatal error, a component was not closed\n // correctly in that case.\n if (state.stack.length > 1) {\n throw new ParserError(\n 'invalid ical body. component began but did not end'\n );\n }\n\n state = null;\n\n return (root.length == 1 ? root[0] : root);\n }\n\n /**\n * Parse an iCalendar property value into the jCal for a single property\n *\n * @function ICAL.parse.property\n * @param {String} str\n * The iCalendar property string to parse\n * @param {ICAL.design.designSet=} designSet\n * The design data to use for this property\n * @return {Object}\n * The jCal Object containing the property\n */\n parser.property = function(str, designSet) {\n var state = {\n component: [[], []],\n designSet: designSet || design.defaultSet\n };\n parser._handleContentLine(str, state);\n return state.component[1][0];\n };\n\n /**\n * Convenience method to parse a component. You can use ICAL.parse() directly\n * instead.\n *\n * @function ICAL.parse.component\n * @see ICAL.parse(function)\n * @param {String} str The iCalendar component string to parse\n * @return {Object} The jCal Object containing the component\n */\n parser.component = function(str) {\n return parser(str);\n };\n\n // classes & constants\n parser.ParserError = ParserError;\n\n /**\n * The state for parsing content lines from an iCalendar/vCard string.\n *\n * @private\n * @memberof ICAL.parse\n * @typedef {Object} parserState\n * @property {ICAL.design.designSet} designSet The design set to use for parsing\n * @property {ICAL.Component[]} stack The stack of components being processed\n * @property {ICAL.Component} component The currently active component\n */\n\n\n /**\n * Handles a single line of iCalendar/vCard, updating the state.\n *\n * @private\n * @function ICAL.parse._handleContentLine\n * @param {String} line The content line to process\n * @param {ICAL.parse.parserState} The current state of the line parsing\n */\n parser._handleContentLine = function(line, state) {\n // break up the parts of the line\n var valuePos = line.indexOf(VALUE_DELIMITER);\n var paramPos = line.indexOf(PARAM_DELIMITER);\n\n var lastParamIndex;\n var lastValuePos;\n\n // name of property or begin/end\n var name;\n var value;\n // params is only overridden if paramPos !== -1.\n // we can't do params = params || {} later on\n // because it sacrifices ops.\n var params = {};\n\n /**\n * Different property cases\n *\n *\n * 1. RRULE:FREQ=foo\n * // FREQ= is not a param but the value\n *\n * 2. ATTENDEE;ROLE=REQ-PARTICIPANT;\n * // ROLE= is a param because : has not happened yet\n */\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n\n if ((paramPos !== -1 && valuePos !== -1)) {\n // when the parameter delimiter is after the\n // value delimiter then it is not a parameter.\n if (paramPos > valuePos) {\n paramPos = -1;\n }\n }\n\n var parsedParams;\n if (paramPos !== -1) {\n name = line.substring(0, paramPos).toLowerCase();\n parsedParams = parser._parseParameters(line.substring(paramPos), 0, state.designSet);\n if (parsedParams[2] == -1) {\n throw new ParserError(\"Invalid parameters in '\" + line + \"'\");\n }\n params = parsedParams[0];\n lastParamIndex = parsedParams[1].length + parsedParams[2] + paramPos;\n if ((lastValuePos =\n line.substring(lastParamIndex).indexOf(VALUE_DELIMITER)) !== -1) {\n value = line.substring(lastParamIndex + lastValuePos + 1);\n } else {\n throw new ParserError(\"Missing parameter value in '\" + line + \"'\");\n }\n } else if (valuePos !== -1) {\n // without parmeters (BEGIN:VCAENDAR, CLASS:PUBLIC)\n name = line.substring(0, valuePos).toLowerCase();\n value = line.substring(valuePos + 1);\n\n if (name === 'begin') {\n var newComponent = [value.toLowerCase(), [], []];\n if (state.stack.length === 1) {\n state.component.push(newComponent);\n } else {\n state.component[2].push(newComponent);\n }\n state.stack.push(state.component);\n state.component = newComponent;\n if (!state.designSet) {\n state.designSet = design.getDesignSet(state.component[0]);\n }\n return;\n } else if (name === 'end') {\n state.component = state.stack.pop();\n return;\n }\n // If it is not begin/end, then this is a property with an empty value,\n // which should be considered valid.\n } else {\n /**\n * Invalid line.\n * The rational to throw an error is we will\n * never be certain that the rest of the file\n * is sane and it is unlikely that we can serialize\n * the result correctly either.\n */\n throw new ParserError(\n 'invalid line (no token \";\" or \":\") \"' + line + '\"'\n );\n }\n\n var valueType;\n var multiValue = false;\n var structuredValue = false;\n var propertyDetails;\n\n if (name in state.designSet.property) {\n propertyDetails = state.designSet.property[name];\n\n if ('multiValue' in propertyDetails) {\n multiValue = propertyDetails.multiValue;\n }\n\n if ('structuredValue' in propertyDetails) {\n structuredValue = propertyDetails.structuredValue;\n }\n\n if (value && 'detectType' in propertyDetails) {\n valueType = propertyDetails.detectType(value);\n }\n }\n\n // attempt to determine value\n if (!valueType) {\n if (!('value' in params)) {\n if (propertyDetails) {\n valueType = propertyDetails.defaultType;\n } else {\n valueType = DEFAULT_VALUE_TYPE;\n }\n } else {\n // possible to avoid this?\n valueType = params.value.toLowerCase();\n }\n }\n\n delete params.value;\n\n /**\n * Note on `var result` juggling:\n *\n * I observed that building the array in pieces has adverse\n * effects on performance, so where possible we inline the creation.\n * It is a little ugly but resulted in ~2000 additional ops/sec.\n */\n\n var result;\n if (multiValue && structuredValue) {\n value = parser._parseMultiValue(value, structuredValue, valueType, [], multiValue, state.designSet, structuredValue);\n result = [name, params, valueType, value];\n } else if (multiValue) {\n result = [name, params, valueType];\n parser._parseMultiValue(value, multiValue, valueType, result, null, state.designSet, false);\n } else if (structuredValue) {\n value = parser._parseMultiValue(value, structuredValue, valueType, [], null, state.designSet, structuredValue);\n result = [name, params, valueType, value];\n } else {\n value = parser._parseValue(value, valueType, state.designSet, false);\n result = [name, params, valueType, value];\n }\n // rfc6350 requires that in vCard 4.0 the first component is the VERSION\n // component with as value 4.0, note that 3.0 does not have this requirement.\n if (state.component[0] === 'vcard' && state.component[1].length === 0 &&\n !(name === 'version' && value === '4.0')) {\n state.designSet = design.getDesignSet(\"vcard3\");\n }\n state.component[1].push(result);\n };\n\n /**\n * Parse a value from the raw value into the jCard/jCal value.\n *\n * @private\n * @function ICAL.parse._parseValue\n * @param {String} value Original value\n * @param {String} type Type of value\n * @param {Object} designSet The design data to use for this value\n * @return {Object} varies on type\n */\n parser._parseValue = function(value, type, designSet, structuredValue) {\n if (type in designSet.value && 'fromICAL' in designSet.value[type]) {\n return designSet.value[type].fromICAL(value, structuredValue);\n }\n return value;\n };\n\n /**\n * Parse parameters from a string to object.\n *\n * @function ICAL.parse._parseParameters\n * @private\n * @param {String} line A single unfolded line\n * @param {Numeric} start Position to start looking for properties\n * @param {Object} designSet The design data to use for this property\n * @return {Object} key/value pairs\n */\n parser._parseParameters = function(line, start, designSet) {\n var lastParam = start;\n var pos = 0;\n var delim = PARAM_NAME_DELIMITER;\n var result = {};\n var name, lcname;\n var value, valuePos = -1;\n var type, multiValue, mvdelim;\n\n // find the next '=' sign\n // use lastParam and pos to find name\n // check if \" is used if so get value from \"->\"\n // then increment pos to find next ;\n\n while ((pos !== false) &&\n (pos = helpers.unescapedIndexOf(line, delim, pos + 1)) !== -1) {\n\n name = line.substr(lastParam + 1, pos - lastParam - 1);\n if (name.length == 0) {\n throw new ParserError(\"Empty parameter name in '\" + line + \"'\");\n }\n lcname = name.toLowerCase();\n mvdelim = false;\n multiValue = false;\n\n if (lcname in designSet.param && designSet.param[lcname].valueType) {\n type = designSet.param[lcname].valueType;\n } else {\n type = DEFAULT_PARAM_TYPE;\n }\n\n if (lcname in designSet.param) {\n multiValue = designSet.param[lcname].multiValue;\n if (designSet.param[lcname].multiValueSeparateDQuote) {\n mvdelim = parser._rfc6868Escape('\"' + multiValue + '\"');\n }\n }\n\n var nextChar = line[pos + 1];\n if (nextChar === '\"') {\n valuePos = pos + 2;\n pos = helpers.unescapedIndexOf(line, '\"', valuePos);\n if (multiValue && pos != -1) {\n var extendedValue = true;\n while (extendedValue) {\n if (line[pos + 1] == multiValue && line[pos + 2] == '\"') {\n pos = helpers.unescapedIndexOf(line, '\"', pos + 3);\n } else {\n extendedValue = false;\n }\n }\n }\n if (pos === -1) {\n throw new ParserError(\n 'invalid line (no matching double quote) \"' + line + '\"'\n );\n }\n value = line.substr(valuePos, pos - valuePos);\n lastParam = helpers.unescapedIndexOf(line, PARAM_DELIMITER, pos);\n if (lastParam === -1) {\n pos = false;\n }\n } else {\n valuePos = pos + 1;\n\n // move to next \";\"\n var nextPos = helpers.unescapedIndexOf(line, PARAM_DELIMITER, valuePos);\n var propValuePos = helpers.unescapedIndexOf(line, VALUE_DELIMITER, valuePos);\n if (propValuePos !== -1 && nextPos > propValuePos) {\n // this is a delimiter in the property value, let's stop here\n nextPos = propValuePos;\n pos = false;\n } else if (nextPos === -1) {\n // no \";\"\n if (propValuePos === -1) {\n nextPos = line.length;\n } else {\n nextPos = propValuePos;\n }\n pos = false;\n } else {\n lastParam = nextPos;\n pos = nextPos;\n }\n\n value = line.substr(valuePos, nextPos - valuePos);\n }\n\n value = parser._rfc6868Escape(value);\n if (multiValue) {\n var delimiter = mvdelim || multiValue;\n value = parser._parseMultiValue(value, delimiter, type, [], null, designSet);\n } else {\n value = parser._parseValue(value, type, designSet);\n }\n\n if (multiValue && (lcname in result)) {\n if (Array.isArray(result[lcname])) {\n result[lcname].push(value);\n } else {\n result[lcname] = [\n result[lcname],\n value\n ];\n }\n } else {\n result[lcname] = value;\n }\n }\n return [result, value, valuePos];\n };\n\n /**\n * Internal helper for rfc6868. Exposing this on ICAL.parse so that\n * hackers can disable the rfc6868 parsing if the really need to.\n *\n * @function ICAL.parse._rfc6868Escape\n * @param {String} val The value to escape\n * @return {String} The escaped value\n */\n parser._rfc6868Escape = function(val) {\n return val.replace(/\\^['n^]/g, function(x) {\n return RFC6868_REPLACE_MAP[x];\n });\n };\n var RFC6868_REPLACE_MAP = { \"^'\": '\"', \"^n\": \"\\n\", \"^^\": \"^\" };\n\n /**\n * Parse a multi value string. This function is used either for parsing\n * actual multi-value property's values, or for handling parameter values. It\n * can be used for both multi-value properties and structured value properties.\n *\n * @private\n * @function ICAL.parse._parseMultiValue\n * @param {String} buffer The buffer containing the full value\n * @param {String} delim The multi-value delimiter\n * @param {String} type The value type to be parsed\n * @param {Array.<?>} result The array to append results to, varies on value type\n * @param {String} innerMulti The inner delimiter to split each value with\n * @param {ICAL.design.designSet} designSet The design data for this value\n * @return {?|Array.<?>} Either an array of results, or the first result\n */\n parser._parseMultiValue = function(buffer, delim, type, result, innerMulti, designSet, structuredValue) {\n var pos = 0;\n var lastPos = 0;\n var value;\n if (delim.length === 0) {\n return buffer;\n }\n\n // split each piece\n while ((pos = helpers.unescapedIndexOf(buffer, delim, lastPos)) !== -1) {\n value = buffer.substr(lastPos, pos - lastPos);\n if (innerMulti) {\n value = parser._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parser._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n lastPos = pos + delim.length;\n }\n\n // on the last piece take the rest of string\n value = buffer.substr(lastPos);\n if (innerMulti) {\n value = parser._parseMultiValue(value, innerMulti, type, [], null, designSet, structuredValue);\n } else {\n value = parser._parseValue(value, type, designSet, structuredValue);\n }\n result.push(value);\n\n return result.length == 1 ? result[0] : result;\n };\n\n /**\n * Process a complete buffer of iCalendar/vCard data line by line, correctly\n * unfolding content. Each line will be processed with the given callback\n *\n * @private\n * @function ICAL.parse._eachLine\n * @param {String} buffer The buffer to process\n * @param {function(?String, String)} callback The callback for each line\n */\n parser._eachLine = function(buffer, callback) {\n var len = buffer.length;\n var lastPos = buffer.search(CHAR);\n var pos = lastPos;\n var line;\n var firstChar;\n\n var newlineOffset;\n\n do {\n pos = buffer.indexOf('\\n', lastPos) + 1;\n\n if (pos > 1 && buffer[pos - 2] === '\\r') {\n newlineOffset = 2;\n } else {\n newlineOffset = 1;\n }\n\n if (pos === 0) {\n pos = len;\n newlineOffset = 0;\n }\n\n firstChar = buffer[lastPos];\n\n if (firstChar === ' ' || firstChar === '\\t') {\n // add to line\n line += buffer.substr(\n lastPos + 1,\n pos - lastPos - (newlineOffset + 1)\n );\n } else {\n if (line)\n callback(null, line);\n // push line\n line = buffer.substr(\n lastPos,\n pos - lastPos - newlineOffset\n );\n }\n\n lastPos = pos;\n } while (pos !== len);\n\n // extra ending line\n line = line.trim();\n\n if (line.length)\n callback(null, line);\n };\n\n return parser;\n\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.Component = (function() {\n 'use strict';\n\n var PROPERTY_INDEX = 1;\n var COMPONENT_INDEX = 2;\n var NAME_INDEX = 0;\n\n /**\n * @classdesc\n * Wraps a jCal component, adding convenience methods to add, remove and\n * update subcomponents and properties.\n *\n * @class\n * @alias ICAL.Component\n * @param {Array|String} jCal Raw jCal component data OR name of new\n * component\n * @param {ICAL.Component} parent Parent component to associate\n */\n function Component(jCal, parent) {\n if (typeof(jCal) === 'string') {\n // jCal spec (name, properties, components)\n jCal = [jCal, [], []];\n }\n\n // mostly for legacy reasons.\n this.jCal = jCal;\n\n this.parent = parent || null;\n }\n\n Component.prototype = {\n /**\n * Hydrated properties are inserted into the _properties array at the same\n * position as in the jCal array, so it is possible that the array contains\n * undefined values for unhydrdated properties. To avoid iterating the\n * array when checking if all properties have been hydrated, we save the\n * count here.\n *\n * @type {Number}\n * @private\n */\n _hydratedPropertyCount: 0,\n\n /**\n * The same count as for _hydratedPropertyCount, but for subcomponents\n *\n * @type {Number}\n * @private\n */\n _hydratedComponentCount: 0,\n\n /**\n * The name of this component\n * @readonly\n */\n get name() {\n return this.jCal[NAME_INDEX];\n },\n\n /**\n * The design set for this component, e.g. icalendar vs vcard\n *\n * @type {ICAL.design.designSet}\n * @private\n */\n get _designSet() {\n var parentDesign = this.parent && this.parent._designSet;\n return parentDesign || ICAL.design.getDesignSet(this.name);\n },\n\n _hydrateComponent: function(index) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (this._components[index]) {\n return this._components[index];\n }\n\n var comp = new Component(\n this.jCal[COMPONENT_INDEX][index],\n this\n );\n\n this._hydratedComponentCount++;\n return (this._components[index] = comp);\n },\n\n _hydrateProperty: function(index) {\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (this._properties[index]) {\n return this._properties[index];\n }\n\n var prop = new ICAL.Property(\n this.jCal[PROPERTY_INDEX][index],\n this\n );\n\n this._hydratedPropertyCount++;\n return (this._properties[index] = prop);\n },\n\n /**\n * Finds first sub component, optionally filtered by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {?ICAL.Component} The found subcomponent\n */\n getFirstSubcomponent: function(name) {\n if (name) {\n var i = 0;\n var comps = this.jCal[COMPONENT_INDEX];\n var len = comps.length;\n\n for (; i < len; i++) {\n if (comps[i][NAME_INDEX] === name) {\n var result = this._hydrateComponent(i);\n return result;\n }\n }\n } else {\n if (this.jCal[COMPONENT_INDEX].length) {\n return this._hydrateComponent(0);\n }\n }\n\n // ensure we return a value (strict mode)\n return null;\n },\n\n /**\n * Finds all sub components, optionally filtering by name.\n *\n * @param {String=} name Optional name to filter by\n * @return {ICAL.Component[]} The found sub components\n */\n getAllSubcomponents: function(name) {\n var jCalLen = this.jCal[COMPONENT_INDEX].length;\n var i = 0;\n\n if (name) {\n var comps = this.jCal[COMPONENT_INDEX];\n var result = [];\n\n for (; i < jCalLen; i++) {\n if (name === comps[i][NAME_INDEX]) {\n result.push(\n this._hydrateComponent(i)\n );\n }\n }\n return result;\n } else {\n if (!this._components ||\n (this._hydratedComponentCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateComponent(i);\n }\n }\n\n return this._components || [];\n }\n },\n\n /**\n * Returns true when a named property exists.\n *\n * @param {String} name The property name\n * @return {Boolean} True, when property is found\n */\n hasProperty: function(name) {\n var props = this.jCal[PROPERTY_INDEX];\n var len = props.length;\n\n var i = 0;\n for (; i < len; i++) {\n // 0 is property name\n if (props[i][NAME_INDEX] === name) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Finds the first property, optionally with the given name.\n *\n * @param {String=} name Lowercase property name\n * @return {?ICAL.Property} The found property\n */\n getFirstProperty: function(name) {\n if (name) {\n var i = 0;\n var props = this.jCal[PROPERTY_INDEX];\n var len = props.length;\n\n for (; i < len; i++) {\n if (props[i][NAME_INDEX] === name) {\n var result = this._hydrateProperty(i);\n return result;\n }\n }\n } else {\n if (this.jCal[PROPERTY_INDEX].length) {\n return this._hydrateProperty(0);\n }\n }\n\n return null;\n },\n\n /**\n * Returns first property's value, if available.\n *\n * @param {String=} name Lowercase property name\n * @return {?String} The found property value.\n */\n getFirstPropertyValue: function(name) {\n var prop = this.getFirstProperty(name);\n if (prop) {\n return prop.getFirstValue();\n }\n\n return null;\n },\n\n /**\n * Get all properties in the component, optionally filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {ICAL.Property[]} List of properties\n */\n getAllProperties: function(name) {\n var jCalLen = this.jCal[PROPERTY_INDEX].length;\n var i = 0;\n\n if (name) {\n var props = this.jCal[PROPERTY_INDEX];\n var result = [];\n\n for (; i < jCalLen; i++) {\n if (name === props[i][NAME_INDEX]) {\n result.push(\n this._hydrateProperty(i)\n );\n }\n }\n return result;\n } else {\n if (!this._properties ||\n (this._hydratedPropertyCount !== jCalLen)) {\n for (; i < jCalLen; i++) {\n this._hydrateProperty(i);\n }\n }\n\n return this._properties || [];\n }\n },\n\n _removeObjectByIndex: function(jCalIndex, cache, index) {\n cache = cache || [];\n // remove cached version\n if (cache[index]) {\n var obj = cache[index];\n if (\"parent\" in obj) {\n obj.parent = null;\n }\n }\n\n cache.splice(index, 1);\n\n // remove it from the jCal\n this.jCal[jCalIndex].splice(index, 1);\n },\n\n _removeObject: function(jCalIndex, cache, nameOrObject) {\n var i = 0;\n var objects = this.jCal[jCalIndex];\n var len = objects.length;\n var cached = this[cache];\n\n if (typeof(nameOrObject) === 'string') {\n for (; i < len; i++) {\n if (objects[i][NAME_INDEX] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n } else if (cached) {\n for (; i < len; i++) {\n if (cached[i] && cached[i] === nameOrObject) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n return true;\n }\n }\n }\n\n return false;\n },\n\n _removeAllObjects: function(jCalIndex, cache, name) {\n var cached = this[cache];\n\n // Unfortunately we have to run through all children to reset their\n // parent property.\n var objects = this.jCal[jCalIndex];\n var i = objects.length - 1;\n\n // descending search required because splice\n // is used and will effect the indices.\n for (; i >= 0; i--) {\n if (!name || objects[i][NAME_INDEX] === name) {\n this._removeObjectByIndex(jCalIndex, cached, i);\n }\n }\n },\n\n /**\n * Adds a single sub component.\n *\n * @param {ICAL.Component} component The component to add\n * @return {ICAL.Component} The passed in component\n */\n addSubcomponent: function(component) {\n if (!this._components) {\n this._components = [];\n this._hydratedComponentCount = 0;\n }\n\n if (component.parent) {\n component.parent.removeSubcomponent(component);\n }\n\n var idx = this.jCal[COMPONENT_INDEX].push(component.jCal);\n this._components[idx - 1] = component;\n this._hydratedComponentCount++;\n component.parent = this;\n return component;\n },\n\n /**\n * Removes a single component by name or the instance of a specific\n * component.\n *\n * @param {ICAL.Component|String} nameOrComp Name of component, or component\n * @return {Boolean} True when comp is removed\n */\n removeSubcomponent: function(nameOrComp) {\n var removed = this._removeObject(COMPONENT_INDEX, '_components', nameOrComp);\n if (removed) {\n this._hydratedComponentCount--;\n }\n return removed;\n },\n\n /**\n * Removes all components or (if given) all components by a particular\n * name.\n *\n * @param {String=} name Lowercase component name\n */\n removeAllSubcomponents: function(name) {\n var removed = this._removeAllObjects(COMPONENT_INDEX, '_components', name);\n this._hydratedComponentCount = 0;\n return removed;\n },\n\n /**\n * Adds an {@link ICAL.Property} to the component.\n *\n * @param {ICAL.Property} property The property to add\n * @return {ICAL.Property} The passed in property\n */\n addProperty: function(property) {\n if (!(property instanceof ICAL.Property)) {\n throw new TypeError('must instance of ICAL.Property');\n }\n\n if (!this._properties) {\n this._properties = [];\n this._hydratedPropertyCount = 0;\n }\n\n if (property.parent) {\n property.parent.removeProperty(property);\n }\n\n var idx = this.jCal[PROPERTY_INDEX].push(property.jCal);\n this._properties[idx - 1] = property;\n this._hydratedPropertyCount++;\n property.parent = this;\n return property;\n },\n\n /**\n * Helper method to add a property with a value to the component.\n *\n * @param {String} name Property name to add\n * @param {String|Number|Object} value Property value\n * @return {ICAL.Property} The created property\n */\n addPropertyWithValue: function(name, value) {\n var prop = new ICAL.Property(name);\n prop.setValue(value);\n\n this.addProperty(prop);\n\n return prop;\n },\n\n /**\n * Helper method that will update or create a property of the given name\n * and sets its value. If multiple properties with the given name exist,\n * only the first is updated.\n *\n * @param {String} name Property name to update\n * @param {String|Number|Object} value Property value\n * @return {ICAL.Property} The created property\n */\n updatePropertyWithValue: function(name, value) {\n var prop = this.getFirstProperty(name);\n\n if (prop) {\n prop.setValue(value);\n } else {\n prop = this.addPropertyWithValue(name, value);\n }\n\n return prop;\n },\n\n /**\n * Removes a single property by name or the instance of the specific\n * property.\n *\n * @param {String|ICAL.Property} nameOrProp Property name or instance to remove\n * @return {Boolean} True, when deleted\n */\n removeProperty: function(nameOrProp) {\n var removed = this._removeObject(PROPERTY_INDEX, '_properties', nameOrProp);\n if (removed) {\n this._hydratedPropertyCount--;\n }\n return removed;\n },\n\n /**\n * Removes all properties associated with this component, optionally\n * filtered by name.\n *\n * @param {String=} name Lowercase property name\n * @return {Boolean} True, when deleted\n */\n removeAllProperties: function(name) {\n var removed = this._removeAllObjects(PROPERTY_INDEX, '_properties', name);\n this._hydratedPropertyCount = 0;\n return removed;\n },\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON: function() {\n return this.jCal;\n },\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toString: function() {\n return ICAL.stringify.component(\n this.jCal, this._designSet\n );\n }\n };\n\n /**\n * Create an {@link ICAL.Component} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n */\n Component.fromString = function(str) {\n return new Component(ICAL.parse.component(str));\n };\n\n return Component;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.Property = (function() {\n 'use strict';\n\n var NAME_INDEX = 0;\n var PROP_INDEX = 1;\n var TYPE_INDEX = 2;\n var VALUE_INDEX = 3;\n\n var design = ICAL.design;\n\n /**\n * @classdesc\n * Provides a layer on top of the raw jCal object for manipulating a single\n * property, with its parameters and value.\n *\n * @description\n * It is important to note that mutations done in the wrapper\n * directly mutate the jCal object used to initialize.\n *\n * Can also be used to create new properties by passing\n * the name of the property (as a String).\n *\n * @class\n * @alias ICAL.Property\n * @param {Array|String} jCal Raw jCal representation OR\n * the new name of the property\n *\n * @param {ICAL.Component=} parent Parent component\n */\n function Property(jCal, parent) {\n this._parent = parent || null;\n\n if (typeof(jCal) === 'string') {\n // We are creating the property by name and need to detect the type\n this.jCal = [jCal, {}, design.defaultType];\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n } else {\n this.jCal = jCal;\n }\n this._updateType();\n }\n\n Property.prototype = {\n\n /**\n * The value type for this property\n * @readonly\n * @type {String}\n */\n get type() {\n return this.jCal[TYPE_INDEX];\n },\n\n /**\n * The name of this property, in lowercase.\n * @readonly\n * @type {String}\n */\n get name() {\n return this.jCal[NAME_INDEX];\n },\n\n /**\n * The parent component for this property.\n * @type {ICAL.Component}\n */\n get parent() {\n return this._parent;\n },\n\n set parent(p) {\n // Before setting the parent, check if the design set has changed. If it\n // has, we later need to update the type if it was unknown before.\n var designSetChanged = !this._parent || (p && p._designSet != this._parent._designSet);\n\n this._parent = p;\n\n if (this.type == design.defaultType && designSetChanged) {\n this.jCal[TYPE_INDEX] = this.getDefaultType();\n this._updateType();\n }\n\n return p;\n },\n\n /**\n * The design set for this property, e.g. icalendar vs vcard\n *\n * @type {ICAL.design.designSet}\n * @private\n */\n get _designSet() {\n return this.parent ? this.parent._designSet : design.defaultSet;\n },\n\n /**\n * Updates the type metadata from the current jCal type and design set.\n *\n * @private\n */\n _updateType: function() {\n var designSet = this._designSet;\n\n if (this.type in designSet.value) {\n var designType = designSet.value[this.type];\n\n if ('decorate' in designSet.value[this.type]) {\n this.isDecorated = true;\n } else {\n this.isDecorated = false;\n }\n\n if (this.name in designSet.property) {\n this.isMultiValue = ('multiValue' in designSet.property[this.name]);\n this.isStructuredValue = ('structuredValue' in designSet.property[this.name]);\n }\n }\n },\n\n /**\n * Hydrate a single value. The act of hydrating means turning the raw jCal\n * value into a potentially wrapped object, for example {@link ICAL.Time}.\n *\n * @private\n * @param {Number} index The index of the value to hydrate\n * @return {Object} The decorated value.\n */\n _hydrateValue: function(index) {\n if (this._values && this._values[index]) {\n return this._values[index];\n }\n\n // for the case where there is no value.\n if (this.jCal.length <= (VALUE_INDEX + index)) {\n return null;\n }\n\n if (this.isDecorated) {\n if (!this._values) {\n this._values = [];\n }\n return (this._values[index] = this._decorate(\n this.jCal[VALUE_INDEX + index]\n ));\n } else {\n return this.jCal[VALUE_INDEX + index];\n }\n },\n\n /**\n * Decorate a single value, returning its wrapped object. This is used by\n * the hydrate function to actually wrap the value.\n *\n * @private\n * @param {?} value The value to decorate\n * @return {Object} The decorated value\n */\n _decorate: function(value) {\n return this._designSet.value[this.type].decorate(value, this);\n },\n\n /**\n * Undecorate a single value, returning its raw jCal data.\n *\n * @private\n * @param {Object} value The value to undecorate\n * @return {?} The undecorated value\n */\n _undecorate: function(value) {\n return this._designSet.value[this.type].undecorate(value, this);\n },\n\n /**\n * Sets the value at the given index while also hydrating it. The passed\n * value can either be a decorated or undecorated value.\n *\n * @private\n * @param {?} value The value to set\n * @param {Number} index The index to set it at\n */\n _setDecoratedValue: function(value, index) {\n if (!this._values) {\n this._values = [];\n }\n\n if (typeof(value) === 'object' && 'icaltype' in value) {\n // decorated value\n this.jCal[VALUE_INDEX + index] = this._undecorate(value);\n this._values[index] = value;\n } else {\n // undecorated value\n this.jCal[VALUE_INDEX + index] = value;\n this._values[index] = this._decorate(value);\n }\n },\n\n /**\n * Gets a parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {Array|String} Parameter value\n */\n getParameter: function(name) {\n if (name in this.jCal[PROP_INDEX]) {\n return this.jCal[PROP_INDEX][name];\n } else {\n return undefined;\n }\n },\n\n /**\n * Gets first parameter on the property.\n *\n * @param {String} name Parameter name (lowercase)\n * @return {String} Parameter value\n */\n getFirstParameter: function(name) {\n var parameters = this.getParameter(name);\n\n if (Array.isArray(parameters)) {\n return parameters[0];\n }\n\n return parameters;\n },\n\n /**\n * Sets a parameter on the property.\n *\n * @param {String} name The parameter name\n * @param {Array|String} value The parameter value\n */\n setParameter: function(name, value) {\n var lcname = name.toLowerCase();\n if (typeof value === \"string\" &&\n lcname in this._designSet.param &&\n 'multiValue' in this._designSet.param[lcname]) {\n value = [value];\n }\n this.jCal[PROP_INDEX][name] = value;\n },\n\n /**\n * Removes a parameter\n *\n * @param {String} name The parameter name\n */\n removeParameter: function(name) {\n delete this.jCal[PROP_INDEX][name];\n },\n\n /**\n * Get the default type based on this property's name.\n *\n * @return {String} The default type for this property\n */\n getDefaultType: function() {\n var name = this.jCal[NAME_INDEX];\n var designSet = this._designSet;\n\n if (name in designSet.property) {\n var details = designSet.property[name];\n if ('defaultType' in details) {\n return details.defaultType;\n }\n }\n return design.defaultType;\n },\n\n /**\n * Sets type of property and clears out any existing values of the current\n * type.\n *\n * @param {String} type New iCAL type (see design.*.values)\n */\n resetType: function(type) {\n this.removeAllValues();\n this.jCal[TYPE_INDEX] = type;\n this._updateType();\n },\n\n /**\n * Finds the first property value.\n *\n * @return {String} First property value\n */\n getFirstValue: function() {\n return this._hydrateValue(0);\n },\n\n /**\n * Gets all values on the property.\n *\n * NOTE: this creates an array during each call.\n *\n * @return {Array} List of values\n */\n getValues: function() {\n var len = this.jCal.length - VALUE_INDEX;\n\n if (len < 1) {\n // it is possible for a property to have no value.\n return [];\n }\n\n var i = 0;\n var result = [];\n\n for (; i < len; i++) {\n result[i] = this._hydrateValue(i);\n }\n\n return result;\n },\n\n /**\n * Removes all values from this property\n */\n removeAllValues: function() {\n if (this._values) {\n this._values.length = 0;\n }\n this.jCal.length = 3;\n },\n\n /**\n * Sets the values of the property. Will overwrite the existing values.\n * This can only be used for multi-value properties.\n *\n * @param {Array} values An array of values\n */\n setValues: function(values) {\n if (!this.isMultiValue) {\n throw new Error(\n this.name + ': does not not support mulitValue.\\n' +\n 'override isMultiValue'\n );\n }\n\n var len = values.length;\n var i = 0;\n this.removeAllValues();\n\n if (len > 0 &&\n typeof(values[0]) === 'object' &&\n 'icaltype' in values[0]) {\n this.resetType(values[0].icaltype);\n }\n\n if (this.isDecorated) {\n for (; i < len; i++) {\n this._setDecoratedValue(values[i], i);\n }\n } else {\n for (; i < len; i++) {\n this.jCal[VALUE_INDEX + i] = values[i];\n }\n }\n },\n\n /**\n * Sets the current value of the property. If this is a multi-value\n * property, all other values will be removed.\n *\n * @param {String|Object} value New property value.\n */\n setValue: function(value) {\n this.removeAllValues();\n if (typeof(value) === 'object' && 'icaltype' in value) {\n this.resetType(value.icaltype);\n }\n\n if (this.isDecorated) {\n this._setDecoratedValue(value, 0);\n } else {\n this.jCal[VALUE_INDEX] = value;\n }\n },\n\n /**\n * Returns the Object representation of this component. The returned object\n * is a live jCal object and should be cloned if modified.\n * @return {Object}\n */\n toJSON: function() {\n return this.jCal;\n },\n\n /**\n * The string representation of this component.\n * @return {String}\n */\n toICALString: function() {\n return ICAL.stringify.property(\n this.jCal, this._designSet, true\n );\n }\n };\n\n /**\n * Create an {@link ICAL.Property} by parsing the passed iCalendar string.\n *\n * @param {String} str The iCalendar string to parse\n * @param {ICAL.design.designSet=} designSet The design data to use for this property\n * @return {ICAL.Property} The created iCalendar property\n */\n Property.fromString = function(str, designSet) {\n return new Property(ICAL.parse.property(str, designSet));\n };\n\n return Property;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.UtcOffset = (function() {\n\n /**\n * @classdesc\n * This class represents the \"duration\" value type, with various calculation\n * and manipulation methods.\n *\n * @class\n * @alias ICAL.UtcOffset\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n function UtcOffset(aData) {\n this.fromData(aData);\n }\n\n UtcOffset.prototype = {\n\n /**\n * The hours in the utc-offset\n * @type {Number}\n */\n hours: 0,\n\n /**\n * The minutes in the utc-offset\n * @type {Number}\n */\n minutes: 0,\n\n /**\n * The sign of the utc offset, 1 for positive offset, -1 for negative\n * offsets.\n * @type {Number}\n */\n factor: 1,\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"utc-offset\"\n */\n icaltype: \"utc-offset\",\n\n /**\n * Returns a clone of the utc offset object.\n *\n * @return {ICAL.UtcOffset} The cloned object\n */\n clone: function() {\n return ICAL.UtcOffset.fromSeconds(this.toSeconds());\n },\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the utc offset\n * @param {Number=} aData.hours The hours for the utc offset\n * @param {Number=} aData.minutes The minutes in the utc offset\n * @param {Number=} aData.factor The factor for the utc-offset, either -1 or 1\n */\n fromData: function(aData) {\n if (aData) {\n for (var key in aData) {\n /* istanbul ignore else */\n if (aData.hasOwnProperty(key)) {\n this[key] = aData[key];\n }\n }\n }\n this._normalize();\n },\n\n /**\n * Sets up the current instance from the given seconds value. The seconds\n * value is truncated to the minute. Offsets are wrapped when the world\n * ends, the hour after UTC+14:00 is UTC-12:00.\n *\n * @param {Number} aSeconds The seconds to convert into an offset\n */\n fromSeconds: function(aSeconds) {\n var secs = Math.abs(aSeconds);\n\n this.factor = aSeconds < 0 ? -1 : 1;\n this.hours = ICAL.helpers.trunc(secs / 3600);\n\n secs -= (this.hours * 3600);\n this.minutes = ICAL.helpers.trunc(secs / 60);\n return this;\n },\n\n /**\n * Convert the current offset to a value in seconds\n *\n * @return {Number} The offset in seconds\n */\n toSeconds: function() {\n return this.factor * (60 * this.minutes + 3600 * this.hours);\n },\n\n /**\n * Compare this utc offset with another one.\n *\n * @param {ICAL.UtcOffset} other The other offset to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare: function icaltime_compare(other) {\n var a = this.toSeconds();\n var b = other.toSeconds();\n return (a > b) - (b > a);\n },\n\n _normalize: function() {\n // Range: 97200 seconds (with 1 hour inbetween)\n var secs = this.toSeconds();\n var factor = this.factor;\n while (secs < -43200) { // = UTC-12:00\n secs += 97200;\n }\n while (secs > 50400) { // = UTC+14:00\n secs -= 97200;\n }\n\n this.fromSeconds(secs);\n\n // Avoid changing the factor when on zero seconds\n if (secs == 0) {\n this.factor = factor;\n }\n },\n\n /**\n * The iCalendar string representation of this utc-offset.\n * @return {String}\n */\n toICALString: function() {\n return ICAL.design.icalendar.value['utc-offset'].toICAL(this.toString());\n },\n\n /**\n * The string representation of this utc-offset.\n * @return {String}\n */\n toString: function toString() {\n return (this.factor == 1 ? \"+\" : \"-\") +\n ICAL.helpers.pad2(this.hours) + ':' +\n ICAL.helpers.pad2(this.minutes);\n }\n };\n\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed string.\n *\n * @param {String} aString The string to parse\n * @return {ICAL.Duration} The created utc-offset instance\n */\n UtcOffset.fromString = function(aString) {\n // -05:00\n var options = {};\n //TODO: support seconds per rfc5545 ?\n options.factor = (aString[0] === '+') ? 1 : -1;\n options.hours = ICAL.helpers.strictParseInt(aString.substr(1, 2));\n options.minutes = ICAL.helpers.strictParseInt(aString.substr(4, 2));\n\n return new ICAL.UtcOffset(options);\n };\n\n /**\n * Creates a new {@link ICAL.UtcOffset} instance from the passed seconds\n * value.\n *\n * @param {Number} aSeconds The number of seconds to convert\n */\n UtcOffset.fromSeconds = function(aSeconds) {\n var instance = new UtcOffset();\n instance.fromSeconds(aSeconds);\n return instance;\n };\n\n return UtcOffset;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.Binary = (function() {\n\n /**\n * @classdesc\n * Represents the BINARY value type, which contains extra methods for\n * encoding and decoding.\n *\n * @class\n * @alias ICAL.Binary\n * @param {String} aValue The binary data for this value\n */\n function Binary(aValue) {\n this.value = aValue;\n }\n\n Binary.prototype = {\n /**\n * The type name, to be used in the jCal object.\n * @default \"binary\"\n * @constant\n */\n icaltype: \"binary\",\n\n /**\n * Base64 decode the current value\n *\n * @return {String} The base64-decoded value\n */\n decodeValue: function decodeValue() {\n return this._b64_decode(this.value);\n },\n\n /**\n * Encodes the passed parameter with base64 and sets the internal\n * value to the result.\n *\n * @param {String} aValue The raw binary value to encode\n */\n setEncodedValue: function setEncodedValue(aValue) {\n this.value = this._b64_encode(aValue);\n },\n\n _b64_encode: function base64_encode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Bayron Guevara\n // + improved by: Thunder.m\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: Rafał Kukawski (http://kukawski.pl)\n // * example 1: base64_encode('Kevin van Zonneveld');\n // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['atob'] == 'function') {\n // return atob(data);\n //}\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n var r = data.length % 3;\n\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n\n },\n\n _b64_decode: function base64_decode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Thunder.m\n // + input by: Aman Gupta\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + input by: Brett Zamir (http://brett-zamir.me)\n // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');\n // * returns 1: 'Kevin van Zonneveld'\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n //if (typeof this.window['btoa'] == 'function') {\n // return btoa(data);\n //}\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" +\n \"abcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n dec = \"\",\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data += '';\n\n do { // unpack four hexets into three octets using index points in b64\n h1 = b64.indexOf(data.charAt(i++));\n h2 = b64.indexOf(data.charAt(i++));\n h3 = b64.indexOf(data.charAt(i++));\n h4 = b64.indexOf(data.charAt(i++));\n\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\n\n o1 = bits >> 16 & 0xff;\n o2 = bits >> 8 & 0xff;\n o3 = bits & 0xff;\n\n if (h3 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1);\n } else if (h4 == 64) {\n tmp_arr[ac++] = String.fromCharCode(o1, o2);\n } else {\n tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);\n }\n } while (i < data.length);\n\n dec = tmp_arr.join('');\n\n return dec;\n },\n\n /**\n * The string representation of this value\n * @return {String}\n */\n toString: function() {\n return this.value;\n }\n };\n\n /**\n * Creates a binary value from the given string.\n *\n * @param {String} aString The binary value string\n * @return {ICAL.Binary} The binary value instance\n */\n Binary.fromString = function(aString) {\n return new Binary(aString);\n };\n\n return Binary;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n\n(function() {\n /**\n * @classdesc\n * This class represents the \"period\" value type, with various calculation\n * and manipulation methods.\n *\n * @description\n * The passed data object cannot contain both and end date and a duration.\n *\n * @class\n * @param {Object} aData An object with members of the period\n * @param {ICAL.Time=} aData.start The start of the period\n * @param {ICAL.Time=} aData.end The end of the period\n * @param {ICAL.Duration=} aData.duration The duration of the period\n */\n ICAL.Period = function icalperiod(aData) {\n this.wrappedJSObject = this;\n\n if (aData && 'start' in aData) {\n if (aData.start && !(aData.start instanceof ICAL.Time)) {\n throw new TypeError('.start must be an instance of ICAL.Time');\n }\n this.start = aData.start;\n }\n\n if (aData && aData.end && aData.duration) {\n throw new Error('cannot accept both end and duration');\n }\n\n if (aData && 'end' in aData) {\n if (aData.end && !(aData.end instanceof ICAL.Time)) {\n throw new TypeError('.end must be an instance of ICAL.Time');\n }\n this.end = aData.end;\n }\n\n if (aData && 'duration' in aData) {\n if (aData.duration && !(aData.duration instanceof ICAL.Duration)) {\n throw new TypeError('.duration must be an instance of ICAL.Duration');\n }\n this.duration = aData.duration;\n }\n };\n\n ICAL.Period.prototype = {\n\n /**\n * The start of the period\n * @type {ICAL.Time}\n */\n start: null,\n\n /**\n * The end of the period\n * @type {ICAL.Time}\n */\n end: null,\n\n /**\n * The duration of the period\n * @type {ICAL.Duration}\n */\n duration: null,\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalperiod\"\n */\n icalclass: \"icalperiod\",\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"period\"\n */\n icaltype: \"period\",\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {ICAL.Period} The cloned object\n */\n clone: function() {\n return ICAL.Period.fromData({\n start: this.start ? this.start.clone() : null,\n end: this.end ? this.end.clone() : null,\n duration: this.duration ? this.duration.clone() : null\n });\n },\n\n /**\n * Calculates the duration of the period, either directly or by subtracting\n * start from end date.\n *\n * @return {ICAL.Duration} The calculated duration\n */\n getDuration: function duration() {\n if (this.duration) {\n return this.duration;\n } else {\n return this.end.subtractDate(this.start);\n }\n },\n\n /**\n * Calculates the end date of the period, either directly or by adding\n * duration to start date.\n *\n * @return {ICAL.Time} The calculated end date\n */\n getEnd: function() {\n if (this.end) {\n return this.end;\n } else {\n var end = this.start.clone();\n end.addDuration(this.duration);\n return end;\n }\n },\n\n /**\n * The string representation of this period.\n * @return {String}\n */\n toString: function toString() {\n return this.start + \"/\" + (this.end || this.duration);\n },\n\n /**\n * The jCal representation of this period type.\n * @return {Object}\n */\n toJSON: function() {\n return [this.start.toString(), (this.end || this.duration).toString()];\n },\n\n /**\n * The iCalendar string representation of this period.\n * @return {String}\n */\n toICALString: function() {\n return this.start.toICALString() + \"/\" +\n (this.end || this.duration).toICALString();\n }\n };\n\n /**\n * Creates a new {@link ICAL.Period} instance from the passed string.\n *\n * @param {String} str The string to parse\n * @param {ICAL.Property} prop The property this period will be on\n * @return {ICAL.Period} The created period instance\n */\n ICAL.Period.fromString = function fromString(str, prop) {\n var parts = str.split('/');\n\n if (parts.length !== 2) {\n throw new Error(\n 'Invalid string value: \"' + str + '\" must contain a \"/\" char.'\n );\n }\n\n var options = {\n start: ICAL.Time.fromDateTimeString(parts[0], prop)\n };\n\n var end = parts[1];\n\n if (ICAL.Duration.isValueString(end)) {\n options.duration = ICAL.Duration.fromString(end);\n } else {\n options.end = ICAL.Time.fromDateTimeString(end, prop);\n }\n\n return new ICAL.Period(options);\n };\n\n /**\n * Creates a new {@link ICAL.Period} instance from the given data object.\n * The passed data object cannot contain both and end date and a duration.\n *\n * @param {Object} aData An object with members of the period\n * @param {ICAL.Time=} aData.start The start of the period\n * @param {ICAL.Time=} aData.end The end of the period\n * @param {ICAL.Duration=} aData.duration The duration of the period\n * @return {ICAL.Period} The period instance\n */\n ICAL.Period.fromData = function fromData(aData) {\n return new ICAL.Period(aData);\n };\n\n /**\n * Returns a new period instance from the given jCal data array. The first\n * member is always the start date string, the second member is either a\n * duration or end date string.\n *\n * @param {Array<String,String>} aData The jCal data array\n * @param {ICAL.Property} aProp The property this jCal data is on\n * @param {Boolean} aLenient If true, data value can be both date and date-time\n * @return {ICAL.Period} The period instance\n */\n ICAL.Period.fromJSON = function(aData, aProp, aLenient) {\n function fromDateOrDateTimeString(aValue, aProp) {\n if (aLenient) {\n return ICAL.Time.fromString(aValue, aProp);\n } else {\n return ICAL.Time.fromDateTimeString(aValue, aProp);\n }\n }\n\n if (ICAL.Duration.isValueString(aData[1])) {\n return ICAL.Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n duration: ICAL.Duration.fromString(aData[1])\n });\n } else {\n return ICAL.Period.fromData({\n start: fromDateOrDateTimeString(aData[0], aProp),\n end: fromDateOrDateTimeString(aData[1], aProp)\n });\n }\n };\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n\n(function() {\n var DURATION_LETTERS = /([PDWHMTS]{1,1})/;\n\n /**\n * @classdesc\n * This class represents the \"duration\" value type, with various calculation\n * and manipulation methods.\n *\n * @class\n * @alias ICAL.Duration\n * @param {Object} data An object with members of the duration\n * @param {Number} data.weeks Duration in weeks\n * @param {Number} data.days Duration in days\n * @param {Number} data.hours Duration in hours\n * @param {Number} data.minutes Duration in minutes\n * @param {Number} data.seconds Duration in seconds\n * @param {Boolean} data.isNegative If true, the duration is negative\n */\n ICAL.Duration = function icalduration(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n };\n\n ICAL.Duration.prototype = {\n /**\n * The weeks in this duration\n * @type {Number}\n * @default 0\n */\n weeks: 0,\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n days: 0,\n\n /**\n * The days in this duration\n * @type {Number}\n * @default 0\n */\n hours: 0,\n\n /**\n * The minutes in this duration\n * @type {Number}\n * @default 0\n */\n minutes: 0,\n\n /**\n * The seconds in this duration\n * @type {Number}\n * @default 0\n */\n seconds: 0,\n\n /**\n * The seconds in this duration\n * @type {Boolean}\n * @default false\n */\n isNegative: false,\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalduration\"\n */\n icalclass: \"icalduration\",\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"duration\"\n */\n icaltype: \"duration\",\n\n /**\n * Returns a clone of the duration object.\n *\n * @return {ICAL.Duration} The cloned object\n */\n clone: function clone() {\n return ICAL.Duration.fromData(this);\n },\n\n /**\n * The duration value expressed as a number of seconds.\n *\n * @return {Number} The duration value in seconds\n */\n toSeconds: function toSeconds() {\n var seconds = this.seconds + 60 * this.minutes + 3600 * this.hours +\n 86400 * this.days + 7 * 86400 * this.weeks;\n return (this.isNegative ? -seconds : seconds);\n },\n\n /**\n * Reads the passed seconds value into this duration object. Afterwards,\n * members like {@link ICAL.Duration#days days} and {@link ICAL.Duration#weeks weeks} will be set up\n * accordingly.\n *\n * @param {Number} aSeconds The duration value in seconds\n * @return {ICAL.Duration} Returns this instance\n */\n fromSeconds: function fromSeconds(aSeconds) {\n var secs = Math.abs(aSeconds);\n\n this.isNegative = (aSeconds < 0);\n this.days = ICAL.helpers.trunc(secs / 86400);\n\n // If we have a flat number of weeks, use them.\n if (this.days % 7 == 0) {\n this.weeks = this.days / 7;\n this.days = 0;\n } else {\n this.weeks = 0;\n }\n\n secs -= (this.days + 7 * this.weeks) * 86400;\n\n this.hours = ICAL.helpers.trunc(secs / 3600);\n secs -= this.hours * 3600;\n\n this.minutes = ICAL.helpers.trunc(secs / 60);\n secs -= this.minutes * 60;\n\n this.seconds = secs;\n return this;\n },\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number} aData.weeks Duration in weeks\n * @param {Number} aData.days Duration in days\n * @param {Number} aData.hours Duration in hours\n * @param {Number} aData.minutes Duration in minutes\n * @param {Number} aData.seconds Duration in seconds\n * @param {Boolean} aData.isNegative If true, the duration is negative\n */\n fromData: function fromData(aData) {\n var propsToCopy = [\"weeks\", \"days\", \"hours\",\n \"minutes\", \"seconds\", \"isNegative\"];\n for (var key in propsToCopy) {\n /* istanbul ignore if */\n if (!propsToCopy.hasOwnProperty(key)) {\n continue;\n }\n var prop = propsToCopy[key];\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n } else {\n this[prop] = 0;\n }\n }\n },\n\n /**\n * Resets the duration instance to the default values, i.e. PT0S\n */\n reset: function reset() {\n this.isNegative = false;\n this.weeks = 0;\n this.days = 0;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n },\n\n /**\n * Compares the duration instance with another one.\n *\n * @param {ICAL.Duration} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare: function compare(aOther) {\n var thisSeconds = this.toSeconds();\n var otherSeconds = aOther.toSeconds();\n return (thisSeconds > otherSeconds) - (thisSeconds < otherSeconds);\n },\n\n /**\n * Normalizes the duration instance. For example, a duration with a value\n * of 61 seconds will be normalized to 1 minute and 1 second.\n */\n normalize: function normalize() {\n this.fromSeconds(this.toSeconds());\n },\n\n /**\n * The string representation of this duration.\n * @return {String}\n */\n toString: function toString() {\n if (this.toSeconds() == 0) {\n return \"PT0S\";\n } else {\n var str = \"\";\n if (this.isNegative) str += \"-\";\n str += \"P\";\n if (this.weeks) str += this.weeks + \"W\";\n if (this.days) str += this.days + \"D\";\n\n if (this.hours || this.minutes || this.seconds) {\n str += \"T\";\n if (this.hours) str += this.hours + \"H\";\n if (this.minutes) str += this.minutes + \"M\";\n if (this.seconds) str += this.seconds + \"S\";\n }\n return str;\n }\n },\n\n /**\n * The iCalendar string representation of this duration.\n * @return {String}\n */\n toICALString: function() {\n return this.toString();\n }\n };\n\n /**\n * Returns a new ICAL.Duration instance from the passed seconds value.\n *\n * @param {Number} aSeconds The seconds to create the instance from\n * @return {ICAL.Duration} The newly created duration instance\n */\n ICAL.Duration.fromSeconds = function icalduration_from_seconds(aSeconds) {\n return (new ICAL.Duration()).fromSeconds(aSeconds);\n };\n\n /**\n * Internal helper function to handle a chunk of a duration.\n *\n * @param {String} letter type of duration chunk\n * @param {String} number numeric value or -/+\n * @param {Object} dict target to assign values to\n */\n function parseDurationChunk(letter, number, object) {\n var type;\n switch (letter) {\n case 'P':\n if (number && number === '-') {\n object.isNegative = true;\n } else {\n object.isNegative = false;\n }\n // period\n break;\n case 'D':\n type = 'days';\n break;\n case 'W':\n type = 'weeks';\n break;\n case 'H':\n type = 'hours';\n break;\n case 'M':\n type = 'minutes';\n break;\n case 'S':\n type = 'seconds';\n break;\n default:\n // Not a valid chunk\n return 0;\n }\n\n if (type) {\n if (!number && number !== 0) {\n throw new Error(\n 'invalid duration value: Missing number before \"' + letter + '\"'\n );\n }\n var num = parseInt(number, 10);\n if (ICAL.helpers.isStrictlyNaN(num)) {\n throw new Error(\n 'invalid duration value: Invalid number \"' + number + '\" before \"' + letter + '\"'\n );\n }\n object[type] = num;\n }\n\n return 1;\n }\n\n /**\n * Checks if the given string is an iCalendar duration value.\n *\n * @param {String} value The raw ical value\n * @return {Boolean} True, if the given value is of the\n * duration ical type\n */\n ICAL.Duration.isValueString = function(string) {\n return (string[0] === 'P' || string[1] === 'P');\n };\n\n /**\n * Creates a new {@link ICAL.Duration} instance from the passed string.\n *\n * @param {String} aStr The string to parse\n * @return {ICAL.Duration} The created duration instance\n */\n ICAL.Duration.fromString = function icalduration_from_string(aStr) {\n var pos = 0;\n var dict = Object.create(null);\n var chunks = 0;\n\n while ((pos = aStr.search(DURATION_LETTERS)) !== -1) {\n var type = aStr[pos];\n var numeric = aStr.substr(0, pos);\n aStr = aStr.substr(pos + 1);\n\n chunks += parseDurationChunk(type, numeric, dict);\n }\n\n if (chunks < 2) {\n // There must be at least a chunk with \"P\" and some unit chunk\n throw new Error(\n 'invalid duration value: Not enough duration components in \"' + aStr + '\"'\n );\n }\n\n return new ICAL.Duration(dict);\n };\n\n /**\n * Creates a new ICAL.Duration instance from the given data object.\n *\n * @param {Object} aData An object with members of the duration\n * @param {Number} aData.weeks Duration in weeks\n * @param {Number} aData.days Duration in days\n * @param {Number} aData.hours Duration in hours\n * @param {Number} aData.minutes Duration in minutes\n * @param {Number} aData.seconds Duration in seconds\n * @param {Boolean} aData.isNegative If true, the duration is negative\n * @return {ICAL.Duration} The createad duration instance\n */\n ICAL.Duration.fromData = function icalduration_from_data(aData) {\n return new ICAL.Duration(aData);\n };\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2012 */\n\n\n\n(function() {\n var OPTIONS = [\"tzid\", \"location\", \"tznames\",\n \"latitude\", \"longitude\"];\n\n /**\n * @classdesc\n * Timezone representation, created by passing in a tzid and component.\n *\n * @example\n * var vcalendar;\n * var timezoneComp = vcalendar.getFirstSubcomponent('vtimezone');\n * var tzid = timezoneComp.getFirstPropertyValue('tzid');\n *\n * var timezone = new ICAL.Timezone({\n * component: timezoneComp,\n * tzid\n * });\n *\n * @class\n * @param {ICAL.Component|Object} data options for class\n * @param {String|ICAL.Component} data.component\n * If data is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} data.tzid The timezone identifier\n * @param {String} data.location The timezone locationw\n * @param {String} data.tznames An alternative string representation of the\n * timezone\n * @param {Number} data.latitude The latitude of the timezone\n * @param {Number} data.longitude The longitude of the timezone\n */\n ICAL.Timezone = function icaltimezone(data) {\n this.wrappedJSObject = this;\n this.fromData(data);\n };\n\n ICAL.Timezone.prototype = {\n\n /**\n * Timezone identifier\n * @type {String}\n */\n tzid: \"\",\n\n /**\n * Timezone location\n * @type {String}\n */\n location: \"\",\n\n /**\n * Alternative timezone name, for the string representation\n * @type {String}\n */\n tznames: \"\",\n\n /**\n * The primary latitude for the timezone.\n * @type {Number}\n */\n latitude: 0.0,\n\n /**\n * The primary longitude for the timezone.\n * @type {Number}\n */\n longitude: 0.0,\n\n /**\n * The vtimezone component for this timezone.\n * @type {ICAL.Component}\n */\n component: null,\n\n /**\n * The year this timezone has been expanded to. All timezone transition\n * dates until this year are known and can be used for calculation\n *\n * @private\n * @type {Number}\n */\n expandedUntilYear: 0,\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltimezone\"\n */\n icalclass: \"icaltimezone\",\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {ICAL.Component|Object} aData options for class\n * @param {String|ICAL.Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n fromData: function fromData(aData) {\n this.expandedUntilYear = 0;\n this.changes = [];\n\n if (aData instanceof ICAL.Component) {\n // Either a component is passed directly\n this.component = aData;\n } else {\n // Otherwise the component may be in the data object\n if (aData && \"component\" in aData) {\n if (typeof aData.component == \"string\") {\n // If a string was passed, parse it as a component\n var jCal = ICAL.parse(aData.component);\n this.component = new ICAL.Component(jCal);\n } else if (aData.component instanceof ICAL.Component) {\n // If it was a component already, then just set it\n this.component = aData.component;\n } else {\n // Otherwise just null out the component\n this.component = null;\n }\n }\n\n // Copy remaining passed properties\n for (var key in OPTIONS) {\n /* istanbul ignore else */\n if (OPTIONS.hasOwnProperty(key)) {\n var prop = OPTIONS[key];\n if (aData && prop in aData) {\n this[prop] = aData[prop];\n }\n }\n }\n }\n\n // If we have a component but no TZID, attempt to get it from the\n // component's properties.\n if (this.component instanceof ICAL.Component && !this.tzid) {\n this.tzid = this.component.getFirstPropertyValue('tzid');\n }\n\n return this;\n },\n\n /**\n * Finds the utcOffset the given time would occur in this timezone.\n *\n * @param {ICAL.Time} tt The time to check for\n * @return {Number} utc offset in seconds\n */\n utcOffset: function utcOffset(tt) {\n if (this == ICAL.Timezone.utcTimezone || this == ICAL.Timezone.localTimezone) {\n return 0;\n }\n\n this._ensureCoverage(tt.year);\n\n if (!this.changes.length) {\n return 0;\n }\n\n var tt_change = {\n year: tt.year,\n month: tt.month,\n day: tt.day,\n hour: tt.hour,\n minute: tt.minute,\n second: tt.second\n };\n\n var change_num = this._findNearbyChange(tt_change);\n var change_num_to_use = -1;\n var step = 1;\n\n // TODO: replace with bin search?\n for (;;) {\n var change = ICAL.helpers.clone(this.changes[change_num], true);\n if (change.utcOffset < change.prevUtcOffset) {\n ICAL.Timezone.adjust_change(change, 0, 0, 0, change.utcOffset);\n } else {\n ICAL.Timezone.adjust_change(change, 0, 0, 0,\n change.prevUtcOffset);\n }\n\n var cmp = ICAL.Timezone._compare_change_fn(tt_change, change);\n\n if (cmp >= 0) {\n change_num_to_use = change_num;\n } else {\n step = -1;\n }\n\n if (step == -1 && change_num_to_use != -1) {\n break;\n }\n\n change_num += step;\n\n if (change_num < 0) {\n return 0;\n }\n\n if (change_num >= this.changes.length) {\n break;\n }\n }\n\n var zone_change = this.changes[change_num_to_use];\n var utcOffset_change = zone_change.utcOffset - zone_change.prevUtcOffset;\n\n if (utcOffset_change < 0 && change_num_to_use > 0) {\n var tmp_change = ICAL.helpers.clone(zone_change, true);\n ICAL.Timezone.adjust_change(tmp_change, 0, 0, 0,\n tmp_change.prevUtcOffset);\n\n if (ICAL.Timezone._compare_change_fn(tt_change, tmp_change) < 0) {\n var prev_zone_change = this.changes[change_num_to_use - 1];\n\n var want_daylight = false; // TODO\n\n if (zone_change.is_daylight != want_daylight &&\n prev_zone_change.is_daylight == want_daylight) {\n zone_change = prev_zone_change;\n }\n }\n }\n\n // TODO return is_daylight?\n return zone_change.utcOffset;\n },\n\n _findNearbyChange: function icaltimezone_find_nearby_change(change) {\n // find the closest match\n var idx = ICAL.helpers.binsearchInsert(\n this.changes,\n change,\n ICAL.Timezone._compare_change_fn\n );\n\n if (idx >= this.changes.length) {\n return this.changes.length - 1;\n }\n\n return idx;\n },\n\n _ensureCoverage: function(aYear) {\n if (ICAL.Timezone._minimumExpansionYear == -1) {\n var today = ICAL.Time.now();\n ICAL.Timezone._minimumExpansionYear = today.year;\n }\n\n var changesEndYear = aYear;\n if (changesEndYear < ICAL.Timezone._minimumExpansionYear) {\n changesEndYear = ICAL.Timezone._minimumExpansionYear;\n }\n\n changesEndYear += ICAL.Timezone.EXTRA_COVERAGE;\n\n if (changesEndYear > ICAL.Timezone.MAX_YEAR) {\n changesEndYear = ICAL.Timezone.MAX_YEAR;\n }\n\n if (!this.changes.length || this.expandedUntilYear < aYear) {\n var subcomps = this.component.getAllSubcomponents();\n var compLen = subcomps.length;\n var compIdx = 0;\n\n for (; compIdx < compLen; compIdx++) {\n this._expandComponent(\n subcomps[compIdx], changesEndYear, this.changes\n );\n }\n\n this.changes.sort(ICAL.Timezone._compare_change_fn);\n this.expandedUntilYear = changesEndYear;\n }\n },\n\n _expandComponent: function(aComponent, aYear, changes) {\n if (!aComponent.hasProperty(\"dtstart\") ||\n !aComponent.hasProperty(\"tzoffsetto\") ||\n !aComponent.hasProperty(\"tzoffsetfrom\")) {\n return null;\n }\n\n var dtstart = aComponent.getFirstProperty(\"dtstart\").getFirstValue();\n var change;\n\n function convert_tzoffset(offset) {\n return offset.factor * (offset.hours * 3600 + offset.minutes * 60);\n }\n\n function init_changes() {\n var changebase = {};\n changebase.is_daylight = (aComponent.name == \"daylight\");\n changebase.utcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetto\").getFirstValue()\n );\n\n changebase.prevUtcOffset = convert_tzoffset(\n aComponent.getFirstProperty(\"tzoffsetfrom\").getFirstValue()\n );\n\n return changebase;\n }\n\n if (!aComponent.hasProperty(\"rrule\") && !aComponent.hasProperty(\"rdate\")) {\n change = init_changes();\n change.year = dtstart.year;\n change.month = dtstart.month;\n change.day = dtstart.day;\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n ICAL.Timezone.adjust_change(change, 0, 0, 0,\n -change.prevUtcOffset);\n changes.push(change);\n } else {\n var props = aComponent.getAllProperties(\"rdate\");\n for (var rdatekey in props) {\n /* istanbul ignore if */\n if (!props.hasOwnProperty(rdatekey)) {\n continue;\n }\n var rdate = props[rdatekey];\n var time = rdate.getFirstValue();\n change = init_changes();\n\n change.year = time.year;\n change.month = time.month;\n change.day = time.day;\n\n if (time.isDate) {\n change.hour = dtstart.hour;\n change.minute = dtstart.minute;\n change.second = dtstart.second;\n\n if (dtstart.zone != ICAL.Timezone.utcTimezone) {\n ICAL.Timezone.adjust_change(change, 0, 0, 0,\n -change.prevUtcOffset);\n }\n } else {\n change.hour = time.hour;\n change.minute = time.minute;\n change.second = time.second;\n\n if (time.zone != ICAL.Timezone.utcTimezone) {\n ICAL.Timezone.adjust_change(change, 0, 0, 0,\n -change.prevUtcOffset);\n }\n }\n\n changes.push(change);\n }\n\n var rrule = aComponent.getFirstProperty(\"rrule\");\n\n if (rrule) {\n rrule = rrule.getFirstValue();\n change = init_changes();\n\n if (rrule.until && rrule.until.zone == ICAL.Timezone.utcTimezone) {\n rrule.until.adjust(0, 0, 0, change.prevUtcOffset);\n rrule.until.zone = ICAL.Timezone.localTimezone;\n }\n\n var iterator = rrule.iterator(dtstart);\n\n var occ;\n while ((occ = iterator.next())) {\n change = init_changes();\n if (occ.year > aYear || !occ) {\n break;\n }\n\n change.year = occ.year;\n change.month = occ.month;\n change.day = occ.day;\n change.hour = occ.hour;\n change.minute = occ.minute;\n change.second = occ.second;\n change.isDate = occ.isDate;\n\n ICAL.Timezone.adjust_change(change, 0, 0, 0,\n -change.prevUtcOffset);\n changes.push(change);\n }\n }\n }\n\n return changes;\n },\n\n /**\n * The string representation of this timezone.\n * @return {String}\n */\n toString: function toString() {\n return (this.tznames ? this.tznames : this.tzid);\n }\n };\n\n ICAL.Timezone._compare_change_fn = function icaltimezone_compare_change_fn(a, b) {\n if (a.year < b.year) return -1;\n else if (a.year > b.year) return 1;\n\n if (a.month < b.month) return -1;\n else if (a.month > b.month) return 1;\n\n if (a.day < b.day) return -1;\n else if (a.day > b.day) return 1;\n\n if (a.hour < b.hour) return -1;\n else if (a.hour > b.hour) return 1;\n\n if (a.minute < b.minute) return -1;\n else if (a.minute > b.minute) return 1;\n\n if (a.second < b.second) return -1;\n else if (a.second > b.second) return 1;\n\n return 0;\n };\n\n /**\n * Convert the date/time from one zone to the next.\n *\n * @param {ICAL.Time} tt The time to convert\n * @param {ICAL.Timezone} from_zone The source zone to convert from\n * @param {ICAL.Timezone} to_zone The target zone to convert to\n * @return {ICAL.Time} The converted date/time object\n */\n ICAL.Timezone.convert_time = function icaltimezone_convert_time(tt, from_zone, to_zone) {\n if (tt.isDate ||\n from_zone.tzid == to_zone.tzid ||\n from_zone == ICAL.Timezone.localTimezone ||\n to_zone == ICAL.Timezone.localTimezone) {\n tt.zone = to_zone;\n return tt;\n }\n\n var utcOffset = from_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, - utcOffset);\n\n utcOffset = to_zone.utcOffset(tt);\n tt.adjust(0, 0, 0, utcOffset);\n\n return null;\n };\n\n /**\n * Creates a new ICAL.Timezone instance from the passed data object.\n *\n * @param {ICAL.Component|Object} aData options for class\n * @param {String|ICAL.Component} aData.component\n * If aData is a simple object, then this member can be set to either a\n * string containing the component data, or an already parsed\n * ICAL.Component\n * @param {String} aData.tzid The timezone identifier\n * @param {String} aData.location The timezone locationw\n * @param {String} aData.tznames An alternative string representation of the\n * timezone\n * @param {Number} aData.latitude The latitude of the timezone\n * @param {Number} aData.longitude The longitude of the timezone\n */\n ICAL.Timezone.fromData = function icaltimezone_fromData(aData) {\n var tt = new ICAL.Timezone();\n return tt.fromData(aData);\n };\n\n /**\n * The instance describing the UTC timezone\n * @type {ICAL.Timezone}\n * @constant\n * @instance\n */\n ICAL.Timezone.utcTimezone = ICAL.Timezone.fromData({\n tzid: \"UTC\"\n });\n\n /**\n * The instance describing the local timezone\n * @type {ICAL.Timezone}\n * @constant\n * @instance\n */\n ICAL.Timezone.localTimezone = ICAL.Timezone.fromData({\n tzid: \"floating\"\n });\n\n /**\n * Adjust a timezone change object.\n * @private\n * @param {Object} change The timezone change object\n * @param {Number} days The extra amount of days\n * @param {Number} hours The extra amount of hours\n * @param {Number} minutes The extra amount of minutes\n * @param {Number} seconds The extra amount of seconds\n */\n ICAL.Timezone.adjust_change = function icaltimezone_adjust_change(change, days, hours, minutes, seconds) {\n return ICAL.Time.prototype.adjust.call(\n change,\n days,\n hours,\n minutes,\n seconds,\n change\n );\n };\n\n ICAL.Timezone._minimumExpansionYear = -1;\n ICAL.Timezone.MAX_YEAR = 2035; // TODO this is because of time_t, which we don't need. Still usefull?\n ICAL.Timezone.EXTRA_COVERAGE = 5;\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.TimezoneService = (function() {\n var zones;\n\n /**\n * @classdesc\n * Singleton class to contain timezones. Right now it is all manual registry in\n * the future we may use this class to download timezone information or handle\n * loading pre-expanded timezones.\n *\n * @namespace\n * @alias ICAL.TimezoneService\n */\n var TimezoneService = {\n get count() {\n return Object.keys(zones).length;\n },\n\n reset: function() {\n zones = Object.create(null);\n var utc = ICAL.Timezone.utcTimezone;\n\n zones.Z = utc;\n zones.UTC = utc;\n zones.GMT = utc;\n },\n\n /**\n * Checks if timezone id has been registered.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {Boolean} False, when not present\n */\n has: function(tzid) {\n return !!zones[tzid];\n },\n\n /**\n * Returns a timezone by its tzid if present.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {?ICAL.Timezone} The timezone, or null if not found\n */\n get: function(tzid) {\n return zones[tzid];\n },\n\n /**\n * Registers a timezone object or component.\n *\n * @param {String=} name\n * The name of the timezone. Defaults to the component's TZID if not\n * passed.\n * @param {ICAL.Component|ICAL.Timezone} zone\n * The initialized zone or vtimezone.\n */\n register: function(name, timezone) {\n if (name instanceof ICAL.Component) {\n if (name.name === 'vtimezone') {\n timezone = new ICAL.Timezone(name);\n name = timezone.tzid;\n }\n }\n\n if (timezone instanceof ICAL.Timezone) {\n zones[name] = timezone;\n } else {\n throw new TypeError('timezone must be ICAL.Timezone or ICAL.Component');\n }\n },\n\n /**\n * Removes a timezone by its tzid from the list.\n *\n * @param {String} tzid Timezone identifier (e.g. America/Los_Angeles)\n * @return {?ICAL.Timezone} The removed timezone, or null if not registered\n */\n remove: function(tzid) {\n return (delete zones[tzid]);\n }\n };\n\n // initialize defaults\n TimezoneService.reset();\n\n return TimezoneService;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n\n(function() {\n\n /**\n * @classdesc\n * iCalendar Time representation (similar to JS Date object). Fully\n * independent of system (OS) timezone / time. Unlike JS Date, the month\n * January is 1, not zero.\n *\n * @example\n * var time = new ICAL.Time({\n * year: 2012,\n * month: 10,\n * day: 11\n * minute: 0,\n * second: 0,\n * isDate: false\n * });\n *\n *\n * @alias ICAL.Time\n * @class\n * @param {Object} data Time initialization\n * @param {Number=} data.year The year for this date\n * @param {Number=} data.month The month for this date\n * @param {Number=} data.day The day for this date\n * @param {Number=} data.hour The hour for this date\n * @param {Number=} data.minute The minute for this date\n * @param {Number=} data.second The second for this date\n * @param {Boolean=} data.isDate If true, the instance represents a date (as\n * opposed to a date-time)\n * @param {ICAL.Timezone} zone timezone this position occurs in\n */\n ICAL.Time = function icaltime(data, zone) {\n this.wrappedJSObject = this;\n var time = this._time = Object.create(null);\n\n /* time defaults */\n time.year = 0;\n time.month = 1;\n time.day = 1;\n time.hour = 0;\n time.minute = 0;\n time.second = 0;\n time.isDate = false;\n\n this.fromData(data, zone);\n };\n\n ICAL.Time._dowCache = {};\n ICAL.Time._wnCache = {};\n\n ICAL.Time.prototype = {\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icaltime\"\n */\n icalclass: \"icaltime\",\n _cachedUnixTime: null,\n\n /**\n * The type name, to be used in the jCal object. This value may change and\n * is strictly defined by the {@link ICAL.Time#isDate isDate} member.\n * @readonly\n * @type {String}\n * @default \"date-time\"\n */\n get icaltype() {\n return this.isDate ? 'date' : 'date-time';\n },\n\n /**\n * The timezone for this time.\n * @type {ICAL.Timezone}\n */\n zone: null,\n\n /**\n * Internal uses to indicate that a change has been made and the next read\n * operation must attempt to normalize the value (for example changing the\n * day to 33).\n *\n * @type {Boolean}\n * @private\n */\n _pendingNormalization: false,\n\n /**\n * Returns a clone of the time object.\n *\n * @return {ICAL.Time} The cloned object\n */\n clone: function() {\n return new ICAL.Time(this._time, this.zone);\n },\n\n /**\n * Reset the time instance to epoch time\n */\n reset: function icaltime_reset() {\n this.fromData(ICAL.Time.epochTime);\n this.zone = ICAL.Timezone.utcTimezone;\n },\n\n /**\n * Reset the time instance to the given date/time values.\n *\n * @param {Number} year The year to set\n * @param {Number} month The month to set\n * @param {Number} day The day to set\n * @param {Number} hour The hour to set\n * @param {Number} minute The minute to set\n * @param {Number} second The second to set\n * @param {ICAL.Timezone} timezone The timezone to set\n */\n resetTo: function icaltime_resetTo(year, month, day,\n hour, minute, second, timezone) {\n this.fromData({\n year: year,\n month: month,\n day: day,\n hour: hour,\n minute: minute,\n second: second,\n zone: timezone\n });\n },\n\n /**\n * Set up the current instance from the Javascript date value.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} useUTC If true, the UTC values of the date will be used\n */\n fromJSDate: function icaltime_fromJSDate(aDate, useUTC) {\n if (!aDate) {\n this.reset();\n } else {\n if (useUTC) {\n this.zone = ICAL.Timezone.utcTimezone;\n this.year = aDate.getUTCFullYear();\n this.month = aDate.getUTCMonth() + 1;\n this.day = aDate.getUTCDate();\n this.hour = aDate.getUTCHours();\n this.minute = aDate.getUTCMinutes();\n this.second = aDate.getUTCSeconds();\n } else {\n this.zone = ICAL.Timezone.localTimezone;\n this.year = aDate.getFullYear();\n this.month = aDate.getMonth() + 1;\n this.day = aDate.getDate();\n this.hour = aDate.getHours();\n this.minute = aDate.getMinutes();\n this.second = aDate.getSeconds();\n }\n }\n this._cachedUnixTime = null;\n return this;\n },\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} aData Time initialization\n * @param {Number=} aData.year The year for this date\n * @param {Number=} aData.month The month for this date\n * @param {Number=} aData.day The day for this date\n * @param {Number=} aData.hour The hour for this date\n * @param {Number=} aData.minute The minute for this date\n * @param {Number=} aData.second The second for this date\n * @param {Boolean=} aData.isDate If true, the instance represents a date\n * (as opposed to a date-time)\n * @param {ICAL.Timezone=} aZone Timezone this position occurs in\n */\n fromData: function fromData(aData, aZone) {\n if (aData) {\n for (var key in aData) {\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(aData, key)) {\n // ical type cannot be set\n if (key === 'icaltype') continue;\n this[key] = aData[key];\n }\n }\n }\n\n if (aZone) {\n this.zone = aZone;\n }\n\n if (aData && !(\"isDate\" in aData)) {\n this.isDate = !(\"hour\" in aData);\n } else if (aData && (\"isDate\" in aData)) {\n this.isDate = aData.isDate;\n }\n\n if (aData && \"timezone\" in aData) {\n var zone = ICAL.TimezoneService.get(\n aData.timezone\n );\n\n this.zone = zone || ICAL.Timezone.localTimezone;\n }\n\n if (aData && \"zone\" in aData) {\n this.zone = aData.zone;\n }\n\n if (!this.zone) {\n this.zone = ICAL.Timezone.localTimezone;\n }\n\n this._cachedUnixTime = null;\n return this;\n },\n\n /**\n * Calculate the day of week.\n * @param {ICAL.Time.weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {ICAL.Time.weekDay}\n */\n dayOfWeek: function icaltime_dayOfWeek(aWeekStart) {\n var firstDow = aWeekStart || ICAL.Time.SUNDAY;\n var dowCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + firstDow;\n if (dowCacheKey in ICAL.Time._dowCache) {\n return ICAL.Time._dowCache[dowCacheKey];\n }\n\n // Using Zeller's algorithm\n var q = this.day;\n var m = this.month + (this.month < 3 ? 12 : 0);\n var Y = this.year - (this.month < 3 ? 1 : 0);\n\n var h = (q + Y + ICAL.helpers.trunc(((m + 1) * 26) / 10) + ICAL.helpers.trunc(Y / 4));\n /* istanbul ignore else */\n if (true /* gregorian */) {\n h += ICAL.helpers.trunc(Y / 100) * 6 + ICAL.helpers.trunc(Y / 400);\n } else {\n h += 5;\n }\n\n // Normalize to 1 = wkst\n h = ((h + 7 - firstDow) % 7) + 1;\n ICAL.Time._dowCache[dowCacheKey] = h;\n return h;\n },\n\n /**\n * Calculate the day of year.\n * @return {Number}\n */\n dayOfYear: function dayOfYear() {\n var is_leap = (ICAL.Time.isLeapYear(this.year) ? 1 : 0);\n var diypm = ICAL.Time.daysInYearPassedMonth;\n return diypm[is_leap][this.month - 1] + this.day;\n },\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * week. The resulting ICAL.Time instance is of icaltype date, even if this\n * is a date-time.\n *\n * @param {ICAL.Time.weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {ICAL.Time} The start of the week (cloned)\n */\n startOfWeek: function startOfWeek(aWeekStart) {\n var firstDow = aWeekStart || ICAL.Time.SUNDAY;\n var result = this.clone();\n result.day -= ((this.dayOfWeek() + 7 - firstDow) % 7);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the week.\n * The resulting ICAL.Time instance is of icaltype date, even if this is a\n * date-time.\n *\n * @param {ICAL.Time.weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {ICAL.Time} The end of the week (cloned)\n */\n endOfWeek: function endOfWeek(aWeekStart) {\n var firstDow = aWeekStart || ICAL.Time.SUNDAY;\n var result = this.clone();\n result.day += (7 - this.dayOfWeek() + firstDow - ICAL.Time.SUNDAY) % 7;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {ICAL.Time} The start of the month (cloned)\n */\n startOfMonth: function startOfMonth() {\n var result = this.clone();\n result.day = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * month. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {ICAL.Time} The end of the month (cloned)\n */\n endOfMonth: function endOfMonth() {\n var result = this.clone();\n result.day = ICAL.Time.daysInMonth(result.month, result.year);\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * Returns a copy of the current date/time, rewound to the start of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {ICAL.Time} The start of the year (cloned)\n */\n startOfYear: function startOfYear() {\n var result = this.clone();\n result.day = 1;\n result.month = 1;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * Returns a copy of the current date/time, shifted to the end of the\n * year. The resulting ICAL.Time instance is of icaltype date, even if\n * this is a date-time.\n *\n * @return {ICAL.Time} The end of the year (cloned)\n */\n endOfYear: function endOfYear() {\n var result = this.clone();\n result.day = 31;\n result.month = 12;\n result.isDate = true;\n result.hour = 0;\n result.minute = 0;\n result.second = 0;\n return result;\n },\n\n /**\n * First calculates the start of the week, then returns the day of year for\n * this date. If the day falls into the previous year, the day is zero or negative.\n *\n * @param {ICAL.Time.weekDay=} aFirstDayOfWeek\n * The week start weekday, defaults to SUNDAY\n * @return {Number} The calculated day of year\n */\n startDoyWeek: function startDoyWeek(aFirstDayOfWeek) {\n var firstDow = aFirstDayOfWeek || ICAL.Time.SUNDAY;\n var delta = this.dayOfWeek() - firstDow;\n if (delta < 0) delta += 7;\n return this.dayOfYear() - delta;\n },\n\n /**\n * Get the dominical letter for the current year. Letters range from A - G\n * for common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n getDominicalLetter: function() {\n return ICAL.Time.getDominicalLetter(this.year);\n },\n\n /**\n * Finds the nthWeekDay relative to the current month (not day). The\n * returned value is a day relative the month that this month belongs to so\n * 1 would indicate the first of the month and 40 would indicate a day in\n * the following month.\n *\n * @param {Number} aDayOfWeek Day of the week see the day name constants\n * @param {Number} aPos Nth occurrence of a given week day values\n * of 1 and 0 both indicate the first weekday of that type. aPos may\n * be either positive or negative\n *\n * @return {Number} numeric value indicating a day relative\n * to the current month of this time object\n */\n nthWeekDay: function icaltime_nthWeekDay(aDayOfWeek, aPos) {\n var daysInMonth = ICAL.Time.daysInMonth(this.month, this.year);\n var weekday;\n var pos = aPos;\n\n var start = 0;\n\n var otherDay = this.clone();\n\n if (pos >= 0) {\n otherDay.day = 1;\n\n // because 0 means no position has been given\n // 1 and 0 indicate the same day.\n if (pos != 0) {\n // remove the extra numeric value\n pos--;\n }\n\n // set current start offset to current day.\n start = otherDay.day;\n\n // find the current day of week\n var startDow = otherDay.dayOfWeek();\n\n // calculate the difference between current\n // day of the week and desired day of the week\n var offset = aDayOfWeek - startDow;\n\n\n // if the offset goes into the past\n // week we add 7 so it goes into the next\n // week. We only want to go forward in time here.\n if (offset < 0)\n // this is really important otherwise we would\n // end up with dates from in the past.\n offset += 7;\n\n // add offset to start so start is the same\n // day of the week as the desired day of week.\n start += offset;\n\n // because we are going to add (and multiply)\n // the numeric value of the day we subtract it\n // from the start position so not to add it twice.\n start -= aDayOfWeek;\n\n // set week day\n weekday = aDayOfWeek;\n } else {\n\n // then we set it to the last day in the current month\n otherDay.day = daysInMonth;\n\n // find the ends weekday\n var endDow = otherDay.dayOfWeek();\n\n pos++;\n\n weekday = (endDow - aDayOfWeek);\n\n if (weekday < 0) {\n weekday += 7;\n }\n\n weekday = daysInMonth - weekday;\n }\n\n weekday += pos * 7;\n\n return start + weekday;\n },\n\n /**\n * Checks if current time is the nth weekday, relative to the current\n * month. Will always return false when rule resolves outside of current\n * month.\n *\n * @param {ICAL.Time.weekDay} aDayOfWeek Day of week to check\n * @param {Number} aPos Relative position\n * @return {Boolean} True, if it is the nth weekday\n */\n isNthWeekDay: function(aDayOfWeek, aPos) {\n var dow = this.dayOfWeek();\n\n if (aPos === 0 && dow === aDayOfWeek) {\n return true;\n }\n\n // get pos\n var day = this.nthWeekDay(aDayOfWeek, aPos);\n\n if (day === this.day) {\n return true;\n }\n\n return false;\n },\n\n /**\n * Calculates the ISO 8601 week number. The first week of a year is the\n * week that contains the first Thursday. The year can have 53 weeks, if\n * January 1st is a Friday.\n *\n * Note there are regions where the first week of the year is the one that\n * starts on January 1st, which may offset the week number. Also, if a\n * different week start is specified, this will also affect the week\n * number.\n *\n * @see ICAL.Time.weekOneStarts\n * @param {ICAL.Time.weekDay} aWeekStart The weekday the week starts with\n * @return {Number} The ISO week number\n */\n weekNumber: function weekNumber(aWeekStart) {\n var wnCacheKey = (this.year << 12) + (this.month << 8) + (this.day << 3) + aWeekStart;\n if (wnCacheKey in ICAL.Time._wnCache) {\n return ICAL.Time._wnCache[wnCacheKey];\n }\n // This function courtesty of Julian Bucknall, published under the MIT license\n // http://www.boyet.com/articles/publishedarticles/calculatingtheisoweeknumb.html\n // plus some fixes to be able to use different week starts.\n var week1;\n\n var dt = this.clone();\n dt.isDate = true;\n var isoyear = this.year;\n\n if (dt.month == 12 && dt.day > 25) {\n week1 = ICAL.Time.weekOneStarts(isoyear + 1, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = ICAL.Time.weekOneStarts(isoyear, aWeekStart);\n } else {\n isoyear++;\n }\n } else {\n week1 = ICAL.Time.weekOneStarts(isoyear, aWeekStart);\n if (dt.compare(week1) < 0) {\n week1 = ICAL.Time.weekOneStarts(--isoyear, aWeekStart);\n }\n }\n\n var daysBetween = (dt.subtractDate(week1).toSeconds() / 86400);\n var answer = ICAL.helpers.trunc(daysBetween / 7) + 1;\n ICAL.Time._wnCache[wnCacheKey] = answer;\n return answer;\n },\n\n /**\n * Adds the duration to the current time. The instance is modified in\n * place.\n *\n * @param {ICAL.Duration} aDuration The duration to add\n */\n addDuration: function icaltime_add(aDuration) {\n var mult = (aDuration.isNegative ? -1 : 1);\n\n // because of the duration optimizations it is much\n // more efficient to grab all the values up front\n // then set them directly (which will avoid a normalization call).\n // So we don't actually normalize until we need it.\n var second = this.second;\n var minute = this.minute;\n var hour = this.hour;\n var day = this.day;\n\n second += mult * aDuration.seconds;\n minute += mult * aDuration.minutes;\n hour += mult * aDuration.hours;\n day += mult * aDuration.days;\n day += mult * 7 * aDuration.weeks;\n\n this.second = second;\n this.minute = minute;\n this.hour = hour;\n this.day = day;\n\n this._cachedUnixTime = null;\n },\n\n /**\n * Subtract the date details (_excluding_ timezone). Useful for finding\n * the relative difference between two time objects excluding their\n * timezone differences.\n *\n * @param {ICAL.Time} aDate The date to substract\n * @return {ICAL.Duration} The difference as a duration\n */\n subtractDate: function icaltime_subtract(aDate) {\n var unixTime = this.toUnixTime() + this.utcOffset();\n var other = aDate.toUnixTime() + aDate.utcOffset();\n return ICAL.Duration.fromSeconds(unixTime - other);\n },\n\n /**\n * Subtract the date details, taking timezones into account.\n *\n * @param {ICAL.Time} aDate The date to subtract\n * @return {ICAL.Duration} The difference in duration\n */\n subtractDateTz: function icaltime_subtract_abs(aDate) {\n var unixTime = this.toUnixTime();\n var other = aDate.toUnixTime();\n return ICAL.Duration.fromSeconds(unixTime - other);\n },\n\n /**\n * Compares the ICAL.Time instance with another one.\n *\n * @param {ICAL.Duration} aOther The instance to compare with\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compare: function icaltime_compare(other) {\n var a = this.toUnixTime();\n var b = other.toUnixTime();\n\n if (a > b) return 1;\n if (b > a) return -1;\n return 0;\n },\n\n /**\n * Compares only the date part of this instance with another one.\n *\n * @param {ICAL.Duration} other The instance to compare with\n * @param {ICAL.Timezone} tz The timezone to compare in\n * @return {Number} -1, 0 or 1 for less/equal/greater\n */\n compareDateOnlyTz: function icaltime_compareDateOnlyTz(other, tz) {\n function cmp(attr) {\n return ICAL.Time._cmp_attr(a, b, attr);\n }\n var a = this.convertToZone(tz);\n var b = other.convertToZone(tz);\n var rc = 0;\n\n if ((rc = cmp(\"year\")) != 0) return rc;\n if ((rc = cmp(\"month\")) != 0) return rc;\n if ((rc = cmp(\"day\")) != 0) return rc;\n\n return rc;\n },\n\n /**\n * Convert the instance into another timezone. The returned ICAL.Time\n * instance is always a copy.\n *\n * @param {ICAL.Timezone} zone The zone to convert to\n * @return {ICAL.Time} The copy, converted to the zone\n */\n convertToZone: function convertToZone(zone) {\n var copy = this.clone();\n var zone_equals = (this.zone.tzid == zone.tzid);\n\n if (!this.isDate && !zone_equals) {\n ICAL.Timezone.convert_time(copy, this.zone, zone);\n }\n\n copy.zone = zone;\n return copy;\n },\n\n /**\n * Calculates the UTC offset of the current date/time in the timezone it is\n * in.\n *\n * @return {Number} UTC offset in seconds\n */\n utcOffset: function utc_offset() {\n if (this.zone == ICAL.Timezone.localTimezone ||\n this.zone == ICAL.Timezone.utcTimezone) {\n return 0;\n } else {\n return this.zone.utcOffset(this);\n }\n },\n\n /**\n * Returns an RFC 5545 compliant ical representation of this object.\n *\n * @return {String} ical date/date-time\n */\n toICALString: function() {\n var string = this.toString();\n\n if (string.length > 10) {\n return ICAL.design.icalendar.value['date-time'].toICAL(string);\n } else {\n return ICAL.design.icalendar.value.date.toICAL(string);\n }\n },\n\n /**\n * The string representation of this date/time, in jCal form\n * (including : and - separators).\n * @return {String}\n */\n toString: function toString() {\n var result = this.year + '-' +\n ICAL.helpers.pad2(this.month) + '-' +\n ICAL.helpers.pad2(this.day);\n\n if (!this.isDate) {\n result += 'T' + ICAL.helpers.pad2(this.hour) + ':' +\n ICAL.helpers.pad2(this.minute) + ':' +\n ICAL.helpers.pad2(this.second);\n\n if (this.zone === ICAL.Timezone.utcTimezone) {\n result += 'Z';\n }\n }\n\n return result;\n },\n\n /**\n * Converts the current instance to a Javascript date\n * @return {Date}\n */\n toJSDate: function toJSDate() {\n if (this.zone == ICAL.Timezone.localTimezone) {\n if (this.isDate) {\n return new Date(this.year, this.month - 1, this.day);\n } else {\n return new Date(this.year, this.month - 1, this.day,\n this.hour, this.minute, this.second, 0);\n }\n } else {\n return new Date(this.toUnixTime() * 1000);\n }\n },\n\n _normalize: function icaltime_normalize() {\n var isDate = this._time.isDate;\n if (this._time.isDate) {\n this._time.hour = 0;\n this._time.minute = 0;\n this._time.second = 0;\n }\n this.adjust(0, 0, 0, 0);\n\n return this;\n },\n\n /**\n * Adjust the date/time by the given offset\n *\n * @param {Number} aExtraDays The extra amount of days\n * @param {Number} aExtraHours The extra amount of hours\n * @param {Number} aExtraMinutes The extra amount of minutes\n * @param {Number} aExtraSeconds The extra amount of seconds\n * @param {Number=} aTime The time to adjust, defaults to the\n * current instance.\n */\n adjust: function icaltime_adjust(aExtraDays, aExtraHours,\n aExtraMinutes, aExtraSeconds, aTime) {\n\n var minutesOverflow, hoursOverflow,\n daysOverflow = 0, yearsOverflow = 0;\n\n var second, minute, hour, day;\n var daysInMonth;\n\n var time = aTime || this._time;\n\n if (!time.isDate) {\n second = time.second + aExtraSeconds;\n time.second = second % 60;\n minutesOverflow = ICAL.helpers.trunc(second / 60);\n if (time.second < 0) {\n time.second += 60;\n minutesOverflow--;\n }\n\n minute = time.minute + aExtraMinutes + minutesOverflow;\n time.minute = minute % 60;\n hoursOverflow = ICAL.helpers.trunc(minute / 60);\n if (time.minute < 0) {\n time.minute += 60;\n hoursOverflow--;\n }\n\n hour = time.hour + aExtraHours + hoursOverflow;\n\n time.hour = hour % 24;\n daysOverflow = ICAL.helpers.trunc(hour / 24);\n if (time.hour < 0) {\n time.hour += 24;\n daysOverflow--;\n }\n }\n\n\n // Adjust month and year first, because we need to know what month the day\n // is in before adjusting it.\n if (time.month > 12) {\n yearsOverflow = ICAL.helpers.trunc((time.month - 1) / 12);\n } else if (time.month < 1) {\n yearsOverflow = ICAL.helpers.trunc(time.month / 12) - 1;\n }\n\n time.year += yearsOverflow;\n time.month -= 12 * yearsOverflow;\n\n // Now take care of the days (and adjust month if needed)\n day = time.day + aExtraDays + daysOverflow;\n\n if (day > 0) {\n for (;;) {\n daysInMonth = ICAL.Time.daysInMonth(time.month, time.year);\n if (day <= daysInMonth) {\n break;\n }\n\n time.month++;\n if (time.month > 12) {\n time.year++;\n time.month = 1;\n }\n\n day -= daysInMonth;\n }\n } else {\n while (day <= 0) {\n if (time.month == 1) {\n time.year--;\n time.month = 12;\n } else {\n time.month--;\n }\n\n day += ICAL.Time.daysInMonth(time.month, time.year);\n }\n }\n\n time.day = day;\n\n this._cachedUnixTime = null;\n return this;\n },\n\n /**\n * Sets up the current instance from unix time, the number of seconds since\n * January 1st, 1970.\n *\n * @param {Number} seconds The seconds to set up with\n */\n fromUnixTime: function fromUnixTime(seconds) {\n this.zone = ICAL.Timezone.utcTimezone;\n var epoch = ICAL.Time.epochTime.clone();\n epoch.adjust(0, 0, 0, seconds);\n\n this.year = epoch.year;\n this.month = epoch.month;\n this.day = epoch.day;\n this.hour = epoch.hour;\n this.minute = epoch.minute;\n this.second = Math.floor(epoch.second);\n\n this._cachedUnixTime = null;\n },\n\n /**\n * Converts the current instance to seconds since January 1st 1970.\n *\n * @return {Number} Seconds since 1970\n */\n toUnixTime: function toUnixTime() {\n if (this._cachedUnixTime !== null) {\n return this._cachedUnixTime;\n }\n var offset = this.utcOffset();\n\n // we use the offset trick to ensure\n // that we are getting the actual UTC time\n var ms = Date.UTC(\n this.year,\n this.month - 1,\n this.day,\n this.hour,\n this.minute,\n this.second - offset\n );\n\n // seconds\n this._cachedUnixTime = ms / 1000;\n return this._cachedUnixTime;\n },\n\n /**\n * Converts time to into Object which can be serialized then re-created\n * using the constructor.\n *\n * @example\n * // toJSON will automatically be called\n * var json = JSON.stringify(mytime);\n *\n * var deserialized = JSON.parse(json);\n *\n * var time = new ICAL.Time(deserialized);\n *\n * @return {Object}\n */\n toJSON: function() {\n var copy = [\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'isDate'\n ];\n\n var result = Object.create(null);\n\n var i = 0;\n var len = copy.length;\n var prop;\n\n for (; i < len; i++) {\n prop = copy[i];\n result[prop] = this[prop];\n }\n\n if (this.zone) {\n result.timezone = this.zone.tzid;\n }\n\n return result;\n }\n\n };\n\n (function setupNormalizeAttributes() {\n // This needs to run before any instances are created!\n function defineAttr(attr) {\n Object.defineProperty(ICAL.Time.prototype, attr, {\n get: function getTimeAttr() {\n if (this._pendingNormalization) {\n this._normalize();\n this._pendingNormalization = false;\n }\n\n return this._time[attr];\n },\n set: function setTimeAttr(val) {\n // Check if isDate will be set and if was not set to normalize date.\n // This avoids losing days when seconds, minutes and hours are zeroed\n // what normalize will do when time is a date.\n if (attr === \"isDate\" && val && !this._time.isDate) {\n this.adjust(0, 0, 0, 0);\n }\n this._cachedUnixTime = null;\n this._pendingNormalization = true;\n this._time[attr] = val;\n\n return val;\n }\n });\n\n }\n\n /* istanbul ignore else */\n if (\"defineProperty\" in Object) {\n defineAttr(\"year\");\n defineAttr(\"month\");\n defineAttr(\"day\");\n defineAttr(\"hour\");\n defineAttr(\"minute\");\n defineAttr(\"second\");\n defineAttr(\"isDate\");\n }\n })();\n\n /**\n * Returns the days in the given month\n *\n * @param {Number} month The month to check\n * @param {Number} year The year to check\n * @return {Number} The number of days in the month\n */\n ICAL.Time.daysInMonth = function icaltime_daysInMonth(month, year) {\n var _daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var days = 30;\n\n if (month < 1 || month > 12) return days;\n\n days = _daysInMonth[month];\n\n if (month == 2) {\n days += ICAL.Time.isLeapYear(year);\n }\n\n return days;\n };\n\n /**\n * Checks if the year is a leap year\n *\n * @param {Number} year The year to check\n * @return {Boolean} True, if the year is a leap year\n */\n ICAL.Time.isLeapYear = function isLeapYear(year) {\n if (year <= 1752) {\n return ((year % 4) == 0);\n } else {\n return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));\n }\n };\n\n /**\n * Create a new ICAL.Time from the day of year and year. The date is returned\n * in floating timezone.\n *\n * @param {Number} aDayOfYear The day of year\n * @param {Number} aYear The year to create the instance in\n * @return {ICAL.Time} The created instance with the calculated date\n */\n ICAL.Time.fromDayOfYear = function icaltime_fromDayOfYear(aDayOfYear, aYear) {\n var year = aYear;\n var doy = aDayOfYear;\n var tt = new ICAL.Time();\n tt.auto_normalize = false;\n var is_leap = (ICAL.Time.isLeapYear(year) ? 1 : 0);\n\n if (doy < 1) {\n year--;\n is_leap = (ICAL.Time.isLeapYear(year) ? 1 : 0);\n doy += ICAL.Time.daysInYearPassedMonth[is_leap][12];\n return ICAL.Time.fromDayOfYear(doy, year);\n } else if (doy > ICAL.Time.daysInYearPassedMonth[is_leap][12]) {\n is_leap = (ICAL.Time.isLeapYear(year) ? 1 : 0);\n doy -= ICAL.Time.daysInYearPassedMonth[is_leap][12];\n year++;\n return ICAL.Time.fromDayOfYear(doy, year);\n }\n\n tt.year = year;\n tt.isDate = true;\n\n for (var month = 11; month >= 0; month--) {\n if (doy > ICAL.Time.daysInYearPassedMonth[is_leap][month]) {\n tt.month = month + 1;\n tt.day = doy - ICAL.Time.daysInYearPassedMonth[is_leap][month];\n break;\n }\n }\n\n tt.auto_normalize = true;\n return tt;\n };\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @deprecated Use {@link ICAL.Time.fromDateString} instead\n * @param {String} str The string to create from\n * @return {ICAL.Time} The date/time instance\n */\n ICAL.Time.fromStringv2 = function fromString(str) {\n return new ICAL.Time({\n year: parseInt(str.substr(0, 4), 10),\n month: parseInt(str.substr(5, 2), 10),\n day: parseInt(str.substr(8, 2), 10),\n isDate: true\n });\n };\n\n /**\n * Returns a new ICAL.Time instance from a date string, e.g 2015-01-02.\n *\n * @param {String} aValue The string to create from\n * @return {ICAL.Time} The date/time instance\n */\n ICAL.Time.fromDateString = function(aValue) {\n // Dates should have no timezone.\n // Google likes to sometimes specify Z on dates\n // we specifically ignore that to avoid issues.\n\n // YYYY-MM-DD\n // 2012-10-10\n return new ICAL.Time({\n year: ICAL.helpers.strictParseInt(aValue.substr(0, 4)),\n month: ICAL.helpers.strictParseInt(aValue.substr(5, 2)),\n day: ICAL.helpers.strictParseInt(aValue.substr(8, 2)),\n isDate: true\n });\n };\n\n /**\n * Returns a new ICAL.Time instance from a date-time string, e.g\n * 2015-01-02T03:04:05. If a property is specified, the timezone is set up\n * from the property's TZID parameter.\n *\n * @param {String} aValue The string to create from\n * @param {ICAL.Property=} prop The property the date belongs to\n * @return {ICAL.Time} The date/time instance\n */\n ICAL.Time.fromDateTimeString = function(aValue, prop) {\n if (aValue.length < 19) {\n throw new Error(\n 'invalid date-time value: \"' + aValue + '\"'\n );\n }\n\n var zone;\n\n if (aValue[19] && aValue[19] === 'Z') {\n zone = 'Z';\n } else if (prop) {\n zone = prop.getParameter('tzid');\n }\n\n // 2012-10-10T10:10:10(Z)?\n var time = new ICAL.Time({\n year: ICAL.helpers.strictParseInt(aValue.substr(0, 4)),\n month: ICAL.helpers.strictParseInt(aValue.substr(5, 2)),\n day: ICAL.helpers.strictParseInt(aValue.substr(8, 2)),\n hour: ICAL.helpers.strictParseInt(aValue.substr(11, 2)),\n minute: ICAL.helpers.strictParseInt(aValue.substr(14, 2)),\n second: ICAL.helpers.strictParseInt(aValue.substr(17, 2)),\n timezone: zone\n });\n\n return time;\n };\n\n /**\n * Returns a new ICAL.Time instance from a date or date-time string,\n *\n * @param {String} aValue The string to create from\n * @param {ICAL.Property=} prop The property the date belongs to\n * @return {ICAL.Time} The date/time instance\n */\n ICAL.Time.fromString = function fromString(aValue, aProperty) {\n if (aValue.length > 10) {\n return ICAL.Time.fromDateTimeString(aValue, aProperty);\n } else {\n return ICAL.Time.fromDateString(aValue);\n }\n };\n\n /**\n * Creates a new ICAL.Time instance from the given Javascript Date.\n *\n * @param {?Date} aDate The Javascript Date to read, or null to reset\n * @param {Boolean} useUTC If true, the UTC values of the date will be used\n */\n ICAL.Time.fromJSDate = function fromJSDate(aDate, useUTC) {\n var tt = new ICAL.Time();\n return tt.fromJSDate(aDate, useUTC);\n };\n\n /**\n * Creates a new ICAL.Time instance from the the passed data object.\n *\n * @param {Object} aData Time initialization\n * @param {Number=} aData.year The year for this date\n * @param {Number=} aData.month The month for this date\n * @param {Number=} aData.day The day for this date\n * @param {Number=} aData.hour The hour for this date\n * @param {Number=} aData.minute The minute for this date\n * @param {Number=} aData.second The second for this date\n * @param {Boolean=} aData.isDate If true, the instance represents a date\n * (as opposed to a date-time)\n * @param {ICAL.Timezone=} aZone Timezone this position occurs in\n */\n ICAL.Time.fromData = function fromData(aData, aZone) {\n var t = new ICAL.Time();\n return t.fromData(aData, aZone);\n };\n\n /**\n * Creates a new ICAL.Time instance from the current moment.\n * The instance is “floating” - has no timezone relation.\n * To create an instance considering the time zone, call\n * ICAL.Time.fromJSDate(new Date(), true)\n * @return {ICAL.Time}\n */\n ICAL.Time.now = function icaltime_now() {\n return ICAL.Time.fromJSDate(new Date(), false);\n };\n\n /**\n * Returns the date on which ISO week number 1 starts.\n *\n * @see ICAL.Time#weekNumber\n * @param {Number} aYear The year to search in\n * @param {ICAL.Time.weekDay=} aWeekStart The week start weekday, used for calculation.\n * @return {ICAL.Time} The date on which week number 1 starts\n */\n ICAL.Time.weekOneStarts = function weekOneStarts(aYear, aWeekStart) {\n var t = ICAL.Time.fromData({\n year: aYear,\n month: 1,\n day: 1,\n isDate: true\n });\n\n var dow = t.dayOfWeek();\n var wkst = aWeekStart || ICAL.Time.DEFAULT_WEEK_START;\n if (dow > ICAL.Time.THURSDAY) {\n t.day += 7;\n }\n if (wkst > ICAL.Time.THURSDAY) {\n t.day -= 7;\n }\n\n t.day -= dow - wkst;\n\n return t;\n };\n\n /**\n * Get the dominical letter for the given year. Letters range from A - G for\n * common years, and AG to GF for leap years.\n *\n * @param {Number} yr The year to retrieve the letter for\n * @return {String} The dominical letter.\n */\n ICAL.Time.getDominicalLetter = function(yr) {\n var LTRS = \"GFEDCBA\";\n var dom = (yr + (yr / 4 | 0) + (yr / 400 | 0) - (yr / 100 | 0) - 1) % 7;\n var isLeap = ICAL.Time.isLeapYear(yr);\n if (isLeap) {\n return LTRS[(dom + 6) % 7] + LTRS[dom];\n } else {\n return LTRS[dom];\n }\n };\n\n /**\n * January 1st, 1970 as an ICAL.Time.\n * @type {ICAL.Time}\n * @constant\n * @instance\n */\n ICAL.Time.epochTime = ICAL.Time.fromData({\n year: 1970,\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n isDate: false,\n timezone: \"Z\"\n });\n\n ICAL.Time._cmp_attr = function _cmp_attr(a, b, attr) {\n if (a[attr] > b[attr]) return 1;\n if (a[attr] < b[attr]) return -1;\n return 0;\n };\n\n /**\n * The days that have passed in the year after a given month. The array has\n * two members, one being an array of passed days for non-leap years, the\n * other analog for leap years.\n * @example\n * var isLeapYear = ICAL.Time.isLeapYear(year);\n * var passedDays = ICAL.Time.daysInYearPassedMonth[isLeapYear][month];\n * @type {Array.<Array.<Number>>}\n */\n ICAL.Time.daysInYearPassedMonth = [\n [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365],\n [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]\n ];\n\n /**\n * The weekday, 1 = SUNDAY, 7 = SATURDAY. Access via\n * ICAL.Time.MONDAY, ICAL.Time.TUESDAY, ...\n *\n * @typedef {Number} weekDay\n * @memberof ICAL.Time\n */\n\n ICAL.Time.SUNDAY = 1;\n ICAL.Time.MONDAY = 2;\n ICAL.Time.TUESDAY = 3;\n ICAL.Time.WEDNESDAY = 4;\n ICAL.Time.THURSDAY = 5;\n ICAL.Time.FRIDAY = 6;\n ICAL.Time.SATURDAY = 7;\n\n /**\n * The default weekday for the WKST part.\n * @constant\n * @default ICAL.Time.MONDAY\n */\n ICAL.Time.DEFAULT_WEEK_START = ICAL.Time.MONDAY;\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2015 */\n\n\n\n(function() {\n\n /**\n * Describes a vCard time, which has slight differences to the ICAL.Time.\n * Properties can be null if not specified, for example for dates with\n * reduced accuracy or truncation.\n *\n * Note that currently not all methods are correctly re-implemented for\n * VCardTime. For example, comparison will have undefined results when some\n * members are null.\n *\n * Also, normalization is not yet implemented for this class!\n *\n * @alias ICAL.VCardTime\n * @class\n * @extends {ICAL.Time}\n * @param {Object} data The data for the time instance\n * @param {Number=} data.year The year for this date\n * @param {Number=} data.month The month for this date\n * @param {Number=} data.day The day for this date\n * @param {Number=} data.hour The hour for this date\n * @param {Number=} data.minute The minute for this date\n * @param {Number=} data.second The second for this date\n * @param {ICAL.Timezone|ICAL.UtcOffset} zone The timezone to use\n * @param {String} icaltype The type for this date/time object\n */\n ICAL.VCardTime = function(data, zone, icaltype) {\n this.wrappedJSObject = this;\n var time = this._time = Object.create(null);\n\n time.year = null;\n time.month = null;\n time.day = null;\n time.hour = null;\n time.minute = null;\n time.second = null;\n\n this.icaltype = icaltype || \"date-and-or-time\";\n\n this.fromData(data, zone);\n };\n ICAL.helpers.inherits(ICAL.Time, ICAL.VCardTime, /** @lends ICAL.VCardTime */ {\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"vcardtime\"\n */\n icalclass: \"vcardtime\",\n\n /**\n * The type name, to be used in the jCal object.\n * @type {String}\n * @default \"date-and-or-time\"\n */\n icaltype: \"date-and-or-time\",\n\n /**\n * The timezone. This can either be floating, UTC, or an instance of\n * ICAL.UtcOffset.\n * @type {ICAL.Timezone|ICAL.UtcOFfset}\n */\n zone: null,\n\n /**\n * Returns a clone of the vcard date/time object.\n *\n * @return {ICAL.VCardTime} The cloned object\n */\n clone: function() {\n return new ICAL.VCardTime(this._time, this.zone, this.icaltype);\n },\n\n _normalize: function() {\n return this;\n },\n\n /**\n * @inheritdoc\n */\n utcOffset: function() {\n if (this.zone instanceof ICAL.UtcOffset) {\n return this.zone.toSeconds();\n } else {\n return ICAL.Time.prototype.utcOffset.apply(this, arguments);\n }\n },\n\n /**\n * Returns an RFC 6350 compliant representation of this object.\n *\n * @return {String} vcard date/time string\n */\n toICALString: function() {\n return ICAL.design.vcard.value[this.icaltype].toICAL(this.toString());\n },\n\n /**\n * The string representation of this date/time, in jCard form\n * (including : and - separators).\n * @return {String}\n */\n toString: function toString() {\n var p2 = ICAL.helpers.pad2;\n var y = this.year, m = this.month, d = this.day;\n var h = this.hour, mm = this.minute, s = this.second;\n\n var hasYear = y !== null, hasMonth = m !== null, hasDay = d !== null;\n var hasHour = h !== null, hasMinute = mm !== null, hasSecond = s !== null;\n\n var datepart = (hasYear ? p2(y) + (hasMonth || hasDay ? '-' : '') : (hasMonth || hasDay ? '--' : '')) +\n (hasMonth ? p2(m) : '') +\n (hasDay ? '-' + p2(d) : '');\n var timepart = (hasHour ? p2(h) : '-') + (hasHour && hasMinute ? ':' : '') +\n (hasMinute ? p2(mm) : '') + (!hasHour && !hasMinute ? '-' : '') +\n (hasMinute && hasSecond ? ':' : '') +\n (hasSecond ? p2(s) : '');\n\n var zone;\n if (this.zone === ICAL.Timezone.utcTimezone) {\n zone = 'Z';\n } else if (this.zone instanceof ICAL.UtcOffset) {\n zone = this.zone.toString();\n } else if (this.zone === ICAL.Timezone.localTimezone) {\n zone = '';\n } else if (this.zone instanceof ICAL.Timezone) {\n var offset = ICAL.UtcOffset.fromSeconds(this.zone.utcOffset(this));\n zone = offset.toString();\n } else {\n zone = '';\n }\n\n switch (this.icaltype) {\n case \"time\":\n return timepart + zone;\n case \"date-and-or-time\":\n case \"date-time\":\n return datepart + (timepart == '--' ? '' : 'T' + timepart + zone);\n case \"date\":\n return datepart;\n }\n return null;\n }\n });\n\n /**\n * Returns a new ICAL.VCardTime instance from a date and/or time string.\n *\n * @param {String} aValue The string to create from\n * @param {String} aIcalType The type for this instance, e.g. date-and-or-time\n * @return {ICAL.VCardTime} The date/time instance\n */\n ICAL.VCardTime.fromDateAndOrTimeString = function(aValue, aIcalType) {\n function part(v, s, e) {\n return v ? ICAL.helpers.strictParseInt(v.substr(s, e)) : null;\n }\n var parts = aValue.split('T');\n var dt = parts[0], tmz = parts[1];\n var splitzone = tmz ? ICAL.design.vcard.value.time._splitZone(tmz) : [];\n var zone = splitzone[0], tm = splitzone[1];\n\n var stoi = ICAL.helpers.strictParseInt;\n var dtlen = dt ? dt.length : 0;\n var tmlen = tm ? tm.length : 0;\n\n var hasDashDate = dt && dt[0] == '-' && dt[1] == '-';\n var hasDashTime = tm && tm[0] == '-';\n\n var o = {\n year: hasDashDate ? null : part(dt, 0, 4),\n month: hasDashDate && (dtlen == 4 || dtlen == 7) ? part(dt, 2, 2) : dtlen == 7 ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 5, 2) : null,\n day: dtlen == 5 ? part(dt, 3, 2) : dtlen == 7 && hasDashDate ? part(dt, 5, 2) : dtlen == 10 ? part(dt, 8, 2) : null,\n\n hour: hasDashTime ? null : part(tm, 0, 2),\n minute: hasDashTime && tmlen == 3 ? part(tm, 1, 2) : tmlen > 4 ? hasDashTime ? part(tm, 1, 2) : part(tm, 3, 2) : null,\n second: tmlen == 4 ? part(tm, 2, 2) : tmlen == 6 ? part(tm, 4, 2) : tmlen == 8 ? part(tm, 6, 2) : null\n };\n\n if (zone == 'Z') {\n zone = ICAL.Timezone.utcTimezone;\n } else if (zone && zone[3] == ':') {\n zone = ICAL.UtcOffset.fromString(zone);\n } else {\n zone = null;\n }\n\n return new ICAL.VCardTime(o, zone, aIcalType);\n };\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n\n(function() {\n var DOW_MAP = {\n SU: ICAL.Time.SUNDAY,\n MO: ICAL.Time.MONDAY,\n TU: ICAL.Time.TUESDAY,\n WE: ICAL.Time.WEDNESDAY,\n TH: ICAL.Time.THURSDAY,\n FR: ICAL.Time.FRIDAY,\n SA: ICAL.Time.SATURDAY\n };\n\n var REVERSE_DOW_MAP = {};\n for (var key in DOW_MAP) {\n /* istanbul ignore else */\n if (DOW_MAP.hasOwnProperty(key)) {\n REVERSE_DOW_MAP[DOW_MAP[key]] = key;\n }\n }\n\n var COPY_PARTS = [\"BYSECOND\", \"BYMINUTE\", \"BYHOUR\", \"BYDAY\",\n \"BYMONTHDAY\", \"BYYEARDAY\", \"BYWEEKNO\",\n \"BYMONTH\", \"BYSETPOS\"];\n\n /**\n * @classdesc\n * This class represents the \"recur\" value type, with various calculation\n * and manipulation methods.\n *\n * @class\n * @alias ICAL.Recur\n * @param {Object} data An object with members of the recurrence\n * @param {ICAL.Recur.frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {ICAL.Time.weekDay=} data.wkst The week start value\n * @param {ICAL.Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.<Number>=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.<Number>=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.<Number>=} data.byhour The hours for the BYHOUR part\n * @param {Array.<String>=} data.byday The BYDAY values\n * @param {Array.<Number>=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.<Number>=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.<Number>=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.<Number>=} data.bymonth The month for the BYMONTH part\n * @param {Array.<Number>=} data.bysetpos The positionals for the BYSETPOS part\n */\n ICAL.Recur = function icalrecur(data) {\n this.wrappedJSObject = this;\n this.parts = {};\n\n if (data && typeof(data) === 'object') {\n this.fromData(data);\n }\n };\n\n ICAL.Recur.prototype = {\n /**\n * An object holding the BY-parts of the recurrence rule\n * @type {Object}\n */\n parts: null,\n\n /**\n * The interval value for the recurrence rule.\n * @type {Number}\n */\n interval: 1,\n\n /**\n * The week start day\n *\n * @type {ICAL.Time.weekDay}\n * @default ICAL.Time.MONDAY\n */\n wkst: ICAL.Time.MONDAY,\n\n /**\n * The end of the recurrence\n * @type {?ICAL.Time}\n */\n until: null,\n\n /**\n * The maximum number of occurrences\n * @type {?Number}\n */\n count: null,\n\n /**\n * The frequency value.\n * @type {ICAL.Recur.frequencyValues}\n */\n freq: null,\n\n /**\n * The class identifier.\n * @constant\n * @type {String}\n * @default \"icalrecur\"\n */\n icalclass: \"icalrecur\",\n\n /**\n * The type name, to be used in the jCal object.\n * @constant\n * @type {String}\n * @default \"recur\"\n */\n icaltype: \"recur\",\n\n /**\n * Create a new iterator for this recurrence rule. The passed start date\n * must be the start date of the event, not the start of the range to\n * search in.\n *\n * @example\n * var recur = comp.getFirstPropertyValue('rrule');\n * var dtstart = comp.getFirstPropertyValue('dtstart');\n * var iter = recur.iterator(dtstart);\n * for (var next = iter.next(); next; next = iter.next()) {\n * if (next.compare(rangeStart) < 0) {\n * continue;\n * }\n * console.log(next.toString());\n * }\n *\n * @param {ICAL.Time} aStart The item's start date\n * @return {ICAL.RecurIterator} The recurrence iterator\n */\n iterator: function(aStart) {\n return new ICAL.RecurIterator({\n rule: this,\n dtstart: aStart\n });\n },\n\n /**\n * Returns a clone of the recurrence object.\n *\n * @return {ICAL.Recur} The cloned object\n */\n clone: function clone() {\n return new ICAL.Recur(this.toJSON());\n },\n\n /**\n * Checks if the current rule is finite, i.e. has a count or until part.\n *\n * @return {Boolean} True, if the rule is finite\n */\n isFinite: function isfinite() {\n return !!(this.count || this.until);\n },\n\n /**\n * Checks if the current rule has a count part, and not limited by an until\n * part.\n *\n * @return {Boolean} True, if the rule is by count\n */\n isByCount: function isbycount() {\n return !!(this.count && !this.until);\n },\n\n /**\n * Adds a component (part) to the recurrence rule. This is not a component\n * in the sense of {@link ICAL.Component}, but a part of the recurrence\n * rule, i.e. BYMONTH.\n *\n * @param {String} aType The name of the component part\n * @param {Array|String} aValue The component value\n */\n addComponent: function addPart(aType, aValue) {\n var ucname = aType.toUpperCase();\n if (ucname in this.parts) {\n this.parts[ucname].push(aValue);\n } else {\n this.parts[ucname] = [aValue];\n }\n },\n\n /**\n * Sets the component value for the given by-part.\n *\n * @param {String} aType The component part name\n * @param {Array} aValues The component values\n */\n setComponent: function setComponent(aType, aValues) {\n this.parts[aType.toUpperCase()] = aValues.slice();\n },\n\n /**\n * Gets (a copy) of the requested component value.\n *\n * @param {String} aType The component part name\n * @return {Array} The component part value\n */\n getComponent: function getComponent(aType) {\n var ucname = aType.toUpperCase();\n return (ucname in this.parts ? this.parts[ucname].slice() : []);\n },\n\n /**\n * Retrieves the next occurrence after the given recurrence id. See the\n * guide on {@tutorial terminology} for more details.\n *\n * NOTE: Currently, this method iterates all occurrences from the start\n * date. It should not be called in a loop for performance reasons. If you\n * would like to get more than one occurrence, you can iterate the\n * occurrences manually, see the example on the\n * {@link ICAL.Recur#iterator iterator} method.\n *\n * @param {ICAL.Time} aStartTime The start of the event series\n * @param {ICAL.Time} aRecurrenceId The date of the last occurrence\n * @return {ICAL.Time} The next occurrence after\n */\n getNextOccurrence: function getNextOccurrence(aStartTime, aRecurrenceId) {\n var iter = this.iterator(aStartTime);\n var next, cdt;\n\n do {\n next = iter.next();\n } while (next && next.compare(aRecurrenceId) <= 0);\n\n if (next && aRecurrenceId.zone) {\n next.zone = aRecurrenceId.zone;\n }\n\n return next;\n },\n\n /**\n * Sets up the current instance using members from the passed data object.\n *\n * @param {Object} data An object with members of the recurrence\n * @param {ICAL.Recur.frequencyValues=} data.freq The frequency value\n * @param {Number=} data.interval The INTERVAL value\n * @param {ICAL.Time.weekDay=} data.wkst The week start value\n * @param {ICAL.Time=} data.until The end of the recurrence set\n * @param {Number=} data.count The number of occurrences\n * @param {Array.<Number>=} data.bysecond The seconds for the BYSECOND part\n * @param {Array.<Number>=} data.byminute The minutes for the BYMINUTE part\n * @param {Array.<Number>=} data.byhour The hours for the BYHOUR part\n * @param {Array.<String>=} data.byday The BYDAY values\n * @param {Array.<Number>=} data.bymonthday The days for the BYMONTHDAY part\n * @param {Array.<Number>=} data.byyearday The days for the BYYEARDAY part\n * @param {Array.<Number>=} data.byweekno The weeks for the BYWEEKNO part\n * @param {Array.<Number>=} data.bymonth The month for the BYMONTH part\n * @param {Array.<Number>=} data.bysetpos The positionals for the BYSETPOS part\n */\n fromData: function(data) {\n for (var key in data) {\n var uckey = key.toUpperCase();\n\n if (uckey in partDesign) {\n if (Array.isArray(data[key])) {\n this.parts[uckey] = data[key];\n } else {\n this.parts[uckey] = [data[key]];\n }\n } else {\n this[key] = data[key];\n }\n }\n\n if (this.interval && typeof this.interval != \"number\") {\n optionDesign.INTERVAL(this.interval, this);\n }\n\n if (this.wkst && typeof this.wkst != \"number\") {\n this.wkst = ICAL.Recur.icalDayToNumericDay(this.wkst);\n }\n\n if (this.until && !(this.until instanceof ICAL.Time)) {\n this.until = ICAL.Time.fromString(this.until);\n }\n },\n\n /**\n * The jCal representation of this recurrence type.\n * @return {Object}\n */\n toJSON: function() {\n var res = Object.create(null);\n res.freq = this.freq;\n\n if (this.count) {\n res.count = this.count;\n }\n\n if (this.interval > 1) {\n res.interval = this.interval;\n }\n\n for (var k in this.parts) {\n /* istanbul ignore if */\n if (!this.parts.hasOwnProperty(k)) {\n continue;\n }\n var kparts = this.parts[k];\n if (Array.isArray(kparts) && kparts.length == 1) {\n res[k.toLowerCase()] = kparts[0];\n } else {\n res[k.toLowerCase()] = ICAL.helpers.clone(this.parts[k]);\n }\n }\n\n if (this.until) {\n res.until = this.until.toString();\n }\n if ('wkst' in this && this.wkst !== ICAL.Time.DEFAULT_WEEK_START) {\n res.wkst = ICAL.Recur.numericDayToIcalDay(this.wkst);\n }\n return res;\n },\n\n /**\n * The string representation of this recurrence rule.\n * @return {String}\n */\n toString: function icalrecur_toString() {\n // TODO retain order\n var str = \"FREQ=\" + this.freq;\n if (this.count) {\n str += \";COUNT=\" + this.count;\n }\n if (this.interval > 1) {\n str += \";INTERVAL=\" + this.interval;\n }\n for (var k in this.parts) {\n /* istanbul ignore else */\n if (this.parts.hasOwnProperty(k)) {\n str += \";\" + k + \"=\" + this.parts[k];\n }\n }\n if (this.until) {\n str += ';UNTIL=' + this.until.toICALString();\n }\n if ('wkst' in this && this.wkst !== ICAL.Time.DEFAULT_WEEK_START) {\n str += ';WKST=' + ICAL.Recur.numericDayToIcalDay(this.wkst);\n }\n return str;\n }\n };\n\n function parseNumericValue(type, min, max, value) {\n var result = value;\n\n if (value[0] === '+') {\n result = value.substr(1);\n }\n\n result = ICAL.helpers.strictParseInt(result);\n\n if (min !== undefined && value < min) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be > ' + min\n );\n }\n\n if (max !== undefined && value > max) {\n throw new Error(\n type + ': invalid value \"' + value + '\" must be < ' + min\n );\n }\n\n return result;\n }\n\n /**\n * Convert an ical representation of a day (SU, MO, etc..)\n * into a numeric value of that day.\n *\n * @param {String} string The iCalendar day name\n * @param {ICAL.Time.weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {Number} Numeric value of given day\n */\n ICAL.Recur.icalDayToNumericDay = function toNumericDay(string, aWeekStart) {\n //XXX: this is here so we can deal\n // with possibly invalid string values.\n var firstDow = aWeekStart || ICAL.Time.SUNDAY;\n return ((DOW_MAP[string] - firstDow + 7) % 7) + 1;\n };\n\n /**\n * Convert a numeric day value into its ical representation (SU, MO, etc..)\n *\n * @param {Number} num Numeric value of given day\n * @param {ICAL.Time.weekDay=} aWeekStart\n * The week start weekday, defaults to SUNDAY\n * @return {String} The ICAL day value, e.g SU,MO,...\n */\n ICAL.Recur.numericDayToIcalDay = function toIcalDay(num, aWeekStart) {\n //XXX: this is here so we can deal with possibly invalid number values.\n // Also, this allows consistent mapping between day numbers and day\n // names for external users.\n var firstDow = aWeekStart || ICAL.Time.SUNDAY;\n var dow = (num + firstDow - ICAL.Time.SUNDAY);\n if (dow > 7) {\n dow -= 7;\n }\n return REVERSE_DOW_MAP[dow];\n };\n\n var VALID_DAY_NAMES = /^(SU|MO|TU|WE|TH|FR|SA)$/;\n var VALID_BYDAY_PART = /^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/;\n\n /**\n * Possible frequency values for the FREQ part\n * (YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY)\n *\n * @typedef {String} frequencyValues\n * @memberof ICAL.Recur\n */\n\n var ALLOWED_FREQ = ['SECONDLY', 'MINUTELY', 'HOURLY',\n 'DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY'];\n\n var optionDesign = {\n FREQ: function(value, dict, fmtIcal) {\n // yes this is actually equal or faster then regex.\n // upside here is we can enumerate the valid values.\n if (ALLOWED_FREQ.indexOf(value) !== -1) {\n dict.freq = value;\n } else {\n throw new Error(\n 'invalid frequency \"' + value + '\" expected: \"' +\n ALLOWED_FREQ.join(', ') + '\"'\n );\n }\n },\n\n COUNT: function(value, dict, fmtIcal) {\n dict.count = ICAL.helpers.strictParseInt(value);\n },\n\n INTERVAL: function(value, dict, fmtIcal) {\n dict.interval = ICAL.helpers.strictParseInt(value);\n if (dict.interval < 1) {\n // 0 or negative values are not allowed, some engines seem to generate\n // it though. Assume 1 instead.\n dict.interval = 1;\n }\n },\n\n UNTIL: function(value, dict, fmtIcal) {\n if (value.length > 10) {\n dict.until = ICAL.design.icalendar.value['date-time'].fromICAL(value);\n } else {\n dict.until = ICAL.design.icalendar.value.date.fromICAL(value);\n }\n if (!fmtIcal) {\n dict.until = ICAL.Time.fromString(dict.until);\n }\n },\n\n WKST: function(value, dict, fmtIcal) {\n if (VALID_DAY_NAMES.test(value)) {\n dict.wkst = ICAL.Recur.icalDayToNumericDay(value);\n } else {\n throw new Error('invalid WKST value \"' + value + '\"');\n }\n }\n };\n\n var partDesign = {\n BYSECOND: parseNumericValue.bind(this, 'BYSECOND', 0, 60),\n BYMINUTE: parseNumericValue.bind(this, 'BYMINUTE', 0, 59),\n BYHOUR: parseNumericValue.bind(this, 'BYHOUR', 0, 23),\n BYDAY: function(value) {\n if (VALID_BYDAY_PART.test(value)) {\n return value;\n } else {\n throw new Error('invalid BYDAY value \"' + value + '\"');\n }\n },\n BYMONTHDAY: parseNumericValue.bind(this, 'BYMONTHDAY', -31, 31),\n BYYEARDAY: parseNumericValue.bind(this, 'BYYEARDAY', -366, 366),\n BYWEEKNO: parseNumericValue.bind(this, 'BYWEEKNO', -53, 53),\n BYMONTH: parseNumericValue.bind(this, 'BYMONTH', 1, 12),\n BYSETPOS: parseNumericValue.bind(this, 'BYSETPOS', -366, 366)\n };\n\n\n /**\n * Creates a new {@link ICAL.Recur} instance from the passed string.\n *\n * @param {String} string The string to parse\n * @return {ICAL.Recur} The created recurrence instance\n */\n ICAL.Recur.fromString = function(string) {\n var data = ICAL.Recur._stringToData(string, false);\n return new ICAL.Recur(data);\n };\n\n /**\n * Creates a new {@link ICAL.Recur} instance using members from the passed\n * data object.\n *\n * @param {Object} aData An object with members of the recurrence\n * @param {ICAL.Recur.frequencyValues=} aData.freq The frequency value\n * @param {Number=} aData.interval The INTERVAL value\n * @param {ICAL.Time.weekDay=} aData.wkst The week start value\n * @param {ICAL.Time=} aData.until The end of the recurrence set\n * @param {Number=} aData.count The number of occurrences\n * @param {Array.<Number>=} aData.bysecond The seconds for the BYSECOND part\n * @param {Array.<Number>=} aData.byminute The minutes for the BYMINUTE part\n * @param {Array.<Number>=} aData.byhour The hours for the BYHOUR part\n * @param {Array.<String>=} aData.byday The BYDAY values\n * @param {Array.<Number>=} aData.bymonthday The days for the BYMONTHDAY part\n * @param {Array.<Number>=} aData.byyearday The days for the BYYEARDAY part\n * @param {Array.<Number>=} aData.byweekno The weeks for the BYWEEKNO part\n * @param {Array.<Number>=} aData.bymonth The month for the BYMONTH part\n * @param {Array.<Number>=} aData.bysetpos The positionals for the BYSETPOS part\n */\n ICAL.Recur.fromData = function(aData) {\n return new ICAL.Recur(aData);\n };\n\n /**\n * Converts a recurrence string to a data object, suitable for the fromData\n * method.\n *\n * @param {String} string The string to parse\n * @param {Boolean} fmtIcal If true, the string is considered to be an\n * iCalendar string\n * @return {ICAL.Recur} The recurrence instance\n */\n ICAL.Recur._stringToData = function(string, fmtIcal) {\n var dict = Object.create(null);\n\n // split is slower in FF but fast enough.\n // v8 however this is faster then manual split?\n var values = string.split(';');\n var len = values.length;\n\n for (var i = 0; i < len; i++) {\n var parts = values[i].split('=');\n var ucname = parts[0].toUpperCase();\n var lcname = parts[0].toLowerCase();\n var name = (fmtIcal ? lcname : ucname);\n var value = parts[1];\n\n if (ucname in partDesign) {\n var partArr = value.split(',');\n var partArrIdx = 0;\n var partArrLen = partArr.length;\n\n for (; partArrIdx < partArrLen; partArrIdx++) {\n partArr[partArrIdx] = partDesign[ucname](partArr[partArrIdx]);\n }\n dict[name] = (partArr.length == 1 ? partArr[0] : partArr);\n } else if (ucname in optionDesign) {\n optionDesign[ucname](value, dict, fmtIcal);\n } else {\n // Don't swallow unknown values. Just set them as they are.\n dict[lcname] = value;\n }\n }\n\n return dict;\n };\n})();\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.RecurIterator = (function() {\n\n /**\n * @classdesc\n * An iterator for a single recurrence rule. This class usually doesn't have\n * to be instanciated directly, the convenience method\n * {@link ICAL.Recur#iterator} can be used.\n *\n * @description\n * The options object may contain additional members when resuming iteration from a previous run\n *\n * @description\n * The options object may contain additional members when resuming iteration\n * from a previous run.\n *\n * @class\n * @alias ICAL.RecurIterator\n * @param {Object} options The iterator options\n * @param {ICAL.Recur} options.rule The rule to iterate.\n * @param {ICAL.Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n function icalrecur_iterator(options) {\n this.fromData(options);\n }\n\n icalrecur_iterator.prototype = {\n\n /**\n * True when iteration is finished.\n * @type {Boolean}\n */\n completed: false,\n\n /**\n * The rule that is being iterated\n * @type {ICAL.Recur}\n */\n rule: null,\n\n /**\n * The start date of the event being iterated.\n * @type {ICAL.Time}\n */\n dtstart: null,\n\n /**\n * The last occurrence that was returned from the\n * {@link ICAL.RecurIterator#next} method.\n * @type {ICAL.Time}\n */\n last: null,\n\n /**\n * The sequence number from the occurrence\n * @type {Number}\n */\n occurrence_number: 0,\n\n /**\n * The indices used for the {@link ICAL.RecurIterator#by_data} object.\n * @type {Object}\n * @private\n */\n by_indices: null,\n\n /**\n * If true, the iterator has already been initialized\n * @type {Boolean}\n * @private\n */\n initialized: false,\n\n /**\n * The initializd by-data.\n * @type {Object}\n * @private\n */\n by_data: null,\n\n /**\n * The expanded yeardays\n * @type {Array}\n * @private\n */\n days: null,\n\n /**\n * The index in the {@link ICAL.RecurIterator#days} array.\n * @type {Number}\n * @private\n */\n days_index: 0,\n\n /**\n * Initialize the recurrence iterator from the passed data object. This\n * method is usually not called directly, you can initialize the iterator\n * through the constructor.\n *\n * @param {Object} options The iterator options\n * @param {ICAL.Recur} options.rule The rule to iterate.\n * @param {ICAL.Time} options.dtstart The start date of the event.\n * @param {Boolean=} options.initialized When true, assume that options are\n * from a previously constructed iterator. Initialization will not be\n * repeated.\n */\n fromData: function(options) {\n this.rule = ICAL.helpers.formatClassType(options.rule, ICAL.Recur);\n\n if (!this.rule) {\n throw new Error('iterator requires a (ICAL.Recur) rule');\n }\n\n this.dtstart = ICAL.helpers.formatClassType(options.dtstart, ICAL.Time);\n\n if (!this.dtstart) {\n throw new Error('iterator requires a (ICAL.Time) dtstart');\n }\n\n if (options.by_data) {\n this.by_data = options.by_data;\n } else {\n this.by_data = ICAL.helpers.clone(this.rule.parts, true);\n }\n\n if (options.occurrence_number)\n this.occurrence_number = options.occurrence_number;\n\n this.days = options.days || [];\n if (options.last) {\n this.last = ICAL.helpers.formatClassType(options.last, ICAL.Time);\n }\n\n this.by_indices = options.by_indices;\n\n if (!this.by_indices) {\n this.by_indices = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 0,\n \"BYHOUR\": 0,\n \"BYDAY\": 0,\n \"BYMONTH\": 0,\n \"BYWEEKNO\": 0,\n \"BYMONTHDAY\": 0\n };\n }\n\n this.initialized = options.initialized || false;\n\n if (!this.initialized) {\n this.init();\n }\n },\n\n /**\n * Intialize the iterator\n * @private\n */\n init: function icalrecur_iterator_init() {\n this.initialized = true;\n this.last = this.dtstart.clone();\n var parts = this.by_data;\n\n if (\"BYDAY\" in parts) {\n // libical does this earlier when the rule is loaded, but we postpone to\n // now so we can preserve the original order.\n this.sort_byday_rules(parts.BYDAY);\n }\n\n // If the BYYEARDAY appares, no other date rule part may appear\n if (\"BYYEARDAY\" in parts) {\n if (\"BYMONTH\" in parts || \"BYWEEKNO\" in parts ||\n \"BYMONTHDAY\" in parts || \"BYDAY\" in parts) {\n throw new Error(\"Invalid BYYEARDAY rule\");\n }\n }\n\n // BYWEEKNO and BYMONTHDAY rule parts may not both appear\n if (\"BYWEEKNO\" in parts && \"BYMONTHDAY\" in parts) {\n throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");\n }\n\n // For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor\n // BYWEEKNO may appear.\n if (this.rule.freq == \"MONTHLY\" &&\n (\"BYYEARDAY\" in parts || \"BYWEEKNO\" in parts)) {\n throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");\n }\n\n // For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor\n // BYYEARDAY may appear.\n if (this.rule.freq == \"WEEKLY\" &&\n (\"BYYEARDAY\" in parts || \"BYMONTHDAY\" in parts)) {\n throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");\n }\n\n // BYYEARDAY may only appear in YEARLY rules\n if (this.rule.freq != \"YEARLY\" && \"BYYEARDAY\" in parts) {\n throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");\n }\n\n this.last.second = this.setup_defaults(\"BYSECOND\", \"SECONDLY\", this.dtstart.second);\n this.last.minute = this.setup_defaults(\"BYMINUTE\", \"MINUTELY\", this.dtstart.minute);\n this.last.hour = this.setup_defaults(\"BYHOUR\", \"HOURLY\", this.dtstart.hour);\n this.last.day = this.setup_defaults(\"BYMONTHDAY\", \"DAILY\", this.dtstart.day);\n this.last.month = this.setup_defaults(\"BYMONTH\", \"MONTHLY\", this.dtstart.month);\n\n if (this.rule.freq == \"WEEKLY\") {\n if (\"BYDAY\" in parts) {\n var bydayParts = this.ruleDayOfWeek(parts.BYDAY[0], this.rule.wkst);\n var pos = bydayParts[0];\n var dow = bydayParts[1];\n var wkdy = dow - this.last.dayOfWeek(this.rule.wkst);\n if ((this.last.dayOfWeek(this.rule.wkst) < dow && wkdy >= 0) || wkdy < 0) {\n // Initial time is after first day of BYDAY data\n this.last.day += wkdy;\n }\n } else {\n var dayName = ICAL.Recur.numericDayToIcalDay(this.dtstart.dayOfWeek());\n parts.BYDAY = [dayName];\n }\n }\n\n if (this.rule.freq == \"YEARLY\") {\n for (;;) {\n this.expand_year_days(this.last.year);\n if (this.days.length > 0) {\n break;\n }\n this.increment_year(this.rule.interval);\n }\n\n this._nextByYearDay();\n }\n\n if (this.rule.freq == \"MONTHLY\" && this.has_by_data(\"BYDAY\")) {\n var tempLast = null;\n var initLast = this.last.clone();\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n\n // Check every weekday in BYDAY with relative dow and pos.\n for (var i in this.by_data.BYDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYDAY.hasOwnProperty(i)) {\n continue;\n }\n this.last = initLast.clone();\n var bydayParts = this.ruleDayOfWeek(this.by_data.BYDAY[i]);\n var pos = bydayParts[0];\n var dow = bydayParts[1];\n var dayOfMonth = this.last.nthWeekDay(dow, pos);\n\n // If |pos| >= 6, the byday is invalid for a monthly rule.\n if (pos >= 6 || pos <= -6) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n\n // If a Byday with pos=+/-5 is not in the current month it\n // must be searched in the next months.\n if (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n // Skip if we have already found a \"last\" in this month.\n if (tempLast && tempLast.month == initLast.month) {\n continue;\n }\n while (dayOfMonth > daysInMonth || dayOfMonth <= 0) {\n this.increment_month();\n daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n dayOfMonth = this.last.nthWeekDay(dow, pos);\n }\n }\n\n this.last.day = dayOfMonth;\n if (!tempLast || this.last.compare(tempLast) < 0) {\n tempLast = this.last.clone();\n }\n }\n this.last = tempLast.clone();\n\n //XXX: This feels like a hack, but we need to initialize\n // the BYMONTHDAY case correctly and byDayAndMonthDay handles\n // this case. It accepts a special flag which will avoid incrementing\n // the initial value without the flag days that match the start time\n // would be missed.\n if (this.has_by_data('BYMONTHDAY')) {\n this._byDayAndMonthDay(true);\n }\n\n if (this.last.day > daysInMonth || this.last.day == 0) {\n throw new Error(\"Malformed values in BYDAY part\");\n }\n\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n if (this.last.day < 0) {\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n this.last.day = daysInMonth + this.last.day + 1;\n }\n }\n\n },\n\n /**\n * Retrieve the next occurrence from the iterator.\n * @return {ICAL.Time}\n */\n next: function icalrecur_iterator_next() {\n var before = (this.last ? this.last.clone() : null);\n\n if ((this.rule.count && this.occurrence_number >= this.rule.count) ||\n (this.rule.until && this.last.compare(this.rule.until) > 0)) {\n\n //XXX: right now this is just a flag and has no impact\n // we can simplify the above case to check for completed later.\n this.completed = true;\n\n return null;\n }\n\n if (this.occurrence_number == 0 && this.last.compare(this.dtstart) >= 0) {\n // First of all, give the instance that was initialized\n this.occurrence_number++;\n return this.last;\n }\n\n\n var valid;\n do {\n valid = 1;\n\n switch (this.rule.freq) {\n case \"SECONDLY\":\n this.next_second();\n break;\n case \"MINUTELY\":\n this.next_minute();\n break;\n case \"HOURLY\":\n this.next_hour();\n break;\n case \"DAILY\":\n this.next_day();\n break;\n case \"WEEKLY\":\n this.next_week();\n break;\n case \"MONTHLY\":\n valid = this.next_month();\n break;\n case \"YEARLY\":\n this.next_year();\n break;\n\n default:\n return null;\n }\n } while (!this.check_contracting_rules() ||\n this.last.compare(this.dtstart) < 0 ||\n !valid);\n\n // TODO is this valid?\n if (this.last.compare(before) == 0) {\n throw new Error(\"Same occurrence found twice, protecting \" +\n \"you from death by recursion\");\n }\n\n if (this.rule.until && this.last.compare(this.rule.until) > 0) {\n this.completed = true;\n return null;\n } else {\n this.occurrence_number++;\n return this.last;\n }\n },\n\n next_second: function next_second() {\n return this.next_generic(\"BYSECOND\", \"SECONDLY\", \"second\", \"minute\");\n },\n\n increment_second: function increment_second(inc) {\n return this.increment_generic(inc, \"second\", 60, \"minute\");\n },\n\n next_minute: function next_minute() {\n return this.next_generic(\"BYMINUTE\", \"MINUTELY\",\n \"minute\", \"hour\", \"next_second\");\n },\n\n increment_minute: function increment_minute(inc) {\n return this.increment_generic(inc, \"minute\", 60, \"hour\");\n },\n\n next_hour: function next_hour() {\n return this.next_generic(\"BYHOUR\", \"HOURLY\", \"hour\",\n \"monthday\", \"next_minute\");\n },\n\n increment_hour: function increment_hour(inc) {\n this.increment_generic(inc, \"hour\", 24, \"monthday\");\n },\n\n next_day: function next_day() {\n var has_by_day = (\"BYDAY\" in this.by_data);\n var this_freq = (this.rule.freq == \"DAILY\");\n\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (this_freq) {\n this.increment_monthday(this.rule.interval);\n } else {\n this.increment_monthday(1);\n }\n\n return 0;\n },\n\n next_week: function next_week() {\n var end_of_data = 0;\n\n if (this.next_weekday_by_week() == 0) {\n return end_of_data;\n }\n\n if (this.has_by_data(\"BYWEEKNO\")) {\n var idx = ++this.by_indices.BYWEEKNO;\n\n if (this.by_indices.BYWEEKNO == this.by_data.BYWEEKNO.length) {\n this.by_indices.BYWEEKNO = 0;\n end_of_data = 1;\n }\n\n // HACK should be first month of the year\n this.last.month = 1;\n this.last.day = 1;\n\n var week_no = this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];\n\n this.last.day += 7 * week_no;\n\n if (end_of_data) {\n this.increment_year(1);\n }\n } else {\n // Jump to the next week\n this.increment_monthday(7 * this.rule.interval);\n }\n\n return end_of_data;\n },\n\n /**\n * Normalize each by day rule for a given year/month.\n * Takes into account ordering and negative rules\n *\n * @private\n * @param {Number} year Current year.\n * @param {Number} month Current month.\n * @param {Array} rules Array of rules.\n *\n * @return {Array} sorted and normalized rules.\n * Negative rules will be expanded to their\n * correct positive values for easier processing.\n */\n normalizeByMonthDayRules: function(year, month, rules) {\n var daysInMonth = ICAL.Time.daysInMonth(month, year);\n\n // XXX: This is probably bad for performance to allocate\n // a new array for each month we scan, if possible\n // we should try to optimize this...\n var newRules = [];\n\n var ruleIdx = 0;\n var len = rules.length;\n var rule;\n\n for (; ruleIdx < len; ruleIdx++) {\n rule = rules[ruleIdx];\n\n // if this rule falls outside of given\n // month discard it.\n if (Math.abs(rule) > daysInMonth) {\n continue;\n }\n\n // negative case\n if (rule < 0) {\n // we add (not subtract it is a negative number)\n // one from the rule because 1 === last day of month\n rule = daysInMonth + (rule + 1);\n } else if (rule === 0) {\n // skip zero: it is invalid.\n continue;\n }\n\n // only add unique items...\n if (newRules.indexOf(rule) === -1) {\n newRules.push(rule);\n }\n\n }\n\n // unique and sort\n return newRules.sort(function(a, b) { return a - b; });\n },\n\n /**\n * NOTES:\n * We are given a list of dates in the month (BYMONTHDAY) (23, etc..)\n * Also we are given a list of days (BYDAY) (MO, 2SU, etc..) when\n * both conditions match a given date (this.last.day) iteration stops.\n *\n * @private\n * @param {Boolean=} isInit When given true will not increment the\n * current day (this.last).\n */\n _byDayAndMonthDay: function(isInit) {\n var byMonthDay; // setup in initMonth\n var byDay = this.by_data.BYDAY;\n\n var date;\n var dateIdx = 0;\n var dateLen; // setup in initMonth\n var dayLen = byDay.length;\n\n // we are not valid by default\n var dataIsValid = 0;\n\n var daysInMonth;\n var self = this;\n // we need a copy of this, because a DateTime gets normalized\n // automatically if the day is out of range. At some points we\n // set the last day to 0 to start counting.\n var lastDay = this.last.day;\n\n function initMonth() {\n daysInMonth = ICAL.Time.daysInMonth(\n self.last.month, self.last.year\n );\n\n byMonthDay = self.normalizeByMonthDayRules(\n self.last.year,\n self.last.month,\n self.by_data.BYMONTHDAY\n );\n\n dateLen = byMonthDay.length;\n\n // For the case of more than one occurrence in one month\n // we have to be sure to start searching after the last\n // found date or at the last BYMONTHDAY, unless we are\n // initializing the iterator because in this case we have\n // to consider the last found date too.\n while (byMonthDay[dateIdx] <= lastDay &&\n !(isInit && byMonthDay[dateIdx] == lastDay) &&\n dateIdx < dateLen - 1) {\n dateIdx++;\n }\n }\n\n function nextMonth() {\n // since the day is incremented at the start\n // of the loop below, we need to start at 0\n lastDay = 0;\n self.increment_month();\n dateIdx = 0;\n initMonth();\n }\n\n initMonth();\n\n // should come after initMonth\n if (isInit) {\n lastDay -= 1;\n }\n\n // Use a counter to avoid an infinite loop with malformed rules.\n // Stop checking after 4 years so we consider also a leap year.\n var monthsCounter = 48;\n\n while (!dataIsValid && monthsCounter) {\n monthsCounter--;\n // increment the current date. This is really\n // important otherwise we may fall into the infinite\n // loop trap. The initial date takes care of the case\n // where the current date is the date we are looking\n // for.\n date = lastDay + 1;\n\n if (date > daysInMonth) {\n nextMonth();\n continue;\n }\n\n // find next date\n var next = byMonthDay[dateIdx++];\n\n // this logic is dependant on the BYMONTHDAYS\n // being in order (which is done by #normalizeByMonthDayRules)\n if (next >= date) {\n // if the next month day is in the future jump to it.\n lastDay = next;\n } else {\n // in this case the 'next' monthday has past\n // we must move to the month.\n nextMonth();\n continue;\n }\n\n // Now we can loop through the day rules to see\n // if one matches the current month date.\n for (var dayIdx = 0; dayIdx < dayLen; dayIdx++) {\n var parts = this.ruleDayOfWeek(byDay[dayIdx]);\n var pos = parts[0];\n var dow = parts[1];\n\n this.last.day = lastDay;\n if (this.last.isNthWeekDay(dow, pos)) {\n // when we find the valid one we can mark\n // the conditions as met and break the loop.\n // (Because we have this condition above\n // it will also break the parent loop).\n dataIsValid = 1;\n break;\n }\n }\n\n // It is completely possible that the combination\n // cannot be matched in the current month.\n // When we reach the end of possible combinations\n // in the current month we iterate to the next one.\n // since dateIdx is incremented right after getting\n // \"next\", we don't need dateLen -1 here.\n if (!dataIsValid && dateIdx === dateLen) {\n nextMonth();\n continue;\n }\n }\n\n if (monthsCounter <= 0) {\n // Checked 4 years without finding a Byday that matches\n // a Bymonthday. Maybe the rule is not correct.\n throw new Error(\"Malformed values in BYDAY combined with BYMONTHDAY parts\");\n }\n\n\n return dataIsValid;\n },\n\n next_month: function next_month() {\n var this_freq = (this.rule.freq == \"MONTHLY\");\n var data_valid = 1;\n\n if (this.next_hour() == 0) {\n return data_valid;\n }\n\n if (this.has_by_data(\"BYDAY\") && this.has_by_data(\"BYMONTHDAY\")) {\n data_valid = this._byDayAndMonthDay();\n } else if (this.has_by_data(\"BYDAY\")) {\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n var setpos = 0;\n var setpos_total = 0;\n\n if (this.has_by_data(\"BYSETPOS\")) {\n var last_day = this.last.day;\n for (var day = 1; day <= daysInMonth; day++) {\n this.last.day = day;\n if (this.is_day_in_byday(this.last)) {\n setpos_total++;\n if (day <= last_day) {\n setpos++;\n }\n }\n }\n this.last.day = last_day;\n }\n\n data_valid = 0;\n for (var day = this.last.day + 1; day <= daysInMonth; day++) {\n this.last.day = day;\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") ||\n this.check_set_position(++setpos) ||\n this.check_set_position(setpos - setpos_total - 1)) {\n\n data_valid = 1;\n break;\n }\n }\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n this.increment_month();\n\n if (this.is_day_in_byday(this.last)) {\n if (!this.has_by_data(\"BYSETPOS\") || this.check_set_position(1)) {\n data_valid = 1;\n }\n } else {\n data_valid = 0;\n }\n }\n } else if (this.has_by_data(\"BYMONTHDAY\")) {\n this.by_indices.BYMONTHDAY++;\n\n if (this.by_indices.BYMONTHDAY >= this.by_data.BYMONTHDAY.length) {\n this.by_indices.BYMONTHDAY = 0;\n this.increment_month();\n }\n\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n var day = this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];\n\n if (day < 0) {\n day = daysInMonth + day + 1;\n }\n\n if (day > daysInMonth) {\n this.last.day = 1;\n data_valid = this.is_day_in_byday(this.last);\n } else {\n this.last.day = day;\n }\n\n } else {\n this.increment_month();\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n if (this.by_data.BYMONTHDAY[0] > daysInMonth) {\n data_valid = 0;\n } else {\n this.last.day = this.by_data.BYMONTHDAY[0];\n }\n }\n\n return data_valid;\n },\n\n next_weekday_by_week: function next_weekday_by_week() {\n var end_of_data = 0;\n\n if (this.next_hour() == 0) {\n return end_of_data;\n }\n\n if (!this.has_by_data(\"BYDAY\")) {\n return 1;\n }\n\n for (;;) {\n var tt = new ICAL.Time();\n this.by_indices.BYDAY++;\n\n if (this.by_indices.BYDAY == Object.keys(this.by_data.BYDAY).length) {\n this.by_indices.BYDAY = 0;\n end_of_data = 1;\n }\n\n var coded_day = this.by_data.BYDAY[this.by_indices.BYDAY];\n var parts = this.ruleDayOfWeek(coded_day);\n var dow = parts[1];\n\n dow -= this.rule.wkst;\n\n if (dow < 0) {\n dow += 7;\n }\n\n tt.year = this.last.year;\n tt.month = this.last.month;\n tt.day = this.last.day;\n\n var startOfWeek = tt.startDoyWeek(this.rule.wkst);\n\n if (dow + startOfWeek < 1) {\n // The selected date is in the previous year\n if (!end_of_data) {\n continue;\n }\n }\n\n var next = ICAL.Time.fromDayOfYear(startOfWeek + dow,\n this.last.year);\n\n /**\n * The normalization horrors below are due to\n * the fact that when the year/month/day changes\n * it can effect the other operations that come after.\n */\n this.last.year = next.year;\n this.last.month = next.month;\n this.last.day = next.day;\n\n return end_of_data;\n }\n },\n\n next_year: function next_year() {\n\n if (this.next_hour() == 0) {\n return 0;\n }\n\n if (++this.days_index == this.days.length) {\n this.days_index = 0;\n do {\n this.increment_year(this.rule.interval);\n this.expand_year_days(this.last.year);\n } while (this.days.length == 0);\n }\n\n this._nextByYearDay();\n\n return 1;\n },\n\n _nextByYearDay: function _nextByYearDay() {\n var doy = this.days[this.days_index];\n var year = this.last.year;\n if (doy < 1) {\n // Time.fromDayOfYear(doy, year) indexes relative to the\n // start of the given year. That is different from the\n // semantics of BYYEARDAY where negative indexes are an\n // offset from the end of the given year.\n doy += 1;\n year += 1;\n }\n var next = ICAL.Time.fromDayOfYear(doy, year);\n this.last.day = next.day;\n this.last.month = next.month;\n },\n\n /**\n * @param dow (eg: '1TU', '-1MO')\n * @param {ICAL.Time.weekDay=} aWeekStart The week start weekday\n * @return [pos, numericDow] (eg: [1, 3]) numericDow is relative to aWeekStart\n */\n ruleDayOfWeek: function ruleDayOfWeek(dow, aWeekStart) {\n var matches = dow.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);\n if (matches) {\n var pos = parseInt(matches[1] || 0, 10);\n dow = ICAL.Recur.icalDayToNumericDay(matches[2], aWeekStart);\n return [pos, dow];\n } else {\n return [0, 0];\n }\n },\n\n next_generic: function next_generic(aRuleType, aInterval, aDateAttr,\n aFollowingAttr, aPreviousIncr) {\n var has_by_rule = (aRuleType in this.by_data);\n var this_freq = (this.rule.freq == aInterval);\n var end_of_data = 0;\n\n if (aPreviousIncr && this[aPreviousIncr]() == 0) {\n return end_of_data;\n }\n\n if (has_by_rule) {\n this.by_indices[aRuleType]++;\n var idx = this.by_indices[aRuleType];\n var dta = this.by_data[aRuleType];\n\n if (this.by_indices[aRuleType] == dta.length) {\n this.by_indices[aRuleType] = 0;\n end_of_data = 1;\n }\n this.last[aDateAttr] = dta[this.by_indices[aRuleType]];\n } else if (this_freq) {\n this[\"increment_\" + aDateAttr](this.rule.interval);\n }\n\n if (has_by_rule && end_of_data && this_freq) {\n this[\"increment_\" + aFollowingAttr](1);\n }\n\n return end_of_data;\n },\n\n increment_monthday: function increment_monthday(inc) {\n for (var i = 0; i < inc; i++) {\n var daysInMonth = ICAL.Time.daysInMonth(this.last.month, this.last.year);\n this.last.day++;\n\n if (this.last.day > daysInMonth) {\n this.last.day -= daysInMonth;\n this.increment_month();\n }\n }\n },\n\n increment_month: function increment_month() {\n this.last.day = 1;\n if (this.has_by_data(\"BYMONTH\")) {\n this.by_indices.BYMONTH++;\n\n if (this.by_indices.BYMONTH == this.by_data.BYMONTH.length) {\n this.by_indices.BYMONTH = 0;\n this.increment_year(1);\n }\n\n this.last.month = this.by_data.BYMONTH[this.by_indices.BYMONTH];\n } else {\n if (this.rule.freq == \"MONTHLY\") {\n this.last.month += this.rule.interval;\n } else {\n this.last.month++;\n }\n\n this.last.month--;\n var years = ICAL.helpers.trunc(this.last.month / 12);\n this.last.month %= 12;\n this.last.month++;\n\n if (years != 0) {\n this.increment_year(years);\n }\n }\n },\n\n increment_year: function increment_year(inc) {\n this.last.year += inc;\n },\n\n increment_generic: function increment_generic(inc, aDateAttr,\n aFactor, aNextIncrement) {\n this.last[aDateAttr] += inc;\n var nextunit = ICAL.helpers.trunc(this.last[aDateAttr] / aFactor);\n this.last[aDateAttr] %= aFactor;\n if (nextunit != 0) {\n this[\"increment_\" + aNextIncrement](nextunit);\n }\n },\n\n has_by_data: function has_by_data(aRuleType) {\n return (aRuleType in this.rule.parts);\n },\n\n expand_year_days: function expand_year_days(aYear) {\n var t = new ICAL.Time();\n this.days = [];\n\n // We need our own copy with a few keys set\n var parts = {};\n var rules = [\"BYDAY\", \"BYWEEKNO\", \"BYMONTHDAY\", \"BYMONTH\", \"BYYEARDAY\"];\n for (var p in rules) {\n /* istanbul ignore else */\n if (rules.hasOwnProperty(p)) {\n var part = rules[p];\n if (part in this.rule.parts) {\n parts[part] = this.rule.parts[part];\n }\n }\n }\n\n if (\"BYMONTH\" in parts && \"BYWEEKNO\" in parts) {\n var valid = 1;\n var validWeeks = {};\n t.year = aYear;\n t.isDate = true;\n\n for (var monthIdx = 0; monthIdx < this.by_data.BYMONTH.length; monthIdx++) {\n var month = this.by_data.BYMONTH[monthIdx];\n t.month = month;\n t.day = 1;\n var first_week = t.weekNumber(this.rule.wkst);\n t.day = ICAL.Time.daysInMonth(month, aYear);\n var last_week = t.weekNumber(this.rule.wkst);\n for (monthIdx = first_week; monthIdx < last_week; monthIdx++) {\n validWeeks[monthIdx] = 1;\n }\n }\n\n for (var weekIdx = 0; weekIdx < this.by_data.BYWEEKNO.length && valid; weekIdx++) {\n var weekno = this.by_data.BYWEEKNO[weekIdx];\n if (weekno < 52) {\n valid &= validWeeks[weekIdx];\n } else {\n valid = 0;\n }\n }\n\n if (valid) {\n delete parts.BYMONTH;\n } else {\n delete parts.BYWEEKNO;\n }\n }\n\n var partCount = Object.keys(parts).length;\n\n if (partCount == 0) {\n var t1 = this.dtstart.clone();\n t1.year = this.last.year;\n this.days.push(t1.dayOfYear());\n } else if (partCount == 1 && \"BYMONTH\" in parts) {\n for (var monthkey in this.by_data.BYMONTH) {\n /* istanbul ignore if */\n if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) {\n continue;\n }\n var t2 = this.dtstart.clone();\n t2.year = aYear;\n t2.month = this.by_data.BYMONTH[monthkey];\n t2.isDate = true;\n this.days.push(t2.dayOfYear());\n }\n } else if (partCount == 1 && \"BYMONTHDAY\" in parts) {\n for (var monthdaykey in this.by_data.BYMONTHDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYMONTHDAY.hasOwnProperty(monthdaykey)) {\n continue;\n }\n var t3 = this.dtstart.clone();\n var day_ = this.by_data.BYMONTHDAY[monthdaykey];\n if (day_ < 0) {\n var daysInMonth = ICAL.Time.daysInMonth(t3.month, aYear);\n day_ = day_ + daysInMonth + 1;\n }\n t3.day = day_;\n t3.year = aYear;\n t3.isDate = true;\n this.days.push(t3.dayOfYear());\n }\n } else if (partCount == 2 &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n for (var monthkey in this.by_data.BYMONTH) {\n /* istanbul ignore if */\n if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) {\n continue;\n }\n var month_ = this.by_data.BYMONTH[monthkey];\n var daysInMonth = ICAL.Time.daysInMonth(month_, aYear);\n for (var monthdaykey in this.by_data.BYMONTHDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYMONTHDAY.hasOwnProperty(monthdaykey)) {\n continue;\n }\n var day_ = this.by_data.BYMONTHDAY[monthdaykey];\n if (day_ < 0) {\n day_ = day_ + daysInMonth + 1;\n }\n t.day = day_;\n t.month = month_;\n t.year = aYear;\n t.isDate = true;\n\n this.days.push(t.dayOfYear());\n }\n }\n } else if (partCount == 1 && \"BYWEEKNO\" in parts) {\n // TODO unimplemented in libical\n } else if (partCount == 2 &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) {\n // TODO unimplemented in libical\n } else if (partCount == 1 && \"BYDAY\" in parts) {\n this.days = this.days.concat(this.expand_by_day(aYear));\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTH\" in parts) {\n for (var monthkey in this.by_data.BYMONTH) {\n /* istanbul ignore if */\n if (!this.by_data.BYMONTH.hasOwnProperty(monthkey)) {\n continue;\n }\n var month = this.by_data.BYMONTH[monthkey];\n var daysInMonth = ICAL.Time.daysInMonth(month, aYear);\n\n t.year = aYear;\n t.month = this.by_data.BYMONTH[monthkey];\n t.day = 1;\n t.isDate = true;\n\n var first_dow = t.dayOfWeek();\n var doy_offset = t.dayOfYear() - 1;\n\n t.day = daysInMonth;\n var last_dow = t.dayOfWeek();\n\n if (this.has_by_data(\"BYSETPOS\")) {\n var set_pos_counter = 0;\n var by_month_day = [];\n for (var day = 1; day <= daysInMonth; day++) {\n t.day = day;\n if (this.is_day_in_byday(t)) {\n by_month_day.push(day);\n }\n }\n\n for (var spIndex = 0; spIndex < by_month_day.length; spIndex++) {\n if (this.check_set_position(spIndex + 1) ||\n this.check_set_position(spIndex - by_month_day.length)) {\n this.days.push(doy_offset + by_month_day[spIndex]);\n }\n }\n } else {\n for (var daycodedkey in this.by_data.BYDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYDAY.hasOwnProperty(daycodedkey)) {\n continue;\n }\n var coded_day = this.by_data.BYDAY[daycodedkey];\n var bydayParts = this.ruleDayOfWeek(coded_day);\n var pos = bydayParts[0];\n var dow = bydayParts[1];\n var month_day;\n\n var first_matching_day = ((dow + 7 - first_dow) % 7) + 1;\n var last_matching_day = daysInMonth - ((last_dow + 7 - dow) % 7);\n\n if (pos == 0) {\n for (var day = first_matching_day; day <= daysInMonth; day += 7) {\n this.days.push(doy_offset + day);\n }\n } else if (pos > 0) {\n month_day = first_matching_day + (pos - 1) * 7;\n\n if (month_day <= daysInMonth) {\n this.days.push(doy_offset + month_day);\n }\n } else {\n month_day = last_matching_day + (pos + 1) * 7;\n\n if (month_day > 0) {\n this.days.push(doy_offset + month_day);\n }\n }\n }\n }\n }\n // Return dates in order of occurrence (1,2,3,...) instead\n // of by groups of weekdays (1,8,15,...,2,9,16,...).\n this.days.sort(function(a, b) { return a - b; }); // Comparator function allows to sort numbers.\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYMONTHDAY\" in parts) {\n var expandedDays = this.expand_by_day(aYear);\n\n for (var daykey in expandedDays) {\n /* istanbul ignore if */\n if (!expandedDays.hasOwnProperty(daykey)) {\n continue;\n }\n var day = expandedDays[daykey];\n var tt = ICAL.Time.fromDayOfYear(day, aYear);\n if (this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYMONTHDAY\" in parts &&\n \"BYMONTH\" in parts) {\n var expandedDays = this.expand_by_day(aYear);\n\n for (var daykey in expandedDays) {\n /* istanbul ignore if */\n if (!expandedDays.hasOwnProperty(daykey)) {\n continue;\n }\n var day = expandedDays[daykey];\n var tt = ICAL.Time.fromDayOfYear(day, aYear);\n\n if (this.by_data.BYMONTH.indexOf(tt.month) >= 0 &&\n this.by_data.BYMONTHDAY.indexOf(tt.day) >= 0) {\n this.days.push(day);\n }\n }\n } else if (partCount == 2 && \"BYDAY\" in parts && \"BYWEEKNO\" in parts) {\n var expandedDays = this.expand_by_day(aYear);\n\n for (var daykey in expandedDays) {\n /* istanbul ignore if */\n if (!expandedDays.hasOwnProperty(daykey)) {\n continue;\n }\n var day = expandedDays[daykey];\n var tt = ICAL.Time.fromDayOfYear(day, aYear);\n var weekno = tt.weekNumber(this.rule.wkst);\n\n if (this.by_data.BYWEEKNO.indexOf(weekno)) {\n this.days.push(day);\n }\n }\n } else if (partCount == 3 &&\n \"BYDAY\" in parts &&\n \"BYWEEKNO\" in parts &&\n \"BYMONTHDAY\" in parts) {\n // TODO unimplemted in libical\n } else if (partCount == 1 && \"BYYEARDAY\" in parts) {\n this.days = this.days.concat(this.by_data.BYYEARDAY);\n } else {\n this.days = [];\n }\n return 0;\n },\n\n expand_by_day: function expand_by_day(aYear) {\n\n var days_list = [];\n var tmp = this.last.clone();\n\n tmp.year = aYear;\n tmp.month = 1;\n tmp.day = 1;\n tmp.isDate = true;\n\n var start_dow = tmp.dayOfWeek();\n\n tmp.month = 12;\n tmp.day = 31;\n tmp.isDate = true;\n\n var end_dow = tmp.dayOfWeek();\n var end_year_day = tmp.dayOfYear();\n\n for (var daykey in this.by_data.BYDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYDAY.hasOwnProperty(daykey)) {\n continue;\n }\n var day = this.by_data.BYDAY[daykey];\n var parts = this.ruleDayOfWeek(day);\n var pos = parts[0];\n var dow = parts[1];\n\n if (pos == 0) {\n var tmp_start_doy = ((dow + 7 - start_dow) % 7) + 1;\n\n for (var doy = tmp_start_doy; doy <= end_year_day; doy += 7) {\n days_list.push(doy);\n }\n\n } else if (pos > 0) {\n var first;\n if (dow >= start_dow) {\n first = dow - start_dow + 1;\n } else {\n first = dow - start_dow + 8;\n }\n\n days_list.push(first + (pos - 1) * 7);\n } else {\n var last;\n pos = -pos;\n\n if (dow <= end_dow) {\n last = end_year_day - end_dow + dow;\n } else {\n last = end_year_day - end_dow + dow - 7;\n }\n\n days_list.push(last - (pos - 1) * 7);\n }\n }\n return days_list;\n },\n\n is_day_in_byday: function is_day_in_byday(tt) {\n for (var daykey in this.by_data.BYDAY) {\n /* istanbul ignore if */\n if (!this.by_data.BYDAY.hasOwnProperty(daykey)) {\n continue;\n }\n var day = this.by_data.BYDAY[daykey];\n var parts = this.ruleDayOfWeek(day);\n var pos = parts[0];\n var dow = parts[1];\n var this_dow = tt.dayOfWeek();\n\n if ((pos == 0 && dow == this_dow) ||\n (tt.nthWeekDay(dow, pos) == tt.day)) {\n return 1;\n }\n }\n\n return 0;\n },\n\n /**\n * Checks if given value is in BYSETPOS.\n *\n * @private\n * @param {Numeric} aPos position to check for.\n * @return {Boolean} false unless BYSETPOS rules exist\n * and the given value is present in rules.\n */\n check_set_position: function check_set_position(aPos) {\n if (this.has_by_data('BYSETPOS')) {\n var idx = this.by_data.BYSETPOS.indexOf(aPos);\n // negative numbers are not false-y\n return idx !== -1;\n }\n return false;\n },\n\n sort_byday_rules: function icalrecur_sort_byday_rules(aRules) {\n for (var i = 0; i < aRules.length; i++) {\n for (var j = 0; j < i; j++) {\n var one = this.ruleDayOfWeek(aRules[j], this.rule.wkst)[1];\n var two = this.ruleDayOfWeek(aRules[i], this.rule.wkst)[1];\n\n if (one > two) {\n var tmp = aRules[i];\n aRules[i] = aRules[j];\n aRules[j] = tmp;\n }\n }\n }\n },\n\n check_contract_restriction: function check_contract_restriction(aRuleType, v) {\n var indexMapValue = icalrecur_iterator._indexMap[aRuleType];\n var ruleMapValue = icalrecur_iterator._expandMap[this.rule.freq][indexMapValue];\n var pass = false;\n\n if (aRuleType in this.by_data &&\n ruleMapValue == icalrecur_iterator.CONTRACT) {\n\n var ruleType = this.by_data[aRuleType];\n\n for (var bydatakey in ruleType) {\n /* istanbul ignore else */\n if (ruleType.hasOwnProperty(bydatakey)) {\n if (ruleType[bydatakey] == v) {\n pass = true;\n break;\n }\n }\n }\n } else {\n // Not a contracting byrule or has no data, test passes\n pass = true;\n }\n return pass;\n },\n\n check_contracting_rules: function check_contracting_rules() {\n var dow = this.last.dayOfWeek();\n var weekNo = this.last.weekNumber(this.rule.wkst);\n var doy = this.last.dayOfYear();\n\n return (this.check_contract_restriction(\"BYSECOND\", this.last.second) &&\n this.check_contract_restriction(\"BYMINUTE\", this.last.minute) &&\n this.check_contract_restriction(\"BYHOUR\", this.last.hour) &&\n this.check_contract_restriction(\"BYDAY\", ICAL.Recur.numericDayToIcalDay(dow)) &&\n this.check_contract_restriction(\"BYWEEKNO\", weekNo) &&\n this.check_contract_restriction(\"BYMONTHDAY\", this.last.day) &&\n this.check_contract_restriction(\"BYMONTH\", this.last.month) &&\n this.check_contract_restriction(\"BYYEARDAY\", doy));\n },\n\n setup_defaults: function setup_defaults(aRuleType, req, deftime) {\n var indexMapValue = icalrecur_iterator._indexMap[aRuleType];\n var ruleMapValue = icalrecur_iterator._expandMap[this.rule.freq][indexMapValue];\n\n if (ruleMapValue != icalrecur_iterator.CONTRACT) {\n if (!(aRuleType in this.by_data)) {\n this.by_data[aRuleType] = [deftime];\n }\n if (this.rule.freq != req) {\n return this.by_data[aRuleType][0];\n }\n }\n return deftime;\n },\n\n /**\n * Convert iterator into a serialize-able object. Will preserve current\n * iteration sequence to ensure the seamless continuation of the recurrence\n * rule.\n * @return {Object}\n */\n toJSON: function() {\n var result = Object.create(null);\n\n result.initialized = this.initialized;\n result.rule = this.rule.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.by_data = this.by_data;\n result.days = this.days;\n result.last = this.last.toJSON();\n result.by_indices = this.by_indices;\n result.occurrence_number = this.occurrence_number;\n\n return result;\n }\n };\n\n icalrecur_iterator._indexMap = {\n \"BYSECOND\": 0,\n \"BYMINUTE\": 1,\n \"BYHOUR\": 2,\n \"BYDAY\": 3,\n \"BYMONTHDAY\": 4,\n \"BYYEARDAY\": 5,\n \"BYWEEKNO\": 6,\n \"BYMONTH\": 7,\n \"BYSETPOS\": 8\n };\n\n icalrecur_iterator._expandMap = {\n \"SECONDLY\": [1, 1, 1, 1, 1, 1, 1, 1],\n \"MINUTELY\": [2, 1, 1, 1, 1, 1, 1, 1],\n \"HOURLY\": [2, 2, 1, 1, 1, 1, 1, 1],\n \"DAILY\": [2, 2, 2, 1, 1, 1, 1, 1],\n \"WEEKLY\": [2, 2, 2, 2, 3, 3, 1, 1],\n \"MONTHLY\": [2, 2, 2, 2, 2, 3, 3, 1],\n \"YEARLY\": [2, 2, 2, 2, 2, 2, 2, 2]\n };\n icalrecur_iterator.UNKNOWN = 0;\n icalrecur_iterator.CONTRACT = 1;\n icalrecur_iterator.EXPAND = 2;\n icalrecur_iterator.ILLEGAL = 3;\n\n return icalrecur_iterator;\n\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.RecurExpansion = (function() {\n function formatTime(item) {\n return ICAL.helpers.formatClassType(item, ICAL.Time);\n }\n\n function compareTime(a, b) {\n return a.compare(b);\n }\n\n function isRecurringComponent(comp) {\n return comp.hasProperty('rdate') ||\n comp.hasProperty('rrule') ||\n comp.hasProperty('recurrence-id');\n }\n\n /**\n * @classdesc\n * Primary class for expanding recurring rules. Can take multiple rrules,\n * rdates, exdate(s) and iterate (in order) over each next occurrence.\n *\n * Once initialized this class can also be serialized saved and continue\n * iteration from the last point.\n *\n * NOTE: it is intended that this class is to be used\n * with ICAL.Event which handles recurrence exceptions.\n *\n * @example\n * // assuming event is a parsed ical component\n * var event;\n *\n * var expand = new ICAL.RecurExpansion({\n * component: event,\n * dtstart: event.getFirstPropertyValue('dtstart')\n * });\n *\n * // remember there are infinite rules\n * // so it is a good idea to limit the scope\n * // of the iterations then resume later on.\n *\n * // next is always an ICAL.Time or null\n * var next;\n *\n * while (someCondition && (next = expand.next())) {\n * // do something with next\n * }\n *\n * // save instance for later\n * var json = JSON.stringify(expand);\n *\n * //...\n *\n * // NOTE: if the component's properties have\n * // changed you will need to rebuild the\n * // class and start over. This only works\n * // when the component's recurrence info is the same.\n * var expand = new ICAL.RecurExpansion(JSON.parse(json));\n *\n * @description\n * The options object can be filled with the specified initial values. It can\n * also contain additional members, as a result of serializing a previous\n * expansion state, as shown in the example.\n *\n * @class\n * @alias ICAL.RecurExpansion\n * @param {Object} options\n * Recurrence expansion options\n * @param {ICAL.Time} options.dtstart\n * Start time of the event\n * @param {ICAL.Component=} options.component\n * Component for expansion, required if not resuming.\n */\n function RecurExpansion(options) {\n this.ruleDates = [];\n this.exDates = [];\n this.fromData(options);\n }\n\n RecurExpansion.prototype = {\n /**\n * True when iteration is fully completed.\n * @type {Boolean}\n */\n complete: false,\n\n /**\n * Array of rrule iterators.\n *\n * @type {ICAL.RecurIterator[]}\n * @private\n */\n ruleIterators: null,\n\n /**\n * Array of rdate instances.\n *\n * @type {ICAL.Time[]}\n * @private\n */\n ruleDates: null,\n\n /**\n * Array of exdate instances.\n *\n * @type {ICAL.Time[]}\n * @private\n */\n exDates: null,\n\n /**\n * Current position in ruleDates array.\n * @type {Number}\n * @private\n */\n ruleDateInc: 0,\n\n /**\n * Current position in exDates array\n * @type {Number}\n * @private\n */\n exDateInc: 0,\n\n /**\n * Current negative date.\n *\n * @type {ICAL.Time}\n * @private\n */\n exDate: null,\n\n /**\n * Current additional date.\n *\n * @type {ICAL.Time}\n * @private\n */\n ruleDate: null,\n\n /**\n * Start date of recurring rules.\n *\n * @type {ICAL.Time}\n */\n dtstart: null,\n\n /**\n * Last expanded time\n *\n * @type {ICAL.Time}\n */\n last: null,\n\n /**\n * Initialize the recurrence expansion from the data object. The options\n * object may also contain additional members, see the\n * {@link ICAL.RecurExpansion constructor} for more details.\n *\n * @param {Object} options\n * Recurrence expansion options\n * @param {ICAL.Time} options.dtstart\n * Start time of the event\n * @param {ICAL.Component=} options.component\n * Component for expansion, required if not resuming.\n */\n fromData: function(options) {\n var start = ICAL.helpers.formatClassType(options.dtstart, ICAL.Time);\n\n if (!start) {\n throw new Error('.dtstart (ICAL.Time) must be given');\n } else {\n this.dtstart = start;\n }\n\n if (options.component) {\n this._init(options.component);\n } else {\n this.last = formatTime(options.last) || start.clone();\n\n if (!options.ruleIterators) {\n throw new Error('.ruleIterators or .component must be given');\n }\n\n this.ruleIterators = options.ruleIterators.map(function(item) {\n return ICAL.helpers.formatClassType(item, ICAL.RecurIterator);\n });\n\n this.ruleDateInc = options.ruleDateInc;\n this.exDateInc = options.exDateInc;\n\n if (options.ruleDates) {\n this.ruleDates = options.ruleDates.map(formatTime);\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (options.exDates) {\n this.exDates = options.exDates.map(formatTime);\n this.exDate = this.exDates[this.exDateInc];\n }\n\n if (typeof(options.complete) !== 'undefined') {\n this.complete = options.complete;\n }\n }\n },\n\n /**\n * Retrieve the next occurrence in the series.\n * @return {ICAL.Time}\n */\n next: function() {\n var iter;\n var ruleOfDay;\n var next;\n var compare;\n\n var maxTries = 500;\n var currentTry = 0;\n\n while (true) {\n if (currentTry++ > maxTries) {\n throw new Error(\n 'max tries have occured, rule may be impossible to forfill.'\n );\n }\n\n next = this.ruleDate;\n iter = this._nextRecurrenceIter(this.last);\n\n // no more matches\n // because we increment the rule day or rule\n // _after_ we choose a value this should be\n // the only spot where we need to worry about the\n // end of events.\n if (!next && !iter) {\n // there are no more iterators or rdates\n this.complete = true;\n break;\n }\n\n // no next rule day or recurrence rule is first.\n if (!next || (iter && next.compare(iter.last) > 0)) {\n // must be cloned, recur will reuse the time element.\n next = iter.last.clone();\n // move to next so we can continue\n iter.next();\n }\n\n // if the ruleDate is still next increment it.\n if (this.ruleDate === next) {\n this._nextRuleDay();\n }\n\n this.last = next;\n\n // check the negative rules\n if (this.exDate) {\n compare = this.exDate.compare(this.last);\n\n if (compare < 0) {\n this._nextExDay();\n }\n\n // if the current rule is excluded skip it.\n if (compare === 0) {\n this._nextExDay();\n continue;\n }\n }\n\n //XXX: The spec states that after we resolve the final\n // list of dates we execute exdate this seems somewhat counter\n // intuitive to what I have seen most servers do so for now\n // I exclude based on the original date not the one that may\n // have been modified by the exception.\n return this.last;\n }\n },\n\n /**\n * Converts object into a serialize-able format. This format can be passed\n * back into the expansion to resume iteration.\n * @return {Object}\n */\n toJSON: function() {\n function toJSON(item) {\n return item.toJSON();\n }\n\n var result = Object.create(null);\n result.ruleIterators = this.ruleIterators.map(toJSON);\n\n if (this.ruleDates) {\n result.ruleDates = this.ruleDates.map(toJSON);\n }\n\n if (this.exDates) {\n result.exDates = this.exDates.map(toJSON);\n }\n\n result.ruleDateInc = this.ruleDateInc;\n result.exDateInc = this.exDateInc;\n result.last = this.last.toJSON();\n result.dtstart = this.dtstart.toJSON();\n result.complete = this.complete;\n\n return result;\n },\n\n /**\n * Extract all dates from the properties in the given component. The\n * properties will be filtered by the property name.\n *\n * @private\n * @param {ICAL.Component} component The component to search in\n * @param {String} propertyName The property name to search for\n * @return {ICAL.Time[]} The extracted dates.\n */\n _extractDates: function(component, propertyName) {\n function handleProp(prop) {\n idx = ICAL.helpers.binsearchInsert(\n result,\n prop,\n compareTime\n );\n\n // ordered insert\n result.splice(idx, 0, prop);\n }\n\n var result = [];\n var props = component.getAllProperties(propertyName);\n var len = props.length;\n var i = 0;\n var prop;\n\n var idx;\n\n for (; i < len; i++) {\n props[i].getValues().forEach(handleProp);\n }\n\n return result;\n },\n\n /**\n * Initialize the recurrence expansion.\n *\n * @private\n * @param {ICAL.Component} component The component to initialize from.\n */\n _init: function(component) {\n this.ruleIterators = [];\n\n this.last = this.dtstart.clone();\n\n // to provide api consistency non-recurring\n // events can also use the iterator though it will\n // only return a single time.\n if (!isRecurringComponent(component)) {\n this.ruleDate = this.last.clone();\n this.complete = true;\n return;\n }\n\n if (component.hasProperty('rdate')) {\n this.ruleDates = this._extractDates(component, 'rdate');\n\n // special hack for cases where first rdate is prior\n // to the start date. We only check for the first rdate.\n // This is mostly for google's crazy recurring date logic\n // (contacts birthdays).\n if ((this.ruleDates[0]) &&\n (this.ruleDates[0].compare(this.dtstart) < 0)) {\n\n this.ruleDateInc = 0;\n this.last = this.ruleDates[0].clone();\n } else {\n this.ruleDateInc = ICAL.helpers.binsearchInsert(\n this.ruleDates,\n this.last,\n compareTime\n );\n }\n\n this.ruleDate = this.ruleDates[this.ruleDateInc];\n }\n\n if (component.hasProperty('rrule')) {\n var rules = component.getAllProperties('rrule');\n var i = 0;\n var len = rules.length;\n\n var rule;\n var iter;\n\n for (; i < len; i++) {\n rule = rules[i].getFirstValue();\n iter = rule.iterator(this.dtstart);\n this.ruleIterators.push(iter);\n\n // increment to the next occurrence so future\n // calls to next return times beyond the initial iteration.\n // XXX: I find this suspicious might be a bug?\n iter.next();\n }\n }\n\n if (component.hasProperty('exdate')) {\n this.exDates = this._extractDates(component, 'exdate');\n // if we have a .last day we increment the index to beyond it.\n this.exDateInc = ICAL.helpers.binsearchInsert(\n this.exDates,\n this.last,\n compareTime\n );\n\n this.exDate = this.exDates[this.exDateInc];\n }\n },\n\n /**\n * Advance to the next exdate\n * @private\n */\n _nextExDay: function() {\n this.exDate = this.exDates[++this.exDateInc];\n },\n\n /**\n * Advance to the next rule date\n * @private\n */\n _nextRuleDay: function() {\n this.ruleDate = this.ruleDates[++this.ruleDateInc];\n },\n\n /**\n * Find and return the recurrence rule with the most recent event and\n * return it.\n *\n * @private\n * @return {?ICAL.RecurIterator} Found iterator.\n */\n _nextRecurrenceIter: function() {\n var iters = this.ruleIterators;\n\n if (iters.length === 0) {\n return null;\n }\n\n var len = iters.length;\n var iter;\n var iterTime;\n var iterIdx = 0;\n var chosenIter;\n\n // loop through each iterator\n for (; iterIdx < len; iterIdx++) {\n iter = iters[iterIdx];\n iterTime = iter.last;\n\n // if iteration is complete\n // then we must exclude it from\n // the search and remove it.\n if (iter.completed) {\n len--;\n if (iterIdx !== 0) {\n iterIdx--;\n }\n iters.splice(iterIdx, 1);\n continue;\n }\n\n // find the most recent possible choice\n if (!chosenIter || chosenIter.last.compare(iterTime) > 0) {\n // that iterator is saved\n chosenIter = iter;\n }\n }\n\n // the chosen iterator is returned but not mutated\n // this iterator contains the most recent event.\n return chosenIter;\n }\n };\n\n return RecurExpansion;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.Event = (function() {\n\n /**\n * @classdesc\n * ICAL.js is organized into multiple layers. The bottom layer is a raw jCal\n * object, followed by the component/property layer. The highest level is the\n * event representation, which this class is part of. See the\n * {@tutorial layers} guide for more details.\n *\n * @class\n * @alias ICAL.Event\n * @param {ICAL.Component=} component The ICAL.Component to base this event on\n * @param {Object} options Options for this event\n * @param {Boolean} options.strictExceptions\n * When true, will verify exceptions are related by their UUID\n * @param {Array<ICAL.Component|ICAL.Event>} options.exceptions\n * Exceptions to this event, either as components or events. If not\n * specified exceptions will automatically be set in relation of\n * component's parent\n */\n function Event(component, options) {\n if (!(component instanceof ICAL.Component)) {\n options = component;\n component = null;\n }\n\n if (component) {\n this.component = component;\n } else {\n this.component = new ICAL.Component('vevent');\n }\n\n this._rangeExceptionCache = Object.create(null);\n this.exceptions = Object.create(null);\n this.rangeExceptions = [];\n\n if (options && options.strictExceptions) {\n this.strictExceptions = options.strictExceptions;\n }\n\n if (options && options.exceptions) {\n options.exceptions.forEach(this.relateException, this);\n } else if (this.component.parent && !this.isRecurrenceException()) {\n this.component.parent.getAllSubcomponents('vevent').forEach(function(event) {\n if (event.hasProperty('recurrence-id')) {\n this.relateException(event);\n }\n }, this);\n }\n }\n\n Event.prototype = {\n\n THISANDFUTURE: 'THISANDFUTURE',\n\n /**\n * List of related event exceptions.\n *\n * @type {ICAL.Event[]}\n */\n exceptions: null,\n\n /**\n * When true, will verify exceptions are related by their UUID.\n *\n * @type {Boolean}\n */\n strictExceptions: false,\n\n /**\n * Relates a given event exception to this object. If the given component\n * does not share the UID of this event it cannot be related and will throw\n * an exception.\n *\n * If this component is an exception it cannot have other exceptions\n * related to it.\n *\n * @param {ICAL.Component|ICAL.Event} obj Component or event\n */\n relateException: function(obj) {\n if (this.isRecurrenceException()) {\n throw new Error('cannot relate exception to exceptions');\n }\n\n if (obj instanceof ICAL.Component) {\n obj = new ICAL.Event(obj);\n }\n\n if (this.strictExceptions && obj.uid !== this.uid) {\n throw new Error('attempted to relate unrelated exception');\n }\n\n var id = obj.recurrenceId.toString();\n\n // we don't sort or manage exceptions directly\n // here the recurrence expander handles that.\n this.exceptions[id] = obj;\n\n // index RANGE=THISANDFUTURE exceptions so we can\n // look them up later in getOccurrenceDetails.\n if (obj.modifiesFuture()) {\n var item = [\n obj.recurrenceId.toUnixTime(), id\n ];\n\n // we keep them sorted so we can find the nearest\n // value later on...\n var idx = ICAL.helpers.binsearchInsert(\n this.rangeExceptions,\n item,\n compareRangeException\n );\n\n this.rangeExceptions.splice(idx, 0, item);\n }\n },\n\n /**\n * Checks if this record is an exception and has the RANGE=THISANDFUTURE\n * value.\n *\n * @return {Boolean} True, when exception is within range\n */\n modifiesFuture: function() {\n if (!this.component.hasProperty('recurrence-id')) {\n return false;\n }\n\n var range = this.component.getFirstProperty('recurrence-id').getParameter('range');\n return range === this.THISANDFUTURE;\n },\n\n /**\n * Finds the range exception nearest to the given date.\n *\n * @param {ICAL.Time} time usually an occurrence time of an event\n * @return {?ICAL.Event} the related event/exception or null\n */\n findRangeException: function(time) {\n if (!this.rangeExceptions.length) {\n return null;\n }\n\n var utc = time.toUnixTime();\n var idx = ICAL.helpers.binsearchInsert(\n this.rangeExceptions,\n [utc],\n compareRangeException\n );\n\n idx -= 1;\n\n // occurs before\n if (idx < 0) {\n return null;\n }\n\n var rangeItem = this.rangeExceptions[idx];\n\n /* istanbul ignore next: sanity check only */\n if (utc < rangeItem[0]) {\n return null;\n }\n\n return rangeItem[1];\n },\n\n /**\n * This object is returned by {@link ICAL.Event#getOccurrenceDetails getOccurrenceDetails}\n *\n * @typedef {Object} occurrenceDetails\n * @memberof ICAL.Event\n * @property {ICAL.Time} recurrenceId The passed in recurrence id\n * @property {ICAL.Event} item The occurrence\n * @property {ICAL.Time} startDate The start of the occurrence\n * @property {ICAL.Time} endDate The end of the occurrence\n */\n\n /**\n * Returns the occurrence details based on its start time. If the\n * occurrence has an exception will return the details for that exception.\n *\n * NOTE: this method is intend to be used in conjunction\n * with the {@link ICAL.Event#iterator iterator} method.\n *\n * @param {ICAL.Time} occurrence time occurrence\n * @return {ICAL.Event.occurrenceDetails} Information about the occurrence\n */\n getOccurrenceDetails: function(occurrence) {\n var id = occurrence.toString();\n var utcId = occurrence.convertToZone(ICAL.Timezone.utcTimezone).toString();\n var item;\n var result = {\n //XXX: Clone?\n recurrenceId: occurrence\n };\n\n if (id in this.exceptions) {\n item = result.item = this.exceptions[id];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else if (utcId in this.exceptions) {\n item = this.exceptions[utcId];\n result.startDate = item.startDate;\n result.endDate = item.endDate;\n result.item = item;\n } else {\n // range exceptions (RANGE=THISANDFUTURE) have a\n // lower priority then direct exceptions but\n // must be accounted for first. Their item is\n // always the first exception with the range prop.\n var rangeExceptionId = this.findRangeException(\n occurrence\n );\n var end;\n\n if (rangeExceptionId) {\n var exception = this.exceptions[rangeExceptionId];\n\n // range exception must modify standard time\n // by the difference (if any) in start/end times.\n result.item = exception;\n\n var startDiff = this._rangeExceptionCache[rangeExceptionId];\n\n if (!startDiff) {\n var original = exception.recurrenceId.clone();\n var newStart = exception.startDate.clone();\n\n // zones must be same otherwise subtract may be incorrect.\n original.zone = newStart.zone;\n startDiff = newStart.subtractDate(original);\n\n this._rangeExceptionCache[rangeExceptionId] = startDiff;\n }\n\n var start = occurrence.clone();\n start.zone = exception.startDate.zone;\n start.addDuration(startDiff);\n\n end = start.clone();\n end.addDuration(exception.duration);\n\n result.startDate = start;\n result.endDate = end;\n } else {\n // no range exception standard expansion\n end = occurrence.clone();\n end.addDuration(this.duration);\n\n result.endDate = end;\n result.startDate = occurrence;\n result.item = this;\n }\n }\n\n return result;\n },\n\n /**\n * Builds a recur expansion instance for a specific point in time (defaults\n * to startDate).\n *\n * @param {ICAL.Time} startTime Starting point for expansion\n * @return {ICAL.RecurExpansion} Expansion object\n */\n iterator: function(startTime) {\n return new ICAL.RecurExpansion({\n component: this.component,\n dtstart: startTime || this.startDate\n });\n },\n\n /**\n * Checks if the event is recurring\n *\n * @return {Boolean} True, if event is recurring\n */\n isRecurring: function() {\n var comp = this.component;\n return comp.hasProperty('rrule') || comp.hasProperty('rdate');\n },\n\n /**\n * Checks if the event describes a recurrence exception. See\n * {@tutorial terminology} for details.\n *\n * @return {Boolean} True, if the event describes a recurrence exception\n */\n isRecurrenceException: function() {\n return this.component.hasProperty('recurrence-id');\n },\n\n /**\n * Returns the types of recurrences this event may have.\n *\n * Returned as an object with the following possible keys:\n *\n * - YEARLY\n * - MONTHLY\n * - WEEKLY\n * - DAILY\n * - MINUTELY\n * - SECONDLY\n *\n * @return {Object.<ICAL.Recur.frequencyValues, Boolean>}\n * Object of recurrence flags\n */\n getRecurrenceTypes: function() {\n var rules = this.component.getAllProperties('rrule');\n var i = 0;\n var len = rules.length;\n var result = Object.create(null);\n\n for (; i < len; i++) {\n var value = rules[i].getFirstValue();\n result[value.freq] = true;\n }\n\n return result;\n },\n\n /**\n * The uid of this event\n * @type {String}\n */\n get uid() {\n return this._firstProp('uid');\n },\n\n set uid(value) {\n this._setProp('uid', value);\n },\n\n /**\n * The start date\n * @type {ICAL.Time}\n */\n get startDate() {\n return this._firstProp('dtstart');\n },\n\n set startDate(value) {\n this._setTime('dtstart', value);\n },\n\n /**\n * The end date. This can be the result directly from the property, or the\n * end date calculated from start date and duration. Setting the property\n * will remove any duration properties.\n * @type {ICAL.Time}\n */\n get endDate() {\n var endDate = this._firstProp('dtend');\n if (!endDate) {\n var duration = this._firstProp('duration');\n endDate = this.startDate.clone();\n if (duration) {\n endDate.addDuration(duration);\n } else if (endDate.isDate) {\n endDate.day += 1;\n }\n }\n return endDate;\n },\n\n set endDate(value) {\n if (this.component.hasProperty('duration')) {\n this.component.removeProperty('duration');\n }\n this._setTime('dtend', value);\n },\n\n /**\n * The duration. This can be the result directly from the property, or the\n * duration calculated from start date and end date. Setting the property\n * will remove any `dtend` properties.\n * @type {ICAL.Duration}\n */\n get duration() {\n var duration = this._firstProp('duration');\n if (!duration) {\n return this.endDate.subtractDateTz(this.startDate);\n }\n return duration;\n },\n\n set duration(value) {\n if (this.component.hasProperty('dtend')) {\n this.component.removeProperty('dtend');\n }\n\n this._setProp('duration', value);\n },\n\n /**\n * The location of the event.\n * @type {String}\n */\n get location() {\n return this._firstProp('location');\n },\n\n set location(value) {\n return this._setProp('location', value);\n },\n\n /**\n * The attendees in the event\n * @type {ICAL.Property[]}\n * @readonly\n */\n get attendees() {\n //XXX: This is way lame we should have a better\n // data structure for this later.\n return this.component.getAllProperties('attendee');\n },\n\n\n /**\n * The event summary\n * @type {String}\n */\n get summary() {\n return this._firstProp('summary');\n },\n\n set summary(value) {\n this._setProp('summary', value);\n },\n\n /**\n * The event description.\n * @type {String}\n */\n get description() {\n return this._firstProp('description');\n },\n\n set description(value) {\n this._setProp('description', value);\n },\n\n /**\n * The event color from [rfc7986](https://datatracker.ietf.org/doc/html/rfc7986)\n * @type {String}\n */\n get color() {\n return this._firstProp('color');\n },\n\n set color(value) {\n this._setProp('color', value);\n },\n\n /**\n * The organizer value as an uri. In most cases this is a mailto: uri, but\n * it can also be something else, like urn:uuid:...\n * @type {String}\n */\n get organizer() {\n return this._firstProp('organizer');\n },\n\n set organizer(value) {\n this._setProp('organizer', value);\n },\n\n /**\n * The sequence value for this event. Used for scheduling\n * see {@tutorial terminology}.\n * @type {Number}\n */\n get sequence() {\n return this._firstProp('sequence');\n },\n\n set sequence(value) {\n this._setProp('sequence', value);\n },\n\n /**\n * The recurrence id for this event. See {@tutorial terminology} for details.\n * @type {ICAL.Time}\n */\n get recurrenceId() {\n return this._firstProp('recurrence-id');\n },\n\n set recurrenceId(value) {\n this._setTime('recurrence-id', value);\n },\n\n /**\n * Set/update a time property's value.\n * This will also update the TZID of the property.\n *\n * TODO: this method handles the case where we are switching\n * from a known timezone to an implied timezone (one without TZID).\n * This does _not_ handle the case of moving between a known\n * (by TimezoneService) timezone to an unknown timezone...\n *\n * We will not add/remove/update the VTIMEZONE subcomponents\n * leading to invalid ICAL data...\n * @private\n * @param {String} propName The property name\n * @param {ICAL.Time} time The time to set\n */\n _setTime: function(propName, time) {\n var prop = this.component.getFirstProperty(propName);\n\n if (!prop) {\n prop = new ICAL.Property(propName);\n this.component.addProperty(prop);\n }\n\n // utc and local don't get a tzid\n if (\n time.zone === ICAL.Timezone.localTimezone ||\n time.zone === ICAL.Timezone.utcTimezone\n ) {\n // remove the tzid\n prop.removeParameter('tzid');\n } else {\n prop.setParameter('tzid', time.zone.tzid);\n }\n\n prop.setValue(time);\n },\n\n _setProp: function(name, value) {\n this.component.updatePropertyWithValue(name, value);\n },\n\n _firstProp: function(name) {\n return this.component.getFirstPropertyValue(name);\n },\n\n /**\n * The string representation of this event.\n * @return {String}\n */\n toString: function() {\n return this.component.toString();\n }\n\n };\n\n function compareRangeException(a, b) {\n if (a[0] > b[0]) return 1;\n if (b[0] > a[0]) return -1;\n return 0;\n }\n\n return Event;\n}());\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch, 2011-2015 */\n\n\n/**\n * This symbol is further described later on\n * @ignore\n */\nICAL.ComponentParser = (function() {\n /**\n * @classdesc\n * The ComponentParser is used to process a String or jCal Object,\n * firing callbacks for various found components, as well as completion.\n *\n * @example\n * var options = {\n * // when false no events will be emitted for type\n * parseEvent: true,\n * parseTimezone: true\n * };\n *\n * var parser = new ICAL.ComponentParser(options);\n *\n * parser.onevent(eventComponent) {\n * //...\n * }\n *\n * // ontimezone, etc...\n *\n * parser.oncomplete = function() {\n *\n * };\n *\n * parser.process(stringOrComponent);\n *\n * @class\n * @alias ICAL.ComponentParser\n * @param {Object=} options Component parser options\n * @param {Boolean} options.parseEvent Whether events should be parsed\n * @param {Boolean} options.parseTimezeone Whether timezones should be parsed\n */\n function ComponentParser(options) {\n if (typeof(options) === 'undefined') {\n options = {};\n }\n\n var key;\n for (key in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(key)) {\n this[key] = options[key];\n }\n }\n }\n\n ComponentParser.prototype = {\n\n /**\n * When true, parse events\n *\n * @type {Boolean}\n */\n parseEvent: true,\n\n /**\n * When true, parse timezones\n *\n * @type {Boolean}\n */\n parseTimezone: true,\n\n\n /* SAX like events here for reference */\n\n /**\n * Fired when parsing is complete\n * @callback\n */\n oncomplete: /* istanbul ignore next */ function() {},\n\n /**\n * Fired if an error occurs during parsing.\n *\n * @callback\n * @param {Error} err details of error\n */\n onerror: /* istanbul ignore next */ function(err) {},\n\n /**\n * Fired when a top level component (VTIMEZONE) is found\n *\n * @callback\n * @param {ICAL.Timezone} component Timezone object\n */\n ontimezone: /* istanbul ignore next */ function(component) {},\n\n /**\n * Fired when a top level component (VEVENT) is found.\n *\n * @callback\n * @param {ICAL.Event} component Top level component\n */\n onevent: /* istanbul ignore next */ function(component) {},\n\n /**\n * Process a string or parse ical object. This function itself will return\n * nothing but will start the parsing process.\n *\n * Events must be registered prior to calling this method.\n *\n * @param {ICAL.Component|String|Object} ical The component to process,\n * either in its final form, as a jCal Object, or string representation\n */\n process: function(ical) {\n //TODO: this is sync now in the future we will have a incremental parser.\n if (typeof(ical) === 'string') {\n ical = ICAL.parse(ical);\n }\n\n if (!(ical instanceof ICAL.Component)) {\n ical = new ICAL.Component(ical);\n }\n\n var components = ical.getAllSubcomponents();\n var i = 0;\n var len = components.length;\n var component;\n\n for (; i < len; i++) {\n component = components[i];\n\n switch (component.name) {\n case 'vtimezone':\n if (this.parseTimezone) {\n var tzid = component.getFirstPropertyValue('tzid');\n if (tzid) {\n this.ontimezone(new ICAL.Timezone({\n tzid: tzid,\n component: component\n }));\n }\n }\n break;\n case 'vevent':\n if (this.parseEvent) {\n this.onevent(new ICAL.Event(component));\n }\n break;\n default:\n continue;\n }\n }\n\n //XXX: ideally we should do a \"nextTick\" here\n // so in all cases this is actually async.\n this.oncomplete();\n }\n };\n\n return ComponentParser;\n}());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getZoneString = exports.getZoneLines = void 0;\nconst zones_1 = require(\"./zones\"); // This module must be generated with `yarn run build-zones`.\nfunction renderZoneSub(data) {\n const { n, f, t, r, s } = data;\n return [\n `TZNAME:${n}`,\n `TZOFFSETFROM:${f}`,\n `TZOFFSETTO:${t || f}`,\n `DTSTART:${s || zones_1.defaultStart}`,\n ...(r ? [`RRULE:FREQ=${r.f || 'YEARLY'};BYMONTH=${r.m};BYDAY=${r.d}`] : []),\n ];\n}\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string array (usually for further processing).\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns Lines of the iCalendar time zone component (`VTIMEZONE`), each line\n * individually as an array of strings.\n */\nfunction getZoneLines(zoneName, includeWrapper = true) {\n const zoneData = zones_1.zonesMap.get(zoneName);\n if (zoneData) {\n const { s, d } = zoneData;\n const lines = [\n ...(includeWrapper ? ['BEGIN:VTIMEZONE'] : []),\n `TZID:${zoneName}`,\n // `X-LIC-LOCATION:${zoneName}`, // Who uses this?\n 'BEGIN:STANDARD',\n ...renderZoneSub(s),\n 'END:STANDARD',\n ...(d ? [\n 'BEGIN:DAYLIGHT',\n ...renderZoneSub(d),\n 'END:DAYLIGHT',\n ] : []),\n ...(includeWrapper ? ['END:VTIMEZONE'] : []),\n ];\n return lines;\n }\n}\nexports.getZoneLines = getZoneLines;\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string.\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns The iCalendar time zone component (`VTIMEZONE`) as string\n * with `\\r\\n` line breaks.\n */\nfunction getZoneString(zoneName, includeWrapper = true) {\n const lines = getZoneLines(zoneName, includeWrapper);\n return lines === null || lines === void 0 ? void 0 : lines.join('\\r\\n');\n}\nexports.getZoneString = getZoneString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zonesMap = exports.defaultStart = void 0;\nexports.defaultStart = \"19700101T000000\";\nexports.zonesMap = new Map([\n [\n \"Africa/Abidjan\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Accra\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Addis_Ababa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Algiers\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Asmara\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Bamako\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bangui\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Banjul\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bissau\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Blantyre\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Brazzaville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Bujumbura\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Cairo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Casablanca\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Ceuta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Africa/Conakry\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dakar\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dar_es_Salaam\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Djibouti\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Douala\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/El_Aaiun\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Freetown\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Gaborone\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Harare\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Johannesburg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Juba\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Kampala\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Khartoum\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kigali\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kinshasa\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lagos\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Libreville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lome\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Luanda\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lubumbashi\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Lusaka\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Malabo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Maputo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Maseru\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mbabane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mogadishu\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Monrovia\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Nairobi\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Ndjamena\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Niamey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Nouakchott\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Ouagadougou\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Porto-Novo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Sao_Tome\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Tripoli\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Tunis\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Windhoek\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"America/Adak\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"t\": \"-1000\",\n \"n\": \"HST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-1000\",\n \"t\": \"-0900\",\n \"n\": \"HDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anchorage\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anguilla\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Antigua\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Araguaina\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Buenos_Aires\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Catamarca\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Cordoba\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Jujuy\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/La_Rioja\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Mendoza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Rio_Gallegos\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Salta\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Juan\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Luis\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Tucuman\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Ushuaia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Aruba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Asuncion\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700322T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701004T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Atikokan\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Bahia_Banderas\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Bahia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Barbados\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Belem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Belize\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Blanc-Sablon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Boa_Vista\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Bogota\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Boise\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Cambridge_Bay\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Campo_Grande\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Cancun\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Caracas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Cayenne\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Cayman\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Chicago\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Chihuahua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Costa_Rica\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Creston\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Cuiaba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Curacao\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Danmarkshavn\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"America/Dawson_Creek\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Dawson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Denver\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Detroit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Dominica\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Edmonton\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Eirunepe\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/El_Salvador\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Fort_Nelson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Fortaleza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Glace_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Godthab\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701024T230000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700328T220000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SA\"\n }\n }\n }\n ],\n [\n \"America/Goose_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grand_Turk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grenada\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guadeloupe\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guatemala\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Guayaquil\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Guyana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Halifax\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Havana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"CST\",\n \"s\": \"19701101T010000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"CDT\",\n \"s\": \"19700308T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Hermosillo\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Indiana/Indianapolis\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Knox\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Marengo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Petersburg\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Tell_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vevay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vincennes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Winamac\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Inuvik\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Iqaluit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Jamaica\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Juneau\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Louisville\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Monticello\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kralendijk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/La_Paz\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Lima\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Los_Angeles\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Lower_Princes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Maceio\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Managua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Manaus\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Marigot\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Martinique\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Matamoros\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mazatlan\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Menominee\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Merida\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Metlakatla\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mexico_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Miquelon\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Moncton\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Monterrey\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Montevideo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Montserrat\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Nassau\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/New_York\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nipigon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nome\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Noronha\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"America/North_Dakota/Beulah\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/Center\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/New_Salem\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Ojinaga\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Panama\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Pangnirtung\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Paramaribo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Phoenix\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Port_of_Spain\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Port-au-Prince\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Porto_Velho\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Puerto_Rico\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Punta_Arenas\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Rainy_River\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rankin_Inlet\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Recife\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Regina\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Resolute\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rio_Branco\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Santarem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Santiago\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700405T000000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700906T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Santo_Domingo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Sao_Paulo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Scoresbysund\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"America/Sitka\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Barthelemy\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Johns\",\n {\n \"s\": {\n \"f\": \"-0230\",\n \"t\": \"-0330\",\n \"n\": \"NST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0330\",\n \"t\": \"-0230\",\n \"n\": \"NDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Kitts\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Lucia\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Thomas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Vincent\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Swift_Current\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Tegucigalpa\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Thule\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Thunder_Bay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tijuana\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Toronto\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tortola\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Vancouver\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Whitehorse\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Winnipeg\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yakutat\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yellowknife\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Casey\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Antarctica/Davis\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Antarctica/DumontDUrville\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Antarctica/Macquarie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Antarctica/Mawson\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Antarctica/McMurdo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Palmer\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Rothera\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Syowa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Antarctica/Troll\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0200\",\n \"n\": \"+02\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Vostok\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Arctic/Longyearbyen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Aden\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Almaty\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Amman\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700326T235959\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1TH\"\n }\n }\n }\n ],\n [\n \"Asia/Anadyr\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Aqtau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Aqtobe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Ashgabat\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Atyrau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Baghdad\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Bahrain\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Baku\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Bangkok\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Barnaul\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Beirut\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Bishkek\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Brunei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Chita\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Choibalsan\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Colombo\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"+0530\"\n }\n }\n ],\n [\n \"Asia/Damascus\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700327T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Dhaka\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Dili\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Dubai\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Dushanbe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Famagusta\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Gaza\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Hebron\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Ho_Chi_Minh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Hong_Kong\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"HKT\"\n }\n }\n ],\n [\n \"Asia/Hovd\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Irkutsk\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Jakarta\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Jayapura\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"WIT\"\n }\n }\n ],\n [\n \"Asia/Jerusalem\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"IST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"IDT\",\n \"s\": \"19700327T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Kabul\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"n\": \"+0430\"\n }\n }\n ],\n [\n \"Asia/Kamchatka\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Karachi\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"PKT\"\n }\n }\n ],\n [\n \"Asia/Kathmandu\",\n {\n \"s\": {\n \"f\": \"+0545\",\n \"n\": \"+0545\"\n }\n }\n ],\n [\n \"Asia/Khandyga\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Kolkata\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"IST\"\n }\n }\n ],\n [\n \"Asia/Krasnoyarsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Kuala_Lumpur\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuching\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuwait\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Macau\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Magadan\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Makassar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"WITA\"\n }\n }\n ],\n [\n \"Asia/Manila\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"PST\"\n }\n }\n ],\n [\n \"Asia/Muscat\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Novokuznetsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Novosibirsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Omsk\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Oral\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Phnom_Penh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Pontianak\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Pyongyang\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Qatar\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Qyzylorda\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Riyadh\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Sakhalin\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Samarkand\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Seoul\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Shanghai\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Singapore\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Srednekolymsk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Taipei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Tashkent\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Tbilisi\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Tehran\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"t\": \"+0330\",\n \"n\": \"+0330\",\n \"s\": \"19700921T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"+0330\",\n \"t\": \"+0430\",\n \"n\": \"+0430\",\n \"s\": \"19700321T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"3SU\"\n }\n }\n }\n ],\n [\n \"Asia/Thimphu\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Tokyo\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"JST\"\n }\n }\n ],\n [\n \"Asia/Tomsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Ulaanbaatar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Urumqi\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Ust-Nera\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Vientiane\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Vladivostok\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Yakutsk\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Yangon\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Asia/Yekaterinburg\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Yerevan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Atlantic/Azores\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Bermuda\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Canary\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Cape_Verde\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Atlantic/Faroe\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Madeira\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Reykjavik\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/South_Georgia\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Atlantic/St_Helena\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/Stanley\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Australia/Adelaide\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Brisbane\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Broken_Hill\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Currie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Darwin\",\n {\n \"s\": {\n \"f\": \"+0930\",\n \"n\": \"ACST\"\n }\n }\n ],\n [\n \"Australia/Eucla\",\n {\n \"s\": {\n \"f\": \"+0845\",\n \"n\": \"+0845\"\n }\n }\n ],\n [\n \"Australia/Hobart\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Lindeman\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Lord_Howe\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1030\",\n \"n\": \"+1030\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1030\",\n \"t\": \"+1100\",\n \"n\": \"+11\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Melbourne\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Perth\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"AWST\"\n }\n }\n ],\n [\n \"Australia/Sydney\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Etc/GMT-0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT-1\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Etc/GMT-10\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Etc/GMT-11\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Etc/GMT-12\",\n {\n \"s\": {\n \"f\": \"-1200\",\n \"n\": \"-12\"\n }\n }\n ],\n [\n \"Etc/GMT-2\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Etc/GMT-3\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Etc/GMT-4\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"Etc/GMT-5\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"Etc/GMT-6\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Etc/GMT-7\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"-07\"\n }\n }\n ],\n [\n \"Etc/GMT-8\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Etc/GMT-9\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Etc/GMT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+1\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Etc/GMT+10\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Etc/GMT+11\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Etc/GMT+12\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Etc/GMT+13\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Etc/GMT+14\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Etc/GMT+2\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"+02\"\n }\n }\n ],\n [\n \"Etc/GMT+3\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Etc/GMT+4\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Etc/GMT+5\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Etc/GMT+6\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Etc/GMT+7\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Etc/GMT+8\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Etc/GMT+9\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Etc/GMT0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/Greenwich\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/UCT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UCT\"\n }\n }\n ],\n [\n \"Etc/Universal\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/UTC\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/Zulu\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Europe/Amsterdam\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Andorra\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Astrakhan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Athens\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Belgrade\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Berlin\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bratislava\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Brussels\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bucharest\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Budapest\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Busingen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Chisinau\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Copenhagen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Dublin\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"IST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Gibraltar\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Guernsey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Helsinki\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Isle_of_Man\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Jersey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kaliningrad\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Europe/Kiev\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kirov\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Lisbon\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ljubljana\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/London\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Luxembourg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Madrid\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Malta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Mariehamn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Minsk\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Monaco\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Moscow\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Oslo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Paris\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Podgorica\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Prague\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Riga\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Rome\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Samara\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/San_Marino\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sarajevo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Saratov\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Simferopol\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Skopje\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sofia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Stockholm\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tallinn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tirane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ulyanovsk\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Uzhgorod\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vaduz\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vatican\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vienna\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vilnius\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Volgograd\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Warsaw\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zagreb\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zaporozhye\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zurich\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Indian/Antananarivo\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Chagos\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Indian/Christmas\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Indian/Cocos\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Indian/Comoro\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Kerguelen\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mahe\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Maldives\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mauritius\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Mayotte\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Reunion\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Pacific/Apia\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19700405T040000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1300\",\n \"t\": \"+1400\",\n \"n\": \"+14\",\n \"s\": \"19700927T030000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Auckland\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Bougainville\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Chatham\",\n {\n \"s\": {\n \"f\": \"+1345\",\n \"t\": \"+1245\",\n \"n\": \"+1245\",\n \"s\": \"19700405T034500\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1245\",\n \"t\": \"+1345\",\n \"n\": \"+1345\",\n \"s\": \"19700927T024500\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Chuuk\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Easter\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"-06\",\n \"s\": \"19700404T220000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"-05\",\n \"s\": \"19700905T220000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SA\"\n }\n }\n }\n ],\n [\n \"Pacific/Efate\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Enderbury\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fakaofo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fiji\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"+12\",\n \"s\": \"19700118T030000\",\n \"r\": {\n \"m\": 1,\n \"d\": \"-2SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Funafuti\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Galapagos\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Pacific/Gambier\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Pacific/Guadalcanal\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Guam\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Honolulu\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"HST\"\n }\n }\n ],\n [\n \"Pacific/Kiritimati\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Pacific/Kosrae\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Kwajalein\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Majuro\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Marquesas\",\n {\n \"s\": {\n \"f\": \"-0930\",\n \"n\": \"-0930\"\n }\n }\n ],\n [\n \"Pacific/Midway\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Nauru\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Niue\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Pacific/Norfolk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Noumea\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Pago_Pago\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Palau\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Pacific/Pitcairn\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Pacific/Pohnpei\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Port_Moresby\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Rarotonga\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Saipan\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Tahiti\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Tarawa\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Tongatapu\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Wake\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Wallis\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ]\n]);\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\n","var identity = require('./identity'),\n metaMap = require('./_metaMap');\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\n","var createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\n","var baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n countHolders = require('./_countHolders'),\n createCtor = require('./_createCtor'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n reorder = require('./_reorder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n","var isLaziable = require('./_isLaziable'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","var realNames = require('./_realNames');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var LazyWrapper = require('./_LazyWrapper'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n lodash = require('./wrapperLodash');\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n","var WeakMap = require('./_WeakMap');\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\n","var baseSetData = require('./_baseSetData'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n","var getWrapDetails = require('./_getWrapDetails'),\n insertWrapDetails = require('./_insertWrapDetails'),\n setToString = require('./_setToString'),\n updateWrapDetails = require('./_updateWrapDetails');\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n","var arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nmodule.exports = ary;\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nmodule.exports = curry;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var defaultHolder = isLib ? func : fallbackHolder,\n forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isError': util.isError,\n 'isFunction': util.isFunction,\n 'isWeakMap': util.isWeakMap,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isError = helpers.isError,\n isFunction = helpers.isFunction,\n isWeakMap = helpers.isWeakMap,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null &&\n !(isFunction(value) || isError(value) || isWeakMap(value))) {\n nested[key] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func, placeholder) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n result.placeholder = func.placeholder = placeholder;\n\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func, defaultHolder);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func, _)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n _.placeholder = _;\n\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n","module.exports = {\n 'ary': require('../ary'),\n 'assign': require('../_baseAssign'),\n 'clone': require('../clone'),\n 'curry': require('../curry'),\n 'forEach': require('../_arrayEach'),\n 'isArray': require('../isArray'),\n 'isError': require('../isError'),\n 'isFunction': require('../isFunction'),\n 'isWeakMap': require('../isWeakMap'),\n 'iteratee': require('../iteratee'),\n 'keys': require('../_baseKeys'),\n 'rearg': require('../rearg'),\n 'toInteger': require('../toInteger'),\n 'toPath': require('../toPath')\n};\n","var baseConvert = require('./_baseConvert'),\n util = require('./_util');\n\n/**\n * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied. If `name` is an object its methods\n * will be converted.\n *\n * @param {string} name The name of the function to wrap.\n * @param {Function} [func] The function to wrap.\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction convert(name, func, options) {\n return baseConvert(util, name, func, options);\n}\n\nmodule.exports = convert;\n","var convert = require('./convert'),\n func = convert('memoize', require('../memoize'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nmodule.exports = isWeakMap;\n","var baseClone = require('./_baseClone'),\n baseIteratee = require('./_baseIteratee');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nmodule.exports = iteratee;\n","var createWrap = require('./_createWrap'),\n flatRest = require('./_flatRest');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nmodule.exports = rearg;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var arrayMap = require('./_arrayMap'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol'),\n stringToPath = require('./_stringToPath'),\n toKey = require('./_toKey'),\n toString = require('./toString');\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nmodule.exports = toPath;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1110\":\"ee198291c8b389847012\",\"7422\":\"482a0a2770e9dedf21f9\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3705;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3705: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(7296)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","formatDateAsYMD","date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","concat","getLoggerBuilder","setApp","detectUser","build","name","components","NcButton","NcTextField","NcTextArea","NcDateTimePickerNative","data","firstDay","lastDay","status","message","loadState","loading","Date","computed","valid","_this$firstDay","_this$lastDay","getTime","setHours","methods","resetForm","saveForm","axios","post","generateOcsUrl","userId","getCurrentUser","uid","showSuccess","$t","error","showError","logger","clearAbsence","delete","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","on","$event","preventDefault","apply","arguments","attrs","model","value","callback","$$v","expression","_v","_s","randomUUID","crypto","bind","getRandomValues","rnds8","Uint8Array","rng","Error","byteToHex","i","push","slice","buf","offset","rnds","random","arr","unsafeStringify","$","n","t","e","s","o","u","r","l","a","render","staticRenderFns","_compiled","functional","_scopeId","c","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","p","S","m","d","beforeCreate","exports","U","IconAdd","IconDelete","props","slots","type","Object","required","Boolean","default","l10nTo","String","l10nDeleteSlot","l10nEmptyDay","l10nAddSlot","l10nWeekDayListLabel","l10nMonday","l10nTuesday","l10nWednesday","l10nThursday","l10nFriday","l10nSaturday","l10nSunday","l10nStartPickerLabel","Function","l10nEndPickerLabel","internalSlots","slotsToInternalData","watch","timeStampSlotsToDateObjectSlots","map","start","end","id","displayName","MO","TU","WE","TH","FR","SA","SU","internalDataToSlots","forEach","Math","round","addSlot","onChangeSlots","removeSlot","splice","$emit","_l","key","label","change","$set","title","click","scopedSlots","_u","fn","size","proxy","length","_e","disabled","w","getClient","memoize","service","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","NcCheckboxRadioSwitch","CalendarAvailability","NcTimezonePicker","_Intl$DateTimeFormat$","_Intl$DateTimeFormat","saving","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","automated","timeZonePickerId","substring","mounted","slotData","async","_xml$multistatus","response","customRequest","method","xml","parseXML","availability","multistatus","propstat","prop","getFirstSubcomponent","getFirstProperty","getFirstValue","getAllSubcomponents","toJSDate","freq","getComponent","warn","rrule","toICALString","timezoneId","vavailabilityToSlots","findScheduleInboxAvailability","console","info","save","vavailability","ICAL","Component","addPropertyWithValue","parse","addSubcomponent","reduce","getHours","getMinutes","join","keys","filter","y","f","indexOf","Time","fromJSDate","setParameter","byday","slotsToVavailability","flatMap","dayId","slot","debug","saveScheduleInboxAvailability","appId","configKey","configValue","enableUserStatusAutomation","disableUserStatusAutomation","dayName","NcSettingsSection","AbsenceForm","AvailabilityForm","hideAbsenceSettings","Vue","prototype","translate","extend","Availability","$mount","___CSS_LOADER_EXPORT___","module","OPTIONS","zones","TimezoneService","foldLength","newLineChar","helpers","updateTimezones","vcal","allsubs","properties","vtimezones","reqTzid","tzid","getAllProperties","getParameter","hasOwnProperty","removeSubcomponent","has","get","component","isStrictlyNaN","number","isNaN","strictParseInt","string","result","parseInt","formatClassType","unescapedIndexOf","buffer","search","pos","binsearchInsert","list","seekVal","cmpfunc","mid","cmpval","low","high","floor","dumpn","input","log","dump","clone","aSrc","aDeep","Array","isArray","obj","foldline","aLine","line","line_length","cp","codePointAt","substr","pad2","trunc","ceil","inherits","base","child","extra","F","source","target","descr","getOwnPropertyDescriptor","defineProperty","design","FROM_VCARD_NEWLINE","TO_VCARD_NEWLINE","createTextType","fromNewline","toNewline","matches","fromICAL","aValue","structuredEscape","newline","RegExp","replace","replaceNewlineReplace","replaceNewline","toICAL","regEx","str","DEFAULT_TYPE_TEXT","defaultType","DEFAULT_TYPE_TEXT_MULTI","multiValue","DEFAULT_TYPE_TEXT_STRUCTURED","structuredValue","DEFAULT_TYPE_INTEGER","DEFAULT_TYPE_DATETIME_DATE","allowedTypes","DEFAULT_TYPE_DATETIME","DEFAULT_TYPE_URI","DEFAULT_TYPE_UTCOFFSET","DEFAULT_TYPE_RECUR","DEFAULT_TYPE_DATE_ANDOR_TIME","commonProperties","commonValues","values","float","parsed","parseFloat","integer","decorate","UtcOffset","fromString","undecorate","icalValues","text","uri","aString","Binary","aBinary","aProp","strict","fromDateString","len","fromDateTimeString","duration","Duration","period","parts","split","isValueString","Period","fromJSON","toJSON","recur","Recur","_stringToData","k","val","numericDayToIcalDay","toUpperCase","fromData","aRecur","time","icalProperties","detectType","vcardValues","VCardTime","fromDateAndOrTimeString","splitzone","_splitZone","zone","isFromIcal","lastChar","signChar","sign","timestamp","vcardProperties","vcard3Values","binary","vcard","vcard3Properties","nickname","photo","bday","adr","tel","email","mailer","tz","geo","role","logo","agent","org","note","prodid","rev","sound","class","icalSet","param","allowXName","allowIanaToken","valueType","multiValueSeparateDQuote","property","vcardSet","vcard3Set","defaultSet","vcard3","vevent","vtodo","vjournal","valarm","vtimezone","daylight","standard","icalendar","getDesignSet","componentName","stringify","LINE_ENDING","DEFAULT_VALUE_TYPE","jCal","designSet","propIdx","propLen","designSetName","comps","compIdx","compLen","noFold","paramName","jsName","params","_rfc6868Unescape","propertyValue","propDetails","isDefault","delim","innerMulti","x","RFC6868_REPLACE_MAP","CHAR","ParserError","stack","shift","parser","state","root","_eachLine","err","_handleContentLine","lastParamIndex","lastValuePos","parsedParams","valuePos","paramPos","toLowerCase","_parseParameters","newComponent","pop","propertyDetails","_parseMultiValue","_parseValue","lcname","mvdelim","lastParam","_rfc6868Escape","extendedValue","nextPos","propValuePos","delimiter","lastPos","firstChar","newlineOffset","trim","_hydratedPropertyCount","_hydratedComponentCount","_designSet","_hydrateComponent","index","_components","comp","_hydrateProperty","_properties","Property","jCalLen","hasProperty","getFirstPropertyValue","_removeObjectByIndex","jCalIndex","cache","_removeObject","nameOrObject","objects","cached","_removeAllObjects","idx","nameOrComp","removed","removeAllSubcomponents","addProperty","TypeError","removeProperty","setValue","updatePropertyWithValue","nameOrProp","removeAllProperties","_parent","getDefaultType","_updateType","designSetChanged","isDecorated","isMultiValue","isStructuredValue","_hydrateValue","_values","_decorate","_undecorate","_setDecoratedValue","getFirstParameter","parameters","removeParameter","details","resetType","removeAllValues","getValues","setValues","icaltype","aData","hours","minutes","factor","fromSeconds","toSeconds","_normalize","aSeconds","secs","abs","compare","other","b","instance","decodeValue","_b64_decode","setEncodedValue","_b64_encode","h1","h2","h3","h4","bits","b64","ac","enc","tmp_arr","charCodeAt","charAt","o1","o2","o3","fromCharCode","wrappedJSObject","icalclass","getDuration","subtractDate","getEnd","addDuration","aLenient","fromDateOrDateTimeString","DURATION_LETTERS","parseDurationChunk","letter","object","isNegative","num","weeks","days","seconds","propsToCopy","reset","aOther","thisSeconds","otherSeconds","normalize","aStr","dict","create","chunks","numeric","Timezone","location","tznames","latitude","longitude","expandedUntilYear","changes","utcOffset","tt","utcTimezone","localTimezone","_ensureCoverage","tt_change","hour","minute","second","change_num","_findNearbyChange","change_num_to_use","step","prevUtcOffset","adjust_change","_compare_change_fn","zone_change","tmp_change","prev_zone_change","want_daylight","is_daylight","aYear","_minimumExpansionYear","today","now","changesEndYear","EXTRA_COVERAGE","MAX_YEAR","subcomps","_expandComponent","sort","aComponent","dtstart","convert_tzoffset","init_changes","changebase","rdatekey","isDate","until","adjust","occ","iterator","next","convert_time","from_zone","to_zone","count","utc","Z","UTC","GMT","register","remove","_time","_dowCache","_wnCache","_cachedUnixTime","_pendingNormalization","epochTime","resetTo","aDate","useUTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getSeconds","aZone","dayOfWeek","aWeekStart","firstDow","SUNDAY","dowCacheKey","q","Y","h","dayOfYear","is_leap","isLeapYear","daysInYearPassedMonth","startOfWeek","endOfWeek","startOfMonth","endOfMonth","daysInMonth","startOfYear","endOfYear","startDoyWeek","aFirstDayOfWeek","delta","getDominicalLetter","nthWeekDay","aDayOfWeek","aPos","weekday","otherDay","isNthWeekDay","dow","weekNumber","week1","wnCacheKey","dt","isoyear","weekOneStarts","daysBetween","answer","aDuration","mult","unixTime","toUnixTime","subtractDateTz","compareDateOnlyTz","cmp","attr","_cmp_attr","convertToZone","rc","copy","zone_equals","aExtraDays","aExtraHours","aExtraMinutes","aExtraSeconds","aTime","minutesOverflow","hoursOverflow","daysOverflow","yearsOverflow","fromUnixTime","epoch","ms","defineAttr","set","fromDayOfYear","aDayOfYear","doy","auto_normalize","fromStringv2","aProperty","wkst","DEFAULT_WEEK_START","THURSDAY","yr","LTRS","dom","MONDAY","TUESDAY","WEDNESDAY","FRIDAY","SATURDAY","p2","mm","hasMonth","hasDay","hasHour","hasMinute","hasSecond","datepart","timepart","aIcalType","part","v","tmz","tm","dtlen","tmlen","hasDashDate","hasDashTime","DOW_MAP","REVERSE_DOW_MAP","parseNumericValue","min","max","undefined","interval","aStart","RecurIterator","rule","isFinite","isByCount","addComponent","aType","ucname","setComponent","aValues","getNextOccurrence","aStartTime","aRecurrenceId","iter","uckey","partDesign","optionDesign","INTERVAL","icalDayToNumericDay","res","kparts","VALID_DAY_NAMES","VALID_BYDAY_PART","ALLOWED_FREQ","FREQ","fmtIcal","COUNT","UNTIL","WKST","test","BYSECOND","BYMINUTE","BYHOUR","BYDAY","BYMONTHDAY","BYYEARDAY","BYWEEKNO","BYMONTH","BYSETPOS","partArr","partArrIdx","partArrLen","icalrecur_iterator","completed","last","occurrence_number","by_indices","initialized","by_data","days_index","init","sort_byday_rules","setup_defaults","bydayParts","ruleDayOfWeek","wkdy","expand_year_days","increment_year","_nextByYearDay","has_by_data","tempLast","initLast","dayOfMonth","increment_month","_byDayAndMonthDay","before","next_second","next_minute","next_hour","next_day","next_week","next_month","next_year","check_contracting_rules","next_generic","increment_second","inc","increment_generic","increment_minute","increment_hour","this_freq","increment_monthday","end_of_data","next_weekday_by_week","week_no","normalizeByMonthDayRules","rules","newRules","ruleIdx","isInit","byMonthDay","dateLen","byDay","dateIdx","dayLen","dataIsValid","self","initMonth","nextMonth","monthsCounter","dayIdx","data_valid","setpos","setpos_total","last_day","is_day_in_byday","check_set_position","coded_day","match","aRuleType","aInterval","aDateAttr","aFollowingAttr","aPreviousIncr","has_by_rule","dta","years","aFactor","aNextIncrement","nextunit","validWeeks","monthIdx","first_week","last_week","weekIdx","weekno","partCount","t1","monthkey","t2","monthdaykey","t3","day_","month_","expand_by_day","first_dow","doy_offset","last_dow","by_month_day","spIndex","daycodedkey","month_day","first_matching_day","last_matching_day","expandedDays","daykey","days_list","tmp","start_dow","end_dow","end_year_day","first","this_dow","aRules","j","check_contract_restriction","indexMapValue","_indexMap","ruleMapValue","_expandMap","pass","CONTRACT","ruleType","bydatakey","weekNo","req","deftime","UNKNOWN","EXPAND","ILLEGAL","RecurExpansion","formatTime","item","compareTime","ruleDates","exDates","complete","ruleIterators","ruleDateInc","exDateInc","exDate","ruleDate","_init","currentTry","_nextRecurrenceIter","_nextRuleDay","_nextExDay","_extractDates","propertyName","handleProp","iters","iterTime","chosenIter","iterIdx","Event","_rangeExceptionCache","exceptions","rangeExceptions","strictExceptions","relateException","isRecurrenceException","event","compareRangeException","THISANDFUTURE","recurrenceId","modifiesFuture","findRangeException","rangeItem","getOccurrenceDetails","occurrence","utcId","startDate","endDate","rangeExceptionId","exception","startDiff","original","newStart","startTime","isRecurring","getRecurrenceTypes","_firstProp","_setProp","_setTime","attendees","summary","description","color","organizer","sequence","propName","ComponentParser","parseEvent","parseTimezone","oncomplete","onerror","ontimezone","onevent","process","ical","zones_1","renderZoneSub","defaultStart","zoneName","includeWrapper","lines","zoneData","zonesMap","getZoneLines","Map","baseCreate","baseLodash","LazyWrapper","__wrapped__","__actions__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","constructor","LodashWrapper","chainAll","__chain__","__index__","__values__","arrayPush","isFlattenable","baseFlatten","array","depth","predicate","isStrict","identity","metaMap","baseSetData","func","nativeMax","args","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","holdersIndex","rightIndex","rightLength","placeholder","createCtor","bitmask","thisArg","isBind","Ctor","wrapper","isObject","thisBinding","createHybrid","createRecurry","getHolder","replaceHolders","arity","composeArgs","composeArgsRight","countHolders","reorder","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reverse","isLaziable","setData","setWrapToString","wrapFunc","isCurry","newData","createBind","createCurry","createPartial","getData","mergeData","toInteger","flatten","overRest","setToString","noop","realNames","otherFunc","reWrapDetails","reSplitDetails","reWrapComment","lastIndex","Symbol","isArguments","spreadableSymbol","isConcatSpreadable","getFuncName","lodash","funcName","PLACEHOLDER","nativeMin","srcBitmask","newBitmask","isCommon","isCombo","WeakMap","copyArray","isIndex","indexes","arrLength","oldArray","resIndex","shortOut","getWrapDetails","insertWrapDetails","updateWrapDetails","reference","arrayEach","arrayIncludes","wrapFlags","pair","createWrap","guard","curry","mapping","fallbackHolder","baseAry","cloneArray","wrapImmutable","cloner","baseConvert","util","isLib","isObj","config","cap","fixed","immutable","rearg","defaultHolder","forceCurry","forceFixed","forceRearg","pristine","runInContext","assign","isError","isFunction","isWeakMap","iteratee","toPath","each","aryMethodKeys","aryMethod","wrappers","castArray","mixin","pairs","nthArg","context","castFixed","skipFixed","methodSpread","otherArgs","flatSpread","castRearg","skipRearg","methodRearg","aryRearg","cloneByPath","path","nested","createConverter","realName","aliasToReal","methodName","remap","oldOptions","newUtil","newFunc","newOptions","overArg","transform","wrap","wrapped","mutate","createCloner","aryKey","otherName","afterRearg","castCurry","iterateeRearg","baseArity","iterateeAry","castCap","convert","_","realToAlias","alias","baseGetTag","isObjectLike","isPlainObject","tag","getTag","baseClone","baseIteratee","flatRest","toNumber","INFINITY","toFinite","remainder","arrayMap","isSymbol","stringToPath","toKey","wrapperClone","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","definition","enumerable","chunkId","Promise","all","promises","g","globalThis","window","url","done","script","needAttach","scripts","document","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","head","appendChild","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"dav-settings-personal-availability.js?v=5f37d897411e77c74441","mappings":"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EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,+BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,6BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,0BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,8BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iCACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,4BACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,yBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,wBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,aACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,YACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,UACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,WACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,cACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,OACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,uBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,WAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,QAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,UAKrB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,EACL,EAAK,SAGb,EAAK,CACD,EAAK,QACL,EAAK,QACL,EAAK,MACL,EAAK,kBACL,EAAK,CACD,EAAK,GACL,EAAK,UAKrB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,sBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,UAIjB,CACI,mBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,qBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,WAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,eACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,kBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,iBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,oBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,gBACA,CACI,EAAK,CACD,EAAK,QACL,EAAK,SAIjB,CACI,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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/dav/src/utils/date.js","webpack:///nextcloud/apps/dav/src/service/logger.js","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?fb7f","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?0782","webpack://nextcloud/./apps/dav/src/components/AbsenceForm.vue?5b67","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?ba59","webpack://nextcloud/./node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-Ds7BWaqb.css?15a8","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/node_modules/ical.js/dist/ical.min.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/native.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/rng.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/stringify.js","webpack:///nextcloud/node_modules/uuid/dist/esm-browser/v4.js","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/node_modules/@nextcloud/logger/dist/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/dist/index.mjs","webpack:///nextcloud/apps/dav/src/dav/client.js","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue","webpack:///nextcloud/apps/dav/src/service/CalendarService.js","webpack:///nextcloud/apps/dav/src/service/PreferenceService.js","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?23dd","webpack://nextcloud/./apps/dav/src/components/AvailabilityForm.vue?1bb2","webpack:///nextcloud/apps/dav/src/views/Availability.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/dav/src/views/Availability.vue","webpack://nextcloud/./apps/dav/src/views/Availability.vue?aa5a","webpack://nextcloud/./apps/dav/src/views/Availability.vue?4eb1","webpack:///nextcloud/apps/dav/src/settings-personal-availability.js","webpack:///nextcloud/node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-Ds7BWaqb.css","webpack:///nextcloud/apps/dav/src/components/AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/dav/src/components/AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/icalzone/dist/index.js","webpack:///nextcloud/node_modules/icalzone/dist/zones.js","webpack:///nextcloud/node_modules/lodash/_LazyWrapper.js","webpack:///nextcloud/node_modules/lodash/_LodashWrapper.js","webpack:///nextcloud/node_modules/lodash/_baseFlatten.js","webpack:///nextcloud/node_modules/lodash/_baseLodash.js","webpack:///nextcloud/node_modules/lodash/_baseSetData.js","webpack:///nextcloud/node_modules/lodash/_composeArgs.js","webpack:///nextcloud/node_modules/lodash/_composeArgsRight.js","webpack:///nextcloud/node_modules/lodash/_countHolders.js","webpack:///nextcloud/node_modules/lodash/_createBind.js","webpack:///nextcloud/node_modules/lodash/_createCtor.js","webpack:///nextcloud/node_modules/lodash/_createCurry.js","webpack:///nextcloud/node_modules/lodash/_createHybrid.js","webpack:///nextcloud/node_modules/lodash/_createPartial.js","webpack:///nextcloud/node_modules/lodash/_createRecurry.js","webpack:///nextcloud/node_modules/lodash/_createWrap.js","webpack:///nextcloud/node_modules/lodash/_flatRest.js","webpack:///nextcloud/node_modules/lodash/_getData.js","webpack:///nextcloud/node_modules/lodash/_getFuncName.js","webpack:///nextcloud/node_modules/lodash/_getHolder.js","webpack:///nextcloud/node_modules/lodash/_getWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_insertWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_isFlattenable.js","webpack:///nextcloud/node_modules/lodash/_isLaziable.js","webpack:///nextcloud/node_modules/lodash/_mergeData.js","webpack:///nextcloud/node_modules/lodash/_metaMap.js","webpack:///nextcloud/node_modules/lodash/_realNames.js","webpack:///nextcloud/node_modules/lodash/_reorder.js","webpack:///nextcloud/node_modules/lodash/_replaceHolders.js","webpack:///nextcloud/node_modules/lodash/_setData.js","webpack:///nextcloud/node_modules/lodash/_setWrapToString.js","webpack:///nextcloud/node_modules/lodash/_updateWrapDetails.js","webpack:///nextcloud/node_modules/lodash/_wrapperClone.js","webpack:///nextcloud/node_modules/lodash/ary.js","webpack:///nextcloud/node_modules/lodash/curry.js","webpack:///nextcloud/node_modules/lodash/flatten.js","webpack:///nextcloud/node_modules/lodash/fp/_baseConvert.js","webpack:///nextcloud/node_modules/lodash/fp/_mapping.js","webpack:///nextcloud/node_modules/lodash/fp/_util.js","webpack:///nextcloud/node_modules/lodash/fp/convert.js","webpack:///nextcloud/node_modules/lodash/fp/memoize.js","webpack:///nextcloud/node_modules/lodash/fp/placeholder.js","webpack:///nextcloud/node_modules/lodash/isError.js","webpack:///nextcloud/node_modules/lodash/isWeakMap.js","webpack:///nextcloud/node_modules/lodash/iteratee.js","webpack:///nextcloud/node_modules/lodash/rearg.js","webpack:///nextcloud/node_modules/lodash/toFinite.js","webpack:///nextcloud/node_modules/lodash/toInteger.js","webpack:///nextcloud/node_modules/lodash/toPath.js","webpack:///nextcloud/node_modules/lodash/wrapperLodash.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @author Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Format a date as 'YYYY-MM-DD'.\n *\n * @param {Date} date A date instance to format.\n * @return {string} 'YYYY-MM-DD'\n */\nexport function formatDateAsYMD(date) {\n\tconst year = date.getFullYear()\n\tconst month = (date.getMonth() + 1).toString().padStart(2, '0')\n\tconst day = date.getDate().toString().padStart(2, '0')\n\treturn `${year}-${month}-${day}`\n}\n","/*\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst logger = getLoggerBuilder()\n\t.setApp('dav')\n\t.detectUser()\n\t.build()\n\nexport default logger\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2023 Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @author Richard Steinmetz <richard@steinmetz.cloud>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU General Public License as published by\n - the Free Software Foundation, either version 3 of the License, or\n - (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU General Public License for more details.\n -\n - You should have received a copy of the GNU General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<form class=\"absence\" @submit.prevent=\"saveForm\">\n\t\t<div class=\"absence__dates\">\n\t\t\t<NcDateTimePickerNative id=\"absence-first-day\"\n\t\t\t\tv-model=\"firstDay\"\n\t\t\t\t:label=\"$t('dav', 'First day')\"\n\t\t\t\tclass=\"absence__dates__picker\"\n\t\t\t\t:required=\"true\" />\n\t\t\t<NcDateTimePickerNative id=\"absence-last-day\"\n\t\t\t\tv-model=\"lastDay\"\n\t\t\t\t:label=\"$t('dav', 'Last day (inclusive)')\"\n\t\t\t\tclass=\"absence__dates__picker\"\n\t\t\t\t:required=\"true\" />\n\t\t</div>\n\t\t<NcTextField :value.sync=\"status\" :label=\"$t('dav', 'Short absence status')\" :required=\"true\" />\n\t\t<NcTextArea :value.sync=\"message\" :label=\"$t('dav', 'Long absence Message')\" :required=\"true\" />\n\n\t\t<div class=\"absence__buttons\">\n\t\t\t<NcButton :disabled=\"loading || !valid\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\tnative-type=\"submit\">\n\t\t\t\t{{ $t('dav', 'Save') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton :disabled=\"loading || !valid\"\n\t\t\t\ttype=\"error\"\n\t\t\t\t@click=\"clearAbsence\">\n\t\t\t\t{{ $t('dav', 'Disable absence') }}\n\t\t\t</NcButton>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\nimport NcTextArea from '@nextcloud/vue/dist/Components/NcTextArea.js'\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { formatDateAsYMD } from '../utils/date.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\n\nimport logger from '../service/logger.js'\n\nexport default {\n\tname: 'AbsenceForm',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcTextField,\n\t\tNcTextArea,\n\t\tNcDateTimePickerNative,\n\t},\n\tdata() {\n\t\tconst { firstDay, lastDay, status, message } = loadState('dav', 'absence', {})\n\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tstatus: status ?? '',\n\t\t\tmessage: message ?? '',\n\t\t\tfirstDay: firstDay ? new Date(firstDay) : new Date(),\n\t\t\tlastDay: lastDay ? new Date(lastDay) : null,\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tvalid() {\n\t\t\t// Translate the two date objects to midnight for an accurate comparison\n\t\t\tconst firstDay = new Date(this.firstDay?.getTime())\n\t\t\tconst lastDay = new Date(this.lastDay?.getTime())\n\t\t\tfirstDay?.setHours(0, 0, 0, 0)\n\t\t\tlastDay?.setHours(0, 0, 0, 0)\n\n\t\t\treturn !!this.firstDay\n\t\t\t\t&& !!this.lastDay\n\t\t\t\t&& !!this.status\n\t\t\t\t&& !!this.message\n\t\t\t\t&& lastDay >= firstDay\n\t\t},\n\t},\n\tmethods: {\n\t\tresetForm() {\n\t\t\tthis.status = ''\n\t\t\tthis.message = ''\n\t\t\tthis.firstDay = new Date()\n\t\t\tthis.lastDay = null\n\t\t},\n\t\tasync saveForm() {\n\t\t\tif (!this.valid) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.post(generateOcsUrl('/apps/dav/api/v1/outOfOffice/{userId}', { userId: getCurrentUser().uid }), {\n\t\t\t\t\tfirstDay: formatDateAsYMD(this.firstDay),\n\t\t\t\t\tlastDay: formatDateAsYMD(this.lastDay),\n\t\t\t\t\tstatus: this.status,\n\t\t\t\t\tmessage: this.message,\n\t\t\t\t})\n\t\t\t\tshowSuccess(this.$t('dav', 'Absence saved'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(this.$t('dav', 'Failed to save your absence settings'))\n\t\t\t\tlogger.error('Could not save absence', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync clearAbsence() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.delete(generateOcsUrl('/apps/dav/api/v1/outOfOffice/{userId}', { userId: getCurrentUser().uid }))\n\t\t\t\tthis.resetForm()\n\t\t\t\tshowSuccess(this.$t('dav', 'Absence cleared'))\n\t\t\t} catch (error) {\n\t\t\t\tshowError(this.$t('dav', 'Failed to clear your absence settings'))\n\t\t\t\tlogger.error('Could not clear absence', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.absence {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 5px;\n\n\t&__dates {\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\t\twidth: 100%;\n\n\t\t&__picker {\n\t\t\tflex: 1 auto;\n\n\t\t\t::v-deep .native-datetime-picker--input {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 5px;\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AbsenceForm.vue?vue&type=template&id=716172ba&scoped=true\"\nimport script from \"./AbsenceForm.vue?vue&type=script&lang=js\"\nexport * from \"./AbsenceForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./AbsenceForm.vue?vue&type=style&index=0&id=716172ba&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"716172ba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{staticClass:\"absence\",on:{\"submit\":function($event){$event.preventDefault();return _vm.saveForm.apply(null, arguments)}}},[_c('div',{staticClass:\"absence__dates\"},[_c('NcDateTimePickerNative',{staticClass:\"absence__dates__picker\",attrs:{\"id\":\"absence-first-day\",\"label\":_vm.$t('dav', 'First day'),\"required\":true},model:{value:(_vm.firstDay),callback:function ($$v) {_vm.firstDay=$$v},expression:\"firstDay\"}}),_vm._v(\" \"),_c('NcDateTimePickerNative',{staticClass:\"absence__dates__picker\",attrs:{\"id\":\"absence-last-day\",\"label\":_vm.$t('dav', 'Last day (inclusive)'),\"required\":true},model:{value:(_vm.lastDay),callback:function ($$v) {_vm.lastDay=$$v},expression:\"lastDay\"}})],1),_vm._v(\" \"),_c('NcTextField',{attrs:{\"value\":_vm.status,\"label\":_vm.$t('dav', 'Short absence status'),\"required\":true},on:{\"update:value\":function($event){_vm.status=$event}}}),_vm._v(\" \"),_c('NcTextArea',{attrs:{\"value\":_vm.message,\"label\":_vm.$t('dav', 'Long absence Message'),\"required\":true},on:{\"update:value\":function($event){_vm.message=$event}}}),_vm._v(\" \"),_c('div',{staticClass:\"absence__buttons\"},[_c('NcButton',{attrs:{\"disabled\":_vm.loading || !_vm.valid,\"type\":\"primary\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Save'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":_vm.loading || !_vm.valid,\"type\":\"error\"},on:{\"click\":_vm.clearAbsence}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Disable absence'))+\"\\n\\t\\t\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"time-zone\"},[_c('label',{staticClass:\"time-zone__heading\",attrs:{\"for\":`vs${_vm.timeZonePickerId}__combobox`}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Time zone:'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"time-zone-text\"},[_c('NcTimezonePicker',{attrs:{\"uid\":_vm.timeZonePickerId},model:{value:(_vm.timezone),callback:function ($$v) {_vm.timezone=$$v},expression:\"timezone\"}})],1)]),_vm._v(\" \"),_c('CalendarAvailability',{attrs:{\"slots\":_vm.slots,\"loading\":_vm.loading,\"l10n-to\":_vm.$t('dav', 'to'),\"l10n-delete-slot\":_vm.$t('dav', 'Delete slot'),\"l10n-empty-day\":_vm.$t('dav', 'No working hours set'),\"l10n-add-slot\":_vm.$t('dav', 'Add slot'),\"l10n-week-day-list-label\":_vm.$t('dav', 'Weekdays'),\"l10n-monday\":_vm.$t('dav', 'Monday'),\"l10n-tuesday\":_vm.$t('dav', 'Tuesday'),\"l10n-wednesday\":_vm.$t('dav', 'Wednesday'),\"l10n-thursday\":_vm.$t('dav', 'Thursday'),\"l10n-friday\":_vm.$t('dav', 'Friday'),\"l10n-saturday\":_vm.$t('dav', 'Saturday'),\"l10n-sunday\":_vm.$t('dav', 'Sunday'),\"l10n-start-picker-label\":(dayName) => _vm.$t('dav', 'Pick a start time for {dayName}', { dayName }),\"l10n-end-picker-label\":(dayName) => _vm.$t('dav', 'Pick a end time for {dayName}', { dayName })},on:{\"update:slots\":function($event){_vm.slots=$event}}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.automated},on:{\"update:checked\":function($event){_vm.automated=$event}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":_vm.loading || _vm.saving,\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Save'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-Ds7BWaqb.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-Ds7BWaqb.css\";\n export default content && content.locals ? content.locals : undefined;\n","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n * Portions Copyright (C) Philipp Kewisch */\nclass t{static fromString(e){return new t(e)}constructor(t){this.value=t}icaltype=\"binary\";decodeValue(){return this._b64_decode(this.value)}setEncodedValue(t){this.value=this._b64_encode(t)}_b64_encode(t){let e,i,r,n,s,a,o,l,h=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",u=0,c=0,d=\"\",m=[];if(!t)return t;do{e=t.charCodeAt(u++),i=t.charCodeAt(u++),r=t.charCodeAt(u++),l=e<<16|i<<8|r,n=l>>18&63,s=l>>12&63,a=l>>6&63,o=63&l,m[c++]=h.charAt(n)+h.charAt(s)+h.charAt(a)+h.charAt(o)}while(u<t.length);d=m.join(\"\");let f=t.length%3;return(f?d.slice(0,f-3):d)+\"===\".slice(f||3)}_b64_decode(t){let e,i,r,n,s,a,o,l,h=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",u=0,c=0,d=\"\",m=[];if(!t)return t;t+=\"\";do{n=h.indexOf(t.charAt(u++)),s=h.indexOf(t.charAt(u++)),a=h.indexOf(t.charAt(u++)),o=h.indexOf(t.charAt(u++)),l=n<<18|s<<12|a<<6|o,e=l>>16&255,i=l>>8&255,r=255&l,m[c++]=64==a?String.fromCharCode(e):64==o?String.fromCharCode(e,i):String.fromCharCode(e,i,r)}while(u<t.length);return d=m.join(\"\"),d}toString(){return this.value}}const e=/([PDWHMTS]{1,1})/,i=[\"weeks\",\"days\",\"hours\",\"minutes\",\"seconds\",\"isNegative\"];class r{static fromSeconds(t){return(new r).fromSeconds(t)}static isValueString(t){return\"P\"===t[0]||\"P\"===t[1]}static fromString(t){let i=0,s=Object.create(null),a=0;for(;-1!==(i=t.search(e));){let e=t[i],r=t.slice(0,Math.max(0,i));t=t.slice(i+1),a+=n(e,r,s)}if(a<2)throw new Error('invalid duration value: Not enough duration components in \"'+t+'\"');return new r(s)}static fromData(t){return new r(t)}constructor(t){this.wrappedJSObject=this,this.fromData(t)}weeks=0;days=0;hours=0;minutes=0;seconds=0;isNegative=!1;icalclass=\"icalduration\";icaltype=\"duration\";clone(){return r.fromData(this)}toSeconds(){let t=this.seconds+60*this.minutes+3600*this.hours+86400*this.days+604800*this.weeks;return this.isNegative?-t:t}fromSeconds(t){let e=Math.abs(t);return this.isNegative=t<0,this.days=A(e/86400),this.days%7==0?(this.weeks=this.days/7,this.days=0):this.weeks=0,e-=86400*(this.days+7*this.weeks),this.hours=A(e/3600),e-=3600*this.hours,this.minutes=A(e/60),e-=60*this.minutes,this.seconds=e,this}fromData(t){for(let e of i)this[e]=t&&e in t?t[e]:0}reset(){this.isNegative=!1,this.weeks=0,this.days=0,this.hours=0,this.minutes=0,this.seconds=0}compare(t){let e=this.toSeconds(),i=t.toSeconds();return(e>i)-(e<i)}normalize(){this.fromSeconds(this.toSeconds())}toString(){if(0==this.toSeconds())return\"PT0S\";{let t=\"\";return this.isNegative&&(t+=\"-\"),t+=\"P\",this.weeks&&(t+=this.weeks+\"W\"),this.days&&(t+=this.days+\"D\"),(this.hours||this.minutes||this.seconds)&&(t+=\"T\",this.hours&&(t+=this.hours+\"H\"),this.minutes&&(t+=this.minutes+\"M\"),this.seconds&&(t+=this.seconds+\"S\")),t}}toICALString(){return this.toString()}}function n(t,e,i){let r;switch(t){case\"P\":i.isNegative=!(!e||\"-\"!==e);break;case\"D\":r=\"days\";break;case\"W\":r=\"weeks\";break;case\"H\":r=\"hours\";break;case\"M\":r=\"minutes\";break;case\"S\":r=\"seconds\";break;default:return 0}if(r){if(!e&&0!==e)throw new Error('invalid duration value: Missing number before \"'+t+'\"');let n=parseInt(e,10);if(f(n))throw new Error('invalid duration value: Invalid number \"'+e+'\" before \"'+t+'\"');i[r]=n}return 1}class s{static _dowCache={};static _wnCache={};static daysInMonth(t,e){let i=30;return t<1||t>12||(i=[0,31,28,31,30,31,30,31,31,30,31,30,31][t],2==t&&(i+=s.isLeapYear(e))),i}static isLeapYear(t){return t<=1752?t%4==0:t%4==0&&t%100!=0||t%400==0}static fromDayOfYear(t,e){let i=e,r=t,n=new s;n.auto_normalize=!1;let a=s.isLeapYear(i)?1:0;if(r<1)return i--,a=s.isLeapYear(i)?1:0,r+=s.daysInYearPassedMonth[a][12],s.fromDayOfYear(r,i);if(r>s.daysInYearPassedMonth[a][12])return a=s.isLeapYear(i)?1:0,r-=s.daysInYearPassedMonth[a][12],i++,s.fromDayOfYear(r,i);n.year=i,n.isDate=!0;for(let t=11;t>=0;t--)if(r>s.daysInYearPassedMonth[a][t]){n.month=t+1,n.day=r-s.daysInYearPassedMonth[a][t];break}return n.auto_normalize=!0,n}static fromStringv2(t){return new s({year:parseInt(t.slice(0,4),10),month:parseInt(t.slice(5,7),10),day:parseInt(t.slice(8,10),10),isDate:!0})}static fromDateString(t){return new s({year:p(t.slice(0,4)),month:p(t.slice(5,7)),day:p(t.slice(8,10)),isDate:!0})}static fromDateTimeString(t,e){if(t.length<19)throw new Error('invalid date-time value: \"'+t+'\"');let i,r;t[19]&&\"Z\"===t[19]?i=c.utcTimezone:e&&(r=e.getParameter(\"tzid\"),e.parent&&(\"standard\"===e.parent.name||\"daylight\"===e.parent.name?i=c.localTimezone:r&&(i=e.parent.getTimeZoneByID(r))));const n={year:p(t.slice(0,4)),month:p(t.slice(5,7)),day:p(t.slice(8,10)),hour:p(t.slice(11,13)),minute:p(t.slice(14,16)),second:p(t.slice(17,19))};return r&&!i&&(n.timezone=r),new s(n,i)}static fromString(t,e){return t.length>10?s.fromDateTimeString(t,e):s.fromDateString(t)}static fromJSDate(t,e){return(new s).fromJSDate(t,e)}static fromData=function(t,e){return(new s).fromData(t,e)};static now(){return s.fromJSDate(new Date,!1)}static weekOneStarts(t,e){let i=s.fromData({year:t,month:1,day:1,isDate:!0}),r=i.dayOfWeek(),n=e||s.DEFAULT_WEEK_START;return r>s.THURSDAY&&(i.day+=7),n>s.THURSDAY&&(i.day-=7),i.day-=r-n,i}static getDominicalLetter(t){let e=\"GFEDCBA\",i=(t+(t/4|0)+(t/400|0)-(t/100|0)-1)%7;return s.isLeapYear(t)?e[(i+6)%7]+e[i]:e[i]}static#t=null;static get epochTime(){return this.#t||(this.#t=s.fromData({year:1970,month:1,day:1,hour:0,minute:0,second:0,isDate:!1,timezone:\"Z\"})),this.#t}static _cmp_attr(t,e,i){return t[i]>e[i]?1:t[i]<e[i]?-1:0}static daysInYearPassedMonth=[[0,31,59,90,120,151,181,212,243,273,304,334,365],[0,31,60,91,121,152,182,213,244,274,305,335,366]];static SUNDAY=1;static MONDAY=2;static TUESDAY=3;static WEDNESDAY=4;static THURSDAY=5;static FRIDAY=6;static SATURDAY=7;static DEFAULT_WEEK_START=2;constructor(t,e){this.wrappedJSObject=this;let i=this._time=Object.create(null);i.year=0,i.month=1,i.day=1,i.hour=0,i.minute=0,i.second=0,i.isDate=!1,this.fromData(t,e)}icalclass=\"icaltime\";_cachedUnixTime=null;get icaltype(){return this.isDate?\"date\":\"date-time\"}zone=null;_pendingNormalization=!1;clone(){return new s(this._time,this.zone)}reset(){this.fromData(s.epochTime),this.zone=c.utcTimezone}resetTo(t,e,i,r,n,s,a){this.fromData({year:t,month:e,day:i,hour:r,minute:n,second:s,zone:a})}fromJSDate(t,e){return t?e?(this.zone=c.utcTimezone,this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()):(this.zone=c.localTimezone,this.year=t.getFullYear(),this.month=t.getMonth()+1,this.day=t.getDate(),this.hour=t.getHours(),this.minute=t.getMinutes(),this.second=t.getSeconds()):this.reset(),this._cachedUnixTime=null,this}fromData(t,e){if(t)for(let[e,i]of Object.entries(t))\"icaltype\"!==e&&(this[e]=i);if(e&&(this.zone=e),t&&!(\"isDate\"in t)?this.isDate=!(\"hour\"in t):t&&\"isDate\"in t&&(this.isDate=t.isDate),t&&\"timezone\"in t){let e=m.get(t.timezone);this.zone=e||c.localTimezone}return t&&\"zone\"in t&&(this.zone=t.zone),this.zone||(this.zone=c.localTimezone),this._cachedUnixTime=null,this}dayOfWeek(t){let e=t||s.SUNDAY,i=(this.year<<12)+(this.month<<8)+(this.day<<3)+e;if(i in s._dowCache)return s._dowCache[i];let r=this.day,n=this.month+(this.month<3?12:0),a=this.year-(this.month<3?1:0),o=r+a+A(26*(n+1)/10)+A(a/4);return o+=6*A(a/100)+A(a/400),o=(o+7-e)%7+1,s._dowCache[i]=o,o}dayOfYear(){let t=s.isLeapYear(this.year)?1:0;return s.daysInYearPassedMonth[t][this.month-1]+this.day}startOfWeek(t){let e=t||s.SUNDAY,i=this.clone();return i.day-=(this.dayOfWeek()+7-e)%7,i.isDate=!0,i.hour=0,i.minute=0,i.second=0,i}endOfWeek(t){let e=t||s.SUNDAY,i=this.clone();return i.day+=(7-this.dayOfWeek()+e-s.SUNDAY)%7,i.isDate=!0,i.hour=0,i.minute=0,i.second=0,i}startOfMonth(){let t=this.clone();return t.day=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t}endOfMonth(){let t=this.clone();return t.day=s.daysInMonth(t.month,t.year),t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t}startOfYear(){let t=this.clone();return t.day=1,t.month=1,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t}endOfYear(){let t=this.clone();return t.day=31,t.month=12,t.isDate=!0,t.hour=0,t.minute=0,t.second=0,t}startDoyWeek(t){let e=t||s.SUNDAY,i=this.dayOfWeek()-e;return i<0&&(i+=7),this.dayOfYear()-i}getDominicalLetter(){return s.getDominicalLetter(this.year)}nthWeekDay(t,e){let i,r=s.daysInMonth(this.month,this.year),n=e,a=0,o=this.clone();if(n>=0){o.day=1,0!=n&&n--,a=o.day;let e=t-o.dayOfWeek();e<0&&(e+=7),a+=e,a-=t,i=t}else{o.day=r,n++,i=o.dayOfWeek()-t,i<0&&(i+=7),i=r-i}return i+=7*n,a+i}isNthWeekDay(t,e){let i=this.dayOfWeek();return 0===e&&i===t||this.nthWeekDay(t,e)===this.day}weekNumber(t){let e,i=(this.year<<12)+(this.month<<8)+(this.day<<3)+t;if(i in s._wnCache)return s._wnCache[i];let r=this.clone();r.isDate=!0;let n=this.year;12==r.month&&r.day>25?(e=s.weekOneStarts(n+1,t),r.compare(e)<0?e=s.weekOneStarts(n,t):n++):(e=s.weekOneStarts(n,t),r.compare(e)<0&&(e=s.weekOneStarts(--n,t)));let a=A(r.subtractDate(e).toSeconds()/86400/7)+1;return s._wnCache[i]=a,a}addDuration(t){let e=t.isNegative?-1:1,i=this.second,r=this.minute,n=this.hour,s=this.day;i+=e*t.seconds,r+=e*t.minutes,n+=e*t.hours,s+=e*t.days,s+=7*e*t.weeks,this.second=i,this.minute=r,this.hour=n,this.day=s,this._cachedUnixTime=null}subtractDate(t){let e=this.toUnixTime()+this.utcOffset(),i=t.toUnixTime()+t.utcOffset();return r.fromSeconds(e-i)}subtractDateTz(t){let e=this.toUnixTime(),i=t.toUnixTime();return r.fromSeconds(e-i)}compare(t){let e=this.toUnixTime(),i=t.toUnixTime();return e>i?1:i>e?-1:0}compareDateOnlyTz(t,e){let i=this.convertToZone(e),r=t.convertToZone(e),n=0;return 0!=(n=s._cmp_attr(i,r,\"year\"))||0!=(n=s._cmp_attr(i,r,\"month\"))||(n=s._cmp_attr(i,r,\"day\")),n}convertToZone(t){let e=this.clone(),i=this.zone.tzid==t.tzid;return this.isDate||i||c.convert_time(e,this.zone,t),e.zone=t,e}utcOffset(){return this.zone==c.localTimezone||this.zone==c.utcTimezone?0:this.zone.utcOffset(this)}toICALString(){let t=this.toString();return t.length>10?ut.icalendar.value[\"date-time\"].toICAL(t):ut.icalendar.value.date.toICAL(t)}toString(){let t=this.year+\"-\"+Y(this.month)+\"-\"+Y(this.day);return this.isDate||(t+=\"T\"+Y(this.hour)+\":\"+Y(this.minute)+\":\"+Y(this.second),this.zone===c.utcTimezone&&(t+=\"Z\")),t}toJSDate(){return this.zone==c.localTimezone?this.isDate?new Date(this.year,this.month-1,this.day):new Date(this.year,this.month-1,this.day,this.hour,this.minute,this.second,0):new Date(1e3*this.toUnixTime())}_normalize(){return this._time.isDate&&(this._time.hour=0,this._time.minute=0,this._time.second=0),this.adjust(0,0,0,0),this}adjust(t,e,i,r,n){let a,o,l,h,u,c,d,m=0,f=0,p=n||this._time;if(p.isDate||(l=p.second+r,p.second=l%60,a=A(l/60),p.second<0&&(p.second+=60,a--),h=p.minute+i+a,p.minute=h%60,o=A(h/60),p.minute<0&&(p.minute+=60,o--),u=p.hour+e+o,p.hour=u%24,m=A(u/24),p.hour<0&&(p.hour+=24,m--)),p.month>12?f=A((p.month-1)/12):p.month<1&&(f=A(p.month/12)-1),p.year+=f,p.month-=12*f,c=p.day+t+m,c>0)for(;d=s.daysInMonth(p.month,p.year),!(c<=d);)p.month++,p.month>12&&(p.year++,p.month=1),c-=d;else for(;c<=0;)1==p.month?(p.year--,p.month=12):p.month--,c+=s.daysInMonth(p.month,p.year);return p.day=c,this._cachedUnixTime=null,this}fromUnixTime(t){this.zone=c.utcTimezone;let e=new Date(1e3*t);this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this._time.isDate?(this.hour=0,this.minute=0,this.second=0):(this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()),this._cachedUnixTime=null}toUnixTime(){if(null!==this._cachedUnixTime)return this._cachedUnixTime;let t=this.utcOffset(),e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second-t);return this._cachedUnixTime=e/1e3,this._cachedUnixTime}toJSON(){let t,e=[\"year\",\"month\",\"day\",\"hour\",\"minute\",\"second\",\"isDate\"],i=Object.create(null),r=0,n=e.length;for(;r<n;r++)t=e[r],i[t]=this[t];return this.zone&&(i.timezone=this.zone.tzid),i}}!function(){function t(t){Object.defineProperty(s.prototype,t,{get:function(){return this._pendingNormalization&&(this._normalize(),this._pendingNormalization=!1),this._time[t]},set:function(e){\"isDate\"===t&&e&&!this._time.isDate&&this.adjust(0,0,0,0),this._cachedUnixTime=null,this._pendingNormalization=!0,this._time[t]=e}})}t(\"year\"),t(\"month\"),t(\"day\"),t(\"hour\"),t(\"minute\"),t(\"second\"),t(\"isDate\")}();const a=/[^ \\t]/,o={\"^'\":'\"',\"^n\":\"\\n\",\"^^\":\"^\"};function l(t){let e={},i=e.component=[];if(e.stack=[i],l._eachLine(t,(function(t,i){l._handleContentLine(i,e)})),e.stack.length>1)throw new h(\"invalid ical body. component began but did not end\");return e=null,1==i.length?i[0]:i}l.property=function(t,e){let i={component:[[],[]],designSet:e||ut.defaultSet};return l._handleContentLine(t,i),i.component[1][0]},l.component=function(t){return l(t)};class h extends Error{constructor(t){super(t),this.name=this.constructor.name;try{throw new Error}catch(t){if(t.stack){let e=t.stack.split(\"\\n\");e.shift(),this.stack=e.join(\"\\n\")}}}}l.ParserError=h,l._handleContentLine=function(t,e){let i,r,n,s,a,o,u=t.indexOf(\":\"),c=t.indexOf(\";\"),d={};if(-1!==c&&-1!==u&&c>u&&(c=-1),-1!==c){if(n=t.slice(0,Math.max(0,c)).toLowerCase(),a=l._parseParameters(t.slice(Math.max(0,c)),0,e.designSet),-1==a[2])throw new h(\"Invalid parameters in '\"+t+\"'\");if(d=a[0],i=a[1].length+a[2]+c,-1===(r=t.slice(Math.max(0,i)).indexOf(\":\")))throw new h(\"Missing parameter value in '\"+t+\"'\");s=t.slice(Math.max(0,i+r+1))}else{if(-1===u)throw new h('invalid line (no token \";\" or \":\") \"'+t+'\"');if(n=t.slice(0,Math.max(0,u)).toLowerCase(),s=t.slice(Math.max(0,u+1)),\"begin\"===n){let t=[s.toLowerCase(),[],[]];return 1===e.stack.length?e.component.push(t):e.component[2].push(t),e.stack.push(e.component),e.component=t,void(e.designSet||(e.designSet=ut.getDesignSet(e.component[0])))}if(\"end\"===n)return void(e.component=e.stack.pop())}let m,f,p,y,_=!1,g=!1;e.designSet.propertyGroups&&-1!==n.indexOf(\".\")?(f=n.split(\".\"),d.group=f[0],p=f[1]):p=n,p in e.designSet.property&&(m=e.designSet.property[p],\"multiValue\"in m&&(_=m.multiValue),\"structuredValue\"in m&&(g=m.structuredValue),s&&\"detectType\"in m&&(o=m.detectType(s))),o||(o=\"value\"in d?d.value.toLowerCase():m?m.defaultType:\"unknown\"),delete d.value,_&&g?(s=l._parseMultiValue(s,g,o,[],_,e.designSet,g),y=[p,d,o,s]):_?(y=[p,d,o],l._parseMultiValue(s,_,o,y,null,e.designSet,!1)):g?(s=l._parseMultiValue(s,g,o,[],null,e.designSet,g),y=[p,d,o,s]):(s=l._parseValue(s,o,e.designSet,!1),y=[p,d,o,s]),\"vcard\"!==e.component[0]||0!==e.component[1].length||\"version\"===n&&\"4.0\"===s||(e.designSet=ut.getDesignSet(\"vcard3\")),e.component[1].push(y)},l._parseValue=function(t,e,i,r){return e in i.value&&\"fromICAL\"in i.value[e]?i.value[e].fromICAL(t,r):t},l._parseParameters=function(t,e,i){let r,n,s,a,o,u,c=e,d=0,m={},f=-1;for(;!1!==d&&-1!==(d=_(t,\"=\",d+1));){if(r=t.slice(c+1,d),0==r.length)throw new h(\"Empty parameter name in '\"+t+\"'\");if(n=r.toLowerCase(),u=!1,o=!1,a=n in i.param&&i.param[n].valueType?i.param[n].valueType:\"text\",n in i.param&&(o=i.param[n].multiValue,i.param[n].multiValueSeparateDQuote&&(u=l._rfc6868Escape('\"'+o+'\"'))),'\"'===t[d+1]){if(f=d+2,d=_(t,'\"',f),o&&-1!=d){let e=!0;for(;e;)t[d+1]==o&&'\"'==t[d+2]?d=_(t,'\"',d+3):e=!1}if(-1===d)throw new h('invalid line (no matching double quote) \"'+t+'\"');s=t.slice(f,d),c=_(t,\";\",d),-1===c&&(d=!1)}else{f=d+1;let e=_(t,\";\",f),i=_(t,\":\",f);-1!==i&&e>i?(e=i,d=!1):-1===e?(e=-1===i?t.length:i,d=!1):(c=e,d=e),s=t.slice(f,e)}if(s=l._rfc6868Escape(s),o){let t=u||o;s=l._parseMultiValue(s,t,a,[],null,i)}else s=l._parseValue(s,a,i);o&&n in m?Array.isArray(m[n])?m[n].push(s):m[n]=[m[n],s]:m[n]=s}return[m,s,f]},l._rfc6868Escape=function(t){return t.replace(/\\^['n^]/g,(function(t){return o[t]}))},l._parseMultiValue=function(t,e,i,r,n,s,a){let o,h=0,u=0;if(0===e.length)return t;for(;-1!==(h=_(t,e,u));)o=t.slice(u,h),o=n?l._parseMultiValue(o,n,i,[],null,s,a):l._parseValue(o,i,s,a),r.push(o),u=h+e.length;return o=t.slice(u),o=n?l._parseMultiValue(o,n,i,[],null,s,a):l._parseValue(o,i,s,a),r.push(o),1==r.length?r[0]:r},l._eachLine=function(t,e){let i,r,n,s=t.length,o=t.search(a),l=o;do{l=t.indexOf(\"\\n\",o)+1,n=l>1&&\"\\r\"===t[l-2]?2:1,0===l&&(l=s,n=0),r=t[o],\" \"===r||\"\\t\"===r?i+=t.slice(o+1,l-n):(i&&e(null,i),i=t.slice(o,l-n)),o=l}while(l!==s);i=i.trim(),i.length&&e(null,i)};const u=[\"tzid\",\"location\",\"tznames\",\"latitude\",\"longitude\"];class c{static _compare_change_fn(t,e){return t.year<e.year?-1:t.year>e.year?1:t.month<e.month?-1:t.month>e.month?1:t.day<e.day?-1:t.day>e.day?1:t.hour<e.hour?-1:t.hour>e.hour?1:t.minute<e.minute?-1:t.minute>e.minute?1:t.second<e.second?-1:t.second>e.second?1:0}static convert_time(t,e,i){if(t.isDate||e.tzid==i.tzid||e==c.localTimezone||i==c.localTimezone)return t.zone=i,t;let r=e.utcOffset(t);return t.adjust(0,0,0,-r),r=i.utcOffset(t),t.adjust(0,0,0,r),null}static fromData(t){return(new c).fromData(t)}static#e=null;static get utcTimezone(){return this.#e||(this.#e=c.fromData({tzid:\"UTC\"})),this.#e}static#i=null;static get localTimezone(){return this.#i||(this.#i=c.fromData({tzid:\"floating\"})),this.#i}static adjust_change(t,e,i,r,n){return s.prototype.adjust.call(t,e,i,r,n,t)}static _minimumExpansionYear=-1;static EXTRA_COVERAGE=5;constructor(t){this.wrappedJSObject=this,this.fromData(t)}tzid=\"\";location=\"\";tznames=\"\";latitude=0;longitude=0;component=null;expandedUntilYear=0;icalclass=\"icaltimezone\";fromData(t){if(this.expandedUntilYear=0,this.changes=[],t instanceof yt)this.component=t;else{if(t&&\"component\"in t)if(\"string\"==typeof t.component){let e=l(t.component);this.component=new yt(e)}else t.component instanceof yt?this.component=t.component:this.component=null;for(let e of u)t&&e in t&&(this[e]=t[e])}return this.component instanceof yt&&!this.tzid&&(this.tzid=this.component.getFirstPropertyValue(\"tzid\")),this}utcOffset(t){if(this==c.utcTimezone||this==c.localTimezone)return 0;if(this._ensureCoverage(t.year),!this.changes.length)return 0;let e={year:t.year,month:t.month,day:t.day,hour:t.hour,minute:t.minute,second:t.second},i=this._findNearbyChange(e),r=-1,n=1;for(;;){let t=D(this.changes[i],!0);if(t.utcOffset<t.prevUtcOffset?c.adjust_change(t,0,0,0,t.utcOffset):c.adjust_change(t,0,0,0,t.prevUtcOffset),c._compare_change_fn(e,t)>=0?r=i:n=-1,-1==n&&-1!=r)break;if(i+=n,i<0)return 0;if(i>=this.changes.length)break}let s=this.changes[r];if(s.utcOffset-s.prevUtcOffset<0&&r>0){let t=D(s,!0);if(c.adjust_change(t,0,0,0,t.prevUtcOffset),c._compare_change_fn(e,t)<0){let t=this.changes[r-1],e=!1;s.is_daylight!=e&&t.is_daylight==e&&(s=t)}}return s.utcOffset}_findNearbyChange(t){let e=g(this.changes,t,c._compare_change_fn);return e>=this.changes.length?this.changes.length-1:e}_ensureCoverage(t){if(-1==c._minimumExpansionYear){let t=s.now();c._minimumExpansionYear=t.year}let e=t;if(e<c._minimumExpansionYear&&(e=c._minimumExpansionYear),e+=c.EXTRA_COVERAGE,!this.changes.length||this.expandedUntilYear<t){let t=this.component.getAllSubcomponents(),i=t.length,r=0;for(;r<i;r++)this._expandComponent(t[r],e,this.changes);this.changes.sort(c._compare_change_fn),this.expandedUntilYear=e}}_expandComponent(t,e,i){if(!t.hasProperty(\"dtstart\")||!t.hasProperty(\"tzoffsetto\")||!t.hasProperty(\"tzoffsetfrom\"))return null;let r,n=t.getFirstProperty(\"dtstart\").getFirstValue();function s(t){return t.factor*(3600*t.hours+60*t.minutes)}function a(){let e={};return e.is_daylight=\"daylight\"==t.name,e.utcOffset=s(t.getFirstProperty(\"tzoffsetto\").getFirstValue()),e.prevUtcOffset=s(t.getFirstProperty(\"tzoffsetfrom\").getFirstValue()),e}if(t.hasProperty(\"rrule\")||t.hasProperty(\"rdate\")){let s=t.getAllProperties(\"rdate\");for(let t of s){let e=t.getFirstValue();r=a(),r.year=e.year,r.month=e.month,r.day=e.day,e.isDate?(r.hour=n.hour,r.minute=n.minute,r.second=n.second,n.zone!=c.utcTimezone&&c.adjust_change(r,0,0,0,-r.prevUtcOffset)):(r.hour=e.hour,r.minute=e.minute,r.second=e.second,e.zone!=c.utcTimezone&&c.adjust_change(r,0,0,0,-r.prevUtcOffset)),i.push(r)}let o=t.getFirstProperty(\"rrule\");if(o){o=o.getFirstValue(),r=a(),o.until&&o.until.zone==c.utcTimezone&&(o.until.adjust(0,0,0,r.prevUtcOffset),o.until.zone=c.localTimezone);let t,s=o.iterator(n);for(;(t=s.next())&&(r=a(),!(t.year>e)&&t);)r.year=t.year,r.month=t.month,r.day=t.day,r.hour=t.hour,r.minute=t.minute,r.second=t.second,r.isDate=t.isDate,c.adjust_change(r,0,0,0,-r.prevUtcOffset),i.push(r)}}else r=a(),r.year=n.year,r.month=n.month,r.day=n.day,r.hour=n.hour,r.minute=n.minute,r.second=n.second,c.adjust_change(r,0,0,0,-r.prevUtcOffset),i.push(r);return i}toString(){return this.tznames?this.tznames:this.tzid}}let d=null;const m={get count(){return null===d?0:Object.keys(d).length},reset:function(){d=Object.create(null);let t=c.utcTimezone;d.Z=t,d.UTC=t,d.GMT=t},has:function(t){return null!==d&&!!d[t]},get:function(t){return null===d&&this.reset(),d[t]},register:function(t,e){if(null===d&&this.reset(),t instanceof yt&&\"vtimezone\"===t.name&&(t=(e=new c(t)).tzid),!(e instanceof c))throw new TypeError(\"timezone must be ICAL.Timezone or ICAL.Component\");d[t]=e},remove:function(t){return null===d?null:delete d[t]}};function f(t){return\"number\"==typeof t&&isNaN(t)}function p(t){let e=parseInt(t,10);if(f(e))throw new Error('Could not extract integer from \"'+t+'\"');return e}function y(t,e){if(void 0!==t)return t instanceof e?t:new e(t)}function _(t,e,i){for(;-1!==(i=t.indexOf(e,i));){if(!(i>0&&\"\\\\\"===t[i-1]))return i;i+=1}return-1}function g(t,e,i){if(!t.length)return 0;let r,n,s=0,a=t.length-1;for(;s<=a;)if(r=s+Math.floor((a-s)/2),n=i(e,t[r]),n<0)a=r-1;else{if(!(n>0))break;s=r+1}return n<0?r:n>0?r+1:r}function D(t,e){if(t&&\"object\"==typeof t){if(t instanceof Date)return new Date(t.getTime());if(\"clone\"in t)return t.clone();if(Array.isArray(t)){let i=[];for(let r=0;r<t.length;r++)i.push(e?D(t[r],!0):t[r]);return i}{let i={};for(let[r,n]of Object.entries(t))i[r]=e?D(n,!0):n;return i}}return t}function T(t){let e=\"\",i=t||\"\",r=0,n=0;for(;i.length;){let t=i.codePointAt(r);t<128?++n:n+=t<2048?2:t<65536?3:4,n<Tt.foldLength+1?r+=t>65535?2:1:(e+=Tt.newLineChar+\" \"+i.slice(0,Math.max(0,r)),i=i.slice(Math.max(0,r)),r=n=0)}return e.slice(Tt.newLineChar.length+1)}function Y(t){switch(\"string\"!=typeof t&&(\"number\"==typeof t&&(t=parseInt(t)),t=String(t)),t.length){case 0:return\"00\";case 1:return\"0\"+t;default:return t}}function A(t){return t<0?Math.ceil(t):Math.floor(t)}function O(t,e){for(let i in t){let r=Object.getOwnPropertyDescriptor(t,i);r&&!Object.getOwnPropertyDescriptor(e,i)&&Object.defineProperty(e,i,r)}return e}var b=Object.freeze({__proto__:null,updateTimezones:function(t){let e,i,r,n,s;if(!t||\"vcalendar\"!==t.name)return t;for(e=t.getAllSubcomponents(),i=[],r={},s=0;s<e.length;s++)if(\"vtimezone\"===e[s].name){r[e[s].getFirstProperty(\"tzid\").getFirstValue()]=e[s]}else i=i.concat(e[s].getAllProperties());for(n={},s=0;s<i.length;s++){let t=i[s].getParameter(\"tzid\");t&&(n[t]=!0)}for(let[e,i]of Object.entries(r))n[e]||t.removeSubcomponent(i);for(let e of Object.keys(n))!r[e]&&m.has(e)&&t.addSubcomponent(m.get(e).component);return t},isStrictlyNaN:f,strictParseInt:p,formatClassType:y,unescapedIndexOf:_,binsearchInsert:g,clone:D,foldline:T,pad2:Y,trunc:A,extend:O});class S{static fromString(t){let e={};return e.factor=\"+\"===t[0]?1:-1,e.hours=p(t.slice(1,3)),e.minutes=p(t.slice(4,6)),new S(e)}static fromSeconds(t){let e=new S;return e.fromSeconds(t),e}constructor(t){this.fromData(t)}hours=0;minutes=0;factor=1;icaltype=\"utc-offset\";clone(){return S.fromSeconds(this.toSeconds())}fromData(t){if(t)for(let[e,i]of Object.entries(t))this[e]=i;this._normalize()}fromSeconds(t){let e=Math.abs(t);return this.factor=t<0?-1:1,this.hours=A(e/3600),e-=3600*this.hours,this.minutes=A(e/60),this}toSeconds(){return this.factor*(60*this.minutes+3600*this.hours)}compare(t){let e=this.toSeconds(),i=t.toSeconds();return(e>i)-(i>e)}_normalize(){let t=this.toSeconds(),e=this.factor;for(;t<-43200;)t+=97200;for(;t>50400;)t-=97200;this.fromSeconds(t),0==t&&(this.factor=e)}toICALString(){return ut.icalendar.value[\"utc-offset\"].toICAL(this.toString())}toString(){return(1==this.factor?\"+\":\"-\")+Y(this.hours)+\":\"+Y(this.minutes)}}class E extends s{static fromDateAndOrTimeString(t,e){function i(t,e,i){return t?p(t.slice(e,e+i)):null}let r=t.split(\"T\"),n=r[0],s=r[1],a=s?ut.vcard.value.time._splitZone(s):[],o=a[0],l=a[1],h=n?n.length:0,u=l?l.length:0,d=n&&\"-\"==n[0]&&\"-\"==n[1],m=l&&\"-\"==l[0],f={year:d?null:i(n,0,4),month:!d||4!=h&&7!=h?7==h||10==h?i(n,5,2):null:i(n,2,2),day:5==h?i(n,3,2):7==h&&d?i(n,5,2):10==h?i(n,8,2):null,hour:m?null:i(l,0,2),minute:m&&3==u?i(l,1,2):u>4?i(l,m?1:3,2):null,second:4==u?i(l,2,2):6==u?i(l,4,2):8==u?i(l,6,2):null};return o=\"Z\"==o?c.utcTimezone:o&&\":\"==o[3]?S.fromString(o):null,new E(f,o,e)}constructor(t,e,i){super(t,e),this.icaltype=i||\"date-and-or-time\"}icalclass=\"vcardtime\";icaltype=\"date-and-or-time\";clone(){return new E(this._time,this.zone,this.icaltype)}_normalize(){return this}utcOffset(){return this.zone instanceof S?this.zone.toSeconds():s.prototype.utcOffset.apply(this,arguments)}toICALString(){return ut.vcard.value[this.icaltype].toICAL(this.toString())}toString(){let t,e=this.year,i=this.month,r=this.day,n=this.hour,s=this.minute,a=this.second,o=null!==i,l=null!==r,h=null!==n,u=null!==s,d=null!==a,m=(null!==e?Y(e)+(o||l?\"-\":\"\"):o||l?\"--\":\"\")+(o?Y(i):\"\")+(l?\"-\"+Y(r):\"\"),f=(h?Y(n):\"-\")+(h&&u?\":\":\"\")+(u?Y(s):\"\")+(h||u?\"\":\"-\")+(u&&d?\":\":\"\")+(d?Y(a):\"\");if(this.zone===c.utcTimezone)t=\"Z\";else if(this.zone instanceof S)t=this.zone.toString();else if(this.zone===c.localTimezone)t=\"\";else if(this.zone instanceof c){t=S.fromSeconds(this.zone.utcOffset(this)).toString()}else t=\"\";switch(this.icaltype){case\"time\":return f+t;case\"date-and-or-time\":case\"date-time\":return m+(\"--\"==f?\"\":\"T\"+f+t);case\"date\":return m}return null}}class C{static _indexMap={BYSECOND:0,BYMINUTE:1,BYHOUR:2,BYDAY:3,BYMONTHDAY:4,BYYEARDAY:5,BYWEEKNO:6,BYMONTH:7,BYSETPOS:8};static _expandMap={SECONDLY:[1,1,1,1,1,1,1,1],MINUTELY:[2,1,1,1,1,1,1,1],HOURLY:[2,2,1,1,1,1,1,1],DAILY:[2,2,2,1,1,1,1,1],WEEKLY:[2,2,2,2,3,3,1,1],MONTHLY:[2,2,2,2,2,3,3,1],YEARLY:[2,2,2,2,2,2,2,2]};static UNKNOWN=0;static CONTRACT=1;static EXPAND=2;static ILLEGAL=3;constructor(t){this.fromData(t)}completed=!1;rule=null;dtstart=null;last=null;occurrence_number=0;by_indices=null;initialized=!1;by_data=null;days=null;days_index=0;fromData(t){if(this.rule=y(t.rule,B),!this.rule)throw new Error(\"iterator requires a (ICAL.Recur) rule\");if(this.dtstart=y(t.dtstart,s),!this.dtstart)throw new Error(\"iterator requires a (ICAL.Time) dtstart\");t.by_data?this.by_data=t.by_data:this.by_data=D(this.rule.parts,!0),t.occurrence_number&&(this.occurrence_number=t.occurrence_number),this.days=t.days||[],t.last&&(this.last=y(t.last,s)),this.by_indices=t.by_indices,this.by_indices||(this.by_indices={BYSECOND:0,BYMINUTE:0,BYHOUR:0,BYDAY:0,BYMONTH:0,BYWEEKNO:0,BYMONTHDAY:0}),this.initialized=t.initialized||!1,this.initialized||this.init()}init(){this.initialized=!0,this.last=this.dtstart.clone();let t=this.by_data;if(\"BYDAY\"in t&&this.sort_byday_rules(t.BYDAY),\"BYYEARDAY\"in t&&(\"BYMONTH\"in t||\"BYWEEKNO\"in t||\"BYMONTHDAY\"in t||\"BYDAY\"in t))throw new Error(\"Invalid BYYEARDAY rule\");if(\"BYWEEKNO\"in t&&\"BYMONTHDAY\"in t)throw new Error(\"BYWEEKNO does not fit to BYMONTHDAY\");if(\"MONTHLY\"==this.rule.freq&&(\"BYYEARDAY\"in t||\"BYWEEKNO\"in t))throw new Error(\"For MONTHLY recurrences neither BYYEARDAY nor BYWEEKNO may appear\");if(\"WEEKLY\"==this.rule.freq&&(\"BYYEARDAY\"in t||\"BYMONTHDAY\"in t))throw new Error(\"For WEEKLY recurrences neither BYMONTHDAY nor BYYEARDAY may appear\");if(\"YEARLY\"!=this.rule.freq&&\"BYYEARDAY\"in t)throw new Error(\"BYYEARDAY may only appear in YEARLY rules\");this.last.second=this.setup_defaults(\"BYSECOND\",\"SECONDLY\",this.dtstart.second),this.last.minute=this.setup_defaults(\"BYMINUTE\",\"MINUTELY\",this.dtstart.minute),this.last.hour=this.setup_defaults(\"BYHOUR\",\"HOURLY\",this.dtstart.hour);let e=this.last.day=this.setup_defaults(\"BYMONTHDAY\",\"DAILY\",this.dtstart.day);if(this.last.month=this.setup_defaults(\"BYMONTH\",\"MONTHLY\",this.dtstart.month),\"WEEKLY\"==this.rule.freq)if(\"BYDAY\"in t){let[,e]=this.ruleDayOfWeek(t.BYDAY[0],this.rule.wkst),i=e-this.last.dayOfWeek(this.rule.wkst);(this.last.dayOfWeek(this.rule.wkst)<e&&i>=0||i<0)&&(this.last.day+=i)}else{let e=B.numericDayToIcalDay(this.dtstart.dayOfWeek());t.BYDAY=[e]}if(\"YEARLY\"==this.rule.freq){for(;this.expand_year_days(this.last.year),!(this.days.length>0);)this.increment_year(this.rule.interval);this._nextByYearDay()}if(\"MONTHLY\"==this.rule.freq&&this.has_by_data(\"BYDAY\")){let t=null,e=this.last.clone(),i=s.daysInMonth(this.last.month,this.last.year);for(let r of this.by_data.BYDAY){this.last=e.clone();let[n,a]=this.ruleDayOfWeek(r),o=this.last.nthWeekDay(a,n);if(n>=6||n<=-6)throw new Error(\"Malformed values in BYDAY part\");if(o>i||o<=0){if(t&&t.month==e.month)continue;for(;o>i||o<=0;)this.increment_month(),i=s.daysInMonth(this.last.month,this.last.year),o=this.last.nthWeekDay(a,n)}this.last.day=o,(!t||this.last.compare(t)<0)&&(t=this.last.clone())}if(this.last=t.clone(),this.has_by_data(\"BYMONTHDAY\")&&this._byDayAndMonthDay(!0),this.last.day>i||0==this.last.day)throw new Error(\"Malformed values in BYDAY part\")}else if(this.has_by_data(\"BYMONTHDAY\")){this.last.day=1;let t=s.daysInMonth(this.last.month,this.last.year);if(e<0)this.last.day=t+e+1;else if(this.by_data.BYMONTHDAY[0]>t){if(!this.next_month()&&!this.next_month()&&!this.next_month())throw new Error(\"No possible occurrences\")}else this.last.day=e}}next(){let t,e=this.last?this.last.clone():null;if(this.rule.count&&this.occurrence_number>=this.rule.count||this.rule.until&&this.last.compare(this.rule.until)>0)return this.completed=!0,null;if(0==this.occurrence_number&&this.last.compare(this.dtstart)>=0)return this.occurrence_number++,this.last;do{switch(t=1,this.rule.freq){case\"SECONDLY\":this.next_second();break;case\"MINUTELY\":this.next_minute();break;case\"HOURLY\":this.next_hour();break;case\"DAILY\":this.next_day();break;case\"WEEKLY\":this.next_week();break;case\"MONTHLY\":t=this.next_month();break;case\"YEARLY\":this.next_year();break;default:return null}}while(!this.check_contracting_rules()||this.last.compare(this.dtstart)<0||!t);if(0==this.last.compare(e))throw new Error(\"Same occurrence found twice, protecting you from death by recursion\");return this.rule.until&&this.last.compare(this.rule.until)>0?(this.completed=!0,null):(this.occurrence_number++,this.last)}next_second(){return this.next_generic(\"BYSECOND\",\"SECONDLY\",\"second\",\"minute\")}increment_second(t){return this.increment_generic(t,\"second\",60,\"minute\")}next_minute(){return this.next_generic(\"BYMINUTE\",\"MINUTELY\",\"minute\",\"hour\",\"next_second\")}increment_minute(t){return this.increment_generic(t,\"minute\",60,\"hour\")}next_hour(){return this.next_generic(\"BYHOUR\",\"HOURLY\",\"hour\",\"monthday\",\"next_minute\")}increment_hour(t){this.increment_generic(t,\"hour\",24,\"monthday\")}next_day(){let t=\"DAILY\"==this.rule.freq;return 0==this.next_hour()||(t?this.increment_monthday(this.rule.interval):this.increment_monthday(1)),0}next_week(){let t=0;if(0==this.next_weekday_by_week())return t;if(this.has_by_data(\"BYWEEKNO\")){this.by_indices.BYWEEKNO++,this.by_indices.BYWEEKNO==this.by_data.BYWEEKNO.length&&(this.by_indices.BYWEEKNO=0,t=1),this.last.month=1,this.last.day=1;let e=this.by_data.BYWEEKNO[this.by_indices.BYWEEKNO];this.last.day+=7*e,t&&this.increment_year(1)}else this.increment_monthday(7*this.rule.interval);return t}normalizeByMonthDayRules(t,e,i){let r,n=s.daysInMonth(e,t),a=[],o=0,l=i.length;for(;o<l;o++)if(r=i[o],!(Math.abs(r)>n)){if(r<0)r=n+(r+1);else if(0===r)continue;-1===a.indexOf(r)&&a.push(r)}return a.sort((function(t,e){return t-e}))}_byDayAndMonthDay(t){let e,i,r,n,a=this.by_data.BYDAY,o=0,l=a.length,h=0,u=this,c=this.last.day;function d(){for(n=s.daysInMonth(u.last.month,u.last.year),e=u.normalizeByMonthDayRules(u.last.year,u.last.month,u.by_data.BYMONTHDAY),r=e.length;e[o]<=c&&(!t||e[o]!=c)&&o<r-1;)o++}function m(){c=0,u.increment_month(),o=0,d()}d(),t&&(c-=1);let f=48;for(;!h&&f;){if(f--,i=c+1,i>n){m();continue}let t=e[o++];if(t>=i){c=t;for(let t=0;t<l;t++){let e=this.ruleDayOfWeek(a[t]),i=e[0],r=e[1];if(this.last.day=c,this.last.isNthWeekDay(r,i)){h=1;break}}h||o!==r||m()}else m()}if(f<=0)throw new Error(\"Malformed values in BYDAY combined with BYMONTHDAY parts\");return h}next_month(){let t=1;if(0==this.next_hour())return t;if(this.has_by_data(\"BYDAY\")&&this.has_by_data(\"BYMONTHDAY\"))t=this._byDayAndMonthDay();else if(this.has_by_data(\"BYDAY\")){let e,i=s.daysInMonth(this.last.month,this.last.year),r=0,n=0;if(this.has_by_data(\"BYSETPOS\")){let t=this.last.day;for(let e=1;e<=i;e++)this.last.day=e,this.is_day_in_byday(this.last)&&(n++,e<=t&&r++);this.last.day=t}for(t=0,e=this.last.day+1;e<=i;e++)if(this.last.day=e,this.is_day_in_byday(this.last)&&(!this.has_by_data(\"BYSETPOS\")||this.check_set_position(++r)||this.check_set_position(r-n-1))){t=1;break}e>i&&(this.last.day=1,this.increment_month(),this.is_day_in_byday(this.last)?this.has_by_data(\"BYSETPOS\")&&!this.check_set_position(1)||(t=1):t=0)}else if(this.has_by_data(\"BYMONTHDAY\")){this.by_indices.BYMONTHDAY++,this.by_indices.BYMONTHDAY>=this.by_data.BYMONTHDAY.length&&(this.by_indices.BYMONTHDAY=0,this.increment_month());let e=s.daysInMonth(this.last.month,this.last.year),i=this.by_data.BYMONTHDAY[this.by_indices.BYMONTHDAY];i<0&&(i=e+i+1),i>e?(this.last.day=1,t=this.is_day_in_byday(this.last)):this.last.day=i}else{this.increment_month();let e=s.daysInMonth(this.last.month,this.last.year);this.by_data.BYMONTHDAY[0]>e?t=0:this.last.day=this.by_data.BYMONTHDAY[0]}return t}next_weekday_by_week(){let t=0;if(0==this.next_hour())return t;if(!this.has_by_data(\"BYDAY\"))return 1;for(;;){let e=new s;this.by_indices.BYDAY++,this.by_indices.BYDAY==Object.keys(this.by_data.BYDAY).length&&(this.by_indices.BYDAY=0,t=1);let i=this.by_data.BYDAY[this.by_indices.BYDAY],r=this.ruleDayOfWeek(i)[1];r-=this.rule.wkst,r<0&&(r+=7),e.year=this.last.year,e.month=this.last.month,e.day=this.last.day;let n=e.startDoyWeek(this.rule.wkst);if(r+n<1&&!t)continue;let a=s.fromDayOfYear(n+r,this.last.year);return this.last.year=a.year,this.last.month=a.month,this.last.day=a.day,t}}next_year(){if(0==this.next_hour())return 0;if(++this.days_index==this.days.length){this.days_index=0;do{this.increment_year(this.rule.interval),this.expand_year_days(this.last.year)}while(0==this.days.length)}return this._nextByYearDay(),1}_nextByYearDay(){let t=this.days[this.days_index],e=this.last.year;t<1&&(t+=1,e+=1);let i=s.fromDayOfYear(t,e);this.last.day=i.day,this.last.month=i.month}ruleDayOfWeek(t,e){let i=t.match(/([+-]?[0-9])?(MO|TU|WE|TH|FR|SA|SU)/);if(i){return[parseInt(i[1]||0,10),t=B.icalDayToNumericDay(i[2],e)]}return[0,0]}next_generic(t,e,i,r,n){let s=t in this.by_data,a=this.rule.freq==e,o=0;if(n&&0==this[n]())return o;if(s){this.by_indices[t]++;let e=this.by_data[t];this.by_indices[t]==e.length&&(this.by_indices[t]=0,o=1),this.last[i]=e[this.by_indices[t]]}else a&&this[\"increment_\"+i](this.rule.interval);return s&&o&&a&&this[\"increment_\"+r](1),o}increment_monthday(t){for(let e=0;e<t;e++){let t=s.daysInMonth(this.last.month,this.last.year);this.last.day++,this.last.day>t&&(this.last.day-=t,this.increment_month())}}increment_month(){if(this.last.day=1,this.has_by_data(\"BYMONTH\"))this.by_indices.BYMONTH++,this.by_indices.BYMONTH==this.by_data.BYMONTH.length&&(this.by_indices.BYMONTH=0,this.increment_year(1)),this.last.month=this.by_data.BYMONTH[this.by_indices.BYMONTH];else{\"MONTHLY\"==this.rule.freq?this.last.month+=this.rule.interval:this.last.month++,this.last.month--;let t=A(this.last.month/12);this.last.month%=12,this.last.month++,0!=t&&this.increment_year(t)}}increment_year(t){this.last.year+=t}increment_generic(t,e,i,r){this.last[e]+=t;let n=A(this.last[e]/i);this.last[e]%=i,0!=n&&this[\"increment_\"+r](n)}has_by_data(t){return t in this.rule.parts}expand_year_days(t){let e=new s;this.days=[];let i={},r=[\"BYDAY\",\"BYWEEKNO\",\"BYMONTHDAY\",\"BYMONTH\",\"BYYEARDAY\"];for(let t of r)t in this.rule.parts&&(i[t]=this.rule.parts[t]);if(\"BYMONTH\"in i&&\"BYWEEKNO\"in i){let r=1,n={};e.year=t,e.isDate=!0;for(let i=0;i<this.by_data.BYMONTH.length;i++){let r=this.by_data.BYMONTH[i];e.month=r,e.day=1;let a=e.weekNumber(this.rule.wkst);e.day=s.daysInMonth(r,t);let o=e.weekNumber(this.rule.wkst);for(i=a;i<o;i++)n[i]=1}for(let t=0;t<this.by_data.BYWEEKNO.length&&r;t++){this.by_data.BYWEEKNO[t]<52?r&=n[t]:r=0}r?delete i.BYMONTH:delete i.BYWEEKNO}let n=Object.keys(i).length;if(0==n){let t=this.dtstart.clone();t.year=this.last.year,this.days.push(t.dayOfYear())}else if(1==n&&\"BYMONTH\"in i)for(let e of this.by_data.BYMONTH){let i=this.dtstart.clone();i.year=t,i.month=e,i.isDate=!0,this.days.push(i.dayOfYear())}else if(1==n&&\"BYMONTHDAY\"in i)for(let e of this.by_data.BYMONTHDAY){let i=this.dtstart.clone();if(e<0){e=e+s.daysInMonth(i.month,t)+1}i.day=e,i.year=t,i.isDate=!0,this.days.push(i.dayOfYear())}else if(2==n&&\"BYMONTHDAY\"in i&&\"BYMONTH\"in i)for(let i of this.by_data.BYMONTH){let r=s.daysInMonth(i,t);for(let n of this.by_data.BYMONTHDAY)n<0&&(n=n+r+1),e.day=n,e.month=i,e.year=t,e.isDate=!0,this.days.push(e.dayOfYear())}else if(1==n&&\"BYWEEKNO\"in i);else if(2==n&&\"BYWEEKNO\"in i&&\"BYMONTHDAY\"in i);else if(1==n&&\"BYDAY\"in i)this.days=this.days.concat(this.expand_by_day(t));else if(2==n&&\"BYDAY\"in i&&\"BYMONTH\"in i){for(let i of this.by_data.BYMONTH){let r=s.daysInMonth(i,t);e.year=t,e.month=i,e.day=1,e.isDate=!0;let n=e.dayOfWeek(),a=e.dayOfYear()-1;e.day=r;let o=e.dayOfWeek();if(this.has_by_data(\"BYSETPOS\")){let t=[];for(let i=1;i<=r;i++)e.day=i,this.is_day_in_byday(e)&&t.push(i);for(let e=0;e<t.length;e++)(this.check_set_position(e+1)||this.check_set_position(e-t.length))&&this.days.push(a+t[e])}else for(let t of this.by_data.BYDAY){let e,i=this.ruleDayOfWeek(t),s=i[0],l=i[1],h=(l+7-n)%7+1,u=r-(o+7-l)%7;if(0==s)for(let t=h;t<=r;t+=7)this.days.push(a+t);else s>0?(e=h+7*(s-1),e<=r&&this.days.push(a+e)):(e=u+7*(s+1),e>0&&this.days.push(a+e))}}this.days.sort((function(t,e){return t-e}))}else if(2==n&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i){let e=this.expand_by_day(t);for(let i of e){let e=s.fromDayOfYear(i,t);this.by_data.BYMONTHDAY.indexOf(e.day)>=0&&this.days.push(i)}}else if(3==n&&\"BYDAY\"in i&&\"BYMONTHDAY\"in i&&\"BYMONTH\"in i){let e=this.expand_by_day(t);for(let i of e){let e=s.fromDayOfYear(i,t);this.by_data.BYMONTH.indexOf(e.month)>=0&&this.by_data.BYMONTHDAY.indexOf(e.day)>=0&&this.days.push(i)}}else if(2==n&&\"BYDAY\"in i&&\"BYWEEKNO\"in i){let e=this.expand_by_day(t);for(let i of e){let e=s.fromDayOfYear(i,t).weekNumber(this.rule.wkst);this.by_data.BYWEEKNO.indexOf(e)&&this.days.push(i)}}else 3==n&&\"BYDAY\"in i&&\"BYWEEKNO\"in i&&\"BYMONTHDAY\"in i||(this.days=1==n&&\"BYYEARDAY\"in i?this.days.concat(this.by_data.BYYEARDAY):[]);return 0}expand_by_day(t){let e=[],i=this.last.clone();i.year=t,i.month=1,i.day=1,i.isDate=!0;let r=i.dayOfWeek();i.month=12,i.day=31,i.isDate=!0;let n=i.dayOfWeek(),s=i.dayOfYear();for(let t of this.by_data.BYDAY){let i=this.ruleDayOfWeek(t),a=i[0],o=i[1];if(0==a){for(let t=(o+7-r)%7+1;t<=s;t+=7)e.push(t)}else if(a>0){let t;t=o>=r?o-r+1:o-r+8,e.push(t+7*(a-1))}else{let t;a=-a,t=o<=n?s-n+o:s-n+o-7,e.push(t-7*(a-1))}}return e}is_day_in_byday(t){if(this.by_data.BYDAY)for(let e of this.by_data.BYDAY){let i=this.ruleDayOfWeek(e),r=i[0],n=i[1],s=t.dayOfWeek();if(0==r&&n==s||t.nthWeekDay(n,r)==t.day)return 1}return 0}check_set_position(t){if(this.has_by_data(\"BYSETPOS\")){return-1!==this.by_data.BYSETPOS.indexOf(t)}return!1}sort_byday_rules(t){for(let e=0;e<t.length;e++)for(let i=0;i<e;i++){if(this.ruleDayOfWeek(t[i],this.rule.wkst)[1]>this.ruleDayOfWeek(t[e],this.rule.wkst)[1]){let r=t[e];t[e]=t[i],t[i]=r}}}check_contract_restriction(t,e){let i=C._indexMap[t],r=C._expandMap[this.rule.freq][i],n=!1;if(t in this.by_data&&r==C.CONTRACT){let i=this.by_data[t];for(let t of i)if(t==e){n=!0;break}}else n=!0;return n}check_contracting_rules(){let t=this.last.dayOfWeek(),e=this.last.weekNumber(this.rule.wkst),i=this.last.dayOfYear();return this.check_contract_restriction(\"BYSECOND\",this.last.second)&&this.check_contract_restriction(\"BYMINUTE\",this.last.minute)&&this.check_contract_restriction(\"BYHOUR\",this.last.hour)&&this.check_contract_restriction(\"BYDAY\",B.numericDayToIcalDay(t))&&this.check_contract_restriction(\"BYWEEKNO\",e)&&this.check_contract_restriction(\"BYMONTHDAY\",this.last.day)&&this.check_contract_restriction(\"BYMONTH\",this.last.month)&&this.check_contract_restriction(\"BYYEARDAY\",i)}setup_defaults(t,e,i){let r=C._indexMap[t];return C._expandMap[this.rule.freq][r]!=C.CONTRACT&&(t in this.by_data||(this.by_data[t]=[i]),this.rule.freq!=e)?this.by_data[t][0]:i}toJSON(){let t=Object.create(null);return t.initialized=this.initialized,t.rule=this.rule.toJSON(),t.dtstart=this.dtstart.toJSON(),t.by_data=this.by_data,t.days=this.days,t.last=this.last.toJSON(),t.by_indices=this.by_indices,t.occurrence_number=this.occurrence_number,t}}const w=/^(SU|MO|TU|WE|TH|FR|SA)$/,x=/^([+-])?(5[0-3]|[1-4][0-9]|[1-9])?(SU|MO|TU|WE|TH|FR|SA)$/,v={SU:s.SUNDAY,MO:s.MONDAY,TU:s.TUESDAY,WE:s.WEDNESDAY,TH:s.THURSDAY,FR:s.FRIDAY,SA:s.SATURDAY},N=Object.fromEntries(Object.entries(v).map((t=>t.reverse()))),I=[\"SECONDLY\",\"MINUTELY\",\"HOURLY\",\"DAILY\",\"WEEKLY\",\"MONTHLY\",\"YEARLY\"];class B{static fromString(t){let e=this._stringToData(t,!1);return new B(e)}static fromData(t){return new B(t)}static _stringToData(t,e){let i=Object.create(null),r=t.split(\";\"),n=r.length;for(let t=0;t<n;t++){let n=r[t].split(\"=\"),s=n[0].toUpperCase(),a=n[0].toLowerCase(),o=e?a:s,l=n[1];if(s in L){let t=l.split(\",\"),e=0,r=t.length;for(;e<r;e++)t[e]=L[s](t[e]);i[o]=1==t.length?t[0]:t}else s in M?M[s](l,i,e):i[a]=l}return i}static icalDayToNumericDay(t,e){let i=e||s.SUNDAY;return(v[t]-i+7)%7+1}static numericDayToIcalDay(t,e){let i=t+(e||s.SUNDAY)-s.SUNDAY;return i>7&&(i-=7),N[i]}constructor(t){this.wrappedJSObject=this,this.parts={},t&&\"object\"==typeof t&&this.fromData(t)}parts=null;interval=1;wkst=s.MONDAY;until=null;count=null;freq=null;icalclass=\"icalrecur\";icaltype=\"recur\";iterator(t){return new C({rule:this,dtstart:t})}clone(){return new B(this.toJSON())}isFinite(){return!(!this.count&&!this.until)}isByCount(){return!(!this.count||this.until)}addComponent(t,e){let i=t.toUpperCase();i in this.parts?this.parts[i].push(e):this.parts[i]=[e]}setComponent(t,e){this.parts[t.toUpperCase()]=e.slice()}getComponent(t){let e=t.toUpperCase();return e in this.parts?this.parts[e].slice():[]}getNextOccurrence(t,e){let i,r=this.iterator(t);do{i=r.next()}while(i&&i.compare(e)<=0);return i&&e.zone&&(i.zone=e.zone),i}fromData(t){for(let e in t){let i=e.toUpperCase();i in L?Array.isArray(t[e])?this.parts[i]=t[e]:this.parts[i]=[t[e]]:this[e]=t[e]}this.interval&&\"number\"!=typeof this.interval&&M.INTERVAL(this.interval,this),this.wkst&&\"number\"!=typeof this.wkst&&(this.wkst=B.icalDayToNumericDay(this.wkst)),!this.until||this.until instanceof s||(this.until=s.fromString(this.until))}toJSON(){let t=Object.create(null);t.freq=this.freq,this.count&&(t.count=this.count),this.interval>1&&(t.interval=this.interval);for(let[e,i]of Object.entries(this.parts))Array.isArray(i)&&1==i.length?t[e.toLowerCase()]=i[0]:t[e.toLowerCase()]=D(i);return this.until&&(t.until=this.until.toString()),\"wkst\"in this&&this.wkst!==s.DEFAULT_WEEK_START&&(t.wkst=B.numericDayToIcalDay(this.wkst)),t}toString(){let t=\"FREQ=\"+this.freq;this.count&&(t+=\";COUNT=\"+this.count),this.interval>1&&(t+=\";INTERVAL=\"+this.interval);for(let[e,i]of Object.entries(this.parts))t+=\";\"+e+\"=\"+i;return this.until&&(t+=\";UNTIL=\"+this.until.toICALString()),\"wkst\"in this&&this.wkst!==s.DEFAULT_WEEK_START&&(t+=\";WKST=\"+B.numericDayToIcalDay(this.wkst)),t}}function z(t,e,i,r){let n=r;if(\"+\"===r[0]&&(n=r.slice(1)),n=p(n),void 0!==e&&r<e)throw new Error(t+': invalid value \"'+r+'\" must be > '+e);if(void 0!==i&&r>i)throw new Error(t+': invalid value \"'+r+'\" must be < '+e);return n}const M={FREQ:function(t,e,i){if(-1===I.indexOf(t))throw new Error('invalid frequency \"'+t+'\" expected: \"'+I.join(\", \")+'\"');e.freq=t},COUNT:function(t,e,i){e.count=p(t)},INTERVAL:function(t,e,i){e.interval=p(t),e.interval<1&&(e.interval=1)},UNTIL:function(t,e,i){t.length>10?e.until=ut.icalendar.value[\"date-time\"].fromICAL(t):e.until=ut.icalendar.value.date.fromICAL(t),i||(e.until=s.fromString(e.until))},WKST:function(t,e,i){if(!w.test(t))throw new Error('invalid WKST value \"'+t+'\"');e.wkst=B.icalDayToNumericDay(t)}},L={BYSECOND:z.bind(void 0,\"BYSECOND\",0,60),BYMINUTE:z.bind(void 0,\"BYMINUTE\",0,59),BYHOUR:z.bind(void 0,\"BYHOUR\",0,23),BYDAY:function(t){if(x.test(t))return t;throw new Error('invalid BYDAY value \"'+t+'\"')},BYMONTHDAY:z.bind(void 0,\"BYMONTHDAY\",-31,31),BYYEARDAY:z.bind(void 0,\"BYYEARDAY\",-366,366),BYWEEKNO:z.bind(void 0,\"BYWEEKNO\",-53,53),BYMONTH:z.bind(void 0,\"BYMONTH\",1,12),BYSETPOS:z.bind(void 0,\"BYSETPOS\",-366,366)};class k{static fromString(t,e){let i=t.split(\"/\");if(2!==i.length)throw new Error('Invalid string value: \"'+t+'\" must contain a \"/\" char.');let n={start:s.fromDateTimeString(i[0],e)},a=i[1];return r.isValueString(a)?n.duration=r.fromString(a):n.end=s.fromDateTimeString(a,e),new k(n)}static fromData(t){return new k(t)}static fromJSON(t,e,i){function n(t,e){return i?s.fromString(t,e):s.fromDateTimeString(t,e)}return r.isValueString(t[1])?k.fromData({start:n(t[0],e),duration:r.fromString(t[1])}):k.fromData({start:n(t[0],e),end:n(t[1],e)})}constructor(t){if(this.wrappedJSObject=this,t&&\"start\"in t){if(t.start&&!(t.start instanceof s))throw new TypeError(\".start must be an instance of ICAL.Time\");this.start=t.start}if(t&&t.end&&t.duration)throw new Error(\"cannot accept both end and duration\");if(t&&\"end\"in t){if(t.end&&!(t.end instanceof s))throw new TypeError(\".end must be an instance of ICAL.Time\");this.end=t.end}if(t&&\"duration\"in t){if(t.duration&&!(t.duration instanceof r))throw new TypeError(\".duration must be an instance of ICAL.Duration\");this.duration=t.duration}}start=null;end=null;duration=null;icalclass=\"icalperiod\";icaltype=\"period\";clone(){return k.fromData({start:this.start?this.start.clone():null,end:this.end?this.end.clone():null,duration:this.duration?this.duration.clone():null})}getDuration(){return this.duration?this.duration:this.end.subtractDate(this.start)}getEnd(){if(this.end)return this.end;{let t=this.start.clone();return t.addDuration(this.duration),t}}toString(){return this.start+\"/\"+(this.end||this.duration)}toJSON(){return[this.start.toString(),(this.end||this.duration).toString()]}toICALString(){return this.start.toICALString()+\"/\"+(this.end||this.duration).toICALString()}}const P=/\\\\\\\\|\\\\,|\\\\[Nn]/g,U=/\\\\|,|\\n/g;function j(t,e){return{matches:/.*/,fromICAL:function(e,i){return function(t,e,i){if(-1===t.indexOf(\"\\\\\"))return t;i&&(e=new RegExp(e.source+\"|\\\\\\\\\"+i,e.flags));return t.replace(e,X)}(e,t,i)},toICAL:function(t,i){let r=e;return i&&(r=new RegExp(r.source+\"|\"+i,r.flags)),t.replace(r,(function(t){switch(t){case\"\\\\\":return\"\\\\\\\\\";case\";\":return\"\\\\;\";case\",\":return\"\\\\,\";case\"\\n\":return\"\\\\n\";default:return t}}))}}}const V={defaultType:\"text\"},H={defaultType:\"text\",multiValue:\",\"},R={defaultType:\"text\",structuredValue:\";\"},W={defaultType:\"integer\"},F={defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"]},K={defaultType:\"date-time\"},q={defaultType:\"uri\"},J={defaultType:\"utc-offset\"},Z={defaultType:\"recur\"},G={defaultType:\"date-and-or-time\",allowedTypes:[\"date-time\",\"date\",\"text\"]};function X(t){switch(t){case\"\\\\\\\\\":return\"\\\\\";case\"\\\\;\":return\";\";case\"\\\\,\":return\",\";case\"\\\\n\":case\"\\\\N\":return\"\\n\";default:return t}}let Q={categories:H,url:q,version:V,uid:V},$={boolean:{values:[\"TRUE\",\"FALSE\"],fromICAL:function(t){return\"TRUE\"===t},toICAL:function(t){return t?\"TRUE\":\"FALSE\"}},float:{matches:/^[+-]?\\d+\\.\\d+$/,fromICAL:function(t){let e=parseFloat(t);return f(e)?0:e},toICAL:function(t){return String(t)}},integer:{fromICAL:function(t){let e=parseInt(t);return f(e)?0:e},toICAL:function(t){return String(t)}},\"utc-offset\":{toICAL:function(t){return t.length<7?t.slice(0,3)+t.slice(4,6):t.slice(0,3)+t.slice(4,6)+t.slice(7,9)},fromICAL:function(t){return t.length<6?t.slice(0,3)+\":\"+t.slice(3,5):t.slice(0,3)+\":\"+t.slice(3,5)+\":\"+t.slice(5,7)},decorate:function(t){return S.fromString(t)},undecorate:function(t){return t.toString()}}};const tt=O($,{text:j(/\\\\\\\\|\\\\;|\\\\,|\\\\[Nn]/g,/\\\\|;|,|\\n/g),uri:{},binary:{decorate:function(e){return t.fromString(e)},undecorate:function(t){return t.toString()}},\"cal-address\":{},date:{decorate:function(t,e){return ht.strict?s.fromDateString(t,e):s.fromString(t,e)},undecorate:function(t){return t.toString()},fromICAL:function(t){return!ht.strict&&t.length>=15?tt[\"date-time\"].fromICAL(t):t.slice(0,4)+\"-\"+t.slice(4,6)+\"-\"+t.slice(6,8)},toICAL:function(t){let e=t.length;return 10==e?t.slice(0,4)+t.slice(5,7)+t.slice(8,10):e>=19?tt[\"date-time\"].toICAL(t):t}},\"date-time\":{fromICAL:function(t){if(ht.strict||8!=t.length){let e=t.slice(0,4)+\"-\"+t.slice(4,6)+\"-\"+t.slice(6,8)+\"T\"+t.slice(9,11)+\":\"+t.slice(11,13)+\":\"+t.slice(13,15);return t[15]&&\"Z\"===t[15]&&(e+=\"Z\"),e}return tt.date.fromICAL(t)},toICAL:function(t){let e=t.length;if(10!=e||ht.strict){if(e>=19){let e=t.slice(0,4)+t.slice(5,7)+t.slice(8,13)+t.slice(14,16)+t.slice(17,19);return t[19]&&\"Z\"===t[19]&&(e+=\"Z\"),e}return t}return tt.date.toICAL(t)},decorate:function(t,e){return ht.strict?s.fromDateTimeString(t,e):s.fromString(t,e)},undecorate:function(t){return t.toString()}},duration:{decorate:function(t){return r.fromString(t)},undecorate:function(t){return t.toString()}},period:{fromICAL:function(t){let e=t.split(\"/\");return e[0]=tt[\"date-time\"].fromICAL(e[0]),r.isValueString(e[1])||(e[1]=tt[\"date-time\"].fromICAL(e[1])),e},toICAL:function(t){return t=t.slice(),ht.strict||10!=t[0].length?t[0]=tt[\"date-time\"].toICAL(t[0]):t[0]=tt.date.toICAL(t[0]),r.isValueString(t[1])||(ht.strict||10!=t[1].length?t[1]=tt[\"date-time\"].toICAL(t[1]):t[1]=tt.date.toICAL(t[1])),t.join(\"/\")},decorate:function(t,e){return k.fromJSON(t,e,!ht.strict)},undecorate:function(t){return t.toJSON()}},recur:{fromICAL:function(t){return B._stringToData(t,!0)},toICAL:function(t){let e=\"\";for(let[i,r]of Object.entries(t))\"until\"==i?r=r.length>10?tt[\"date-time\"].toICAL(r):tt.date.toICAL(r):\"wkst\"==i?\"number\"==typeof r&&(r=B.numericDayToIcalDay(r)):Array.isArray(r)&&(r=r.join(\",\")),e+=i.toUpperCase()+\"=\"+r+\";\";return e.slice(0,Math.max(0,e.length-1))},decorate:function(t){return B.fromData(t)},undecorate:function(t){return t.toJSON()}},time:{fromICAL:function(t){if(t.length<6)return t;let e=t.slice(0,2)+\":\"+t.slice(2,4)+\":\"+t.slice(4,6);return\"Z\"===t[6]&&(e+=\"Z\"),e},toICAL:function(t){if(t.length<8)return t;let e=t.slice(0,2)+t.slice(3,5)+t.slice(6,8);return\"Z\"===t[8]&&(e+=\"Z\"),e}}});let et=O(Q,{action:V,attach:{defaultType:\"uri\"},attendee:{defaultType:\"cal-address\"},calscale:V,class:V,comment:V,completed:K,contact:V,created:K,description:V,dtend:F,dtstamp:K,dtstart:F,due:F,duration:{defaultType:\"duration\"},exdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],multiValue:\",\"},exrule:Z,freebusy:{defaultType:\"period\",multiValue:\",\"},geo:{defaultType:\"float\",structuredValue:\";\"},\"last-modified\":K,location:V,method:V,organizer:{defaultType:\"cal-address\"},\"percent-complete\":W,priority:W,prodid:V,\"related-to\":V,repeat:W,rdate:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\",\"period\"],multiValue:\",\",detectType:function(t){return-1!==t.indexOf(\"/\")?\"period\":-1===t.indexOf(\"T\")?\"date\":\"date-time\"}},\"recurrence-id\":F,resources:H,\"request-status\":R,rrule:Z,sequence:W,status:V,summary:V,transp:V,trigger:{defaultType:\"duration\",allowedTypes:[\"duration\",\"date-time\"]},tzoffsetfrom:J,tzoffsetto:J,tzurl:q,tzid:V,tzname:V});const it=O($,{text:j(P,U),uri:j(P,U),date:{decorate:function(t){return E.fromDateAndOrTimeString(t,\"date\")},undecorate:function(t){return t.toString()},fromICAL:function(t){return 8==t.length?tt.date.fromICAL(t):\"-\"==t[0]&&6==t.length?t.slice(0,4)+\"-\"+t.slice(4):t},toICAL:function(t){return 10==t.length?tt.date.toICAL(t):\"-\"==t[0]&&7==t.length?t.slice(0,4)+t.slice(5):t}},time:{decorate:function(t){return E.fromDateAndOrTimeString(\"T\"+t,\"time\")},undecorate:function(t){return t.toString()},fromICAL:function(t){let e=it.time._splitZone(t,!0),i=e[0],r=e[1];return 6==r.length?r=r.slice(0,2)+\":\"+r.slice(2,4)+\":\"+r.slice(4,6):4==r.length&&\"-\"!=r[0]?r=r.slice(0,2)+\":\"+r.slice(2,4):5==r.length&&(r=r.slice(0,3)+\":\"+r.slice(3,5)),5!=i.length||\"-\"!=i[0]&&\"+\"!=i[0]||(i=i.slice(0,3)+\":\"+i.slice(3)),r+i},toICAL:function(t){let e=it.time._splitZone(t),i=e[0],r=e[1];return 8==r.length?r=r.slice(0,2)+r.slice(3,5)+r.slice(6,8):5==r.length&&\"-\"!=r[0]?r=r.slice(0,2)+r.slice(3,5):6==r.length&&(r=r.slice(0,3)+r.slice(4,6)),6!=i.length||\"-\"!=i[0]&&\"+\"!=i[0]||(i=i.slice(0,3)+i.slice(4)),r+i},_splitZone:function(t,e){let i,r,n=t.length-1,s=t.length-(e?5:6),a=t[s];return\"Z\"==t[n]?(i=t[n],r=t.slice(0,Math.max(0,n))):t.length>6&&(\"-\"==a||\"+\"==a)?(i=t.slice(s),r=t.slice(0,Math.max(0,s))):(i=\"\",r=t),[i,r]}},\"date-time\":{decorate:function(t){return E.fromDateAndOrTimeString(t,\"date-time\")},undecorate:function(t){return t.toString()},fromICAL:function(t){return it[\"date-and-or-time\"].fromICAL(t)},toICAL:function(t){return it[\"date-and-or-time\"].toICAL(t)}},\"date-and-or-time\":{decorate:function(t){return E.fromDateAndOrTimeString(t,\"date-and-or-time\")},undecorate:function(t){return t.toString()},fromICAL:function(t){let e=t.split(\"T\");return(e[0]?it.date.fromICAL(e[0]):\"\")+(e[1]?\"T\"+it.time.fromICAL(e[1]):\"\")},toICAL:function(t){let e=t.split(\"T\");return it.date.toICAL(e[0])+(e[1]?\"T\"+it.time.toICAL(e[1]):\"\")}},timestamp:tt[\"date-time\"],\"language-tag\":{matches:/^[a-zA-Z0-9-]+$/},\"phone-number\":{fromICAL:function(t){return Array.from(t).filter((function(t){return\"\\\\\"===t?void 0:t})).join(\"\")},toICAL:function(t){return Array.from(t).map((function(t){return\",\"===t||\";\"===t?\"\\\\\"+t:t})).join(\"\")}}});let rt=O(Q,{adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},anniversary:G,bday:G,caladruri:q,caluri:q,clientpidmap:R,email:V,fburl:q,fn:V,gender:R,geo:q,impp:q,key:q,kind:V,lang:{defaultType:\"language-tag\"},logo:q,member:q,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:H,note:V,org:{defaultType:\"text\",structuredValue:\";\"},photo:q,related:q,rev:{defaultType:\"timestamp\"},role:V,sound:q,source:q,tel:{defaultType:\"uri\",allowedTypes:[\"uri\",\"text\"]},title:V,tz:{defaultType:\"text\",allowedTypes:[\"text\",\"utc-offset\",\"uri\"]},xml:V}),nt=O($,{binary:tt.binary,date:it.date,\"date-time\":it[\"date-time\"],\"phone-number\":it[\"phone-number\"],uri:tt.uri,text:tt.text,time:tt.time,vcard:tt.text,\"utc-offset\":{toICAL:function(t){return t.slice(0,7)},fromICAL:function(t){return t.slice(0,7)},decorate:function(t){return S.fromString(t)},undecorate:function(t){return t.toString()}}}),st=O(Q,{fn:V,n:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},nickname:H,photo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},bday:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(t){return-1===t.indexOf(\"T\")?\"date\":\"date-time\"}},adr:{defaultType:\"text\",structuredValue:\";\",multiValue:\",\"},label:V,tel:{defaultType:\"phone-number\"},email:V,mailer:V,tz:{defaultType:\"utc-offset\",allowedTypes:[\"utc-offset\",\"text\"]},geo:{defaultType:\"float\",structuredValue:\";\"},title:V,role:V,logo:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},agent:{defaultType:\"vcard\",allowedTypes:[\"vcard\",\"text\",\"uri\"]},org:R,note:H,prodid:V,rev:{defaultType:\"date-time\",allowedTypes:[\"date-time\",\"date\"],detectType:function(t){return-1===t.indexOf(\"T\")?\"date\":\"date-time\"}},\"sort-string\":V,sound:{defaultType:\"binary\",allowedTypes:[\"binary\",\"uri\"]},class:V,key:{defaultType:\"binary\",allowedTypes:[\"binary\",\"text\"]}}),at={value:tt,param:{cutype:{values:[\"INDIVIDUAL\",\"GROUP\",\"RESOURCE\",\"ROOM\",\"UNKNOWN\"],allowXName:!0,allowIanaToken:!0},\"delegated-from\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},\"delegated-to\":{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},encoding:{values:[\"8BIT\",\"BASE64\"]},fbtype:{values:[\"FREE\",\"BUSY\",\"BUSY-UNAVAILABLE\",\"BUSY-TENTATIVE\"],allowXName:!0,allowIanaToken:!0},member:{valueType:\"cal-address\",multiValue:\",\",multiValueSeparateDQuote:!0},partstat:{values:[\"NEEDS-ACTION\",\"ACCEPTED\",\"DECLINED\",\"TENTATIVE\",\"DELEGATED\",\"COMPLETED\",\"IN-PROCESS\"],allowXName:!0,allowIanaToken:!0},range:{values:[\"THISANDFUTURE\"]},related:{values:[\"START\",\"END\"]},reltype:{values:[\"PARENT\",\"CHILD\",\"SIBLING\"],allowXName:!0,allowIanaToken:!0},role:{values:[\"REQ-PARTICIPANT\",\"CHAIR\",\"OPT-PARTICIPANT\",\"NON-PARTICIPANT\"],allowXName:!0,allowIanaToken:!0},rsvp:{values:[\"TRUE\",\"FALSE\"]},\"sent-by\":{valueType:\"cal-address\"},tzid:{matches:/^\\//},value:{values:[\"binary\",\"boolean\",\"cal-address\",\"date\",\"date-time\",\"duration\",\"float\",\"integer\",\"period\",\"recur\",\"text\",\"time\",\"uri\",\"utc-offset\"],allowXName:!0,allowIanaToken:!0}},property:et,propertyGroups:!1},ot={value:it,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"time\",\"date-time\",\"date-and-or-time\",\"timestamp\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"language-tag\"],allowXName:!0,allowIanaToken:!0}},property:rt,propertyGroups:!0},lt={value:nt,param:{type:{valueType:\"text\",multiValue:\",\"},value:{values:[\"text\",\"uri\",\"date\",\"date-time\",\"phone-number\",\"time\",\"boolean\",\"integer\",\"float\",\"utc-offset\",\"vcard\",\"binary\"],allowXName:!0,allowIanaToken:!0}},property:st,propertyGroups:!0};const ht={strict:!0,defaultSet:at,defaultType:\"unknown\",components:{vcard:ot,vcard3:lt,vevent:at,vtodo:at,vjournal:at,valarm:at,vtimezone:at,daylight:at,standard:at},icalendar:at,vcard:ot,vcard3:lt,getDesignSet:function(t){return t&&t in ht.components?ht.components[t]:ht.defaultSet}};var ut=ht;const ct=\"\\r\\n\",dt=\"unknown\",mt={'\"':\"^'\",\"\\n\":\"^n\",\"^\":\"^^\"};function ft(t){\"string\"==typeof t[0]&&(t=[t]);let e=0,i=t.length,r=\"\";for(;e<i;e++)r+=ft.component(t[e])+ct;return r}ft.component=function(t,e){let i=t[0].toUpperCase(),r=\"BEGIN:\"+i+ct,n=t[1],s=0,a=n.length,o=t[0];for(\"vcard\"===o&&t[1].length>0&&(\"version\"!==t[1][0][0]||\"4.0\"!==t[1][0][3])&&(o=\"vcard3\"),e=e||ut.getDesignSet(o);s<a;s++)r+=ft.property(n[s],e)+ct;let l=t[2]||[],h=0,u=l.length;for(;h<u;h++)r+=ft.component(l[h],e)+ct;return r+=\"END:\"+i,r},ft.property=function(t,e,i){let r=t[0].toUpperCase(),n=t[0],s=t[1];e||(e=ut.defaultSet);let a,o=s.group;a=e.propertyGroups&&o?o.toUpperCase()+\".\"+r:r;for(let[t,i]of Object.entries(s)){if(e.propertyGroups&&\"group\"==t)continue;let r=e.param[t],n=r&&r.multiValue;n&&Array.isArray(i)?(i=i.map((function(t){return t=ft._rfc6868Unescape(t),t=ft.paramPropertyValue(t,r.multiValueSeparateDQuote)})),i=ft.multiValue(i,n,\"unknown\",null,e)):(i=ft._rfc6868Unescape(i),i=ft.paramPropertyValue(i)),a+=\";\"+t.toUpperCase()+\"=\"+i}if(3===t.length)return a+\":\";let l,h=t[2],u=!1,c=!1,d=!1;return n in e.property?(l=e.property[n],\"multiValue\"in l&&(u=l.multiValue),\"structuredValue\"in l&&Array.isArray(t[3])&&(c=l.structuredValue),\"defaultType\"in l?h===l.defaultType&&(d=!0):h===dt&&(d=!0)):h===dt&&(d=!0),d||(a+=\";VALUE=\"+h.toUpperCase()),a+=\":\",a+=u&&c?ft.multiValue(t[3],c,h,u,e,c):u?ft.multiValue(t.slice(3),u,h,null,e,!1):c?ft.multiValue(t[3],c,h,null,e,c):ft.value(t[3],h,e,!1),i?a:T(a)},ft.paramPropertyValue=function(t,e){return e||-1!==_(t,\",\")||-1!==_(t,\":\")||-1!==_(t,\";\")?'\"'+t+'\"':t},ft.multiValue=function(t,e,i,r,n,s){let a=\"\",o=t.length,l=0;for(;l<o;l++)r&&Array.isArray(t[l])?a+=ft.multiValue(t[l],r,i,null,n,s):a+=ft.value(t[l],i,n,s),l!==o-1&&(a+=e);return a},ft.value=function(t,e,i,r){return e in i.value&&\"toICAL\"in i.value[e]?i.value[e].toICAL(t,r):t},ft._rfc6868Unescape=function(t){return t.replace(/[\\n^\"]/g,(function(t){return mt[t]}))};class pt{static fromString(t,e){return new pt(l.property(t,e))}constructor(t,e){this._parent=e||null,\"string\"==typeof t?(this.jCal=[t,{},ut.defaultType],this.jCal[2]=this.getDefaultType()):this.jCal=t,this._updateType()}get type(){return this.jCal[2]}get name(){return this.jCal[0]}get parent(){return this._parent}set parent(t){let e=!this._parent||t&&t._designSet!=this._parent._designSet;this._parent=t,this.type==ut.defaultType&&e&&(this.jCal[2]=this.getDefaultType(),this._updateType())}get _designSet(){return this.parent?this.parent._designSet:ut.defaultSet}_updateType(){let t=this._designSet;this.type in t.value&&(\"decorate\"in t.value[this.type]?this.isDecorated=!0:this.isDecorated=!1,this.name in t.property&&(this.isMultiValue=\"multiValue\"in t.property[this.name],this.isStructuredValue=\"structuredValue\"in t.property[this.name]))}_hydrateValue(t){return this._values&&this._values[t]?this._values[t]:this.jCal.length<=3+t?null:this.isDecorated?(this._values||(this._values=[]),this._values[t]=this._decorate(this.jCal[3+t])):this.jCal[3+t]}_decorate(t){return this._designSet.value[this.type].decorate(t,this)}_undecorate(t){return this._designSet.value[this.type].undecorate(t,this)}_setDecoratedValue(t,e){this._values||(this._values=[]),\"object\"==typeof t&&\"icaltype\"in t?(this.jCal[3+e]=this._undecorate(t),this._values[e]=t):(this.jCal[3+e]=t,this._values[e]=this._decorate(t))}getParameter(t){return t in this.jCal[1]?this.jCal[1][t]:void 0}getFirstParameter(t){let e=this.getParameter(t);return Array.isArray(e)?e[0]:e}setParameter(t,e){let i=t.toLowerCase();\"string\"==typeof e&&i in this._designSet.param&&\"multiValue\"in this._designSet.param[i]&&(e=[e]),this.jCal[1][t]=e}removeParameter(t){delete this.jCal[1][t]}getDefaultType(){let t=this.jCal[0],e=this._designSet;if(t in e.property){let i=e.property[t];if(\"defaultType\"in i)return i.defaultType}return ut.defaultType}resetType(t){this.removeAllValues(),this.jCal[2]=t,this._updateType()}getFirstValue(){return this._hydrateValue(0)}getValues(){let t=this.jCal.length-3;if(t<1)return[];let e=0,i=[];for(;e<t;e++)i[e]=this._hydrateValue(e);return i}removeAllValues(){this._values&&(this._values.length=0),this.jCal.length=3}setValues(t){if(!this.isMultiValue)throw new Error(this.name+\": does not not support mulitValue.\\noverride isMultiValue\");let e=t.length,i=0;if(this.removeAllValues(),e>0&&\"object\"==typeof t[0]&&\"icaltype\"in t[0]&&this.resetType(t[0].icaltype),this.isDecorated)for(;i<e;i++)this._setDecoratedValue(t[i],i);else for(;i<e;i++)this.jCal[3+i]=t[i]}setValue(t){this.removeAllValues(),\"object\"==typeof t&&\"icaltype\"in t&&this.resetType(t.icaltype),this.isDecorated?this._setDecoratedValue(t,0):this.jCal[3]=t}toJSON(){return this.jCal}toICALString(){return ft.property(this.jCal,this._designSet,!0)}}class yt{static fromString(t){return new yt(l.component(t))}constructor(t,e){\"string\"==typeof t&&(t=[t,[],[]]),this.jCal=t,this.parent=e||null,this.parent||\"vcalendar\"!==this.name||(this._timezoneCache=new Map)}_hydratedPropertyCount=0;_hydratedComponentCount=0;_timezoneCache=null;get name(){return this.jCal[0]}get _designSet(){return this.parent&&this.parent._designSet||ut.getDesignSet(this.name)}_hydrateComponent(t){if(this._components||(this._components=[],this._hydratedComponentCount=0),this._components[t])return this._components[t];let e=new yt(this.jCal[2][t],this);return this._hydratedComponentCount++,this._components[t]=e}_hydrateProperty(t){if(this._properties||(this._properties=[],this._hydratedPropertyCount=0),this._properties[t])return this._properties[t];let e=new pt(this.jCal[1][t],this);return this._hydratedPropertyCount++,this._properties[t]=e}getFirstSubcomponent(t){if(t){let e=0,i=this.jCal[2],r=i.length;for(;e<r;e++)if(i[e][0]===t){return this._hydrateComponent(e)}}else if(this.jCal[2].length)return this._hydrateComponent(0);return null}getAllSubcomponents(t){let e=this.jCal[2].length,i=0;if(t){let r=this.jCal[2],n=[];for(;i<e;i++)t===r[i][0]&&n.push(this._hydrateComponent(i));return n}if(!this._components||this._hydratedComponentCount!==e)for(;i<e;i++)this._hydrateComponent(i);return this._components||[]}hasProperty(t){let e=this.jCal[1],i=e.length,r=0;for(;r<i;r++)if(e[r][0]===t)return!0;return!1}getFirstProperty(t){if(t){let e=0,i=this.jCal[1],r=i.length;for(;e<r;e++)if(i[e][0]===t){return this._hydrateProperty(e)}}else if(this.jCal[1].length)return this._hydrateProperty(0);return null}getFirstPropertyValue(t){let e=this.getFirstProperty(t);return e?e.getFirstValue():null}getAllProperties(t){let e=this.jCal[1].length,i=0;if(t){let r=this.jCal[1],n=[];for(;i<e;i++)t===r[i][0]&&n.push(this._hydrateProperty(i));return n}if(!this._properties||this._hydratedPropertyCount!==e)for(;i<e;i++)this._hydrateProperty(i);return this._properties||[]}_removeObjectByIndex(t,e,i){if((e=e||[])[i]){let t=e[i];\"parent\"in t&&(t.parent=null)}e.splice(i,1),this.jCal[t].splice(i,1)}_removeObject(t,e,i){let r=0,n=this.jCal[t],s=n.length,a=this[e];if(\"string\"==typeof i){for(;r<s;r++)if(n[r][0]===i)return this._removeObjectByIndex(t,a,r),!0}else if(a)for(;r<s;r++)if(a[r]&&a[r]===i)return this._removeObjectByIndex(t,a,r),!0;return!1}_removeAllObjects(t,e,i){let r=this[e],n=this.jCal[t],s=n.length-1;for(;s>=0;s--)i&&n[s][0]!==i||this._removeObjectByIndex(t,r,s)}addSubcomponent(t){this._components||(this._components=[],this._hydratedComponentCount=0),t.parent&&t.parent.removeSubcomponent(t);let e=this.jCal[2].push(t.jCal);return this._components[e-1]=t,this._hydratedComponentCount++,t.parent=this,t}removeSubcomponent(t){let e=this._removeObject(2,\"_components\",t);return e&&this._hydratedComponentCount--,e}removeAllSubcomponents(t){let e=this._removeAllObjects(2,\"_components\",t);return this._hydratedComponentCount=0,e}addProperty(t){if(!(t instanceof pt))throw new TypeError(\"must be instance of ICAL.Property\");this._properties||(this._properties=[],this._hydratedPropertyCount=0),t.parent&&t.parent.removeProperty(t);let e=this.jCal[1].push(t.jCal);return this._properties[e-1]=t,this._hydratedPropertyCount++,t.parent=this,t}addPropertyWithValue(t,e){let i=new pt(t);return i.setValue(e),this.addProperty(i),i}updatePropertyWithValue(t,e){let i=this.getFirstProperty(t);return i?i.setValue(e):i=this.addPropertyWithValue(t,e),i}removeProperty(t){let e=this._removeObject(1,\"_properties\",t);return e&&this._hydratedPropertyCount--,e}removeAllProperties(t){let e=this._removeAllObjects(1,\"_properties\",t);return this._hydratedPropertyCount=0,e}toJSON(){return this.jCal}toString(){return ft.component(this.jCal,this._designSet)}getTimeZoneByID(t){if(this.parent)return this.parent.getTimeZoneByID(t);if(!this._timezoneCache)return null;if(this._timezoneCache.has(t))return this._timezoneCache.get(t);const e=this.getAllSubcomponents(\"vtimezone\");for(const i of e)if(i.getFirstProperty(\"tzid\").getFirstValue()===t){const e=new c({component:i,tzid:t});return this._timezoneCache.set(t,e),e}return null}}class _t{constructor(t){this.ruleDates=[],this.exDates=[],this.fromData(t)}complete=!1;ruleIterators=null;ruleDates=null;exDates=null;ruleDateInc=0;exDateInc=0;exDate=null;ruleDate=null;dtstart=null;last=null;fromData(t){let e=y(t.dtstart,s);if(!e)throw new Error(\".dtstart (ICAL.Time) must be given\");if(this.dtstart=e,t.component)this._init(t.component);else{if(this.last=y(t.last,s)||e.clone(),!t.ruleIterators)throw new Error(\".ruleIterators or .component must be given\");this.ruleIterators=t.ruleIterators.map((function(t){return y(t,C)})),this.ruleDateInc=t.ruleDateInc,this.exDateInc=t.exDateInc,t.ruleDates&&(this.ruleDates=t.ruleDates.map((t=>y(t,s))),this.ruleDate=this.ruleDates[this.ruleDateInc]),t.exDates&&(this.exDates=t.exDates.map((t=>y(t,s))),this.exDate=this.exDates[this.exDateInc]),void 0!==t.complete&&(this.complete=t.complete)}}next(){let t,e,i,r=0;for(;;){if(r++>500)throw new Error(\"max tries have occurred, rule may be impossible to fulfill.\");if(e=this.ruleDate,t=this._nextRecurrenceIter(this.last),!e&&!t){this.complete=!0;break}if((!e||t&&e.compare(t.last)>0)&&(e=t.last.clone(),t.next()),this.ruleDate===e&&this._nextRuleDay(),this.last=e,!this.exDate||(i=this.exDate.compare(this.last),i<0&&this._nextExDay(),0!==i))return this.last;this._nextExDay()}}toJSON(){function t(t){return t.toJSON()}let e=Object.create(null);return e.ruleIterators=this.ruleIterators.map(t),this.ruleDates&&(e.ruleDates=this.ruleDates.map(t)),this.exDates&&(e.exDates=this.exDates.map(t)),e.ruleDateInc=this.ruleDateInc,e.exDateInc=this.exDateInc,e.last=this.last.toJSON(),e.dtstart=this.dtstart.toJSON(),e.complete=this.complete,e}_extractDates(t,e){let i=[],r=t.getAllProperties(e);for(let t=0,e=r.length;t<e;t++)for(let e of r[t].getValues()){let t=g(i,e,((t,e)=>t.compare(e)));i.splice(t,0,e)}return i}_init(t){if(this.ruleIterators=[],this.last=this.dtstart.clone(),!t.hasProperty(\"rdate\")&&!t.hasProperty(\"rrule\")&&!t.hasProperty(\"recurrence-id\"))return this.ruleDate=this.last.clone(),void(this.complete=!0);if(t.hasProperty(\"rdate\")&&(this.ruleDates=this._extractDates(t,\"rdate\"),this.ruleDates[0]&&this.ruleDates[0].compare(this.dtstart)<0?(this.ruleDateInc=0,this.last=this.ruleDates[0].clone()):this.ruleDateInc=g(this.ruleDates,this.last,((t,e)=>t.compare(e))),this.ruleDate=this.ruleDates[this.ruleDateInc]),t.hasProperty(\"rrule\")){let e,i,r=t.getAllProperties(\"rrule\"),n=0,s=r.length;for(;n<s;n++)e=r[n].getFirstValue(),i=e.iterator(this.dtstart),this.ruleIterators.push(i),i.next()}t.hasProperty(\"exdate\")&&(this.exDates=this._extractDates(t,\"exdate\"),this.exDateInc=g(this.exDates,this.last,((t,e)=>t.compare(e))),this.exDate=this.exDates[this.exDateInc])}_nextExDay(){this.exDate=this.exDates[++this.exDateInc]}_nextRuleDay(){this.ruleDate=this.ruleDates[++this.ruleDateInc]}_nextRecurrenceIter(){let t=this.ruleIterators;if(0===t.length)return null;let e,i,r,n=t.length,s=0;for(;s<n;s++)e=t[s],i=e.last,e.completed?(n--,0!==s&&s--,t.splice(s,1)):(!r||r.last.compare(i)>0)&&(r=e);return r}}class gt{constructor(t,e){t instanceof yt||(e=t,t=null),this.component=t||new yt(\"vevent\"),this._rangeExceptionCache=Object.create(null),this.exceptions=Object.create(null),this.rangeExceptions=[],e&&e.strictExceptions&&(this.strictExceptions=e.strictExceptions),e&&e.exceptions?e.exceptions.forEach(this.relateException,this):this.component.parent&&!this.isRecurrenceException()&&this.component.parent.getAllSubcomponents(\"vevent\").forEach((function(t){t.hasProperty(\"recurrence-id\")&&this.relateException(t)}),this)}static THISANDFUTURE=\"THISANDFUTURE\";exceptions=null;strictExceptions=!1;relateException(t){if(this.isRecurrenceException())throw new Error(\"cannot relate exception to exceptions\");if(t instanceof yt&&(t=new gt(t)),this.strictExceptions&&t.uid!==this.uid)throw new Error(\"attempted to relate unrelated exception\");let e=t.recurrenceId.toString();if(this.exceptions[e]=t,t.modifiesFuture()){let i=[t.recurrenceId.toUnixTime(),e],r=g(this.rangeExceptions,i,Dt);this.rangeExceptions.splice(r,0,i)}}modifiesFuture(){if(!this.component.hasProperty(\"recurrence-id\"))return!1;return this.component.getFirstProperty(\"recurrence-id\").getParameter(\"range\")===gt.THISANDFUTURE}findRangeException(t){if(!this.rangeExceptions.length)return null;let e=t.toUnixTime(),i=g(this.rangeExceptions,[e],Dt);if(i-=1,i<0)return null;let r=this.rangeExceptions[i];return e<r[0]?null:r[1]}getOccurrenceDetails(t){let e,i=t.toString(),r=t.convertToZone(c.utcTimezone).toString(),n={recurrenceId:t};if(i in this.exceptions)e=n.item=this.exceptions[i],n.startDate=e.startDate,n.endDate=e.endDate,n.item=e;else if(r in this.exceptions)e=this.exceptions[r],n.startDate=e.startDate,n.endDate=e.endDate,n.item=e;else{let e,i=this.findRangeException(t);if(i){let r=this.exceptions[i];n.item=r;let s=this._rangeExceptionCache[i];if(!s){let t=r.recurrenceId.clone(),e=r.startDate.clone();t.zone=e.zone,s=e.subtractDate(t),this._rangeExceptionCache[i]=s}let a=t.clone();a.zone=r.startDate.zone,a.addDuration(s),e=a.clone(),e.addDuration(r.duration),n.startDate=a,n.endDate=e}else e=t.clone(),e.addDuration(this.duration),n.endDate=e,n.startDate=t,n.item=this}return n}iterator(t){return new _t({component:this.component,dtstart:t||this.startDate})}isRecurring(){let t=this.component;return t.hasProperty(\"rrule\")||t.hasProperty(\"rdate\")}isRecurrenceException(){return this.component.hasProperty(\"recurrence-id\")}getRecurrenceTypes(){let t=this.component.getAllProperties(\"rrule\"),e=0,i=t.length,r=Object.create(null);for(;e<i;e++){r[t[e].getFirstValue().freq]=!0}return r}get uid(){return this._firstProp(\"uid\")}set uid(t){this._setProp(\"uid\",t)}get startDate(){return this._firstProp(\"dtstart\")}set startDate(t){this._setTime(\"dtstart\",t)}get endDate(){let t=this._firstProp(\"dtend\");if(!t){let e=this._firstProp(\"duration\");t=this.startDate.clone(),e?t.addDuration(e):t.isDate&&(t.day+=1)}return t}set endDate(t){this.component.hasProperty(\"duration\")&&this.component.removeProperty(\"duration\"),this._setTime(\"dtend\",t)}get duration(){let t=this._firstProp(\"duration\");return t||this.endDate.subtractDateTz(this.startDate)}set duration(t){this.component.hasProperty(\"dtend\")&&this.component.removeProperty(\"dtend\"),this._setProp(\"duration\",t)}get location(){return this._firstProp(\"location\")}set location(t){this._setProp(\"location\",t)}get attendees(){return this.component.getAllProperties(\"attendee\")}get summary(){return this._firstProp(\"summary\")}set summary(t){this._setProp(\"summary\",t)}get description(){return this._firstProp(\"description\")}set description(t){this._setProp(\"description\",t)}get color(){return this._firstProp(\"color\")}set color(t){this._setProp(\"color\",t)}get organizer(){return this._firstProp(\"organizer\")}set organizer(t){this._setProp(\"organizer\",t)}get sequence(){return this._firstProp(\"sequence\")}set sequence(t){this._setProp(\"sequence\",t)}get recurrenceId(){return this._firstProp(\"recurrence-id\")}set recurrenceId(t){this._setTime(\"recurrence-id\",t)}_setTime(t,e){let i=this.component.getFirstProperty(t);i||(i=new pt(t),this.component.addProperty(i)),e.zone===c.localTimezone||e.zone===c.utcTimezone?i.removeParameter(\"tzid\"):i.setParameter(\"tzid\",e.zone.tzid),i.setValue(e)}_setProp(t,e){this.component.updatePropertyWithValue(t,e)}_firstProp(t){return this.component.getFirstPropertyValue(t)}toString(){return this.component.toString()}}function Dt(t,e){return t[0]>e[0]?1:e[0]>t[0]?-1:0}var Tt={foldLength:75,debug:!1,newLineChar:\"\\r\\n\",Binary:t,Component:yt,ComponentParser:class{constructor(t){void 0===t&&(t={});for(let[e,i]of Object.entries(t))this[e]=i}parseEvent=!0;parseTimezone=!0;oncomplete=function(){};onerror=function(t){};ontimezone=function(t){};onevent=function(t){};process(t){\"string\"==typeof t&&(t=l(t)),t instanceof yt||(t=new yt(t));let e,i=t.getAllSubcomponents(),r=0,n=i.length;for(;r<n;r++)switch(e=i[r],e.name){case\"vtimezone\":if(this.parseTimezone){let t=e.getFirstPropertyValue(\"tzid\");t&&this.ontimezone(new c({tzid:t,component:e}))}break;case\"vevent\":this.parseEvent&&this.onevent(new gt(e));break;default:continue}this.oncomplete()}},Duration:r,Event:gt,Period:k,Property:pt,Recur:B,RecurExpansion:_t,RecurIterator:C,Time:s,Timezone:c,TimezoneService:m,UtcOffset:S,VCardTime:E,parse:l,stringify:ft,design:ut,helpers:b};export{Tt as default};\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { getCurrentUser } from \"@nextcloud/auth\";\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n LogLevel2[LogLevel2[\"Debug\"] = 0] = \"Debug\";\n LogLevel2[LogLevel2[\"Info\"] = 1] = \"Info\";\n LogLevel2[LogLevel2[\"Warn\"] = 2] = \"Warn\";\n LogLevel2[LogLevel2[\"Error\"] = 3] = \"Error\";\n LogLevel2[LogLevel2[\"Fatal\"] = 4] = \"Fatal\";\n return LogLevel2;\n})(LogLevel || {});\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass ConsoleLogger {\n constructor(context) {\n __publicField$1(this, \"context\");\n this.context = context || {};\n }\n formatMessage(message, level, context) {\n let msg = \"[\" + LogLevel[level].toUpperCase() + \"] \";\n if (context && context.app) {\n msg += context.app + \": \";\n }\n if (typeof message === \"string\")\n return msg + message;\n msg += \"Unexpected \".concat(message.name);\n if (message.message)\n msg += ' \"'.concat(message.message, '\"');\n if (level === LogLevel.Debug && message.stack)\n msg += \"\\n\\nStack trace:\\n\".concat(message.stack);\n return msg;\n }\n log(level, message, context) {\n var _a, _b;\n if (typeof ((_a = this.context) == null ? void 0 : _a.level) === \"number\" && level < ((_b = this.context) == null ? void 0 : _b.level)) {\n return;\n }\n if (typeof message === \"object\" && (context == null ? void 0 : context.error) === void 0) {\n context.error = message;\n }\n switch (level) {\n case LogLevel.Debug:\n console.debug(this.formatMessage(message, LogLevel.Debug, context), context);\n break;\n case LogLevel.Info:\n console.info(this.formatMessage(message, LogLevel.Info, context), context);\n break;\n case LogLevel.Warn:\n console.warn(this.formatMessage(message, LogLevel.Warn, context), context);\n break;\n case LogLevel.Error:\n console.error(this.formatMessage(message, LogLevel.Error, context), context);\n break;\n case LogLevel.Fatal:\n default:\n console.error(this.formatMessage(message, LogLevel.Fatal, context), context);\n break;\n }\n }\n debug(message, context) {\n this.log(LogLevel.Debug, message, Object.assign({}, this.context, context));\n }\n info(message, context) {\n this.log(LogLevel.Info, message, Object.assign({}, this.context, context));\n }\n warn(message, context) {\n this.log(LogLevel.Warn, message, Object.assign({}, this.context, context));\n }\n error(message, context) {\n this.log(LogLevel.Error, message, Object.assign({}, this.context, context));\n }\n fatal(message, context) {\n this.log(LogLevel.Fatal, message, Object.assign({}, this.context, context));\n }\n}\nfunction buildConsoleLogger(context) {\n return new ConsoleLogger(context);\n}\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass LoggerBuilder {\n constructor(factory) {\n __publicField(this, \"context\");\n __publicField(this, \"factory\");\n this.context = {};\n this.factory = factory;\n }\n /**\n * Set the app name within the logging context\n *\n * @param appId App name\n */\n setApp(appId) {\n this.context.app = appId;\n return this;\n }\n /**\n * Set the logging level within the logging context\n *\n * @param level Logging level\n */\n setLogLevel(level) {\n this.context.level = level;\n return this;\n }\n /* eslint-disable jsdoc/no-undefined-types */\n /**\n * Set the user id within the logging context\n * @param uid User ID\n * @see {@link detectUser}\n */\n /* eslint-enable jsdoc/no-undefined-types */\n setUid(uid) {\n this.context.uid = uid;\n return this;\n }\n /**\n * Detect the currently logged in user and set the user id within the logging context\n */\n detectUser() {\n const user = getCurrentUser();\n if (user !== null) {\n this.context.uid = user.uid;\n }\n return this;\n }\n /**\n * Detect and use logging level configured in nextcloud config\n */\n detectLogLevel() {\n const self = this;\n const onLoaded = () => {\n var _a, _b;\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\n self.context.level = (_b = (_a = window._oc_config) == null ? void 0 : _a.loglevel) != null ? _b : LogLevel.Warn;\n if (window._oc_debug) {\n self.context.level = LogLevel.Debug;\n }\n document.removeEventListener(\"readystatechange\", onLoaded);\n } else {\n document.addEventListener(\"readystatechange\", onLoaded);\n }\n };\n onLoaded();\n return this;\n }\n /** Build a logger using the logging context and factory */\n build() {\n if (this.context.level === void 0) {\n this.detectLogLevel();\n }\n return this.factory(this.context);\n }\n}\nfunction getLoggerBuilder() {\n return new LoggerBuilder(buildConsoleLogger);\n}\nfunction getLogger() {\n return getLoggerBuilder().build();\n}\nexport {\n LogLevel,\n getLogger,\n getLoggerBuilder\n};\n","import './assets/index-Ds7BWaqb.css';\nimport NcDateTimePickerNative from \"@nextcloud/vue/dist/Components/NcDateTimePickerNative.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport IconDelete from \"vue-material-design-icons/Delete.vue\";\nimport IconAdd from \"vue-material-design-icons/Plus.vue\";\nimport { getFirstDay } from \"@nextcloud/l10n\";\nimport { getZoneString } from \"icalzone\";\nimport ICAL from \"ical.js\";\nimport { v4 } from \"uuid\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main = {\n name: \"CalendarAvailability\",\n components: {\n NcDateTimePickerNative,\n NcButton,\n IconAdd,\n IconDelete\n },\n props: {\n slots: {\n type: Object,\n required: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n l10nTo: {\n type: String,\n required: true\n },\n l10nDeleteSlot: {\n type: String,\n required: true\n },\n l10nEmptyDay: {\n type: String,\n required: true\n },\n l10nAddSlot: {\n type: String,\n required: true\n },\n l10nWeekDayListLabel: {\n type: String,\n default: \"Weekdays\"\n },\n l10nMonday: {\n type: String,\n required: true\n },\n l10nTuesday: {\n type: String,\n required: true\n },\n l10nWednesday: {\n type: String,\n required: true\n },\n l10nThursday: {\n type: String,\n required: true\n },\n l10nFriday: {\n type: String,\n required: true\n },\n l10nSaturday: {\n type: String,\n required: true\n },\n l10nSunday: {\n type: String,\n required: true\n },\n l10nStartPickerLabel: {\n type: Function,\n default: (dayName) => \"Pick a start time for \".concat(dayName)\n },\n l10nEndPickerLabel: {\n type: Function,\n default: (dayName) => \"Pick a end time for \".concat(dayName)\n }\n },\n data() {\n return {\n internalSlots: this.slotsToInternalData(this.slots)\n };\n },\n watch: {\n slots() {\n this.internalSlots = this.slotsToInternalData(this.slots);\n }\n },\n methods: {\n timeStampSlotsToDateObjectSlots(slots) {\n return slots.map((slot) => ({\n start: new Date(slot.start * 1e3),\n end: new Date(slot.end * 1e3)\n }));\n },\n slotsToInternalData() {\n const moToSa = [\n {\n id: \"MO\",\n displayName: this.l10nMonday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.MO)\n },\n {\n id: \"TU\",\n displayName: this.l10nTuesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TU)\n },\n {\n id: \"WE\",\n displayName: this.l10nWednesday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.WE)\n },\n {\n id: \"TH\",\n displayName: this.l10nThursday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.TH)\n },\n {\n id: \"FR\",\n displayName: this.l10nFriday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.FR)\n },\n {\n id: \"SA\",\n displayName: this.l10nSaturday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SA)\n }\n ];\n const sunday = {\n id: \"SU\",\n displayName: this.l10nSunday,\n slots: this.timeStampSlotsToDateObjectSlots(this.slots.SU)\n };\n return getFirstDay() === 1 ? [...moToSa, sunday] : [sunday, ...moToSa];\n },\n internalDataToSlots() {\n const converted = {};\n this.internalSlots.forEach(({ id, slots }) => {\n converted[id] = slots.map((slot) => ({\n start: Math.round(slot.start.getTime() / 1e3),\n end: Math.round(slot.end.getTime() / 1e3)\n }));\n });\n return converted;\n },\n addSlot(day) {\n const start = /* @__PURE__ */ new Date();\n start.setHours(9, 0, 0, 0);\n const end = /* @__PURE__ */ new Date();\n end.setHours(17, 0, 0, 0);\n day.slots.push({\n start,\n end\n });\n this.onChangeSlots();\n },\n removeSlot(day, idx) {\n day.slots.splice(idx, 1);\n this.onChangeSlots();\n },\n onChangeSlots() {\n this.$emit(\"update:slots\", this.internalDataToSlots());\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"ul\", { staticClass: \"week-day-container\", attrs: { \"aria-label\": _vm.l10nWeekDayListLabel } }, [_vm._l(_vm.internalSlots, function(day) {\n return [_c(\"li\", { key: \"day-label-\".concat(day.id), staticClass: \"day-container\" }, [_c(\"div\", { staticClass: \"label-weekday\" }, [_c(\"span\", { attrs: { \"id\": day.displayName + \"-label\" } }, [_vm._v(_vm._s(day.displayName))])]), _c(\"div\", { key: \"day-slots-\".concat(day.id), staticClass: \"availability-slots\" }, [_c(\"div\", { staticClass: \"availability-slot-group\" }, [_vm._l(day.slots, function(slot, idx) {\n var _a, _b;\n return [_c(\"div\", { key: \"slot-\".concat(day.id, \"-\").concat(idx), staticClass: \"availability-slot\" }, [_c(\"NcDateTimePickerNative\", { staticClass: \"start-date\", attrs: { \"id\": \"start-\".concat(day.id, \"-\").concat(idx), \"type\": \"time\", \"label\": (_a = _vm.l10nStartPickerLabel) == null ? void 0 : _a.call(_vm, day.displayName), \"hide-label\": true }, on: { \"change\": _vm.onChangeSlots }, model: { value: slot.start, callback: function($$v) {\n _vm.$set(slot, \"start\", $$v);\n }, expression: \"slot.start\" } }), _c(\"span\", { staticClass: \"to-text\" }, [_vm._v(\" \" + _vm._s(_vm.l10nTo) + \" \")]), _c(\"NcDateTimePickerNative\", { staticClass: \"end-date\", attrs: { \"id\": \"end-\".concat(day.id, \"-\").concat(idx), \"type\": \"time\", \"label\": (_b = _vm.l10nEndPickerLabel) == null ? void 0 : _b.call(_vm, day.displayName), \"hide-label\": true }, on: { \"change\": _vm.onChangeSlots }, model: { value: slot.end, callback: function($$v) {\n _vm.$set(slot, \"end\", $$v);\n }, expression: \"slot.end\" } }), _c(\"NcButton\", { key: \"slot-\".concat(day.id, \"-\").concat(idx, \"-btn\"), staticClass: \"button\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.l10nDeleteSlot, \"title\": _vm.l10nDeleteSlot }, on: { \"click\": function($event) {\n return _vm.removeSlot(day, idx);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconDelete\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) })], 1)];\n })], 2), day.slots.length === 0 ? _c(\"span\", { staticClass: \"empty-content\" }, [_vm._v(\" \" + _vm._s(_vm.l10nEmptyDay) + \" \")]) : _vm._e()]), _c(\"NcButton\", { key: \"add-slot-\".concat(day.id), staticClass: \"add-another button\", attrs: { \"disabled\": _vm.loading, \"title\": _vm.l10nAddSlot, \"aria-label\": _vm.l10nAddSlot }, on: { \"click\": function($event) {\n return _vm.addSlot(day);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconAdd\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) })], 1)];\n })], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ac7f4eb9\",\n null,\n null\n);\nconst CalendarAvailability = __component__.exports;\n/*\n * @copyright Copyright (c) 2022 Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @author Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst logger = getLoggerBuilder().detectUser().setApp(\"@nextcloud/calendar-availability-vue\").build();\nfunction getEmptySlots() {\n return {\n MO: [],\n TU: [],\n WE: [],\n TH: [],\n FR: [],\n SA: [],\n SU: []\n };\n}\nfunction vavailabilityToSlots(vavailability) {\n const parsedIcal = ICAL.parse(vavailability);\n const vcalendarComp = new ICAL.Component(parsedIcal);\n const vavailabilityComp = vcalendarComp.getFirstSubcomponent(\"vavailability\");\n let timezoneId;\n const timezoneComp = vcalendarComp.getFirstSubcomponent(\"vtimezone\");\n if (timezoneComp) {\n timezoneId = timezoneComp.getFirstProperty(\"tzid\").getFirstValue();\n }\n const availableComps = vavailabilityComp.getAllSubcomponents(\"available\");\n const slots = getEmptySlots();\n availableComps.forEach((availableComp) => {\n const start = availableComp.getFirstProperty(\"dtstart\").getFirstValue().toJSDate();\n const end = availableComp.getFirstProperty(\"dtend\").getFirstValue().toJSDate();\n const rrule = availableComp.getFirstProperty(\"rrule\");\n if (rrule.getFirstValue().freq !== \"WEEKLY\") {\n logger.warn(\"rrule not supported\", {\n rrule: rrule.toICALString()\n });\n return;\n }\n rrule.getFirstValue().getComponent(\"BYDAY\").forEach((day) => {\n slots[day].push({\n start: start.getTime() / 1e3,\n end: end.getTime() / 1e3\n });\n });\n });\n return {\n slots,\n timezoneId\n };\n}\nfunction slotsToVavailability(slots, timezoneId) {\n const vcalendarComp = new ICAL.Component(\"vcalendar\");\n vcalendarComp.addPropertyWithValue(\"prodid\", \"Nextcloud DAV app\");\n const predefinedTimezoneIcal = getZoneString(timezoneId);\n if (predefinedTimezoneIcal) {\n const timezoneComp = new ICAL.Component(ICAL.parse(predefinedTimezoneIcal));\n vcalendarComp.addSubcomponent(timezoneComp);\n } else {\n const timezoneComp = new ICAL.Component(\"vtimezone\");\n timezoneComp.addPropertyWithValue(\"tzid\", timezoneId);\n vcalendarComp.addSubcomponent(timezoneComp);\n }\n const vavailabilityComp = new ICAL.Component(\"vavailability\");\n const deduplicated = slots.reduce((acc, slot) => {\n var _a;\n const start = new Date(slot.start * 1e3);\n const end = new Date(slot.end * 1e3);\n const key = [\n start.getHours(),\n start.getMinutes(),\n end.getHours(),\n end.getMinutes()\n ].join(\"-\");\n return {\n ...acc,\n [key]: [...(_a = acc[key]) != null ? _a : [], slot]\n };\n }, {});\n Object.keys(deduplicated).map((key) => {\n const slots2 = deduplicated[key];\n const start = slots2[0].start;\n const end = slots2[0].end;\n const days = slots2.map((slot) => slot.day).filter((day, index, self) => self.indexOf(day) === index);\n const availableComp = new ICAL.Component(\"available\");\n const startTimeProp = availableComp.addPropertyWithValue(\"dtstart\", ICAL.Time.fromJSDate(new Date(start * 1e3), false));\n startTimeProp.setParameter(\"tzid\", timezoneId);\n const endTimeProp = availableComp.addPropertyWithValue(\"dtend\", ICAL.Time.fromJSDate(new Date(end * 1e3), false));\n endTimeProp.setParameter(\"tzid\", timezoneId);\n availableComp.addPropertyWithValue(\"uid\", v4());\n availableComp.addPropertyWithValue(\"rrule\", {\n freq: \"WEEKLY\",\n byday: days\n });\n return availableComp;\n }).map(vavailabilityComp.addSubcomponent.bind(vavailabilityComp));\n vcalendarComp.addSubcomponent(vavailabilityComp);\n return vcalendarComp.toString();\n}\nexport {\n CalendarAvailability,\n getEmptySlots,\n slotsToVavailability,\n vavailabilityToSlots\n};\n","/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { createClient } from 'webdav'\nimport memoize from 'lodash/fp/memoize.js'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\nexport const getClient = memoize((service) => {\n\t// init webdav client\n\tconst remote = generateRemoteUrl(`dav/${service}/${getCurrentUser().uid}`)\n\tconst client = createClient(remote)\n\n\t// set CSRF token header\n\tconst setHeaders = (token) => {\n\t\tclient.setHeaders({\n\t\t\t// Add this so the server knows it is an request from the browser\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\t// Inject user auth\n\t\t\trequesttoken: token ?? '',\n\t\t})\n\t}\n\n\t// refresh headers when request token changes\n\tonRequestTokenUpdate(setHeaders)\n\tsetHeaders(getRequestToken())\n\n\treturn client;\n})\n","<template>\n\t<div>\n\t\t<div class=\"time-zone\">\n\t\t\t<label :for=\"`vs${timeZonePickerId}__combobox`\" class=\"time-zone__heading\">\n\t\t\t\t{{ $t('dav', 'Time zone:') }}\n\t\t\t</label>\n\t\t\t<span class=\"time-zone-text\">\n\t\t\t\t<NcTimezonePicker v-model=\"timezone\" :uid=\"timeZonePickerId\" />\n\t\t\t</span>\n\t\t</div>\n\n\t\t<CalendarAvailability :slots.sync=\"slots\"\n\t\t\t:loading=\"loading\"\n\t\t\t:l10n-to=\"$t('dav', 'to')\"\n\t\t\t:l10n-delete-slot=\"$t('dav', 'Delete slot')\"\n\t\t\t:l10n-empty-day=\"$t('dav', 'No working hours set')\"\n\t\t\t:l10n-add-slot=\"$t('dav', 'Add slot')\"\n\t\t\t:l10n-week-day-list-label=\"$t('dav', 'Weekdays')\"\n\t\t\t:l10n-monday=\"$t('dav', 'Monday')\"\n\t\t\t:l10n-tuesday=\"$t('dav', 'Tuesday')\"\n\t\t\t:l10n-wednesday=\"$t('dav', 'Wednesday')\"\n\t\t\t:l10n-thursday=\"$t('dav', 'Thursday')\"\n\t\t\t:l10n-friday=\"$t('dav', 'Friday')\"\n\t\t\t:l10n-saturday=\"$t('dav', 'Saturday')\"\n\t\t\t:l10n-sunday=\"$t('dav', 'Sunday')\"\n\t\t\t:l10n-start-picker-label=\"(dayName) => $t('dav', 'Pick a start time for {dayName}', { dayName })\"\n\t\t\t:l10n-end-picker-label=\"(dayName) => $t('dav', 'Pick a end time for {dayName}', { dayName })\" />\n\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"automated\">\n\t\t\t{{ $t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcButton :disabled=\"loading || saving\"\n\t\t\ttype=\"primary\"\n\t\t\t@click=\"save\">\n\t\t\t{{ $t('dav', 'Save') }}\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport { CalendarAvailability } from '@nextcloud/calendar-availability-vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport {\n\tshowError,\n\tshowSuccess,\n} from '@nextcloud/dialogs'\nimport {\n\tfindScheduleInboxAvailability,\n\tgetEmptySlots,\n\tsaveScheduleInboxAvailability,\n} from '../service/CalendarService.js'\nimport {\n\tenableUserStatusAutomation,\n\tdisableUserStatusAutomation,\n} from '../service/PreferenceService.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcTimezonePicker from '@nextcloud/vue/dist/Components/NcTimezonePicker.js'\n\nexport default {\n\tname: 'AvailabilityForm',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tCalendarAvailability,\n\t\tNcTimezonePicker,\n\t},\n\tdata() {\n\t\t// Try to determine the current timezone, and fall back to UTC otherwise\n\t\tconst defaultTimezoneId = (new Intl.DateTimeFormat())?.resolvedOptions()?.timeZone ?? 'UTC'\n\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tsaving: false,\n\t\t\ttimezone: defaultTimezoneId,\n\t\t\tslots: getEmptySlots(),\n\t\t\tautomated: loadState('dav', 'user_status_automation') === 'yes',\n\t\t}\n\t},\n\tcomputed: {\n\t\ttimeZonePickerId() {\n\t\t\treturn `tz-${(Math.random() + 1).toString(36).substring(7)}`\n\t\t},\n\t},\n\tasync mounted() {\n\t\ttry {\n\t\t\tconst slotData = await findScheduleInboxAvailability()\n\t\t\tif (!slotData) {\n\t\t\t\tconsole.info('no availability is set')\n\t\t\t\tthis.slots = getEmptySlots()\n\t\t\t} else {\n\t\t\t\tconst { slots, timezoneId } = slotData\n\t\t\t\tthis.slots = slots\n\t\t\t\tif (timezoneId) {\n\t\t\t\t\tthis.timezone = timezoneId\n\t\t\t\t}\n\t\t\t\tconsole.info('availability loaded', this.slots, this.timezoneId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('could not load existing availability', e)\n\n\t\t\tshowError(t('dav', 'Failed to load availability'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\tmethods: {\n\t\tasync save() {\n\t\t\ttry {\n\t\t\t\tthis.saving = true\n\n\t\t\t\tawait saveScheduleInboxAvailability(this.slots, this.timezone)\n\t\t\t\tif (this.automated) {\n\t\t\t\t\tawait enableUserStatusAutomation()\n\t\t\t\t} else {\n\t\t\t\t\tawait disableUserStatusAutomation()\n\t\t\t\t}\n\n\t\t\t\tshowSuccess(t('dav', 'Saved availability'))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('could not save availability', e)\n\n\t\t\t\tshowError(t('dav', 'Failed to save availability'))\n\t\t\t} finally {\n\t\t\t\tthis.saving = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.availability-day) {\n\tpadding: 0 10px 0 10px;\n\tposition: absolute;\n}\n:deep(.availability-slots) {\n\tdisplay: flex;\n\twhite-space: normal;\n}\n:deep(.availability-slot) {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tflex-wrap: wrap;\n}\n:deep(.availability-slot-group) {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n:deep(.mx-input-wrapper) {\n\twidth: 85px;\n}\n:deep(.mx-datepicker) {\n\twidth: 97px;\n}\n:deep(.multiselect) {\n\tborder: 1px solid var(--color-border-dark);\n\twidth: 120px;\n}\n.time-zone {\n\tpadding: 32px 12px 12px 0;\n display: flex;\n flex-wrap: wrap;\n\n\t&__heading {\n\t\tmargin-right: calc(var(--default-grid-baseline) * 2);\n\t\tline-height: var(--default-clickable-area);\n\t\tfont-weight: bold;\n\t}\n}\n.grid-table {\n\tdisplay: grid;\n\tmargin-bottom: 32px;\n\tgrid-column-gap: 24px;\n\tgrid-row-gap: 6px;\n\tgrid-template-columns: min-content auto min-content;\n\tmax-width: 500px;\n}\n.button {\n\talign-self: flex-end;\n}\n:deep(.label-weekday) {\n\tposition: relative;\n\tdisplay: inline-flex;\n\tpadding-top: 4px;\n\talign-self: center;\n}\n\n:deep(.delete-slot) {\n\tpadding-bottom: unset;\n}\n\n:deep(.add-another) {\n\talign-self: center;\n}\n\n.to-text {\n\tpadding-right: 12px;\n}\n\n.empty-content {\n\tcolor: var(--color-text-lighter);\n\tmargin-top: 4px;\n\talign-self: center;\n}\n</style>\n","/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getClient } from '../dav/client.js'\nimport logger from './logger.js'\nimport { parseXML } from 'webdav'\n\nimport {\n\tslotsToVavailability,\n\tvavailabilityToSlots,\n} from '@nextcloud/calendar-availability-vue'\n\n/**\n *\n */\nexport function getEmptySlots() {\n\treturn {\n\t\tMO: [],\n\t\tTU: [],\n\t\tWE: [],\n\t\tTH: [],\n\t\tFR: [],\n\t\tSA: [],\n\t\tSU: [],\n\t}\n}\n\n/**\n *\n */\nexport async function findScheduleInboxAvailability() {\n\tconst client = getClient('calendars')\n\n\tconst response = await client.customRequest('inbox', {\n\t\tmethod: 'PROPFIND',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propfind xmlns:x0=\"DAV:\">\n\t\t\t <x0:prop>\n\t\t\t\t<x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\"/>\n\t\t\t </x0:prop>\n\t\t\t</x0:propfind>`,\n\t})\n\n\tconst xml = await parseXML(response.data)\n\n\tif (!xml) {\n\t\treturn undefined\n\t}\n\n\tconst availability = xml?.multistatus?.response[0]?.propstat?.prop['calendar-availability']\n\tif (!availability) {\n\t\treturn undefined\n\t}\n\n\treturn vavailabilityToSlots(availability)\n}\n\n/**\n * @param {any} slots -\n * @param {any} timezoneId -\n */\nexport async function saveScheduleInboxAvailability(slots, timezoneId) {\n\tconst all = [...Object.keys(slots).flatMap(dayId => slots[dayId].map(slot => ({\n\t\t...slot,\n\t\tday: dayId,\n\t})))]\n\n\tconst vavailability = slotsToVavailability(all, timezoneId)\n\n\tlogger.debug('New availability ical created', {\n\t\tvavailability,\n\t})\n\n\tconst client = getClient('calendars')\n\tawait client.customRequest('inbox', {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propertyupdate xmlns:x0=\"DAV:\">\n\t\t\t <x0:set>\n\t\t\t\t<x0:prop>\n\t\t\t\t <x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\">${vavailability}</x1:calendar-availability>\n\t\t\t\t</x0:prop>\n\t\t\t </x0:set>\n\t\t\t</x0:propertyupdate>`,\n\t})\n}\n","/**\n * @copyright 2022 Joas Schilling <coding@schilljs.com>\n *\n * @author Joas Schilling <coding@schilljs.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Enable user status automation based on availability\n */\nexport async function enableUserStatusAutomation() {\n\treturn await axios.post(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t}),\n\t\t{\n\t\t\tconfigValue: 'yes',\n\t\t}\n\t)\n}\n\n/**\n * Disable user status automation based on availability\n */\nexport async function disableUserStatusAutomation() {\n\treturn await axios.delete(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t})\n\t)\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvailabilityForm.vue?vue&type=template&id=0275a141&scoped=true\"\nimport script from \"./AvailabilityForm.vue?vue&type=script&lang=js\"\nexport * from \"./AvailabilityForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./AvailabilityForm.vue?vue&type=style&index=0&id=0275a141&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0275a141\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=script&lang=js\"","<template>\n\t<div>\n\t\t<NcSettingsSection :name=\"$t('dav', 'Availability')\"\n\t\t\t:description=\"$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')\">\n\t\t\t<AvailabilityForm />\n\t\t</NcSettingsSection>\n\t\t<NcSettingsSection v-if=\"!hideAbsenceSettings\"\n\t\t\t:name=\"$t('dav', 'Absence')\"\n\t\t\t:description=\"$t('dav', 'Configure your next absence period.')\">\n\t\t\t<AbsenceForm />\n\t\t</NcSettingsSection>\n\t</div>\n</template>\n\n<script>\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport AbsenceForm from '../components/AbsenceForm.vue'\nimport AvailabilityForm from '../components/AvailabilityForm.vue'\nimport { loadState } from '@nextcloud/initial-state'\n\nexport default {\n\tname: 'Availability',\n\tcomponents: {\n\t\tNcSettingsSection,\n\t\tAbsenceForm,\n\t\tAvailabilityForm,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\thideAbsenceSettings: loadState('dav', 'hide_absence_settings', true),\n\t\t}\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./Availability.vue?vue&type=template&id=23e55ed8\"\nimport script from \"./Availability.vue?vue&type=script&lang=js\"\nexport * from \"./Availability.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('NcSettingsSection',{attrs:{\"name\":_vm.$t('dav', 'Availability'),\"description\":_vm.$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')}},[_c('AvailabilityForm')],1),_vm._v(\" \"),(!_vm.hideAbsenceSettings)?_c('NcSettingsSection',{attrs:{\"name\":_vm.$t('dav', 'Absence'),\"description\":_vm.$t('dav', 'Configure your next absence period.')}},[_c('AbsenceForm')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { translate } from '@nextcloud/l10n'\nimport Availability from './views/Availability.vue'\n\nVue.prototype.$t = translate\n\nconst View = Vue.extend(Availability);\n\n(new View({})).$mount('#settings-personal-availability')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.availability-day[data-v-ac7f4eb9] {\n padding: 0 10px 0 10px;\n position: absolute;\n}\n.availability-slots[data-v-ac7f4eb9] {\n max-width: 332px;\n width: 100%;\n display: flex;\n justify-content: flex-start;\n white-space: nowrap;\n}\n.availability-slot[data-v-ac7f4eb9] {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.availability-slot-group[data-v-ac7f4eb9] {\n display: flex;\n flex-direction: column;\n}\n.time-zone[data-v-ac7f4eb9] {\n padding: 32px 12px 12px 0;\n}\n.week-day-container[data-v-ac7f4eb9] {\n box-sizing: border-box;\n margin-bottom: 32px;\n max-width: 500px;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n.button[data-v-ac7f4eb9] {\n align-self: flex-end;\n}\n.label-weekday[data-v-ac7f4eb9] {\n position: relative;\n display: flex;\n align-items: flex-start;\n min-width: 77px;\n width: 77px;\n}\n.label-weekday > span[data-v-ac7f4eb9] {\n height: 50px;\n display: flex;\n align-items: center;\n}\n.add-another[data-v-ac7f4eb9] {\n background-color: transparent;\n border: none;\n opacity: 0.5;\n display: inline-flex;\n padding: 0;\n margin: 0;\n margin-bottom: 3px;\n}\n.add-another[data-v-ac7f4eb9]:hover {\n opacity: 1;\n}\n.to-text[data-v-ac7f4eb9] {\n padding-right: 12px;\n}\n.time-zone-text[data-v-ac7f4eb9] {\n padding-left: 22px;\n}\n.empty-content[data-v-ac7f4eb9] {\n color: var(--color-text-lighter);\n display: inline-flex;\n align-items: center;\n}\n.start-date[data-v-ac7f4eb9] {\n padding-right: 12px;\n}\n.day-container[data-v-ac7f4eb9] {\n display: flex;\n max-width: 500px;\n width: 100%;\n gap: 24px;\n border-top: 1px solid var(--color-border);\n padding-top: calc(3 * var(--default-grid-baseline));\n margin-top: calc(2 * var(--default-grid-baseline));\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/calendar-availability-vue/dist/assets/index-Ds7BWaqb.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,sBAAsB;EACtB,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,2BAA2B;EAC3B,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,uBAAuB;AACzB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,eAAe;EACf,WAAW;AACb;AACA;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,6BAA6B;EAC7B,YAAY;EACZ,YAAY;EACZ,oBAAoB;EACpB,UAAU;EACV,SAAS;EACT,kBAAkB;AACpB;AACA;EACE,UAAU;AACZ;AACA;EACE,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gCAAgC;EAChC,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,SAAS;EACT,yCAAyC;EACzC,mDAAmD;EACnD,kDAAkD;AACpD\",\"sourcesContent\":[\".availability-day[data-v-ac7f4eb9] {\\n padding: 0 10px 0 10px;\\n position: absolute;\\n}\\n.availability-slots[data-v-ac7f4eb9] {\\n max-width: 332px;\\n width: 100%;\\n display: flex;\\n justify-content: flex-start;\\n white-space: nowrap;\\n}\\n.availability-slot[data-v-ac7f4eb9] {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n.availability-slot-group[data-v-ac7f4eb9] {\\n display: flex;\\n flex-direction: column;\\n}\\n.time-zone[data-v-ac7f4eb9] {\\n padding: 32px 12px 12px 0;\\n}\\n.week-day-container[data-v-ac7f4eb9] {\\n box-sizing: border-box;\\n margin-bottom: 32px;\\n max-width: 500px;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n}\\n.button[data-v-ac7f4eb9] {\\n align-self: flex-end;\\n}\\n.label-weekday[data-v-ac7f4eb9] {\\n position: relative;\\n display: flex;\\n align-items: flex-start;\\n min-width: 77px;\\n width: 77px;\\n}\\n.label-weekday > span[data-v-ac7f4eb9] {\\n height: 50px;\\n display: flex;\\n align-items: center;\\n}\\n.add-another[data-v-ac7f4eb9] {\\n background-color: transparent;\\n border: none;\\n opacity: 0.5;\\n display: inline-flex;\\n padding: 0;\\n margin: 0;\\n margin-bottom: 3px;\\n}\\n.add-another[data-v-ac7f4eb9]:hover {\\n opacity: 1;\\n}\\n.to-text[data-v-ac7f4eb9] {\\n padding-right: 12px;\\n}\\n.time-zone-text[data-v-ac7f4eb9] {\\n padding-left: 22px;\\n}\\n.empty-content[data-v-ac7f4eb9] {\\n color: var(--color-text-lighter);\\n display: inline-flex;\\n align-items: center;\\n}\\n.start-date[data-v-ac7f4eb9] {\\n padding-right: 12px;\\n}\\n.day-container[data-v-ac7f4eb9] {\\n display: flex;\\n max-width: 500px;\\n width: 100%;\\n gap: 24px;\\n border-top: 1px solid var(--color-border);\\n padding-top: calc(3 * var(--default-grid-baseline));\\n margin-top: calc(2 * var(--default-grid-baseline));\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.absence[data-v-716172ba]{display:flex;flex-direction:column;gap:5px}.absence__dates[data-v-716172ba]{display:flex;gap:10px;width:100%}.absence__dates__picker[data-v-716172ba]{flex:1 auto}.absence__dates__picker[data-v-716172ba] .native-datetime-picker--input{margin-bottom:0}.absence__buttons[data-v-716172ba]{display:flex;gap:5px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/components/AbsenceForm.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iCACC,YAAA,CACA,QAAA,CACA,UAAA,CAEA,yCACC,WAAA,CAEA,wEACC,eAAA,CAKH,mCACC,YAAA,CACA,OAAA\",\"sourcesContent\":[\"\\n.absence {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 5px;\\n\\n\\t&__dates {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 10px;\\n\\t\\twidth: 100%;\\n\\n\\t\\t&__picker {\\n\\t\\t\\tflex: 1 auto;\\n\\n\\t\\t\\t::v-deep .native-datetime-picker--input {\\n\\t\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 5px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-0275a141] .availability-day{padding:0 10px 0 10px;position:absolute}[data-v-0275a141] .availability-slots{display:flex;white-space:normal}[data-v-0275a141] .availability-slot{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}[data-v-0275a141] .availability-slot-group{display:flex;flex-direction:column}[data-v-0275a141] .mx-input-wrapper{width:85px}[data-v-0275a141] .mx-datepicker{width:97px}[data-v-0275a141] .multiselect{border:1px solid var(--color-border-dark);width:120px}.time-zone[data-v-0275a141]{padding:32px 12px 12px 0;display:flex;flex-wrap:wrap}.time-zone__heading[data-v-0275a141]{margin-right:calc(var(--default-grid-baseline)*2);line-height:var(--default-clickable-area);font-weight:bold}.grid-table[data-v-0275a141]{display:grid;margin-bottom:32px;grid-column-gap:24px;grid-row-gap:6px;grid-template-columns:min-content auto min-content;max-width:500px}.button[data-v-0275a141]{align-self:flex-end}[data-v-0275a141] .label-weekday{position:relative;display:inline-flex;padding-top:4px;align-self:center}[data-v-0275a141] .delete-slot{padding-bottom:unset}[data-v-0275a141] .add-another{align-self:center}.to-text[data-v-0275a141]{padding-right:12px}.empty-content[data-v-0275a141]{color:var(--color-text-lighter);margin-top:4px;align-self:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/components/AvailabilityForm.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,qBAAA,CACA,iBAAA,CAED,sCACC,YAAA,CACA,kBAAA,CAED,qCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,cAAA,CAED,2CACC,YAAA,CACA,qBAAA,CAED,oCACC,UAAA,CAED,iCACC,UAAA,CAED,+BACC,yCAAA,CACA,WAAA,CAED,4BACC,wBAAA,CACG,YAAA,CACA,cAAA,CAEH,qCACC,iDAAA,CACA,yCAAA,CACA,gBAAA,CAGF,6BACC,YAAA,CACA,kBAAA,CACA,oBAAA,CACA,gBAAA,CACA,kDAAA,CACA,eAAA,CAED,yBACC,mBAAA,CAED,iCACC,iBAAA,CACA,mBAAA,CACA,eAAA,CACA,iBAAA,CAGD,+BACC,oBAAA,CAGD,+BACC,iBAAA,CAGD,0BACC,kBAAA,CAGD,gCACC,+BAAA,CACA,cAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n:deep(.availability-day) {\\n\\tpadding: 0 10px 0 10px;\\n\\tposition: absolute;\\n}\\n:deep(.availability-slots) {\\n\\tdisplay: flex;\\n\\twhite-space: normal;\\n}\\n:deep(.availability-slot) {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\tflex-wrap: wrap;\\n}\\n:deep(.availability-slot-group) {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n:deep(.mx-input-wrapper) {\\n\\twidth: 85px;\\n}\\n:deep(.mx-datepicker) {\\n\\twidth: 97px;\\n}\\n:deep(.multiselect) {\\n\\tborder: 1px solid var(--color-border-dark);\\n\\twidth: 120px;\\n}\\n.time-zone {\\n\\tpadding: 32px 12px 12px 0;\\n display: flex;\\n flex-wrap: wrap;\\n\\n\\t&__heading {\\n\\t\\tmargin-right: calc(var(--default-grid-baseline) * 2);\\n\\t\\tline-height: var(--default-clickable-area);\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n.grid-table {\\n\\tdisplay: grid;\\n\\tmargin-bottom: 32px;\\n\\tgrid-column-gap: 24px;\\n\\tgrid-row-gap: 6px;\\n\\tgrid-template-columns: min-content auto min-content;\\n\\tmax-width: 500px;\\n}\\n.button {\\n\\talign-self: flex-end;\\n}\\n:deep(.label-weekday) {\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\tpadding-top: 4px;\\n\\talign-self: center;\\n}\\n\\n:deep(.delete-slot) {\\n\\tpadding-bottom: unset;\\n}\\n\\n:deep(.add-another) {\\n\\talign-self: center;\\n}\\n\\n.to-text {\\n\\tpadding-right: 12px;\\n}\\n\\n.empty-content {\\n\\tcolor: var(--color-text-lighter);\\n\\tmargin-top: 4px;\\n\\talign-self: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getZoneString = exports.getZoneLines = void 0;\nconst zones_1 = require(\"./zones\"); // This module must be generated with `yarn run build-zones`.\nfunction renderZoneSub(data) {\n const { n, f, t, r, s } = data;\n return [\n `TZNAME:${n}`,\n `TZOFFSETFROM:${f}`,\n `TZOFFSETTO:${t || f}`,\n `DTSTART:${s || zones_1.defaultStart}`,\n ...(r ? [`RRULE:FREQ=${r.f || 'YEARLY'};BYMONTH=${r.m};BYDAY=${r.d}`] : []),\n ];\n}\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string array (usually for further processing).\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns Lines of the iCalendar time zone component (`VTIMEZONE`), each line\n * individually as an array of strings.\n */\nfunction getZoneLines(zoneName, includeWrapper = true) {\n const zoneData = zones_1.zonesMap.get(zoneName);\n if (zoneData) {\n const { s, d } = zoneData;\n const lines = [\n ...(includeWrapper ? ['BEGIN:VTIMEZONE'] : []),\n `TZID:${zoneName}`,\n // `X-LIC-LOCATION:${zoneName}`, // Who uses this?\n 'BEGIN:STANDARD',\n ...renderZoneSub(s),\n 'END:STANDARD',\n ...(d ? [\n 'BEGIN:DAYLIGHT',\n ...renderZoneSub(d),\n 'END:DAYLIGHT',\n ] : []),\n ...(includeWrapper ? ['END:VTIMEZONE'] : []),\n ];\n return lines;\n }\n}\nexports.getZoneLines = getZoneLines;\n/**\n * Tries to resolve a given time zone to iCalendar time zone component\n * (`VTIMEZONE`) as string.\n * @param zoneName Time zone name (e.g. `America/Los_Angeles`)\n * @param includeWrapper Set to `false` to avoid including lines for\n * `BEGIN:VTIMEZONE` and `END:VTIMEZONE`.\n * @returns The iCalendar time zone component (`VTIMEZONE`) as string\n * with `\\r\\n` line breaks.\n */\nfunction getZoneString(zoneName, includeWrapper = true) {\n const lines = getZoneLines(zoneName, includeWrapper);\n return lines === null || lines === void 0 ? void 0 : lines.join('\\r\\n');\n}\nexports.getZoneString = getZoneString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.zonesMap = exports.defaultStart = void 0;\nexports.defaultStart = \"19700101T000000\";\nexports.zonesMap = new Map([\n [\n \"Africa/Abidjan\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Accra\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Addis_Ababa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Algiers\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Asmara\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Bamako\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bangui\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Banjul\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Bissau\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Blantyre\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Brazzaville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Bujumbura\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Cairo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Casablanca\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Ceuta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Africa/Conakry\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dakar\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Dar_es_Salaam\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Djibouti\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Douala\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/El_Aaiun\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Africa/Freetown\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Gaborone\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Harare\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Johannesburg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Juba\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Kampala\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Khartoum\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kigali\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Kinshasa\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lagos\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Libreville\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lome\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Luanda\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Lubumbashi\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Lusaka\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Malabo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Maputo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"Africa/Maseru\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mbabane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"SAST\"\n }\n }\n ],\n [\n \"Africa/Mogadishu\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Monrovia\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Nairobi\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Africa/Ndjamena\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Niamey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Nouakchott\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Ouagadougou\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Africa/Porto-Novo\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Sao_Tome\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"WAT\"\n }\n }\n ],\n [\n \"Africa/Tripoli\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Africa/Tunis\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"CET\"\n }\n }\n ],\n [\n \"Africa/Windhoek\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"CAT\"\n }\n }\n ],\n [\n \"America/Adak\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"t\": \"-1000\",\n \"n\": \"HST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-1000\",\n \"t\": \"-0900\",\n \"n\": \"HDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anchorage\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Anguilla\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Antigua\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Araguaina\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Buenos_Aires\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Catamarca\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Cordoba\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Jujuy\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/La_Rioja\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Mendoza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Rio_Gallegos\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Salta\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Juan\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/San_Luis\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Tucuman\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Argentina/Ushuaia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Aruba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Asuncion\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700322T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701004T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Atikokan\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Bahia_Banderas\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Bahia\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Barbados\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Belem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Belize\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Blanc-Sablon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Boa_Vista\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Bogota\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Boise\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Cambridge_Bay\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Campo_Grande\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Cancun\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Caracas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Cayenne\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Cayman\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Chicago\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Chihuahua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Costa_Rica\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Creston\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Cuiaba\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Curacao\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Danmarkshavn\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"America/Dawson_Creek\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Dawson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Denver\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Detroit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Dominica\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Edmonton\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Eirunepe\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/El_Salvador\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Fort_Nelson\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Fortaleza\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Glace_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Godthab\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701024T230000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700328T220000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SA\"\n }\n }\n }\n ],\n [\n \"America/Goose_Bay\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grand_Turk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Grenada\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guadeloupe\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Guatemala\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Guayaquil\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Guyana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Halifax\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Havana\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"CST\",\n \"s\": \"19701101T010000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"CDT\",\n \"s\": \"19700308T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Hermosillo\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Indiana/Indianapolis\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Knox\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Marengo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Petersburg\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Tell_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vevay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Vincennes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Indiana/Winamac\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Inuvik\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Iqaluit\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Jamaica\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Juneau\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Louisville\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kentucky/Monticello\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Kralendijk\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/La_Paz\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Lima\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Los_Angeles\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Lower_Princes\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Maceio\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Managua\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Manaus\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Marigot\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Martinique\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Matamoros\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mazatlan\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Menominee\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Merida\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Metlakatla\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Mexico_City\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Miquelon\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Moncton\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Monterrey\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Montevideo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Montserrat\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Nassau\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/New_York\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nipigon\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Nome\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Noronha\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"America/North_Dakota/Beulah\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/Center\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/North_Dakota/New_Salem\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Ojinaga\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Panama\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"EST\"\n }\n }\n ],\n [\n \"America/Pangnirtung\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Paramaribo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Phoenix\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"MST\"\n }\n }\n ],\n [\n \"America/Port_of_Spain\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Port-au-Prince\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Porto_Velho\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"America/Puerto_Rico\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Punta_Arenas\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Rainy_River\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rankin_Inlet\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Recife\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Regina\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Resolute\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Rio_Branco\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"America/Santarem\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"America/Santiago\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"-04\",\n \"s\": \"19700405T000000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700906T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Santo_Domingo\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Sao_Paulo\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\",\n \"s\": \"19700215T000000\",\n \"r\": {\n \"m\": 2,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"-0300\",\n \"t\": \"-0200\",\n \"n\": \"-02\",\n \"s\": \"19701101T000000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"America/Scoresbysund\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"America/Sitka\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Barthelemy\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Johns\",\n {\n \"s\": {\n \"f\": \"-0230\",\n \"t\": \"-0330\",\n \"n\": \"NST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0330\",\n \"t\": \"-0230\",\n \"n\": \"NDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/St_Kitts\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Lucia\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Thomas\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/St_Vincent\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Swift_Current\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Tegucigalpa\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"America/Thule\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Thunder_Bay\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tijuana\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Toronto\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"t\": \"-0500\",\n \"n\": \"EST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0500\",\n \"t\": \"-0400\",\n \"n\": \"EDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Tortola\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"AST\"\n }\n }\n ],\n [\n \"America/Vancouver\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Whitehorse\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"t\": \"-0800\",\n \"n\": \"PST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0800\",\n \"t\": \"-0700\",\n \"n\": \"PDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Winnipeg\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"CST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"CDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yakutat\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"t\": \"-0900\",\n \"n\": \"AKST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0900\",\n \"t\": \"-0800\",\n \"n\": \"AKDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"America/Yellowknife\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"t\": \"-0700\",\n \"n\": \"MST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0700\",\n \"t\": \"-0600\",\n \"n\": \"MDT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Casey\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Antarctica/Davis\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Antarctica/DumontDUrville\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Antarctica/Macquarie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Antarctica/Mawson\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Antarctica/McMurdo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Palmer\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Rothera\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Antarctica/Syowa\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Antarctica/Troll\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0200\",\n \"n\": \"+02\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Antarctica/Vostok\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Arctic/Longyearbyen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Aden\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Almaty\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Amman\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700326T235959\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1TH\"\n }\n }\n }\n ],\n [\n \"Asia/Anadyr\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Aqtau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Aqtobe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Ashgabat\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Atyrau\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Baghdad\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Bahrain\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Baku\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Bangkok\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Barnaul\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Beirut\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Bishkek\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Brunei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Chita\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Choibalsan\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Colombo\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"+0530\"\n }\n }\n ],\n [\n \"Asia/Damascus\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701030T000000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1FR\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700327T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Dhaka\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Dili\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Dubai\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Dushanbe\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Famagusta\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Gaza\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Hebron\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701031T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SA\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700328T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"4SA\"\n }\n }\n }\n ],\n [\n \"Asia/Ho_Chi_Minh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Hong_Kong\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"HKT\"\n }\n }\n ],\n [\n \"Asia/Hovd\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Irkutsk\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Jakarta\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Jayapura\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"WIT\"\n }\n }\n ],\n [\n \"Asia/Jerusalem\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"IST\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"IDT\",\n \"s\": \"19700327T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1FR\"\n }\n }\n }\n ],\n [\n \"Asia/Kabul\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"n\": \"+0430\"\n }\n }\n ],\n [\n \"Asia/Kamchatka\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Asia/Karachi\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"PKT\"\n }\n }\n ],\n [\n \"Asia/Kathmandu\",\n {\n \"s\": {\n \"f\": \"+0545\",\n \"n\": \"+0545\"\n }\n }\n ],\n [\n \"Asia/Khandyga\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Kolkata\",\n {\n \"s\": {\n \"f\": \"+0530\",\n \"n\": \"IST\"\n }\n }\n ],\n [\n \"Asia/Krasnoyarsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Kuala_Lumpur\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuching\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Kuwait\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Macau\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Magadan\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Makassar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"WITA\"\n }\n }\n ],\n [\n \"Asia/Manila\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"PST\"\n }\n }\n ],\n [\n \"Asia/Muscat\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Asia/Novokuznetsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Novosibirsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Omsk\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Oral\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Phnom_Penh\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Pontianak\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"WIB\"\n }\n }\n ],\n [\n \"Asia/Pyongyang\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Qatar\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Qyzylorda\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Riyadh\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Asia/Sakhalin\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Samarkand\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Seoul\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"KST\"\n }\n }\n ],\n [\n \"Asia/Shanghai\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Singapore\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Srednekolymsk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Asia/Taipei\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"CST\"\n }\n }\n ],\n [\n \"Asia/Tashkent\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Tbilisi\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Asia/Tehran\",\n {\n \"s\": {\n \"f\": \"+0430\",\n \"t\": \"+0330\",\n \"n\": \"+0330\",\n \"s\": \"19700921T000000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"3SU\"\n }\n },\n \"d\": {\n \"f\": \"+0330\",\n \"t\": \"+0430\",\n \"n\": \"+0430\",\n \"s\": \"19700321T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"3SU\"\n }\n }\n }\n ],\n [\n \"Asia/Thimphu\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Tokyo\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"JST\"\n }\n }\n ],\n [\n \"Asia/Tomsk\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Ulaanbaatar\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Asia/Urumqi\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Asia/Ust-Nera\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Vientiane\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Asia/Vladivostok\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Asia/Yakutsk\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Asia/Yangon\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Asia/Yekaterinburg\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Asia/Yerevan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Atlantic/Azores\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"t\": \"-0100\",\n \"n\": \"-01\",\n \"s\": \"19701025T010000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0100\",\n \"t\": \"+0000\",\n \"n\": \"+00\",\n \"s\": \"19700329T000000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Bermuda\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"t\": \"-0400\",\n \"n\": \"AST\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"-0400\",\n \"t\": \"-0300\",\n \"n\": \"ADT\",\n \"s\": \"19700308T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"2SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Canary\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Cape_Verde\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Atlantic/Faroe\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Madeira\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Atlantic/Reykjavik\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/South_Georgia\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Atlantic/St_Helena\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Atlantic/Stanley\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Australia/Adelaide\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Brisbane\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Broken_Hill\",\n {\n \"s\": {\n \"f\": \"+1030\",\n \"t\": \"+0930\",\n \"n\": \"ACST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0930\",\n \"t\": \"+1030\",\n \"n\": \"ACDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Currie\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Darwin\",\n {\n \"s\": {\n \"f\": \"+0930\",\n \"n\": \"ACST\"\n }\n }\n ],\n [\n \"Australia/Eucla\",\n {\n \"s\": {\n \"f\": \"+0845\",\n \"n\": \"+0845\"\n }\n }\n ],\n [\n \"Australia/Hobart\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Lindeman\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"AEST\"\n }\n }\n ],\n [\n \"Australia/Lord_Howe\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1030\",\n \"n\": \"+1030\",\n \"s\": \"19700405T020000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1030\",\n \"t\": \"+1100\",\n \"n\": \"+11\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Melbourne\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Australia/Perth\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"AWST\"\n }\n }\n ],\n [\n \"Australia/Sydney\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"t\": \"+1000\",\n \"n\": \"AEST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1000\",\n \"t\": \"+1100\",\n \"n\": \"AEDT\",\n \"s\": \"19701004T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Etc/GMT-0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT-1\",\n {\n \"s\": {\n \"f\": \"-0100\",\n \"n\": \"-01\"\n }\n }\n ],\n [\n \"Etc/GMT-10\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Etc/GMT-11\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Etc/GMT-12\",\n {\n \"s\": {\n \"f\": \"-1200\",\n \"n\": \"-12\"\n }\n }\n ],\n [\n \"Etc/GMT-2\",\n {\n \"s\": {\n \"f\": \"-0200\",\n \"n\": \"-02\"\n }\n }\n ],\n [\n \"Etc/GMT-3\",\n {\n \"s\": {\n \"f\": \"-0300\",\n \"n\": \"-03\"\n }\n }\n ],\n [\n \"Etc/GMT-4\",\n {\n \"s\": {\n \"f\": \"-0400\",\n \"n\": \"-04\"\n }\n }\n ],\n [\n \"Etc/GMT-5\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"n\": \"-05\"\n }\n }\n ],\n [\n \"Etc/GMT-6\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Etc/GMT-7\",\n {\n \"s\": {\n \"f\": \"-0700\",\n \"n\": \"-07\"\n }\n }\n ],\n [\n \"Etc/GMT-8\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Etc/GMT-9\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Etc/GMT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/GMT+1\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"n\": \"+01\"\n }\n }\n ],\n [\n \"Etc/GMT+10\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Etc/GMT+11\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Etc/GMT+12\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Etc/GMT+13\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Etc/GMT+14\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Etc/GMT+2\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"+02\"\n }\n }\n ],\n [\n \"Etc/GMT+3\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Etc/GMT+4\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Etc/GMT+5\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Etc/GMT+6\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Etc/GMT+7\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Etc/GMT+8\",\n {\n \"s\": {\n \"f\": \"+0800\",\n \"n\": \"+08\"\n }\n }\n ],\n [\n \"Etc/GMT+9\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Etc/GMT0\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/Greenwich\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"GMT\"\n }\n }\n ],\n [\n \"Etc/UCT\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UCT\"\n }\n }\n ],\n [\n \"Etc/Universal\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/UTC\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Etc/Zulu\",\n {\n \"s\": {\n \"f\": \"+0000\",\n \"n\": \"UTC\"\n }\n }\n ],\n [\n \"Europe/Amsterdam\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Andorra\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Astrakhan\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Athens\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Belgrade\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Berlin\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bratislava\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Brussels\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Bucharest\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Budapest\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Busingen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Chisinau\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Copenhagen\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Dublin\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"IST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Gibraltar\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Guernsey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Helsinki\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Isle_of_Man\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Istanbul\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Jersey\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kaliningrad\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"n\": \"EET\"\n }\n }\n ],\n [\n \"Europe/Kiev\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Kirov\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Lisbon\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"WET\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"WEST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ljubljana\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/London\",\n {\n \"s\": {\n \"f\": \"+0100\",\n \"t\": \"+0000\",\n \"n\": \"GMT\",\n \"s\": \"19701025T020000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0000\",\n \"t\": \"+0100\",\n \"n\": \"BST\",\n \"s\": \"19700329T010000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Luxembourg\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Madrid\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Malta\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Mariehamn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Minsk\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"+03\"\n }\n }\n ],\n [\n \"Europe/Monaco\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Moscow\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Nicosia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Oslo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Paris\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Podgorica\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Prague\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Riga\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Rome\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Samara\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/San_Marino\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sarajevo\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Saratov\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Simferopol\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"MSK\"\n }\n }\n ],\n [\n \"Europe/Skopje\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Sofia\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Stockholm\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tallinn\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Tirane\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Ulyanovsk\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Uzhgorod\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vaduz\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vatican\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vienna\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Vilnius\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Volgograd\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Europe/Warsaw\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zagreb\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zaporozhye\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"t\": \"+0200\",\n \"n\": \"EET\",\n \"s\": \"19701025T040000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0200\",\n \"t\": \"+0300\",\n \"n\": \"EEST\",\n \"s\": \"19700329T030000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Europe/Zurich\",\n {\n \"s\": {\n \"f\": \"+0200\",\n \"t\": \"+0100\",\n \"n\": \"CET\",\n \"s\": \"19701025T030000\",\n \"r\": {\n \"m\": 10,\n \"d\": \"-1SU\"\n }\n },\n \"d\": {\n \"f\": \"+0100\",\n \"t\": \"+0200\",\n \"n\": \"CEST\",\n \"s\": \"19700329T020000\",\n \"r\": {\n \"m\": 3,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Indian/Antananarivo\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Chagos\",\n {\n \"s\": {\n \"f\": \"+0600\",\n \"n\": \"+06\"\n }\n }\n ],\n [\n \"Indian/Christmas\",\n {\n \"s\": {\n \"f\": \"+0700\",\n \"n\": \"+07\"\n }\n }\n ],\n [\n \"Indian/Cocos\",\n {\n \"s\": {\n \"f\": \"+0630\",\n \"n\": \"+0630\"\n }\n }\n ],\n [\n \"Indian/Comoro\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Kerguelen\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mahe\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Maldives\",\n {\n \"s\": {\n \"f\": \"+0500\",\n \"n\": \"+05\"\n }\n }\n ],\n [\n \"Indian/Mauritius\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Indian/Mayotte\",\n {\n \"s\": {\n \"f\": \"+0300\",\n \"n\": \"EAT\"\n }\n }\n ],\n [\n \"Indian/Reunion\",\n {\n \"s\": {\n \"f\": \"+0400\",\n \"n\": \"+04\"\n }\n }\n ],\n [\n \"Pacific/Apia\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19700405T040000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1300\",\n \"t\": \"+1400\",\n \"n\": \"+14\",\n \"s\": \"19700927T030000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Auckland\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"NZST\",\n \"s\": \"19700405T030000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"NZDT\",\n \"s\": \"19700927T020000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Bougainville\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Chatham\",\n {\n \"s\": {\n \"f\": \"+1345\",\n \"t\": \"+1245\",\n \"n\": \"+1245\",\n \"s\": \"19700405T034500\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SU\"\n }\n },\n \"d\": {\n \"f\": \"+1245\",\n \"t\": \"+1345\",\n \"n\": \"+1345\",\n \"s\": \"19700927T024500\",\n \"r\": {\n \"m\": 9,\n \"d\": \"-1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Chuuk\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Easter\",\n {\n \"s\": {\n \"f\": \"-0500\",\n \"t\": \"-0600\",\n \"n\": \"-06\",\n \"s\": \"19700404T220000\",\n \"r\": {\n \"m\": 4,\n \"d\": \"1SA\"\n }\n },\n \"d\": {\n \"f\": \"-0600\",\n \"t\": \"-0500\",\n \"n\": \"-05\",\n \"s\": \"19700905T220000\",\n \"r\": {\n \"m\": 9,\n \"d\": \"1SA\"\n }\n }\n }\n ],\n [\n \"Pacific/Efate\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Enderbury\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fakaofo\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Fiji\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"t\": \"+1200\",\n \"n\": \"+12\",\n \"s\": \"19700118T030000\",\n \"r\": {\n \"m\": 1,\n \"d\": \"-2SU\"\n }\n },\n \"d\": {\n \"f\": \"+1200\",\n \"t\": \"+1300\",\n \"n\": \"+13\",\n \"s\": \"19701101T020000\",\n \"r\": {\n \"m\": 11,\n \"d\": \"1SU\"\n }\n }\n }\n ],\n [\n \"Pacific/Funafuti\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Galapagos\",\n {\n \"s\": {\n \"f\": \"-0600\",\n \"n\": \"-06\"\n }\n }\n ],\n [\n \"Pacific/Gambier\",\n {\n \"s\": {\n \"f\": \"-0900\",\n \"n\": \"-09\"\n }\n }\n ],\n [\n \"Pacific/Guadalcanal\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Guam\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Honolulu\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"HST\"\n }\n }\n ],\n [\n \"Pacific/Kiritimati\",\n {\n \"s\": {\n \"f\": \"+1400\",\n \"n\": \"+14\"\n }\n }\n ],\n [\n \"Pacific/Kosrae\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Kwajalein\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Majuro\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Marquesas\",\n {\n \"s\": {\n \"f\": \"-0930\",\n \"n\": \"-0930\"\n }\n }\n ],\n [\n \"Pacific/Midway\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Nauru\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Niue\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"-11\"\n }\n }\n ],\n [\n \"Pacific/Norfolk\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Noumea\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Pago_Pago\",\n {\n \"s\": {\n \"f\": \"-1100\",\n \"n\": \"SST\"\n }\n }\n ],\n [\n \"Pacific/Palau\",\n {\n \"s\": {\n \"f\": \"+0900\",\n \"n\": \"+09\"\n }\n }\n ],\n [\n \"Pacific/Pitcairn\",\n {\n \"s\": {\n \"f\": \"-0800\",\n \"n\": \"-08\"\n }\n }\n ],\n [\n \"Pacific/Pohnpei\",\n {\n \"s\": {\n \"f\": \"+1100\",\n \"n\": \"+11\"\n }\n }\n ],\n [\n \"Pacific/Port_Moresby\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"+10\"\n }\n }\n ],\n [\n \"Pacific/Rarotonga\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Saipan\",\n {\n \"s\": {\n \"f\": \"+1000\",\n \"n\": \"ChST\"\n }\n }\n ],\n [\n \"Pacific/Tahiti\",\n {\n \"s\": {\n \"f\": \"-1000\",\n \"n\": \"-10\"\n }\n }\n ],\n [\n \"Pacific/Tarawa\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Tongatapu\",\n {\n \"s\": {\n \"f\": \"+1300\",\n \"n\": \"+13\"\n }\n }\n ],\n [\n \"Pacific/Wake\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ],\n [\n \"Pacific/Wallis\",\n {\n \"s\": {\n \"f\": \"+1200\",\n \"n\": \"+12\"\n }\n }\n ]\n]);\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\n","var identity = require('./identity'),\n metaMap = require('./_metaMap');\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\n","var createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\n","var baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n countHolders = require('./_countHolders'),\n createCtor = require('./_createCtor'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n reorder = require('./_reorder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n","var isLaziable = require('./_isLaziable'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","var realNames = require('./_realNames');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var LazyWrapper = require('./_LazyWrapper'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n lodash = require('./wrapperLodash');\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n","var WeakMap = require('./_WeakMap');\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\n","var baseSetData = require('./_baseSetData'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n","var getWrapDetails = require('./_getWrapDetails'),\n insertWrapDetails = require('./_insertWrapDetails'),\n setToString = require('./_setToString'),\n updateWrapDetails = require('./_updateWrapDetails');\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n","var arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nmodule.exports = ary;\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nmodule.exports = curry;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var defaultHolder = isLib ? func : fallbackHolder,\n forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isError': util.isError,\n 'isFunction': util.isFunction,\n 'isWeakMap': util.isWeakMap,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isError = helpers.isError,\n isFunction = helpers.isFunction,\n isWeakMap = helpers.isWeakMap,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null &&\n !(isFunction(value) || isError(value) || isWeakMap(value))) {\n nested[key] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func, placeholder) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n result.placeholder = func.placeholder = placeholder;\n\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func, defaultHolder);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func, _)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n _.placeholder = _;\n\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n","module.exports = {\n 'ary': require('../ary'),\n 'assign': require('../_baseAssign'),\n 'clone': require('../clone'),\n 'curry': require('../curry'),\n 'forEach': require('../_arrayEach'),\n 'isArray': require('../isArray'),\n 'isError': require('../isError'),\n 'isFunction': require('../isFunction'),\n 'isWeakMap': require('../isWeakMap'),\n 'iteratee': require('../iteratee'),\n 'keys': require('../_baseKeys'),\n 'rearg': require('../rearg'),\n 'toInteger': require('../toInteger'),\n 'toPath': require('../toPath')\n};\n","var baseConvert = require('./_baseConvert'),\n util = require('./_util');\n\n/**\n * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied. If `name` is an object its methods\n * will be converted.\n *\n * @param {string} name The name of the function to wrap.\n * @param {Function} [func] The function to wrap.\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction convert(name, func, options) {\n return baseConvert(util, name, func, options);\n}\n\nmodule.exports = convert;\n","var convert = require('./convert'),\n func = convert('memoize', require('../memoize'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nmodule.exports = isWeakMap;\n","var baseClone = require('./_baseClone'),\n baseIteratee = require('./_baseIteratee');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nmodule.exports = iteratee;\n","var createWrap = require('./_createWrap'),\n flatRest = require('./_flatRest');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nmodule.exports = rearg;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var arrayMap = require('./_arrayMap'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol'),\n stringToPath = require('./_stringToPath'),\n toKey = require('./_toKey'),\n toString = require('./toString');\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nmodule.exports = toPath;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1110\":\"ee198291c8b389847012\",\"7422\":\"482a0a2770e9dedf21f9\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3705;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3705: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(86925)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","formatDateAsYMD","date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","concat","getLoggerBuilder","setApp","detectUser","build","name","components","NcButton","NcTextField","NcTextArea","NcDateTimePickerNative","data","firstDay","lastDay","status","message","loadState","loading","Date","computed","valid","_this$firstDay","_this$lastDay","getTime","setHours","methods","resetForm","saveForm","axios","post","generateOcsUrl","userId","getCurrentUser","uid","showSuccess","$t","error","showError","logger","clearAbsence","delete","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","on","$event","preventDefault","apply","arguments","attrs","model","value","callback","$$v","expression","_v","_s","fromString","e","constructor","t","icaltype","decodeValue","_b64_decode","setEncodedValue","_b64_encode","i","r","n","s","a","o","l","h","u","c","d","m","charCodeAt","charAt","length","join","f","slice","indexOf","String","fromCharCode","fromSeconds","isValueString","Object","create","search","Math","max","Error","fromData","wrappedJSObject","weeks","days","hours","minutes","seconds","isNegative","icalclass","clone","toSeconds","abs","A","reset","compare","normalize","toICALString","parseInt","static","daysInMonth","isLeapYear","fromDayOfYear","auto_normalize","daysInYearPassedMonth","isDate","fromStringv2","fromDateString","p","fromDateTimeString","utcTimezone","getParameter","parent","localTimezone","getTimeZoneByID","hour","minute","second","timezone","fromJSDate","now","weekOneStarts","dayOfWeek","DEFAULT_WEEK_START","THURSDAY","getDominicalLetter","epochTime","_cmp_attr","_time","_cachedUnixTime","zone","_pendingNormalization","resetTo","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getHours","getMinutes","getSeconds","entries","get","SUNDAY","_dowCache","dayOfYear","startOfWeek","endOfWeek","startOfMonth","endOfMonth","startOfYear","endOfYear","startDoyWeek","nthWeekDay","isNthWeekDay","weekNumber","_wnCache","subtractDate","addDuration","toUnixTime","utcOffset","subtractDateTz","compareDateOnlyTz","convertToZone","tzid","convert_time","ut","icalendar","toICAL","Y","toJSDate","_normalize","adjust","fromUnixTime","UTC","toJSON","defineProperty","prototype","set","component","stack","_eachLine","_handleContentLine","property","designSet","defaultSet","super","split","shift","ParserError","toLowerCase","_parseParameters","push","getDesignSet","pop","y","_","g","propertyGroups","group","multiValue","structuredValue","detectType","defaultType","_parseMultiValue","_parseValue","fromICAL","param","valueType","multiValueSeparateDQuote","_rfc6868Escape","Array","isArray","replace","trim","_compare_change_fn","adjust_change","call","location","tznames","latitude","longitude","expandedUntilYear","changes","yt","getFirstPropertyValue","_ensureCoverage","_findNearbyChange","D","prevUtcOffset","is_daylight","_minimumExpansionYear","EXTRA_COVERAGE","getAllSubcomponents","_expandComponent","sort","hasProperty","getFirstProperty","getFirstValue","factor","getAllProperties","until","iterator","next","count","keys","Z","GMT","has","register","TypeError","remove","isNaN","floor","T","codePointAt","Tt","foldLength","newLineChar","ceil","O","getOwnPropertyDescriptor","b","freeze","__proto__","updateTimezones","removeSubcomponent","addSubcomponent","isStrictlyNaN","strictParseInt","formatClassType","unescapedIndexOf","binsearchInsert","foldline","pad2","trunc","extend","S","E","fromDateAndOrTimeString","vcard","time","_splitZone","C","BYSECOND","BYMINUTE","BYHOUR","BYDAY","BYMONTHDAY","BYYEARDAY","BYWEEKNO","BYMONTH","BYSETPOS","SECONDLY","MINUTELY","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY","completed","rule","dtstart","last","occurrence_number","by_indices","initialized","by_data","days_index","B","parts","init","sort_byday_rules","freq","setup_defaults","ruleDayOfWeek","wkst","numericDayToIcalDay","expand_year_days","increment_year","interval","_nextByYearDay","has_by_data","increment_month","_byDayAndMonthDay","next_month","next_second","next_minute","next_hour","next_day","next_week","next_year","check_contracting_rules","next_generic","increment_second","increment_generic","increment_minute","increment_hour","increment_monthday","next_weekday_by_week","normalizeByMonthDayRules","is_day_in_byday","check_set_position","match","icalDayToNumericDay","expand_by_day","check_contract_restriction","_indexMap","_expandMap","CONTRACT","w","x","v","SU","MO","MONDAY","TU","TUESDAY","WE","WEDNESDAY","TH","FR","FRIDAY","SA","SATURDAY","N","fromEntries","map","reverse","I","_stringToData","toUpperCase","L","M","isFinite","isByCount","addComponent","setComponent","getComponent","getNextOccurrence","INTERVAL","z","FREQ","COUNT","UNTIL","WKST","test","bind","k","start","duration","end","fromJSON","getDuration","getEnd","P","U","j","matches","RegExp","source","flags","X","V","H","R","W","F","allowedTypes","K","q","J","G","Q","categories","url","version","$","boolean","values","float","parseFloat","integer","decorate","undecorate","tt","text","uri","binary","ht","strict","period","recur","et","action","attach","attendee","calscale","class","comment","contact","created","description","dtend","dtstamp","due","exdate","exrule","freebusy","geo","method","organizer","priority","prodid","repeat","rdate","resources","rrule","sequence","summary","transp","trigger","tzoffsetfrom","tzoffsetto","tzurl","tzname","it","timestamp","from","filter","rt","adr","anniversary","bday","caladruri","caluri","clientpidmap","email","fburl","fn","gender","impp","key","kind","lang","logo","member","nickname","note","org","photo","related","rev","role","sound","tel","title","tz","xml","nt","st","label","mailer","agent","at","cutype","allowXName","allowIanaToken","encoding","fbtype","partstat","range","reltype","rsvp","ot","type","lt","vcard3","vevent","vtodo","vjournal","valarm","vtimezone","daylight","standard","ct","dt","mt","ft","_rfc6868Unescape","paramPropertyValue","pt","_parent","jCal","getDefaultType","_updateType","_designSet","isDecorated","isMultiValue","isStructuredValue","_hydrateValue","_values","_decorate","_undecorate","_setDecoratedValue","getFirstParameter","setParameter","removeParameter","resetType","removeAllValues","getValues","setValues","setValue","_timezoneCache","Map","_hydratedPropertyCount","_hydratedComponentCount","_hydrateComponent","_components","_hydrateProperty","_properties","getFirstSubcomponent","_removeObjectByIndex","splice","_removeObject","_removeAllObjects","removeAllSubcomponents","addProperty","removeProperty","addPropertyWithValue","updatePropertyWithValue","removeAllProperties","_t","ruleDates","exDates","complete","ruleIterators","ruleDateInc","exDateInc","exDate","ruleDate","_init","_nextRecurrenceIter","_nextRuleDay","_nextExDay","_extractDates","gt","_rangeExceptionCache","exceptions","rangeExceptions","strictExceptions","forEach","relateException","isRecurrenceException","recurrenceId","modifiesFuture","Dt","THISANDFUTURE","findRangeException","getOccurrenceDetails","item","startDate","endDate","isRecurring","getRecurrenceTypes","_firstProp","_setProp","_setTime","attendees","color","debug","Binary","Component","ComponentParser","parseEvent","parseTimezone","oncomplete","onerror","ontimezone","onevent","process","Duration","Event","Period","Property","Recur","RecurExpansion","RecurIterator","Time","Timezone","TimezoneService","UtcOffset","VCardTime","parse","stringify","design","helpers","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","buf","offset","rnds","random","arr","unsafeStringify","LogLevel","LogLevel2","__defProp$1","ConsoleLogger","context","obj","enumerable","configurable","writable","__defNormalProp$1","formatMessage","level","msg","app","Debug","log","_a","_b","console","Info","info","Warn","warn","Fatal","assign","fatal","buildConsoleLogger","__defProp","__publicField","__defNormalProp","LoggerBuilder","factory","appId","setLogLevel","setUid","user","detectLogLevel","self","onLoaded","document","readyState","window","_oc_config","loglevel","_oc_debug","removeEventListener","addEventListener","normalizeComponent","scriptExports","render2","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","render","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","exports","CalendarAvailability","IconAdd","IconDelete","props","slots","required","Boolean","default","l10nTo","l10nDeleteSlot","l10nEmptyDay","l10nAddSlot","l10nWeekDayListLabel","l10nMonday","l10nTuesday","l10nWednesday","l10nThursday","l10nFriday","l10nSaturday","l10nSunday","l10nStartPickerLabel","Function","dayName","l10nEndPickerLabel","internalSlots","slotsToInternalData","watch","timeStampSlotsToDateObjectSlots","slot","moToSa","id","displayName","sunday","internalDataToSlots","converted","round","addSlot","onChangeSlots","removeSlot","idx","$emit","_l","$set","scopedSlots","_u","proxy","_e","getClient","memoize","service","remote","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","NcCheckboxRadioSwitch","NcTimezonePicker","_Intl$DateTimeFormat$","_Intl$DateTimeFormat","saving","Intl","DateTimeFormat","resolvedOptions","timeZone","automated","timeZonePickerId","substring","mounted","slotData","async","_xml$multistatus","response","customRequest","parseXML","availability","multistatus","propstat","prop","vavailability","parsedIcal","vcalendarComp","vavailabilityComp","timezoneId","timezoneComp","availableComps","availableComp","vavailabilityToSlots","findScheduleInboxAvailability","save","predefinedTimezoneIcal","deduplicated","reduce","acc","slots2","index","byday","slotsToVavailability","flatMap","dayId","saveScheduleInboxAvailability","configKey","configValue","enableUserStatusAutomation","disableUserStatusAutomation","NcSettingsSection","AbsenceForm","AvailabilityForm","hideAbsenceSettings","Vue","translate","Availability","$mount","___CSS_LOADER_EXPORT___","module","zones_1","renderZoneSub","defaultStart","zoneName","includeWrapper","lines","zoneData","zonesMap","getZoneLines","baseCreate","baseLodash","LazyWrapper","__wrapped__","__actions__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","LodashWrapper","chainAll","__chain__","__index__","__values__","undefined","arrayPush","isFlattenable","baseFlatten","array","depth","predicate","isStrict","result","identity","metaMap","baseSetData","func","nativeMax","args","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","holdersIndex","rightIndex","rightLength","placeholder","createCtor","root","bitmask","thisArg","isBind","Ctor","wrapper","isObject","thisBinding","createHybrid","createRecurry","getHolder","replaceHolders","arity","composeArgs","composeArgsRight","countHolders","reorder","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","isLaziable","setData","setWrapToString","wrapFunc","isCurry","newData","createBind","createCurry","createPartial","getData","mergeData","toInteger","flatten","overRest","setToString","noop","realNames","hasOwnProperty","otherFunc","reWrapDetails","reSplitDetails","reWrapComment","details","lastIndex","Symbol","isArguments","spreadableSymbol","isConcatSpreadable","getFuncName","lodash","funcName","other","PLACEHOLDER","nativeMin","min","srcBitmask","newBitmask","isCommon","isCombo","WeakMap","copyArray","isIndex","indexes","arrLength","oldArray","resIndex","shortOut","getWrapDetails","insertWrapDetails","updateWrapDetails","reference","arrayEach","arrayIncludes","wrapFlags","pair","createWrap","guard","curry","mapping","fallbackHolder","baseAry","cloneArray","wrapImmutable","cloner","baseConvert","util","isLib","isObj","config","cap","fixed","immutable","rearg","defaultHolder","forceCurry","forceFixed","forceRearg","pristine","runInContext","isError","isFunction","isWeakMap","iteratee","toPath","each","aryMethodKeys","aryMethod","wrappers","castArray","mixin","pairs","nthArg","castFixed","skipFixed","methodSpread","otherArgs","flatSpread","castRearg","skipRearg","methodRearg","aryRearg","cloneByPath","object","path","nested","createConverter","realName","aliasToReal","methodName","remap","oldOptions","newUtil","newFunc","newOptions","overArg","transform","wrap","wrapped","mutate","createCloner","aryKey","otherName","afterRearg","castCurry","iterateeRearg","baseArity","iterateeAry","castCap","convert","realToAlias","alias","baseGetTag","isObjectLike","isPlainObject","tag","getTag","baseClone","baseIteratee","flatRest","toNumber","INFINITY","toFinite","remainder","arrayMap","isSymbol","stringToPath","toKey","wrapperClone","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","notFulfilled","Infinity","fulfilled","every","getter","__esModule","definition","chunkId","Promise","all","promises","globalThis","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","target","head","appendChild","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |