diff --git a/skels/01-mini/.profile b/skels/01-mini/.profile
index 20aa21acf461f1686d2b8387b7af19df4f1c284f..24afb23e5c478cc1676bbc9c857d23f516117733 100644
--- a/skels/01-mini/.profile
+++ b/skels/01-mini/.profile
@@ -20,6 +20,6 @@ fi
 if [ -d "$HOME/bin" ] ; then
     PATH="$HOME/bin:$PATH"
 fi
-export ="slis:3128"
-export ="slis:3128"
-export ="slis:3128"
+export HTTP_PROXY="slis:3128"
+export FTP_PROXY="slis:3128"
+export HTPS_PROXY="slis:3128"
diff --git a/skels/01-mini/.profilee b/skels/01-mini/.profilee
new file mode 100644
index 0000000000000000000000000000000000000000..c9db4591825bd7a918df686ff04aeb3a87d3bda0
--- /dev/null
+++ b/skels/01-mini/.profilee
@@ -0,0 +1,22 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+	. "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi
diff --git a/skels/02-super/.profile b/skels/02-super/.profile
index 20aa21acf461f1686d2b8387b7af19df4f1c284f..24afb23e5c478cc1676bbc9c857d23f516117733 100644
--- a/skels/02-super/.profile
+++ b/skels/02-super/.profile
@@ -20,6 +20,6 @@ fi
 if [ -d "$HOME/bin" ] ; then
     PATH="$HOME/bin:$PATH"
 fi
-export ="slis:3128"
-export ="slis:3128"
-export ="slis:3128"
+export HTTP_PROXY="slis:3128"
+export FTP_PROXY="slis:3128"
+export HTPS_PROXY="slis:3128"
diff --git a/skels/02-super/.profilee b/skels/02-super/.profilee
new file mode 100644
index 0000000000000000000000000000000000000000..c9db4591825bd7a918df686ff04aeb3a87d3bda0
--- /dev/null
+++ b/skels/02-super/.profilee
@@ -0,0 +1,22 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+	. "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi
diff --git a/skels/03-maxi/.profile b/skels/03-maxi/.profile
index 20aa21acf461f1686d2b8387b7af19df4f1c284f..24afb23e5c478cc1676bbc9c857d23f516117733 100644
--- a/skels/03-maxi/.profile
+++ b/skels/03-maxi/.profile
@@ -20,6 +20,6 @@ fi
 if [ -d "$HOME/bin" ] ; then
     PATH="$HOME/bin:$PATH"
 fi
-export ="slis:3128"
-export ="slis:3128"
-export ="slis:3128"
+export HTTP_PROXY="slis:3128"
+export FTP_PROXY="slis:3128"
+export HTPS_PROXY="slis:3128"
diff --git a/skels/03-maxi/.profilee b/skels/03-maxi/.profilee
new file mode 100644
index 0000000000000000000000000000000000000000..c9db4591825bd7a918df686ff04aeb3a87d3bda0
--- /dev/null
+++ b/skels/03-maxi/.profilee
@@ -0,0 +1,22 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+	. "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi
diff --git a/skels/direction/.Xauthority b/skels/direction/.Xauthority
index 0a9114e93f60c8754f6ebdd8cbc79bd8098d4faa..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
Binary files a/skels/direction/.Xauthority and b/skels/direction/.Xauthority differ
diff --git a/skels/direction/.bash_history b/skels/direction/.bash_history
index d39d97116f220c4d3d5a0ebd71317b794d6503b7..78515965afb13059ac555a50a19bbeecba8e2b7a 100644
--- a/skels/direction/.bash_history
+++ b/skels/direction/.bash_history
@@ -4,3 +4,5 @@ menulibre
 sudo apt-get update
 su administrateur 
 menulibre
+alapage
+menulibre
diff --git a/skels/direction/.config/autostart/LXinput-setup.desktop b/skels/direction/.config/autostart/LXinput-setup.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..6fbf41b17259923142d19ca682dc2416881ccda2
--- /dev/null
+++ b/skels/direction/.config/autostart/LXinput-setup.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Démarrage automatique de LXInput
+Comment=Configurer le clavier et la souris en utilisant le paramétrage effectué dans LXInput
+NoDisplay=true
+Exec=sh -c 'xset m 20/10 10 r rate 500 30 b on'
+NotShowIn=GNOME;KDE;XFCE;
diff --git a/skels/direction/.config/chromium/Default/Cookies b/skels/direction/.config/chromium/Default/Cookies
new file mode 100644
index 0000000000000000000000000000000000000000..7cb873f7faac3c6bf56b8cfede75524b34889b97
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Cookies differ
diff --git a/skels/direction/.config/chromium/Default/Cookies-journal b/skels/direction/.config/chromium/Default/Cookies-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Current Session b/skels/direction/.config/chromium/Default/Current Session
new file mode 100644
index 0000000000000000000000000000000000000000..f8b7ac02a1e030ac845b19c51af49aeaed1f6f15
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Current Session differ
diff --git a/skels/direction/.config/chromium/Default/Current Tabs b/skels/direction/.config/chromium/Default/Current Tabs
new file mode 100644
index 0000000000000000000000000000000000000000..21ae81c8a2a81ce26775d10fc31b939201c42bf6
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Current Tabs differ
diff --git a/skels/direction/.config/chromium/Default/Extension Rules/000003.log b/skels/direction/.config/chromium/Default/Extension Rules/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..4acb4c8d5c47996e9884098a6890c39122102268
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extension Rules/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/Extension Rules/CURRENT b/skels/direction/.config/chromium/Default/Extension Rules/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extension Rules/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Extension Rules/LOCK b/skels/direction/.config/chromium/Default/Extension Rules/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Extension Rules/LOG b/skels/direction/.config/chromium/Default/Extension Rules/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..5cdb093baae15f5e00d06b5c2474696e2c127f26
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extension Rules/LOG	
@@ -0,0 +1 @@
+2018/04/24-09:26:14.704 3129 Reusing MANIFEST /home/direction/.config/chromium/Default/Extension Rules/MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Extension Rules/MANIFEST-000001 b/skels/direction/.config/chromium/Default/Extension Rules/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extension Rules/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/Extension State/000003.log b/skels/direction/.config/chromium/Default/Extension State/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..8b15e65a47188a39c075320171f5a0daa558a8b3
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extension State/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/Extension State/CURRENT b/skels/direction/.config/chromium/Default/Extension State/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extension State/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Extension State/LOCK b/skels/direction/.config/chromium/Default/Extension State/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Extension State/LOG b/skels/direction/.config/chromium/Default/Extension State/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..c5c09de13f80a228832a5c1ed3a94084453f526a
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extension State/LOG	
@@ -0,0 +1,3 @@
+2018/04/24-10:12:32.871 2145 Reusing MANIFEST /home/direction/.config/chromium/Default/Extension State/MANIFEST-000001
+2018/04/24-10:12:32.871 2145 Recovering log #3
+2018/04/24-10:12:32.880 2145 Reusing old log /home/direction/.config/chromium/Default/Extension State/000003.log 
diff --git a/skels/direction/.config/chromium/Default/Extension State/LOG.old b/skels/direction/.config/chromium/Default/Extension State/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..e7bee242e7660e0475fdcaf426cc7ab199a71ec1
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extension State/LOG.old	
@@ -0,0 +1,3 @@
+2018/04/24-09:26:54.440 3560 Reusing MANIFEST /home/direction/.config/chromium/Default/Extension State/MANIFEST-000001
+2018/04/24-09:26:54.440 3560 Recovering log #3
+2018/04/24-09:26:54.440 3560 Reusing old log /home/direction/.config/chromium/Default/Extension State/000003.log 
diff --git a/skels/direction/.config/chromium/Default/Extension State/MANIFEST-000001 b/skels/direction/.config/chromium/Default/Extension State/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extension State/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..9de36c3ba4cb003fb8a0e2f3edc724c906b789cc
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Плащания в уеб магазина на Chrome"
+   },
+   "app_name": {
+      "message": "Плащания в уеб магазина на Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Понастоящем няма достъп до приложението."
+   },
+   "craw_connect_to_network": {
+      "message": "Моля, свържете се с мрежа."
+   },
+   "iap_unavailable": {
+      "message": "Понастоящем няма достъп до вградената система за плащания."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Транзакцията не можа да бъде завършена. Моля, опитайте отново по-късно."
+   },
+   "please_sign_in": {
+      "message": "Моля, влезте в Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a43156d9b3b813fd6ce5edd0590d7d79841ee1c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagaments de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagaments de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Ara mateix aquesta aplicació no està disponible."
+   },
+   "craw_connect_to_network": {
+      "message": "Connecteu-vos a una xarxa."
+   },
+   "iap_unavailable": {
+      "message": "La funció Pagaments a l'aplicació no està disponible actualment."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No s'ha pogut completar la transacció. Torneu-ho a provar més tard."
+   },
+   "please_sign_in": {
+      "message": "Inicieu la sessió a Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1edead852f6a4a5995df93024cef9e078372a80f
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "app_name": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikace v současné době není dostupná."
+   },
+   "craw_connect_to_network": {
+      "message": "Připojte se prosím k síti."
+   },
+   "iap_unavailable": {
+      "message": "Platby v aplikaci aktuálně nejsou k dispozici."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakci nebylo možné dokončit. Zkuste to znovu později."
+   },
+   "please_sign_in": {
+      "message": "Přihlaste se do Chromu."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..36c035fdcd301865b7040b01300ac81b417b1378
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalinger i Chrome Webshop"
+   },
+   "app_name": {
+      "message": "Betalinger i Chrome Webshop"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen er ikke tilgængelig i øjeblikket."
+   },
+   "craw_connect_to_network": {
+      "message": "Opret forbindelse til et netværk."
+   },
+   "iap_unavailable": {
+      "message": "Betaling i appen er ikke tilgængelig i øjeblikket."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaktionen kunne ikke gennemføres. Prøv igen senere."
+   },
+   "please_sign_in": {
+      "message": "Log ind på Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..56800bfb93e28bd5dd05d8a6cd06cea6d3c6197b
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store-Zahlungen"
+   },
+   "app_name": {
+      "message": "Chrome Web Store-Zahlungen"
+   },
+   "craw_app_unavailable": {
+      "message": "Die App ist momentan nicht verfügbar."
+   },
+   "craw_connect_to_network": {
+      "message": "Bitte stellen Sie eine Verbindung zu einem Netzwerk her."
+   },
+   "iap_unavailable": {
+      "message": "In-App-Zahlungen sind momentan nicht möglich."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Die Transaktion konnte nicht abgeschlossen werden. Bitte versuchen Sie es später erneut."
+   },
+   "please_sign_in": {
+      "message": "Bitte melden Sie sich in Chrome an."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..28562c8f31018e34c05633f41cfc1725726ddc51
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Πληρωμές στο Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Πληρωμές στο Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Η εφαρμογή προς το παρόν δεν είναι διαθέσιμη."
+   },
+   "craw_connect_to_network": {
+      "message": "Συνδεθείτε σε ένα δίκτυο."
+   },
+   "iap_unavailable": {
+      "message": "Οι πληρωμές εντός εφαρμογών δεν είναι αυτήν τη στιγμή διαθέσιμες."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Δεν ήταν δυνατή η ολοκλήρωση της συναλλαγής. Δοκιμάστε ξανά αργότερα."
+   },
+   "please_sign_in": {
+      "message": "Συνδεθείτε στο Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..f2e23563e061ac563933059b47a5d7e2d688597a
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store Payments"
+   },
+   "app_name": {
+      "message": "Chrome Web Store Payments"
+   },
+   "craw_app_unavailable": {
+      "message": "App currently unavailable."
+   },
+   "craw_connect_to_network": {
+      "message": "Please connect to a network."
+   },
+   "iap_unavailable": {
+      "message": "In-App Payments is currently unavailable."
+   },
+   "jwt_retrieve_failed": {
+      "message": "The transaction could not be completed. Please try again later."
+   },
+   "please_sign_in": {
+      "message": "Please sign into Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..f2e23563e061ac563933059b47a5d7e2d688597a
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store Payments"
+   },
+   "app_name": {
+      "message": "Chrome Web Store Payments"
+   },
+   "craw_app_unavailable": {
+      "message": "App currently unavailable."
+   },
+   "craw_connect_to_network": {
+      "message": "Please connect to a network."
+   },
+   "iap_unavailable": {
+      "message": "In-App Payments is currently unavailable."
+   },
+   "jwt_retrieve_failed": {
+      "message": "The transaction could not be completed. Please try again later."
+   },
+   "please_sign_in": {
+      "message": "Please sign into Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1f400374089b58da37135d7b362072635547f9e4
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Esta aplicación no está disponible en este momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conéctate a una red."
+   },
+   "iap_unavailable": {
+      "message": "Los pagos en la aplicación no están disponibles en este momento."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No se ha podido completar la transacción. Vuelve a intentarlo más tarde."
+   },
+   "please_sign_in": {
+      "message": "Inicia sesión en Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..3a0d9c34fc670c18c958d780a9a9643b2b4a1717
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Esta aplicación no está disponible en este momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conéctate a una red."
+   },
+   "iap_unavailable": {
+      "message": "En este momento, Pagos En-Apps no está disponible."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No se pudo completar la transacción. Vuelve a intentarlo más tarde."
+   },
+   "please_sign_in": {
+      "message": "Accede a Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..01828481a0d86200bd39ed0294c36dac69a8ac01
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome'i veebipoe maksed"
+   },
+   "app_name": {
+      "message": "Chrome'i veebipoe maksed"
+   },
+   "craw_app_unavailable": {
+      "message": "Rakendus pole praegu saadaval."
+   },
+   "craw_connect_to_network": {
+      "message": "Looge ühendus võrguga."
+   },
+   "iap_unavailable": {
+      "message": "Rakendusesisesed maksed ei ole praegu saadaval."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tehingut ei saa lõpule viia. Proovige hiljem uuesti."
+   },
+   "please_sign_in": {
+      "message": "Logige Chrome'i sisse."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..5066e15184ed5511cfc1ec866e527869bf4fbfbd
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Storen maksut"
+   },
+   "app_name": {
+      "message": "Chrome Web Storen maksut"
+   },
+   "craw_app_unavailable": {
+      "message": "Sovellus ei ole tällä hetkellä käytettävissä."
+   },
+   "craw_connect_to_network": {
+      "message": "Muodosta verkkoyhteys."
+   },
+   "iap_unavailable": {
+      "message": "Sovelluksen sisäiset maksut eivät ole tällä hetkellä käytettävissä."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tapahtumaa ei voi suorittaa loppuun. Yritä myöhemmin uudelleen."
+   },
+   "please_sign_in": {
+      "message": "Kirjaudu sisään Chromeen."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..6737fbffdd34ba91ef96af4509635bdd507addce
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Mga Pagbabayad sa Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Mga Pagbabayad sa Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Kasalukuyang hindi available ang app."
+   },
+   "craw_connect_to_network": {
+      "message": "Mangyaring kumonekta sa isang network."
+   },
+   "iap_unavailable": {
+      "message": "Kasalukuyang hindi available ang Mga Pagbabayad na In-App."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Hindi makumpleto ang transaksyon. Pakisubukang muli sa ibang pagkakataon."
+   },
+   "please_sign_in": {
+      "message": "Mangyaring mag-sign in sa Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..a7fe884a8f51321064f3cec660e47b4daf461183
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Paiements via le Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Paiements via le Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Application indisponible pour le moment."
+   },
+   "craw_connect_to_network": {
+      "message": "Veuillez vous connecter à un réseau."
+   },
+   "iap_unavailable": {
+      "message": "Les paiements via l'application ne sont pas disponibles pour le moment."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Impossible de finaliser la transaction. Veuillez réessayer plus tard."
+   },
+   "please_sign_in": {
+      "message": "Veuillez vous connecter à Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..7d4b96342737e6bb3e13ef9ec4c5f9ccabc243d7
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome वेब स्टोर भुगतान"
+   },
+   "app_name": {
+      "message": "Chrome वेब स्टोर भुगतान"
+   },
+   "craw_app_unavailable": {
+      "message": "ऐप्स  वर्तमान में अनुपलब्ध."
+   },
+   "craw_connect_to_network": {
+      "message": "कृपया नेटवर्क से कनेक्ट करें."
+   },
+   "iap_unavailable": {
+      "message": "इन-ऐप भुगतान अभी उपलब्ध नहीं है."
+   },
+   "jwt_retrieve_failed": {
+      "message": "लेन-देन पूर्ण नहीं किया जा सका. कृपया बाद में पुन: प्रयास करें."
+   },
+   "please_sign_in": {
+      "message": "कृपया Chrome में प्रवेश करें."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..d611193d261a6153d885d67e38d6173ebdedcedf
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plaćanja u web-trgovini Chrome"
+   },
+   "app_name": {
+      "message": "Plaćanja u web-trgovini Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacija trenutačno nije dostupna."
+   },
+   "craw_connect_to_network": {
+      "message": "Povežite se s mrežom."
+   },
+   "iap_unavailable": {
+      "message": "Plaćanje u aplikaciji trenutačno nije dostupno."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakcija nije dovršena. Pokušajte ponovo kasnije."
+   },
+   "please_sign_in": {
+      "message": "Prijavite se na Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..de75062a88124552384e235a91e0c50517deeb52
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Internetes áruház Fizetési rendszere"
+   },
+   "app_name": {
+      "message": "Chrome Internetes áruház Fizetési rendszere"
+   },
+   "craw_app_unavailable": {
+      "message": "Az alkalmazás jelenleg nem érhető el."
+   },
+   "craw_connect_to_network": {
+      "message": "Kérjük, csatlakozzon egy hálózathoz."
+   },
+   "iap_unavailable": {
+      "message": "Az alkalmazáson belüli fizetés jelenleg nem érhető el."
+   },
+   "jwt_retrieve_failed": {
+      "message": "A tranzakciót nem sikerült befejezni. Próbálja újra később."
+   },
+   "please_sign_in": {
+      "message": "Jelentkezzen be a Chrome-ba."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb844461483348ed8f90ee6a3432c6ae7ad335b5
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pembayaran Chrome Webstore"
+   },
+   "app_name": {
+      "message": "Pembayaran Chrome Webstore"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikasi tidak tersedia saat ini."
+   },
+   "craw_connect_to_network": {
+      "message": "Sambungkan ke jaringan."
+   },
+   "iap_unavailable": {
+      "message": "Pembayaran Dalam Aplikasi saat ini tidak tersedia."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaksi tidak dapat diselesaikan. Coba lagi nanti."
+   },
+   "please_sign_in": {
+      "message": "Harap masuk ke Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..240a9a157e85059d2b478406191d088784b1ec6d
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamenti Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamenti Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "App al momento non disponibile."
+   },
+   "craw_connect_to_network": {
+      "message": "Collegati a una rete."
+   },
+   "iap_unavailable": {
+      "message": "La funzione Pagamenti In-App non è al momento disponibile."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Impossibile completare la transazione. Riprova più tardi."
+   },
+   "please_sign_in": {
+      "message": "Accedi a Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..82ebf868bda6fb90e296ced2e391ec2890a8d92c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome ウェブストア決済"
+   },
+   "app_name": {
+      "message": "Chrome ウェブストア決済"
+   },
+   "craw_app_unavailable": {
+      "message": "アプリは現在ご利用いただけません。"
+   },
+   "craw_connect_to_network": {
+      "message": "ネットワークに接続してください。"
+   },
+   "iap_unavailable": {
+      "message": "アプリ内ペイメントは現在ご利用いただけません。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "トランザクションを完了できませんでした。しばらくしてからもう一度お試しください。"
+   },
+   "please_sign_in": {
+      "message": "Chrome にログインしてください。"
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..d06e48a0ccbf782b85637b92fcd53d4b6576b4f7
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 웹 스토어 결제"
+   },
+   "app_name": {
+      "message": "Chrome 웹 스토어 결제"
+   },
+   "craw_app_unavailable": {
+      "message": "현재 앱을 사용할 수 없습니다."
+   },
+   "craw_connect_to_network": {
+      "message": "네트워크에 연결하세요."
+   },
+   "iap_unavailable": {
+      "message": "현재 인앱 결제를 사용할 수 없습니다."
+   },
+   "jwt_retrieve_failed": {
+      "message": "거래를 완료하지 못했습니다. 나중에 다시 시도해 주세요."
+   },
+   "please_sign_in": {
+      "message": "Chrome에 로그인하세요."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..a3e4a5a42e243cf93a5b1f812ceb164b618f0e3c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "„Chrome“ internetinės parduotuvės mokėjimo sistema"
+   },
+   "app_name": {
+      "message": "„Chrome“ internetinės parduotuvės mokėjimo sistema"
+   },
+   "craw_app_unavailable": {
+      "message": "Programa šiuo metu negalima."
+   },
+   "craw_connect_to_network": {
+      "message": "Prisijunkite prie tinklo."
+   },
+   "iap_unavailable": {
+      "message": "Mokėjimai programoje šiuo metu negalimi."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Nepavyko užbaigti operacijos. Vėliau bandykite dar kartą."
+   },
+   "please_sign_in": {
+      "message": "Prisijunkite prie „Chrome“."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..7ba5d18b3b3d2fc1830b005a8b6864f1c29ef939
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome interneta veikala maksājumu sistēma"
+   },
+   "app_name": {
+      "message": "Chrome interneta veikala maksājumu sistēma"
+   },
+   "craw_app_unavailable": {
+      "message": "Lietotne pagaidām nav pieejama."
+   },
+   "craw_connect_to_network": {
+      "message": "Lūdzu, izveidojiet savienojumu ar tīklu."
+   },
+   "iap_unavailable": {
+      "message": "Maksājumi lietotnēs pašlaik nav pieejami."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakciju nevarēja pabeigt. Lūdzu, vēlāk mēģiniet vēlreiz."
+   },
+   "please_sign_in": {
+      "message": "Lūdzu, pierakstieties pārlūkā Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..9b76605fc88cfd6f9a77ea4dac22d4ed651866d5
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Nettmarked-betalinger"
+   },
+   "app_name": {
+      "message": "Chrome Nettmarked-betalinger"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen er utilgjengelig for øyeblikket."
+   },
+   "craw_connect_to_network": {
+      "message": "Du må koble til et nettverk."
+   },
+   "iap_unavailable": {
+      "message": "Betaling i app er ikke tilgjengelig for øyeblikket."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaksjonen kunne ikke fullføres. Prøv på nytt senere."
+   },
+   "please_sign_in": {
+      "message": "Du må logge på Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..52b358311fe98422471b934aff6936e5a13b3d1f
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalingen via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Betalingen via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "App momenteel niet beschikbaar."
+   },
+   "craw_connect_to_network": {
+      "message": "Maak verbinding met een netwerk."
+   },
+   "iap_unavailable": {
+      "message": "In-app-betalingen is momenteel niet beschikbaar."
+   },
+   "jwt_retrieve_failed": {
+      "message": "De transactie kan niet worden voltooid. Probeer het later opnieuw."
+   },
+   "please_sign_in": {
+      "message": "Log in bij Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..26925d56e2ab8ca8ba0b31bce5febd167806b918
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Płatności w sklepie Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Płatności w sklepie Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacja jest obecnie niedostępna."
+   },
+   "craw_connect_to_network": {
+      "message": "Połącz się z siecią."
+   },
+   "iap_unavailable": {
+      "message": "Płatności w ramach aplikacji są teraz niedostępne."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Nie udało się zrealizować transakcji. Spróbuj ponownie później."
+   },
+   "please_sign_in": {
+      "message": "Zaloguj się w Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d4688f4802ffdb5924e67482bf57c8f1eef2330
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamentos da Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamentos da Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplicativo indisponível no momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conecte-se a uma rede."
+   },
+   "iap_unavailable": {
+      "message": "No momento, os Pagamentos no aplicativo não estão disponíveis."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Não foi possível concluir a transação. Tente novamente mais tarde."
+   },
+   "please_sign_in": {
+      "message": "Faça login no Google Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..23eff218ce50ae5a2e3f957d3c580f86506c1c01
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamentos via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamentos via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplicação atualmente indisponível."
+   },
+   "craw_connect_to_network": {
+      "message": "Ligue-se a uma rede."
+   },
+   "iap_unavailable": {
+      "message": "Os Pagamentos na Aplicação estão atualmente indisponíveis."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Não foi possível concluir a transação. Tente novamente mais tarde."
+   },
+   "please_sign_in": {
+      "message": "Inicie sessão no Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..56afab377644b03781b253aefb4967c6b3f5eb16
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plăți prin Magazinul web Chrome"
+   },
+   "app_name": {
+      "message": "Plăți prin Magazinul web Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "În prezent, aplicația nu este disponibilă."
+   },
+   "craw_connect_to_network": {
+      "message": "Conectează-te la o rețea."
+   },
+   "iap_unavailable": {
+      "message": "Plățile în aplicație nu sunt disponibile momentan."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tranzacția nu s-a putut finaliza. Încearcă din nou mai târziu."
+   },
+   "please_sign_in": {
+      "message": "Conectează-te la Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c8d4ac6461b760149c64e8eaf449ce5721f634d
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Платежная система Интернет-магазина Chrome"
+   },
+   "app_name": {
+      "message": "Платежная система Интернет-магазина Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Приложение недоступно."
+   },
+   "craw_connect_to_network": {
+      "message": "Подключитесь к сети."
+   },
+   "iap_unavailable": {
+      "message": "Платежи через приложения недоступны."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Произошла ошибка. Повторите попытку позже."
+   },
+   "please_sign_in": {
+      "message": "Войдите в Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..95ab01c9ddcd507ac6f9504f75b833a3e597e6ca
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "app_name": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikácia momentálne nie je dostupná."
+   },
+   "craw_connect_to_network": {
+      "message": "Pripojte sa k sieti."
+   },
+   "iap_unavailable": {
+      "message": "Platby v aplikácii momentálne nie sú k dispozícii."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakciu nebolo možné dokončiť. Skúste to znova neskôr."
+   },
+   "please_sign_in": {
+      "message": "Prihláste sa do prehliadača Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..23095d66f81830140f03874fdcaa177774a047c1
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plačila v spletni trgovini Chrome"
+   },
+   "app_name": {
+      "message": "Plačila v spletni trgovini Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacija trenutno ni na voljo."
+   },
+   "craw_connect_to_network": {
+      "message": "Povežite se z omrežjem."
+   },
+   "iap_unavailable": {
+      "message": "Plačila v aplikacijah trenutno niso na voljo."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakcije ni bilo mogoče dokončati. Poskusite znova pozneje."
+   },
+   "please_sign_in": {
+      "message": "Prijavite se v Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..12f925e3915d152fefeee93401c50f3825341d1a
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Плаћања у Chrome веб-продавници"
+   },
+   "app_name": {
+      "message": "Плаћања у Chrome веб-продавници"
+   },
+   "craw_app_unavailable": {
+      "message": "Апликација је тренутно недоступна."
+   },
+   "craw_connect_to_network": {
+      "message": "Повежите са мрежом."
+   },
+   "iap_unavailable": {
+      "message": "Плаћања у апликацији су тренутно недоступна."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Није могуће довршити трансакцију. Пробајте поново касније."
+   },
+   "please_sign_in": {
+      "message": "Пријавите се у Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..ef90fdb2f933602dec8f5e3536ea38e088409457
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalning via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Betalning via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen är inte tillgänglig för tillfället."
+   },
+   "craw_connect_to_network": {
+      "message": "Anslut till ett nätverk."
+   },
+   "iap_unavailable": {
+      "message": "Betalning i appen är inte tillgängligt för närvarande."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaktionen kunde inte slutföras. Försök igen senare."
+   },
+   "please_sign_in": {
+      "message": "Logga in i Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..783b943e36e2dffc8007447d7802457592baaf0c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "ระบบชำระเงินของ Chrome เว็บสโตร์"
+   },
+   "app_name": {
+      "message": "ระบบชำระเงินของ Chrome เว็บสโตร์"
+   },
+   "craw_app_unavailable": {
+      "message": "ไม่สามารถใช้งานแอปได้ในขณะนี้"
+   },
+   "craw_connect_to_network": {
+      "message": "โปรดเชื่อมต่อกับเครือข่าย"
+   },
+   "iap_unavailable": {
+      "message": "ระบบชำระเงินในแอปพลิเคชันไม่พร้อมใช้งานในขณะนี้"
+   },
+   "jwt_retrieve_failed": {
+      "message": "ไม่สามารถดำเนินการธุรกรรมให้เสร็จสิ้นได้ โปรดลองอีกครั้งในภายหลัง"
+   },
+   "please_sign_in": {
+      "message": "โปรดลงชื่อเข้าใช้ Chrome"
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..843f865773adea2f5a193ee9d1d63aa31a7e5e69
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Mağazası Ödemeleri"
+   },
+   "app_name": {
+      "message": "Chrome Web Mağazası Ödemeleri"
+   },
+   "craw_app_unavailable": {
+      "message": "Uygulama şu anda kullanılamıyor."
+   },
+   "craw_connect_to_network": {
+      "message": "Lütfen bir ağa bağlanın."
+   },
+   "iap_unavailable": {
+      "message": "Uygulama İçi Ödemeler şu anda kullanılamaz."
+   },
+   "jwt_retrieve_failed": {
+      "message": "İşlem tamamlanamadı. Lütfen daha sonra tekrar deneyin."
+   },
+   "please_sign_in": {
+      "message": "Lütfen Chrome'da oturum açın."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..54f6334d4576e77ddfd2a0f8ce76d6dbdc568f22
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Платежі Веб-магазину Chrome"
+   },
+   "app_name": {
+      "message": "Платежі Веб-магазину Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Програма тимчасово недоступна."
+   },
+   "craw_connect_to_network": {
+      "message": "Під’єднайтеся до мережі."
+   },
+   "iap_unavailable": {
+      "message": "Платежі через програму зараз не доступні."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Не вдалося завершити трансакцію. Повторіть спробу пізніше."
+   },
+   "please_sign_in": {
+      "message": "Увійдіть у Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..88a7162893880ab016012c46cb3f758d3ba549ff
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Thanh toán trên cửa hàng Chrome trực tuyến"
+   },
+   "app_name": {
+      "message": "Thanh toán trên cửa hàng Chrome trực tuyến"
+   },
+   "craw_app_unavailable": {
+      "message": "Ứng dụng hiện không khả dụng."
+   },
+   "craw_connect_to_network": {
+      "message": "Vui lòng kết nối với mạng."
+   },
+   "iap_unavailable": {
+      "message": "Thanh toán trong ứng dụng hiện không khả dụng."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Không thể hoàn tất giao dịch. Vui lòng thử lại sau."
+   },
+   "please_sign_in": {
+      "message": "Vui lòng đăng nhập vào Chrome."
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..15967df3fbb7df189f4192ffbfdac054d878386f
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 网上应用店付款系统"
+   },
+   "app_name": {
+      "message": "Chrome 网上应用店付款系统"
+   },
+   "craw_app_unavailable": {
+      "message": "应用目前无法使用。"
+   },
+   "craw_connect_to_network": {
+      "message": "请连接到网络。"
+   },
+   "iap_unavailable": {
+      "message": "目前无法使用应用内付款。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "交易无法完成,请稍后重试。"
+   },
+   "please_sign_in": {
+      "message": "请登录 Chrome。"
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..79977059c179b944caf193ae7355f7adb78fbcfa
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 線上應用程式商店付款系統"
+   },
+   "app_name": {
+      "message": "Chrome 線上應用程式商店付款系統"
+   },
+   "craw_app_unavailable": {
+      "message": "目前無法使用這個應用程式。"
+   },
+   "craw_connect_to_network": {
+      "message": "請連上網路。"
+   },
+   "iap_unavailable": {
+      "message": "目前無法使用應用程式內付款功能。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "無法完成這項交易,請稍後再試。"
+   },
+   "please_sign_in": {
+      "message": "請登入 Chrome。"
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..ac2eff175ab9129af48fb33981d2789cc5c0ebd7
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json
@@ -0,0 +1 @@
+[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJfbG9jYWxlcy9iZy9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoicHRiSXN4Z3hMRjB4Ti1zSmxvRUlGQ08wYzJmUndRdXd5dnNiSkhqNEdoNCJ9LHsicGF0aCI6Il9sb2NhbGVzL2NhL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJDWnpSVXZMYTRkeWgycmJZU3VnaWxGUGpfVzVhdGhGa2VIU0UzVEZFcTE0In0seyJwYXRoIjoiX2xvY2FsZXMvY3MvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlpHeGJEalczVDZvZ2Z4MTduck9waFA5cTVPRC00bWQ2ZnM1TGZfbGVKclUifSx7InBhdGgiOiJfbG9jYWxlcy9kYS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiaUFURVRmQjVObFhDbm5KWUhZNzRwM3E5T2R3azlNQ2E0d184NG1fcW5aOCJ9LHsicGF0aCI6Il9sb2NhbGVzL2RlL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJTVG5yLUVDMnZlSF9obnp2MWhNZV91M0Zxem1kLXRyd3ZKamhEMDhkSGNNIn0seyJwYXRoIjoiX2xvY2FsZXMvZWwvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlFnS2JWaDdNamJ4VUFHR3NZeklfenZnSm05M0Z1ekY2aHRSQ2FMVHNpY00ifSx7InBhdGgiOiJfbG9jYWxlcy9lbi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiWlgtSlNLYUJVM21KUkQzYnNpMUtqdFN0SnFKd1dVZWgzRDl5WFJFRzZadyJ9LHsicGF0aCI6Il9sb2NhbGVzL2VuX0dCL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJaWC1KU0thQlUzbUpSRDNic2kxS2p0U3RKcUp3V1VlaDNEOXlYUkVHNlp3In0seyJwYXRoIjoiX2xvY2FsZXMvZXMvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlpnYnlkbEZ2MVNRcnJHSE5iemtjQXg1cHg2aVNoN0J2M3JXMlpXVklTZ0EifSx7InBhdGgiOiJfbG9jYWxlcy9lc180MTkvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlppNlJNT1NiOEZqYzVhOXlpUG9wQjU4cEVMZllmWHNKNWM3MkFVQnJjUE0ifSx7InBhdGgiOiJfbG9jYWxlcy9ldC9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiaTVSUHp4bUVTcE9JaHowODdyNFBPWElZMXA3MXdkbXdPa0lST3FPOE9RVSJ9LHsicGF0aCI6Il9sb2NhbGVzL2ZpL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJlSjVZYU9POEVieHJtTS1kYXRMTWJJZldwMEdENmY5amtvSWJDVlI3NnNjIn0seyJwYXRoIjoiX2xvY2FsZXMvZmlsL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJhcWgwTHBpV2liazRsbzZqTm81cU5ERWlPM2tSbFZ3dk1DMzI0MVJlWGd3In0seyJwYXRoIjoiX2xvY2FsZXMvZnIvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6InJRM0VUd0dLdlRtWWs5ZHpsQm9xR1Q5VGNIQVJzNF9NMklTaGlLM3FqUmcifSx7InBhdGgiOiJfbG9jYWxlcy9oaS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiTmI2akV6UEJTNkFJVHB4T01MMDZoQXBic21rSGxuYzZ5dkljaGNFSXVlYyJ9LHsicGF0aCI6Il9sb2NhbGVzL2hyL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiI2VXZVa1IxSS1NYm9XMGVMa0NSMzJBbDVkTUpfYldNSF9ySjlOWFJsLU9ZIn0seyJwYXRoIjoiX2xvY2FsZXMvaHUvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IjBxZjNGZkM1amtWVHRpc3pRcjZpWVBDdzVTYnA1VmEyVUcwaERBcFZocWcifSx7InBhdGgiOiJfbG9jYWxlcy9pZC9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoid1liMlpGb25LYUF0VjhqeThScmlDT0MtTGZmMURlWTlWejBVV2VLbU5vTSJ9LHsicGF0aCI6Il9sb2NhbGVzL2l0L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJEVjRsMTVJZGQ1TUM3SVFMdWdtb2ZhblBLZng4eU11Mkd1YW1FVlpLWjRvIn0seyJwYXRoIjoiX2xvY2FsZXMvamEvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6Ii1PX3RHdW9qaWp6RWpQeUlNWkhGTm54VkIxeElpQUVUWC1ncXJHd2Y5YzQifSx7InBhdGgiOiJfbG9jYWxlcy9rby9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoieVBJMDhxejNnalR1a0ZWNkdTaFVWVXFTOTdtOGVER01FSExmd1hmQ1ZCWSJ9LHsicGF0aCI6Il9sb2NhbGVzL2x0L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJ5Q010WVBEOU53N1Eyc2ZQSWxGTVRYcHpJdWZhOFNZd0ltZGx4T1RjSVJVIn0seyJwYXRoIjoiX2xvY2FsZXMvbHYvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IkZ4d0tmTTVpSEpYOGZ6NTBIdU1zLXlHS0U3aUMzUWJRc1FlemlBcThvUFUifSx7InBhdGgiOiJfbG9jYWxlcy9uYi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoidHFPWjVYdGpzdzE3SzBFQi1LMUVWMXpEUlBGVWxTOFNaQnN4YWIxOUhmVSJ9LHsicGF0aCI6Il9sb2NhbGVzL25sL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJPYWYxa0czZzg3RmsxQ2wwM2s5WDFPNHRpZGI3RUNpVWVaQXFYZDBaWGgwIn0seyJwYXRoIjoiX2xvY2FsZXMvcGwvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IkxlX0NLdUF6dTB4SzBVRzJ5aXJyNzV1QjczT0lzcTdrQTJmVUdCUW5IaDAifSx7InBhdGgiOiJfbG9jYWxlcy9wdF9CUi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiSm1BekkyN1lHcllSX2wzRmF3NU1IZ1g4S1VSQjdPRFJVQWQzbmhlYm5FcyJ9LHsicGF0aCI6Il9sb2NhbGVzL3B0X1BUL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiIwZnFXOFVLNGJyQk1ISGFYV1l2Z0Rncnd5cVI1WmJYZjVqbWNNRWg4Z3pvIn0seyJwYXRoIjoiX2xvY2FsZXMvcm8vbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IjhCS2IxY2JURDFEZ0hUY0JjSEhsOFN2Z1h6MWY2VXFJWVRHUW1jOE5hcHcifSx7InBhdGgiOiJfbG9jYWxlcy9ydS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiLVVwc2ZRc25KenRXN255c2NyLWpMdjh6S3haWHQ4bnlEbFl4bEhtc1NEVSJ9LHsicGF0aCI6Il9sb2NhbGVzL3NrL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJNR2Z4MEJoSXloZnpZdjBnaEsxdGVNVmJ4dzk5S3duX2tiSFdKSDhXel9RIn0seyJwYXRoIjoiX2xvY2FsZXMvc2wvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6InFKa0RrX284RHptTHBpT2pfejZZVmQ0UG11Y1V3d04zbTJrMDBNZkZwRkEifSx7InBhdGgiOiJfbG9jYWxlcy9zci9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiU1V0cktfcUMyZDVWN0FILWxlc0ZMejgzd1FCNFZwelhWdnNtLWhQdjZvcyJ9LHsicGF0aCI6Il9sb2NhbGVzL3N2L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJoeEI5T2R4dk9TSVBVNEt2VTViWUhTNm9ESEM4MllBVUVjOFpzTGRsQzhRIn0seyJwYXRoIjoiX2xvY2FsZXMvdGgvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IldxR3JETnpHeUJwcVlORy1EdmdOUFI1Y3VlZWtxUk1rU0U0NTliVVpCY28ifSx7InBhdGgiOiJfbG9jYWxlcy90ci9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiM2RPcS16NUJDRkQ0M3VGRXlhVzlDVjREeDU3WkttSlYyTHZoV1JlWFZnbyJ9LHsicGF0aCI6Il9sb2NhbGVzL3VrL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJxNzR1THpQMXI2WTFIM2VlOFJlaDM1cWdEWGFJN3RpRm9SRFBIT2lEbXI4In0seyJwYXRoIjoiX2xvY2FsZXMvdmkvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlRhc1VrQ2JzQjJxMEVxRlZQRmZ6cENYaU5jaHc4TndVVHo4SXphcjVING8ifSx7InBhdGgiOiJfbG9jYWxlcy96aF9DTi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoieVc3TVlNczBqbGotUGhHYW91NnpUNm5SZkdiNy02S3hxYjJnR2p5OEJZUSJ9LHsicGF0aCI6Il9sb2NhbGVzL3poX1RXL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJqdnZNWkQtRUZvNFEwbk1DRGJOTEM3TTlMejZUNHJkMkxUc0ZNaHJPODQ4In0seyJwYXRoIjoiY3Jhd19iYWNrZ3JvdW5kLmpzIiwicm9vdF9oYXNoIjoibkszaUoxVzFsZE42Yy1kR3VkUE1Xalc5SXhmbDNUTXRKQTVSRXJBS0d3YyJ9LHsicGF0aCI6ImNyYXdfd2luZG93LmpzIiwicm9vdF9oYXNoIjoiNjE2TlJOY3NGdkpxX1ctMVFnSWZrVFVyUWluMVB5Zm1ZQktoRFJmZGh2WSJ9LHsicGF0aCI6ImNzcy9jcmF3X3dpbmRvdy5jc3MiLCJyb290X2hhc2giOiJFTi05TFppVkMzbnVFdmE0NDRoYXEtTVZRd1NONVdyVV9BcGVOTkRaMU93In0seyJwYXRoIjoiaHRtbC9jcmF3X3dpbmRvdy5odG1sIiwicm9vdF9oYXNoIjoidTRkQ1lWNU0yWmF1WFFJQTVFT3VhbThMUnpKVjhEcl8yNC0wWmcza1ZVMCJ9LHsicGF0aCI6ImltYWdlcy9mbGFwcGVyLmdpZiIsInJvb3RfaGFzaCI6IjNmeDZSYVNhWGVzUWdxM0t0Y0pCa1I0dGFTTU9VLTRvNnI1bnVfNmRKNmsifSx7InBhdGgiOiJpbWFnZXMvaWNvbl8xMjgucG5nIiwicm9vdF9oYXNoIjoiVHhmdnZaZEtRZGlNczJWbnFyYV9SWVpYbm5oNER3Q3hnbVoyZ1o0VXZfUSJ9LHsicGF0aCI6ImltYWdlcy9pY29uXzE2LnBuZyIsInJvb3RfaGFzaCI6IkNrdlFqYlpDTDQ1NmlpR084NXdibWFXbWRmRW1sX0pyNkktYV9DNGZrM2cifSx7InBhdGgiOiJpbWFnZXMvdG9wYmFyX2Zsb2F0aW5nX2J1dHRvbi5wbmciLCJyb290X2hhc2giOiIxZmtqVGNOdWZfcUY4MXNqV2FUNEluYjRPVjc2ZHVSVk5RZnFtUXNuX0d3In0seyJwYXRoIjoiaW1hZ2VzL3RvcGJhcl9mbG9hdGluZ19idXR0b25fY2xvc2UucG5nIiwicm9vdF9oYXNoIjoiRXhnWHpaTVJ3RDN5TFhhZDBxMV9vdWJwVlloanFKOS1YaFpYUWtBeHFUYyJ9LHsicGF0aCI6ImltYWdlcy90b3BiYXJfZmxvYXRpbmdfYnV0dG9uX2hvdmVyLnBuZyIsInJvb3RfaGFzaCI6ImNodDZxcHBDcFVvMG1JRmhXaExqb21tRHJLU09Gel9TOW01bXFnMXlWelUifSx7InBhdGgiOiJpbWFnZXMvdG9wYmFyX2Zsb2F0aW5nX2J1dHRvbl9tYXhpbWl6ZS5wbmciLCJyb290X2hhc2giOiJyNlRxbEV5OTdJVkRKQzVpZnZSdFdfMDNadHlzWms1LVVNM3U4ck5TZEF3In0seyJwYXRoIjoiaW1hZ2VzL3RvcGJhcl9mbG9hdGluZ19idXR0b25fcHJlc3NlZC5wbmciLCJyb290X2hhc2giOiJYQkRPQlluckVWWUE5M09CRXd0d3JndDdOMUpoVFliVXlKNkZkbGlxSWlzIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6Ikk2SkJHQkktQnQ2ajM0OVo3MThiSmNYU2JzRkloWEFDa0RRcGdtbEVKR3MifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJubW1oa2tlZ2NjYWdkbGRnaWltZWRwaWNjbWdtaWVkYSIsIml0ZW1fdmVyc2lvbiI6IjEuMC4wLjQiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"EqigqdJJ5wZnD4rGyMmVoj4rUoWjlbK87RTX_xw5FC_T7uPbTbTvhXZ258TeXjWAXloponbwxrAUzFrK9kuIt4Wrjmmm30A7sSci5Lj90CxaUdr1xdMaKjXyyiMwDLNjcNFts3j_6QxTQsJ8PWVR53_OOPQHpzteWR0o9rTYQ7c"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"CKbZOOHnzUCTZJsgy1FuLkhQvnMVunE-Gx4-QIxa9qlrQm2vpI8jhmEAB0R2DsMLoG7YUiWN4B7syECn40yAOdTniqD9YgIrbnohv36uBfsSKKpgIqxNxd3mc4BQxPOEE69Ff5pGdNYy6jbnXY0zG1QB-RItwud-qCYm9NEqtK_DS79oyB_TfCodOtajEzhTbpDxXrQ-QBpHjAlktPj51ZFG9r6Ob07gDUplPDGfu7mwKbbLAt2PptQ5V7170MoUcbVin_2EfS3vk1qGZc76hj-isEKM-V6kmN_-_rZaDCoIKSEzZMHN5kG0y2SKryAitBNLTT5TTGDc5tt7OCGStQ"}]}}]
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js
new file mode 100644
index 0000000000000000000000000000000000000000..d256305d3b145522184207fdb44d7dd1e7acd8b9
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js
@@ -0,0 +1,380 @@
+var b,l=l||{};l.scope={};l.findInternal=function(a,c,d){a instanceof String&&(a=String(a));for(var e=a.length,f=0;f<e;f++){var g=a[f];if(c.call(d,g,f,a))return{i:f,v:g}}return{i:-1,v:void 0}};l.ASSUME_ES5=!1;l.ASSUME_NO_NATIVE_MAP=!1;l.ASSUME_NO_NATIVE_SET=!1;l.defineProperty=l.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,d){a!=Array.prototype&&a!=Object.prototype&&(a[c]=d.value)};
+l.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};l.global=l.getGlobal(this);l.polyfill=function(a,c){if(c){var d=l.global;a=a.split(".");for(var e=0;e<a.length-1;e++){var f=a[e];f in d||(d[f]={});d=d[f]}a=a[a.length-1];e=d[a];c=c(e);c!=e&&null!=c&&l.defineProperty(d,a,{configurable:!0,writable:!0,value:c})}};
+l.checkStringArgs=function(a,c,d){if(null==a)throw new TypeError("The 'this' value for String.prototype."+d+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+d+" must not be a regular expression");return a+""};var n=n||{};n.global=this;n.isDef=function(a){return void 0!==a};n.isString=function(a){return"string"==typeof a};n.isBoolean=function(a){return"boolean"==typeof a};n.isNumber=function(a){return"number"==typeof a};
+n.exportPath_=function(a,c,d){a=a.split(".");d=d||n.global;a[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&n.isDef(c)?d[e]=c:d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}};n.define=function(a,c){n.exportPath_(a,c)};n.DEBUG=!0;n.LOCALE="en";n.TRUSTED_SITE=!0;n.STRICT_MODE_COMPATIBLE=!1;n.DISALLOW_TEST_ONLY_CODE=!n.DEBUG;n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
+n.provide=function(a){if(n.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");n.constructNamespace_(a)};n.constructNamespace_=function(a,c){n.exportPath_(a,c)};n.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+n.module=function(a){if(!n.isString(a)||!a||-1==a.search(n.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!n.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(n.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+n.moduleLoaderState_.moduleName=a};n.module.get=function(){return null};n.module.getInternal_=function(){return null};n.moduleLoaderState_=null;n.isInModuleLoader_=function(){return null!=n.moduleLoaderState_};n.module.declareLegacyNamespace=function(){n.moduleLoaderState_.declareLegacyNamespace=!0};n.setTestOnly=function(a){if(n.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};n.forwardDeclare=function(){};
+n.getObjectByName=function(a){a=a.split(".");for(var c=n.global,d=0;d<a.length;d++)if(c=c[a[d]],!n.isDefAndNotNull(c))return null;return c};n.globalize=function(a,c){c=c||n.global;for(var d in a)c[d]=a[d]};n.addDependency=function(a,c,d,e){if(n.DEPENDENCIES_ENABLED){var f=n.getLoader_();f&&f.addDependency(a,c,d,e)}};n.useStrictRequires=!1;n.ENABLE_DEBUG_LOADER=!0;n.logToConsole_=function(a){n.global.console&&n.global.console.error(a)};n.require=function(a){n.ENABLE_DEBUG_LOADER&&n.debugLoader_&&n.getLoader_().earlyProcessLoad(a)};
+n.basePath="";n.nullFunction=function(){};n.abstractMethod=function(){throw Error("unimplemented abstract method");};n.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;n.DEBUG&&(n.instantiatedSingletons_[n.instantiatedSingletons_.length]=a);return a.instance_=new a}};n.instantiatedSingletons_=[];n.LOAD_MODULE_USING_EVAL=!0;n.SEAL_MODULE_EXPORTS=n.DEBUG;n.loadedModules_={};n.DEPENDENCIES_ENABLED=!1;n.TRANSPILE="detect";n.TRANSPILER="transpile.js";
+n.DEBUG_LOADER="";n.hasBadLetScoping=null;n.useSafari10Workaround=function(){if(null==n.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){a=!1}n.hasBadLetScoping=a}return n.hasBadLetScoping};n.workaroundSafari10EvalBug=function(a){return"(function(){"+a+"\n;})();\n"};
+n.loadModule=function(a){var c=n.moduleLoaderState_;try{n.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1};if(n.isFunction(a))var d=a.call(void 0,{});else if(n.isString(a))n.useSafari10Workaround()&&(a=n.workaroundSafari10EvalBug(a)),d=n.loadModuleFromSource_.call(void 0,a);else throw Error("Invalid module definition");var e=n.moduleLoaderState_.moduleName;if(n.isString(e)&&e)n.moduleLoaderState_.declareLegacyNamespace?n.constructNamespace_(e,d):n.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==
+typeof d&&null!=d&&Object.seal(d),n.loadedModules_[e]=d;else throw Error('Invalid module name "'+e+'"');}finally{n.moduleLoaderState_=c}};n.loadModuleFromSource_=function(a){eval(a);return{}};n.normalizePath_=function(a){a=a.split("/");for(var c=0;c<a.length;)"."==a[c]?a.splice(c,1):c&&".."==a[c]&&a[c-1]&&".."!=a[c-1]?a.splice(--c,2):c++;return a.join("/")};
+n.loadFileSync_=function(a){if(n.global.CLOSURE_LOAD_FILE_SYNC)return n.global.CLOSURE_LOAD_FILE_SYNC(a);try{var c=new n.global.XMLHttpRequest;c.open("get",a,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
+n.transpile_=function(a,c){var d=n.global.$jscomp;d||(n.global.$jscomp=d={});var e=d.transpile;if(!e){var f=n.basePath+n.TRANSPILER,g=n.loadFileSync_(f);if(g){(function(){eval(g+"\n//# sourceURL="+f)}).call(n.global);if(n.global.$gwtExport&&n.global.$gwtExport.$jscomp&&!n.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(n.global.$gwtExport));n.global.$jscomp.transpile=n.global.$gwtExport.$jscomp.transpile;
+d=n.global.$jscomp;e=d.transpile}}if(!e){var h=" requires transpilation but no transpiler was found.";h+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';e=d.transpile=function(a,c){n.logToConsole_(c+h);return a}}return e(a,c)};
+n.typeOf=function(a){var c=typeof a;if("object"==c)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return c;var d=Object.prototype.toString.call(a);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
+else if("function"==c&&"undefined"==typeof a.call)return"object";return c};n.isNull=function(a){return null===a};n.isDefAndNotNull=function(a){return null!=a};n.isArray=function(a){return"array"==n.typeOf(a)};n.isArrayLike=function(a){var c=n.typeOf(a);return"array"==c||"object"==c&&"number"==typeof a.length};n.isDateLike=function(a){return n.isObject(a)&&"function"==typeof a.getFullYear};n.isFunction=function(a){return"function"==n.typeOf(a)};
+n.isObject=function(a){var c=typeof a;return"object"==c&&null!=a||"function"==c};n.getUid=function(a){return a[n.UID_PROPERTY_]||(a[n.UID_PROPERTY_]=++n.uidCounter_)};n.hasUid=function(a){return!!a[n.UID_PROPERTY_]};n.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(n.UID_PROPERTY_);try{delete a[n.UID_PROPERTY_]}catch(c){}};n.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);n.uidCounter_=0;n.getHashCode=n.getUid;n.removeHashCode=n.removeUid;
+n.cloneObject=function(a){var c=n.typeOf(a);if("object"==c||"array"==c){if("function"===typeof a.clone)return a.clone();c="array"==c?[]:{};for(var d in a)c[d]=n.cloneObject(a[d]);return c}return a};n.bindNative_=function(a,c,d){return a.call.apply(a.bind,arguments)};
+n.bindJs_=function(a,c,d){if(!a)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return a.apply(c,d)}}return function(){return a.apply(c,arguments)}};n.bind=function(a,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?n.bind=n.bindNative_:n.bind=n.bindJs_;return n.bind.apply(null,arguments)};
+n.partial=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return a.apply(this,c)}};n.mixin=function(a,c){for(var d in c)a[d]=c[d]};n.now=n.TRUSTED_SITE&&Date.now||function(){return+new Date};
+n.globalEval=function(a){if(n.global.execScript)n.global.execScript(a,"JavaScript");else if(n.global.eval){if(null==n.evalWorksForGlobals_){try{n.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof n.global._evalTest_){try{delete n.global._evalTest_}catch(e){}n.evalWorksForGlobals_=!0}else n.evalWorksForGlobals_=!1}if(n.evalWorksForGlobals_)n.global.eval(a);else{var c=n.global.document,d=c.createElement("SCRIPT");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(a));
+c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};n.evalWorksForGlobals_=null;
+n.getCssName=function(a,c){if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var d=function(a){return n.cssNameMapping_[a]||a},e=function(a){a=a.split("-");for(var c=[],e=0;e<a.length;e++)c.push(d(a[e]));return c.join("-")};e=n.cssNameMapping_?"BY_WHOLE"==n.cssNameMappingStyle_?d:e:function(a){return a};a=c?a+"-"+e(c):e(a);return n.global.CLOSURE_CSS_NAME_MAP_FN?n.global.CLOSURE_CSS_NAME_MAP_FN(a):a};
+n.setCssNameMapping=function(a,c){n.cssNameMapping_=a;n.cssNameMappingStyle_=c};n.getMsg=function(a,c){c&&(a=a.replace(/\{\$([^}]+)}/g,function(a,e){return null!=c&&e in c?c[e]:a}));return a};n.getMsgWithFallback=function(a){return a};n.exportSymbol=function(a,c,d){n.exportPath_(a,c,d)};n.exportProperty=function(a,c,d){a[c]=d};
+n.inherits=function(a,c){function d(){}d.prototype=c.prototype;a.superClass_=c.prototype;a.prototype=new d;a.prototype.constructor=a;a.base=function(a,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(a,e)}};
+n.base=function(a,c,d){var e=arguments.callee.caller;if(n.STRICT_MODE_COMPATIBLE||n.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(a,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=
+a.constructor;h;h=h.superClass_&&h.superClass_.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(a,f);if(a[c]===e)return a.constructor.prototype[c].apply(a,f);throw Error("goog.base called from a method of one name to a method of a different name");};n.scope=function(a){if(n.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");a.call(n.global)};
+n.defineClass=function(a,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=n.defineClass.createSealingConstructor_(d,a);a&&n.inherits(d,a);delete c.constructor;delete c.statics;n.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):n.defineClass.applyProperties_(d,e));return d};n.defineClass.SEAL_CLASS_INSTANCES=n.DEBUG;
+n.defineClass.createSealingConstructor_=function(a,c){if(!n.defineClass.SEAL_CLASS_INSTANCES)return a;var d=!n.defineClass.isUnsealable_(c),e=function(){var c=a.apply(this,arguments)||this;c[n.UID_PROPERTY_]=c[n.UID_PROPERTY_];this.constructor===e&&d&&Object.seal instanceof Function&&Object.seal(c);return c};return e};n.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};n.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+n.defineClass.applyProperties_=function(a,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d]);for(var e=0;e<n.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=n.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])};n.tagUnsealableClass=function(){};n.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
+if(n.DEPENDENCIES_ENABLED){n.inHtmlDocument_=function(){var a=n.global.document;return null!=a&&"write"in a};n.findBasePath_=function(){if(n.isDef(n.global.CLOSURE_BASE_PATH)&&n.isString(n.global.CLOSURE_BASE_PATH))n.basePath=n.global.CLOSURE_BASE_PATH;else if(n.inHtmlDocument_()){var a=n.global.document,c=a.currentScript;a=c?[c]:a.getElementsByTagName("SCRIPT");for(c=a.length-1;0<=c;--c){var d=a[c].src,e=d.lastIndexOf("?");e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){n.basePath=d.substr(0,e-
+7);break}}}};n.findBasePath_();n.Transpiler=function(){this.requiresTranspilation_=null};n.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,c){e?d[a]=!0:c()?d[a]=!1:e=d[a]=!0}function c(a){try{return!!eval(a)}catch(h){return!1}}var d={es3:!1},e=!1,f=n.global.navigator&&n.global.navigator.userAgent?n.global.navigator.userAgent:"";a("es5",function(){return c("[1,].length==1")});a("es6",function(){var a=f.match(/Edge\/(\d+)(\.\d)*/i);return a&&15>Number(a[1])?!1:c('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});
+a("es6-impl",function(){return!0});a("es7",function(){return c("2 ** 2 == 4")});a("es8",function(){return c("async () => 1, true")});a("es_next",function(){return c("({...rest} = {}), true")});return d};n.Transpiler.prototype.needsTranspile=function(a){if("always"==n.TRANSPILE)return!0;if("never"==n.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a];throw Error("Unknown language mode: "+
+a);};n.Transpiler.prototype.transpile=function(a,c){return n.transpile_(a,c)};n.transpiler_=new n.Transpiler;n.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.lastNonModuleScriptIndex_=0};n.DebugLoader.IS_OLD_IE_=!(n.global.atob||!n.global.document||!n.global.document.all);b=n.DebugLoader.prototype;b.earlyProcessLoad=function(a){n.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(a)};b.load=function(a){var c=this.getPathFromDeps_(a);
+if(c){var d=[],e={},f=this.dependencies_,g=this,h=function(a){if(!(a in f.written||a in f.visited)){f.visited[a]=!0;if(a in f.requires)for(var c in f.requires[a])if(!g.isProvided(c))if(c in f.nameToPath)h(f.nameToPath[c]);else throw Error("Undefined nameToPath for "+c);a in e||(e[a]=!0,d.push(a))}};h(c);for(a=0;a<d.length;a++)c=d[a],this.dependencies_.written[c]=!0;for(a=0;a<d.length;a++)if(c=d[a]){var k=f.loadFlags[c]||{},m=this.getTranspiler().needsTranspile(k.lang||"es3");"goog"==k.module||m?this.importProcessedScript_(n.basePath+
+c,"goog"==k.module,m):this.importScript_(n.basePath+c)}else throw Error("Undefined script input");}else if(a="goog.require could not find: "+a,this.logToConsole(a),n.useStrictRequires)throw Error(a);};b.addDependency=function(a,c,d,e){var f;a=a.replace(/\\/g,"/");var g=this.dependencies_;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.nameToPath[f]=a,g.loadFlags[a]=e;for(e=0;c=d[e];e++)a in g.requires||(g.requires[a]={}),g.requires[a][c]=!0};b.importScript_=function(a,c){(n.global.CLOSURE_IMPORT_SCRIPT||
+n.bind(this.writeScriptTag_,this))(a,c)&&(this.dependencies_.written[a]=!0)};b.importProcessedScript_=function(a,c,d){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+a+'", '+c+", "+d+");")};b.maybeProcessDeferredDep_=function(a){this.isDeferredModule_(a)&&this.allDepsAreAvailable_(a)&&this.maybeProcessDeferredPath_(n.basePath+this.getPathFromDeps_(a))};b.isDeferredModule_=function(a){var c=(a=this.getPathFromDeps_(a))&&this.dependencies_.loadFlags[a]||{},d=c.lang||"es3";return a&&("goog"==
+c.module||this.getTranspiler().needsTranspile(d))?n.basePath+a in this.dependencies_.deferred:!1};b.allDepsAreAvailable_=function(a){if((a=this.getPathFromDeps_(a))&&a in this.dependencies_.requires)for(var c in this.dependencies_.requires[a])if(!this.isProvided(c)&&!this.isDeferredModule_(c))return!1;return!0};b.maybeProcessDeferredPath_=function(a){if(a in this.dependencies_.deferred){var c=this.dependencies_.deferred[a];delete this.dependencies_.deferred[a];n.globalEval(c)}};b.writeScriptSrcNode_=
+function(a){n.global.document.write('<script type="text/javascript" src="'+a+'">\x3c/script>')};b.appendScriptSrcNode_=function(a){var c=n.global.document,d=c.createElement("script");d.type="text/javascript";d.src=a;d.defer=!1;d.async=!1;c.head.appendChild(d)};b.writeScriptTag_=function(a,c){if(this.inHtmlDocument()){var d=n.global.document;if(!n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==d.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');
+}void 0===c?n.DebugLoader.IS_OLD_IE_?(c=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",d.write('<script type="text/javascript" src="'+a+'"'+c+">\x3c/script>")):n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?this.appendScriptSrcNode_(a):this.writeScriptSrcNode_(a):d.write('<script type="text/javascript">'+this.protectScriptTag_(c)+"\x3c/script>");return!0}return!1};b.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")};b.getPathFromDeps_=
+function(a){return a in this.dependencies_.nameToPath?this.dependencies_.nameToPath[a]:null};b.getTranspiler=function(){return n.transpiler_};b.isProvided=function(a){return n.isProvided_(a)};b.inHtmlDocument=function(){return n.inHtmlDocument_()};b.logToConsole=function(a){n.logToConsole_(a)};n.debugLoader_=null;n.registerDebugLoader=function(){var a=q;if(n.debugLoader_)throw Error("Debug loader already registered!");if(!(a instanceof n.DebugLoader))throw Error("Not a goog.DebugLoader.");n.debugLoader_=
+a};n.getLoader_=function(){if(!n.debugLoader_&&n.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");n.debugLoader_||(n.debugLoader_=new n.DebugLoader);return n.debugLoader_};var q;n.DEBUG_LOADER&&(q=new n.DebugLoader,q.importScript_(n.basePath+n.DEBUG_LOADER));n.global.CLOSURE_NO_DEPS||(q=q||new n.DebugLoader,n.DEBUG_LOADER||n.registerDebugLoader(),q.importScript_(n.basePath+"deps.js"))};n.craw={};n.craw.AppBackgroundDelegate=function(){};n.craw.AppBackgroundDelegate.impl_=n.craw.AppBackgroundDelegate;n.craw.AppBackgroundDelegate.setImpl=function(){n.craw.AppBackgroundDelegate.impl_=u.BackgroundDelegate};n.craw.AppBackgroundDelegate.createImpl=function(){return new n.craw.AppBackgroundDelegate.impl_};n.craw.AppBackgroundDelegate.prototype.getWindowBounds=function(){};n.craw.WindowConfig=function(a,c){this.url_=a;this.useAuth_=c};n.craw.WindowConfig.prototype.getUrl=function(){return this.url_};n.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};var u={Errors:{}};u.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};u.Errors.getErrorResponse=function(a){return{request:{},response:{errorType:a}}};n.debug={};n.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,n.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a))};n.inherits(n.debug.Error,Error);n.debug.Error.prototype.name="CustomError";n.dom={};n.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};n.asserts={};n.asserts.ENABLE_ASSERTS=n.DEBUG;n.asserts.AssertionError=function(a,c){n.debug.Error.call(this,n.asserts.subs_(a,c))};n.inherits(n.asserts.AssertionError,n.debug.Error);n.asserts.AssertionError.prototype.name="AssertionError";n.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};n.asserts.errorHandler_=n.asserts.DEFAULT_ERROR_HANDLER;n.asserts.subs_=function(a,c){a=a.split("%s");for(var d="",e=a.length-1,f=0;f<e;f++)d+=a[f]+(f<c.length?c[f]:"%s");return d+a[e]};
+n.asserts.doAssertFailure_=function(a,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else a&&(f+=": "+a,g=c);a=new n.asserts.AssertionError(""+f,g||[]);n.asserts.errorHandler_(a)};n.asserts.setErrorHandler=function(a){n.asserts.ENABLE_ASSERTS&&(n.asserts.errorHandler_=a)};n.asserts.assert=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!a&&n.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.fail=function(a,c){n.asserts.ENABLE_ASSERTS&&n.asserts.errorHandler_(new n.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};n.asserts.assertNumber=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isNumber(a)&&n.asserts.doAssertFailure_("Expected number but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertString=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isString(a)&&n.asserts.doAssertFailure_("Expected string but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};n.asserts.assertFunction=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isFunction(a)&&n.asserts.doAssertFailure_("Expected function but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertObject=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isObject(a)&&n.asserts.doAssertFailure_("Expected object but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};n.asserts.assertArray=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isArray(a)&&n.asserts.doAssertFailure_("Expected array but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertBoolean=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isBoolean(a)&&n.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};n.asserts.assertElement=function(a,c,d){!n.asserts.ENABLE_ASSERTS||n.isObject(a)&&a.nodeType==n.dom.NodeType.ELEMENT||n.asserts.doAssertFailure_("Expected Element but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertInstanceof=function(a,c,d,e){!n.asserts.ENABLE_ASSERTS||a instanceof c||n.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[n.asserts.getType_(c),n.asserts.getType_(a)],d,Array.prototype.slice.call(arguments,3));return a};n.asserts.assertFinite=function(a,c,d){!n.asserts.ENABLE_ASSERTS||"number"==typeof a&&isFinite(a)||n.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)n.asserts.fail(a+" should not be enumerable in Object.prototype.")};n.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};n.array={};n.NATIVE_ARRAY_PROTOTYPES=n.TRUSTED_SITE;n.array.ASSUME_NATIVE_FUNCTIONS=!1;n.array.peek=function(a){return a[a.length-1]};n.array.last=n.array.peek;
+n.array.indexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,c,d)}:function(a,c,d){d=null==d?0:0>d?Math.max(0,a.length+d):d;if(n.isString(a))return n.isString(c)&&1==c.length?a.indexOf(c,d):-1;for(;d<a.length;d++)if(d in a&&a[d]===c)return d;return-1};
+n.array.lastIndexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,c,null==d?a.length-1:d)}:function(a,c,d){d=null==d?a.length-1:d;0>d&&(d=Math.max(0,a.length+d));if(n.isString(a))return n.isString(c)&&1==c.length?a.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in a&&a[d]===c)return d;return-1};
+n.array.forEach=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,c,d){n.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)g in f&&c.call(d,f[g],g,a)};n.array.forEachRight=function(a,c){var d=a.length,e=n.isString(a)?a.split(""):a;for(--d;0<=d;--d)d in e&&c.call(void 0,e[d],d,a)};
+n.array.filter=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=[],g=0,h=n.isString(a)?a.split(""):a,k=0;k<e;k++)if(k in h){var m=h[k];c.call(d,m,k,a)&&(f[g++]=m)}return f};
+n.array.map=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.map.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Array(e),g=n.isString(a)?a.split(""):a,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,a));return f};
+n.array.reduce=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,c,d,e){n.asserts.assert(null!=a.length);e&&(c=n.bind(c,e));return Array.prototype.reduce.call(a,c,d)}:function(a,c,d,e){var f=d;n.array.forEach(a,function(d,h){f=c.call(e,f,d,h,a)});return f};
+n.array.reduceRight=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,c,d,e){n.asserts.assert(null!=a.length);n.asserts.assert(null!=c);e&&(c=n.bind(c,e));return Array.prototype.reduceRight.call(a,c,d)}:function(a,c,d,e){var f=d;n.array.forEachRight(a,function(d,h){f=c.call(e,f,d,h,a)});return f};
+n.array.some=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.some.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return!0;return!1};
+n.array.every=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.every.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,a))return!1;return!0};n.array.count=function(a,c,d){var e=0;n.array.forEach(a,function(a,g,h){c.call(d,a,g,h)&&++e},d);return e};
+n.array.find=function(a,c,d){c=n.array.findIndex(a,c,d);return 0>c?null:n.isString(a)?a.charAt(c):a[c]};n.array.findIndex=function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return g;return-1};n.array.findRight=function(a,c,d){c=n.array.findIndexRight(a,c,d);return 0>c?null:n.isString(a)?a.charAt(c):a[c]};
+n.array.findIndexRight=function(a,c,d){var e=a.length,f=n.isString(a)?a.split(""):a;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,a))return e;return-1};n.array.contains=function(a,c){return 0<=n.array.indexOf(a,c)};n.array.isEmpty=function(a){return 0==a.length};n.array.clear=function(a){if(!n.isArray(a))for(var c=a.length-1;0<=c;c--)delete a[c];a.length=0};n.array.insert=function(a,c){n.array.contains(a,c)||a.push(c)};n.array.insertAt=function(a,c,d){n.array.splice(a,d,0,c)};
+n.array.insertArrayAt=function(a,c,d){n.partial(n.array.splice,a,d,0).apply(null,c)};n.array.insertBefore=function(a,c,d){var e;2==arguments.length||0>(e=n.array.indexOf(a,d))?a.push(c):n.array.insertAt(a,c,e)};n.array.remove=function(a,c){c=n.array.indexOf(a,c);var d;(d=0<=c)&&n.array.removeAt(a,c);return d};n.array.removeLast=function(a,c){c=n.array.lastIndexOf(a,c);return 0<=c?(n.array.removeAt(a,c),!0):!1};
+n.array.removeAt=function(a,c){n.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,c,1).length};n.array.removeIf=function(a,c,d){c=n.array.findIndex(a,c,d);return 0<=c?(n.array.removeAt(a,c),!0):!1};n.array.removeAllIf=function(a,c,d){var e=0;n.array.forEachRight(a,function(f,g){c.call(d,f,g,a)&&n.array.removeAt(a,g)&&e++});return e};n.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};n.array.join=function(a){return Array.prototype.concat.apply([],arguments)};
+n.array.toArray=function(a){var c=a.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=a[e];return d}return[]};n.array.clone=n.array.toArray;n.array.extend=function(a,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(n.isArrayLike(e)){var f=a.length||0,g=e.length||0;a.length=f+g;for(var h=0;h<g;h++)a[f+h]=e[h]}else a.push(e)}};n.array.splice=function(a,c,d,e){n.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,n.array.slice(arguments,1))};
+n.array.slice=function(a,c,d){n.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,c):Array.prototype.slice.call(a,c,d)};n.array.removeDuplicates=function(a,c){c=c||a;for(var d={},e=0,f=0;f<a.length;){var g=a[f++];var h=g;h=n.isObject(h)?"o"+n.getUid(h):(typeof h).charAt(0)+h;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};n.array.binarySearch=function(a,c,d){return n.array.binarySearch_(a,d||n.array.defaultCompare,!1,c)};
+n.array.binarySelect=function(a,c,d){return n.array.binarySearch_(a,c,!0,void 0,d)};n.array.binarySearch_=function(a,c,d,e,f){for(var g=0,h=a.length,k;g<h;){var m=g+h>>1;var p=d?c.call(f,a[m],m,a):c(e,a[m]);0<p?g=m+1:(h=m,k=!p)}return k?g:~g};n.array.sort=function(a,c){a.sort(c||n.array.defaultCompare)};
+n.array.stableSort=function(a,c){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]={index:e,value:a[e]};var f=c||n.array.defaultCompare;n.array.sort(d,function(a,c){return f(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value};n.array.sortByKey=function(a,c,d){var e=d||n.array.defaultCompare;n.array.sort(a,function(a,d){return e(c(a),c(d))})};n.array.sortObjectsByKey=function(a,c,d){n.array.sortByKey(a,function(a){return a[c]},d)};
+n.array.isSorted=function(a){for(var c=n.array.defaultCompare,d=1;d<a.length;d++)if(0<c(a[d-1],a[d]))return!1;return!0};n.array.equals=function(a,c,d){if(!n.isArrayLike(a)||!n.isArrayLike(c)||a.length!=c.length)return!1;var e=a.length;d=d||n.array.defaultCompareEquality;for(var f=0;f<e;f++)if(!d(a[f],c[f]))return!1;return!0};
+n.array.compare3=function(a,c,d){d=d||n.array.defaultCompare;for(var e=Math.min(a.length,c.length),f=0;f<e;f++){var g=d(a[f],c[f]);if(0!=g)return g}return n.array.defaultCompare(a.length,c.length)};n.array.defaultCompare=function(a,c){return a>c?1:a<c?-1:0};n.array.inverseDefaultCompare=function(a,c){return-n.array.defaultCompare(a,c)};n.array.defaultCompareEquality=function(a,c){return a===c};
+n.array.binaryInsert=function(a,c,d){d=n.array.binarySearch(a,c,d);return 0>d?(n.array.insertAt(a,c,-(d+1)),!0):!1};n.array.binaryRemove=function(a,c,d){c=n.array.binarySearch(a,c,d);return 0<=c?n.array.removeAt(a,c):!1};n.array.bucket=function(a,c,d){for(var e={},f=0;f<a.length;f++){var g=a[f],h=c.call(d,g,f,a);n.isDef(h)&&(e[h]||(e[h]=[])).push(g)}return e};n.array.toObject=function(a,c,d){var e={};n.array.forEach(a,function(f,g){e[c.call(d,f,g,a)]=f});return e};
+n.array.range=function(a,c,d){var e=[],f=0,g=a;d=d||1;void 0!==c&&(f=a,g=c);if(0>d*(g-f))return[];if(0<d)for(a=f;a<g;a+=d)e.push(a);else for(a=f;a>g;a+=d)e.push(a);return e};n.array.repeat=function(a,c){for(var d=[],e=0;e<c;e++)d[e]=a;return d};n.array.flatten=function(a){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(n.isArray(e))for(var f=0;f<e.length;f+=8192){var g=n.array.slice(e,f,f+8192);g=n.array.flatten.apply(null,g);for(var h=0;h<g.length;h++)c.push(g[h])}else c.push(e)}return c};
+n.array.rotate=function(a,c){n.asserts.assert(null!=a.length);a.length&&(c%=a.length,0<c?Array.prototype.unshift.apply(a,a.splice(-c,c)):0>c&&Array.prototype.push.apply(a,a.splice(0,-c)));return a};n.array.moveItem=function(a,c,d){n.asserts.assert(0<=c&&c<a.length);n.asserts.assert(0<=d&&d<a.length);c=Array.prototype.splice.call(a,c,1);Array.prototype.splice.call(a,d,0,c[0])};
+n.array.zip=function(a){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};n.array.shuffle=function(a,c){c=c||Math.random;for(var d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};n.array.copyByIndex=function(a,c){var d=[];n.array.forEach(c,function(c){d.push(a[c])});return d};
+n.array.concatMap=function(a,c,d){return n.array.concat.apply([],n.array.map(a,c,d))};n.debug.errorcontext={};n.debug.errorcontext.addErrorContext=function(a,c,d){a[n.debug.errorcontext.CONTEXT_KEY_]||(a[n.debug.errorcontext.CONTEXT_KEY_]={});a[n.debug.errorcontext.CONTEXT_KEY_][c]=d};n.debug.errorcontext.getErrorContext=function(a){return a[n.debug.errorcontext.CONTEXT_KEY_]||{}};n.debug.errorcontext.CONTEXT_KEY_="__closure__error__context__984382";n.string={};n.string.DETECT_DOUBLE_ESCAPING=!1;n.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;n.string.Unicode={NBSP:"\u00a0"};n.string.startsWith=function(a,c){return 0==a.lastIndexOf(c,0)};n.string.endsWith=function(a,c){var d=a.length-c.length;return 0<=d&&a.indexOf(c,d)==d};n.string.caseInsensitiveStartsWith=function(a,c){return 0==n.string.caseInsensitiveCompare(c,a.substr(0,c.length))};
+n.string.caseInsensitiveEndsWith=function(a,c){return 0==n.string.caseInsensitiveCompare(c,a.substr(a.length-c.length,c.length))};n.string.caseInsensitiveEquals=function(a){return n.net.XhrIo.CONTENT_TYPE_HEADER.toLowerCase()==a.toLowerCase()};n.string.subs=function(a,c){for(var d=a.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};
+n.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};n.string.isEmptyOrWhitespace=function(a){return/^[\s\xa0]*$/.test(a)};n.string.isEmptyString=function(a){return 0==a.length};n.string.isEmpty=n.string.isEmptyOrWhitespace;n.string.isEmptyOrWhitespaceSafe=function(a){return n.string.isEmptyOrWhitespace(n.string.makeSafe(a))};n.string.isEmptySafe=n.string.isEmptyOrWhitespaceSafe;n.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};
+n.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};n.string.isNumeric=function(a){return!/[^0-9]/.test(a)};n.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};n.string.isSpace=function(a){return" "==a};n.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};n.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};n.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};
+n.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};n.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};n.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};n.string.trim=n.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};n.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};
+n.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};n.string.caseInsensitiveCompare=function(a,c){a=String(a).toLowerCase();c=String(c).toLowerCase();return a<c?-1:a==c?0:1};
+n.string.numberAwareCompare_=function(a,c,d){if(a==c)return 0;if(!a)return-1;if(!c)return 1;for(var e=a.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var k=f[h];if(d!=k)return a=parseInt(d,10),!isNaN(a)&&(c=parseInt(k,10),!isNaN(c)&&a-c)?a-c:d<k?-1:1}return e.length!=f.length?e.length-f.length:a<c?-1:1};n.string.intAwareCompare=function(a,c){return n.string.numberAwareCompare_(a,c,/\d+|\D+/g)};
+n.string.floatAwareCompare=function(a,c){return n.string.numberAwareCompare_(a,c,/\d+|\.\d+|\D+/g)};n.string.numerateCompare=n.string.floatAwareCompare;n.string.urlEncode=function(a){return encodeURIComponent(String(a))};n.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};n.string.newLineToBr=function(a,c){return a.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
+n.string.htmlEscape=function(a){if(!n.string.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(n.string.AMP_RE_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(n.string.LT_RE_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(n.string.GT_RE_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(n.string.QUOT_RE_,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(n.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(n.string.NULL_RE_,"&#0;"));n.string.DETECT_DOUBLE_ESCAPING&&-1!=a.indexOf("e")&&(a=a.replace(n.string.E_RE_,
+"&#101;"));return a};n.string.AMP_RE_=/&/g;n.string.LT_RE_=/</g;n.string.GT_RE_=/>/g;n.string.QUOT_RE_=/"/g;n.string.SINGLE_QUOTE_RE_=/'/g;n.string.NULL_RE_=/\x00/g;n.string.E_RE_=/e/g;n.string.ALL_RE_=n.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;n.string.unescapeEntities=function(a){return n.string.contains(a,"&")?!n.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in n.global?n.string.unescapeEntitiesUsingDom_(a):n.string.unescapePureXmlEntities_(a):a};
+n.string.unescapeEntitiesWithDocument=function(a,c){return n.string.contains(a,"&")?n.string.unescapeEntitiesUsingDom_(a,c):a};
+n.string.unescapeEntitiesUsingDom_=function(a,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):n.global.document.createElement("div");return a.replace(n.string.HTML_ENTITY_PATTERN_,function(a,c){var f=d[a];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=a+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[a]=f})};
+n.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?a:String.fromCharCode(d)}})};n.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;n.string.whitespaceEscape=function(a,c){return n.string.newLineToBr(a.replace(/  /g," &#160;"),c)};n.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+n.string.Unicode.NBSP)};
+n.string.stripQuotes=function(a,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(a.charAt(0)==f&&a.charAt(a.length-1)==f)return a.substring(1,a.length-1)}return a};n.string.truncate=function(a,c,d){d&&(a=n.string.unescapeEntities(a));a.length>c&&(a=a.substring(0,c-3)+"...");d&&(a=n.string.htmlEscape(a));return a};
+n.string.truncateMiddle=function(a,c,d,e){d&&(a=n.string.unescapeEntities(a));e&&a.length>c?(e>c&&(e=c),a=a.substring(0,c-e)+"..."+a.substring(a.length-e)):a.length>c&&(e=Math.floor(c/2),a=a.substring(0,e+c%2)+"..."+a.substring(a.length-e));d&&(a=n.string.htmlEscape(a));return a};n.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};n.string.jsEscapeCache_={"'":"\\'"};
+n.string.quote=function(a){a=String(a);for(var c=['"'],d=0;d<a.length;d++){var e=a.charAt(d),f=e.charCodeAt(0);c[d+1]=n.string.specialEscapeChars_[e]||(31<f&&127>f?e:n.string.escapeChar(e))}c.push('"');return c.join("")};n.string.escapeString=function(a){for(var c=[],d=0;d<a.length;d++)c[d]=n.string.escapeChar(a.charAt(d));return c.join("")};
+n.string.escapeChar=function(a){if(a in n.string.jsEscapeCache_)return n.string.jsEscapeCache_[a];if(a in n.string.specialEscapeChars_)return n.string.jsEscapeCache_[a]=n.string.specialEscapeChars_[a];var c=a.charCodeAt(0);if(31<c&&127>c)var d=a;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return n.string.jsEscapeCache_[a]=d};n.string.contains=function(a,c){return-1!=a.indexOf(c)};
+n.string.caseInsensitiveContains=function(){return n.string.contains(n.labs.userAgent.util.getUserAgent().toLowerCase(),"webkit")};n.string.countOf=function(a,c){return a&&c?a.split(c).length-1:0};n.string.removeAt=function(a){return a};n.string.remove=function(a,c){return a.replace(c,"")};n.string.removeAll=function(a,c){c=new RegExp(n.string.regExpEscape(c),"g");return a.replace(c,"")};
+n.string.replaceAll=function(a,c,d){c=new RegExp(n.string.regExpEscape(c),"g");return a.replace(c,d.replace(/\$/g,"$$$$"))};n.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};n.string.repeat=String.prototype.repeat?function(a,c){return a.repeat(c)}:function(a,c){return Array(c+1).join(a)};
+n.string.padNumber=function(a,c,d){a=n.isDef(d)?a.toFixed(d):String(a);d=a.indexOf(".");-1==d&&(d=a.length);return n.string.repeat("0",Math.max(0,c-d))+a};n.string.makeSafe=function(a){return null==a?"":String(a)};n.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};n.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^n.now()).toString(36)};
+n.string.compareVersions=function(a,c){var d=0;a=n.string.trim(String(a)).split(".");c=n.string.trim(String(c)).split(".");for(var e=Math.max(a.length,c.length),f=0;0==d&&f<e;f++){var g=a[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=n.string.compareElements_(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||n.string.compareElements_(0==g[2].length,0==h[2].length)||n.string.compareElements_(g[2],
+h[2]);g=g[3];h=h[3]}while(0==d)}return d};n.string.compareElements_=function(a,c){return a<c?-1:a>c?1:0};n.string.hashCode=function(a){for(var c=0,d=0;d<a.length;++d)c=31*c+a.charCodeAt(d)>>>0;return c};n.string.uniqueStringCounter_=2147483648*Math.random()|0;n.string.createUniqueString=function(){return"goog_"+n.string.uniqueStringCounter_++};n.string.toNumber=function(a){var c=Number(a);return 0==c&&n.string.isEmptyOrWhitespace(a)?NaN:c};n.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};
+n.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};n.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,d){return d.toUpperCase()})};n.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};n.string.toTitleCase=function(a,c){c=n.isString(c)?n.string.regExpEscape(c):"\\s";return a.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(a,c,f){return c+f.toUpperCase()})};
+n.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};n.string.parseInt=function(a){isFinite(a)&&(a=String(a));return n.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};n.string.splitLimit=function(a,c,d){a=a.split(c);for(var e=[];0<d&&a.length;)e.push(a.shift()),d--;a.length&&e.push(a.join(c));return e};
+n.string.lastComponent=function(a,c){if(c)"string"==typeof c&&(c=[c]);else return a;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=a.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?a:a.slice(d+1)};
+n.string.editDistance=function(a,c){var d=[],e=[];if(a==c)return 0;if(!a.length||!c.length)return Math.max(a.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<a.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(a[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};n.labs={};n.labs.userAgent={};n.labs.userAgent.util={};n.labs.userAgent.util.getNativeUserAgentString_=function(){var a=n.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};n.labs.userAgent.util.getNavigator_=function(){return n.global.navigator};n.labs.userAgent.util.userAgent_=n.labs.userAgent.util.getNativeUserAgentString_();n.labs.userAgent.util.setUserAgent=function(a){n.labs.userAgent.util.userAgent_=a||n.labs.userAgent.util.getNativeUserAgentString_()};
+n.labs.userAgent.util.getUserAgent=function(){return n.labs.userAgent.util.userAgent_};n.labs.userAgent.util.matchUserAgent=function(a){return n.string.contains(n.labs.userAgent.util.getUserAgent(),a)};n.labs.userAgent.util.matchUserAgentIgnoreCase=function(){return n.string.caseInsensitiveContains()};n.labs.userAgent.util.extractVersionTuples=function(a){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(a);)d.push([e[1],e[2],e[3]||void 0]);return d};n.object={};n.object.is=function(a,c){return a===c?0!==a||1/a===1/c:a!==a&&c!==c};n.object.forEach=function(a,c,d){for(var e in a)c.call(d,a[e],e,a)};n.object.filter=function(a,c,d){var e={},f;for(f in a)c.call(d,a[f],f,a)&&(e[f]=a[f]);return e};n.object.map=function(a,c,d){var e={},f;for(f in a)e[f]=c.call(d,a[f],f,a);return e};n.object.some=function(a,c,d){for(var e in a)if(c.call(d,a[e],e,a))return!0;return!1};n.object.every=function(a,c,d){for(var e in a)if(!c.call(d,a[e],e,a))return!1;return!0};
+n.object.getCount=function(a){var c=0,d;for(d in a)c++;return c};n.object.getAnyKey=function(a){for(var c in a)return c};n.object.getAnyValue=function(a){for(var c in a)return a[c]};n.object.contains=function(a,c){return n.object.containsValue(a,c)};n.object.getValues=function(a){var c=[],d=0,e;for(e in a)c[d++]=a[e];return c};n.object.getKeys=function(a){var c=[],d=0,e;for(e in a)c[d++]=e;return c};
+n.object.getValueByKeys=function(a,c){var d=n.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==a)return;a=a[e[d]]}return a};n.object.containsKey=function(a,c){return null!==a&&c in a};n.object.containsValue=function(a,c){for(var d in a)if(a[d]==c)return!0;return!1};n.object.findKey=function(a,c,d){for(var e in a)if(c.call(d,a[e],e,a))return e};n.object.findValue=function(a,c,d){return(c=n.object.findKey(a,c,d))&&a[c]};n.object.isEmpty=function(a){for(var c in a)return!1;return!0};
+n.object.clear=function(a){for(var c in a)delete a[c]};n.object.remove=function(a,c){var d;(d=c in a)&&delete a[c];return d};n.object.add=function(a,c,d){if(null!==a&&c in a)throw Error('The object already contains the key "'+c+'"');n.object.set(a,c,d)};n.object.get=function(a,c,d){return null!==a&&c in a?a[c]:d};n.object.set=function(a,c,d){a[c]=d};n.object.setIfUndefined=function(a,c,d){return c in a?a[c]:a[c]=d};
+n.object.setWithReturnValueIfNotSet=function(a,c,d){if(c in a)return a[c];d=d();return a[c]=d};n.object.equals=function(a,c){for(var d in a)if(!(d in c)||a[d]!==c[d])return!1;for(d in c)if(!(d in a))return!1;return!0};n.object.clone=function(a){var c={},d;for(d in a)c[d]=a[d];return c};n.object.unsafeClone=function(a){var c=n.typeOf(a);if("object"==c||"array"==c){if(n.isFunction(a.clone))return a.clone();c="array"==c?[]:{};for(var d in a)c[d]=n.object.unsafeClone(a[d]);return c}return a};
+n.object.transpose=function(a){var c={},d;for(d in a)c[a[d]]=d;return c};n.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");n.object.extend=function(a,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)a[d]=e[d];for(var g=0;g<n.object.PROTOTYPE_FIELDS_.length;g++)d=n.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(a[d]=e[d])}};
+n.object.create=function(a){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};n.object.createSet=function(a){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};
+n.object.createImmutableView=function(a){var c=a;Object.isFrozen&&!Object.isFrozen(a)&&(c=Object.create(a),Object.freeze(c));return c};n.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};
+n.object.getAllPropertyNames=function(a,c,d){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return n.object.getKeys(a);for(var e={};a&&(a!==Object.prototype||c)&&(a!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(a),g=0;g<f.length;g++)e[f[g]]=!0;a=Object.getPrototypeOf(a)}return n.object.getKeys(e)};n.labs.userAgent.browser={};n.labs.userAgent.browser.matchOpera_=function(){return n.labs.userAgent.util.matchUserAgent("Opera")};n.labs.userAgent.browser.matchIE_=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.browser.matchEdge_=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.browser.matchFirefox_=function(){return n.labs.userAgent.util.matchUserAgent("Firefox")};
+n.labs.userAgent.browser.matchSafari_=function(){return n.labs.userAgent.util.matchUserAgent("Safari")&&!(n.labs.userAgent.browser.matchChrome_()||n.labs.userAgent.browser.matchCoast_()||n.labs.userAgent.browser.matchOpera_()||n.labs.userAgent.browser.matchEdge_()||n.labs.userAgent.browser.isSilk()||n.labs.userAgent.util.matchUserAgent("Android"))};n.labs.userAgent.browser.matchCoast_=function(){return n.labs.userAgent.util.matchUserAgent("Coast")};
+n.labs.userAgent.browser.matchIosWebview_=function(){return(n.labs.userAgent.util.matchUserAgent("iPad")||n.labs.userAgent.util.matchUserAgent("iPhone"))&&!n.labs.userAgent.browser.matchSafari_()&&!n.labs.userAgent.browser.matchChrome_()&&!n.labs.userAgent.browser.matchCoast_()&&n.labs.userAgent.util.matchUserAgent("AppleWebKit")};n.labs.userAgent.browser.matchChrome_=function(){return(n.labs.userAgent.util.matchUserAgent("Chrome")||n.labs.userAgent.util.matchUserAgent("CriOS"))&&!n.labs.userAgent.browser.matchEdge_()};
+n.labs.userAgent.browser.matchAndroidBrowser_=function(){return n.labs.userAgent.util.matchUserAgent("Android")&&!(n.labs.userAgent.browser.isChrome()||n.labs.userAgent.browser.isFirefox()||n.labs.userAgent.browser.isOpera()||n.labs.userAgent.browser.isSilk())};n.labs.userAgent.browser.isOpera=n.labs.userAgent.browser.matchOpera_;n.labs.userAgent.browser.isIE=n.labs.userAgent.browser.matchIE_;n.labs.userAgent.browser.isEdge=n.labs.userAgent.browser.matchEdge_;n.labs.userAgent.browser.isFirefox=n.labs.userAgent.browser.matchFirefox_;
+n.labs.userAgent.browser.isSafari=n.labs.userAgent.browser.matchSafari_;n.labs.userAgent.browser.isCoast=n.labs.userAgent.browser.matchCoast_;n.labs.userAgent.browser.isIosWebview=n.labs.userAgent.browser.matchIosWebview_;n.labs.userAgent.browser.isChrome=n.labs.userAgent.browser.matchChrome_;n.labs.userAgent.browser.isAndroidBrowser=n.labs.userAgent.browser.matchAndroidBrowser_;n.labs.userAgent.browser.isSilk=function(){return n.labs.userAgent.util.matchUserAgent("Silk")};
+n.labs.userAgent.browser.getVersion=function(){function a(a){a=n.array.find(a,e);return d[a]||""}var c=n.labs.userAgent.util.getUserAgent();if(n.labs.userAgent.browser.isIE())return n.labs.userAgent.browser.getIEVersion_(c);c=n.labs.userAgent.util.extractVersionTuples(c);var d={};n.array.forEach(c,function(a){d[a[0]]=a[1]});var e=n.partial(n.object.containsKey,d);return n.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):n.labs.userAgent.browser.isEdge()?a(["Edge"]):n.labs.userAgent.browser.isChrome()?
+a(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};n.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.browser.getVersion(),a)};
+n.labs.userAgent.browser.getIEVersion_=function(a){var c=/rv: *([\d\.]*)/.exec(a);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(a);if(d&&d[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==d[1])if(a&&a[1])switch(a[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};n.labs.userAgent.engine={};n.labs.userAgent.engine.isPresto=function(){return n.labs.userAgent.util.matchUserAgent("Presto")};n.labs.userAgent.engine.isTrident=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.engine.isEdge=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.engine.isWebKit=function(){return n.labs.userAgent.util.matchUserAgentIgnoreCase()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.isGecko=function(){return n.labs.userAgent.util.matchUserAgent("Gecko")&&!n.labs.userAgent.engine.isWebKit()&&!n.labs.userAgent.engine.isTrident()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.getVersion=function(){var a=n.labs.userAgent.util.getUserAgent();if(a){a=n.labs.userAgent.util.extractVersionTuples(a);var c=n.labs.userAgent.engine.getEngineTuple_(a);if(c)return"Gecko"==c[0]?n.labs.userAgent.engine.getVersionForKey_(a):c[1];a=a[0];var d;if(a&&(d=a[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
+n.labs.userAgent.engine.getEngineTuple_=function(a){if(!n.labs.userAgent.engine.isEdge())return a[1];for(var c=0;c<a.length;c++){var d=a[c];if("Edge"==d[0])return d}};n.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.engine.getVersion(),a)};n.labs.userAgent.engine.getVersionForKey_=function(a){return(a=n.array.find(a,function(a){return"Firefox"==a[0]}))&&a[1]||""};n.labs.userAgent.platform={};n.labs.userAgent.platform.isAndroid=function(){return n.labs.userAgent.util.matchUserAgent("Android")};n.labs.userAgent.platform.isIpod=function(){return n.labs.userAgent.util.matchUserAgent("iPod")};n.labs.userAgent.platform.isIphone=function(){return n.labs.userAgent.util.matchUserAgent("iPhone")&&!n.labs.userAgent.util.matchUserAgent("iPod")&&!n.labs.userAgent.util.matchUserAgent("iPad")};n.labs.userAgent.platform.isIpad=function(){return n.labs.userAgent.util.matchUserAgent("iPad")};
+n.labs.userAgent.platform.isIos=function(){return n.labs.userAgent.platform.isIphone()||n.labs.userAgent.platform.isIpad()||n.labs.userAgent.platform.isIpod()};n.labs.userAgent.platform.isMacintosh=function(){return n.labs.userAgent.util.matchUserAgent("Macintosh")};n.labs.userAgent.platform.isLinux=function(){return n.labs.userAgent.util.matchUserAgent("Linux")};n.labs.userAgent.platform.isWindows=function(){return n.labs.userAgent.util.matchUserAgent("Windows")};
+n.labs.userAgent.platform.isChromeOS=function(){return n.labs.userAgent.util.matchUserAgent("CrOS")};n.labs.userAgent.platform.isChromecast=function(){return n.labs.userAgent.util.matchUserAgent("CrKey")};
+n.labs.userAgent.platform.getVersion=function(){var a=n.labs.userAgent.util.getUserAgent(),c="";n.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(a=c.exec(a))?a[1]:"0.0"):n.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(a=c.exec(a))&&a[1].replace(/_/g,".")):n.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(a=c.exec(a))?a[1].replace(/_/g,"."):"10"):n.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(a=c.exec(a))&&
+a[1]):n.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(a=c.exec(a))&&a[1]);return c||""};n.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.platform.getVersion(),a)};n.reflect={};n.reflect.object=function(a,c){return c};n.reflect.objectProperty=function(a){return a};n.reflect.sinkValue=function(a){n.reflect.sinkValue[" "](a);return a};n.reflect.sinkValue[" "]=n.nullFunction;n.reflect.canAccessProperty=function(a){try{return n.reflect.sinkValue(a.nodeName),!0}catch(c){}return!1};n.reflect.cache=function(a,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(a,e)?a[e]:a[e]=d(c)};n.userAgent={};n.userAgent.ASSUME_IE=!1;n.userAgent.ASSUME_EDGE=!1;n.userAgent.ASSUME_GECKO=!1;n.userAgent.ASSUME_WEBKIT=!1;n.userAgent.ASSUME_MOBILE_WEBKIT=!1;n.userAgent.ASSUME_OPERA=!1;n.userAgent.ASSUME_ANY_VERSION=!1;n.userAgent.BROWSER_KNOWN_=n.userAgent.ASSUME_IE||n.userAgent.ASSUME_EDGE||n.userAgent.ASSUME_GECKO||n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_OPERA;n.userAgent.getUserAgentString=function(){return n.labs.userAgent.util.getUserAgent()};
+n.userAgent.getNavigatorTyped=function(){return n.global.navigator||null};n.userAgent.getNavigator=function(){return n.userAgent.getNavigatorTyped()};n.userAgent.OPERA=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_OPERA:n.labs.userAgent.browser.isOpera();n.userAgent.IE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_IE:n.labs.userAgent.browser.isIE();n.userAgent.EDGE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_EDGE:n.labs.userAgent.engine.isEdge();n.userAgent.EDGE_OR_IE=n.userAgent.EDGE||n.userAgent.IE;
+n.userAgent.GECKO=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_GECKO:n.labs.userAgent.engine.isGecko();n.userAgent.WEBKIT=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_MOBILE_WEBKIT:n.labs.userAgent.engine.isWebKit();n.userAgent.isMobile_=function(){return n.userAgent.WEBKIT&&n.labs.userAgent.util.matchUserAgent("Mobile")};n.userAgent.MOBILE=n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.isMobile_();n.userAgent.SAFARI=n.userAgent.WEBKIT;
+n.userAgent.determinePlatform_=function(){var a=n.userAgent.getNavigatorTyped();return a&&a.platform||""};n.userAgent.PLATFORM=n.userAgent.determinePlatform_();n.userAgent.ASSUME_MAC=!1;n.userAgent.ASSUME_WINDOWS=!1;n.userAgent.ASSUME_LINUX=!1;n.userAgent.ASSUME_X11=!1;n.userAgent.ASSUME_ANDROID=!1;n.userAgent.ASSUME_IPHONE=!1;n.userAgent.ASSUME_IPAD=!1;n.userAgent.ASSUME_IPOD=!1;
+n.userAgent.PLATFORM_KNOWN_=n.userAgent.ASSUME_MAC||n.userAgent.ASSUME_WINDOWS||n.userAgent.ASSUME_LINUX||n.userAgent.ASSUME_X11||n.userAgent.ASSUME_ANDROID||n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD;n.userAgent.MAC=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_MAC:n.labs.userAgent.platform.isMacintosh();n.userAgent.WINDOWS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_WINDOWS:n.labs.userAgent.platform.isWindows();
+n.userAgent.isLegacyLinux_=function(){return n.labs.userAgent.platform.isLinux()||n.labs.userAgent.platform.isChromeOS()};n.userAgent.LINUX=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_LINUX:n.userAgent.isLegacyLinux_();n.userAgent.isX11_=function(){var a=n.userAgent.getNavigatorTyped();return!!a&&n.string.contains(a.appVersion||"","X11")};n.userAgent.X11=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_X11:n.userAgent.isX11_();
+n.userAgent.ANDROID=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_ANDROID:n.labs.userAgent.platform.isAndroid();n.userAgent.IPHONE=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE:n.labs.userAgent.platform.isIphone();n.userAgent.IPAD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPAD:n.labs.userAgent.platform.isIpad();n.userAgent.IPOD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIpod();
+n.userAgent.IOS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIos();n.userAgent.determineVersion_=function(){var a="",c=n.userAgent.getVersionRegexResult_();c&&(a=c?c[1]:"");return n.userAgent.IE&&(c=n.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(a))?String(c):a};
+n.userAgent.getVersionRegexResult_=function(){var a=n.userAgent.getUserAgentString();if(n.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(n.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(n.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(n.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(n.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};n.userAgent.getDocumentMode_=function(){var a=n.global.document;return a?a.documentMode:void 0};n.userAgent.VERSION=n.userAgent.determineVersion_();
+n.userAgent.compare=function(a,c){return n.string.compareVersions(a,c)};n.userAgent.isVersionOrHigherCache_={};n.userAgent.isVersionOrHigher=function(a){return n.userAgent.ASSUME_ANY_VERSION||n.reflect.cache(n.userAgent.isVersionOrHigherCache_,a,function(){return 0<=n.string.compareVersions(n.userAgent.VERSION,a)})};n.userAgent.isVersion=n.userAgent.isVersionOrHigher;n.userAgent.isDocumentModeOrHigher=function(a){return Number(n.userAgent.DOCUMENT_MODE)>=a};n.userAgent.isDocumentMode=n.userAgent.isDocumentModeOrHigher;
+var v;var w=n.global.document;v=w&&n.userAgent.IE?n.userAgent.getDocumentMode_()||("CSS1Compat"==w.compatMode?parseInt(n.userAgent.VERSION,10):5):void 0;n.userAgent.DOCUMENT_MODE=v;n.debug.LOGGING_ENABLED=n.DEBUG;n.debug.FORCE_SLOPPY_STACKS=!1;n.debug.catchErrors=function(a,c,d){d=d||n.global;var e=d.onerror,f=!!c;n.userAgent.WEBKIT&&!n.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(c,d,k,m,p){e&&e(c,d,k,m,p);a({message:c,fileName:d,line:k,lineNumber:k,col:m,error:p});return f}};
+n.debug.expose=function(a,c){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var d=[],e;for(e in a)if(c||!n.isFunction(a[e])){var f=e+" = ";try{f+=a[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
+n.debug.deepExpose=function(a,c){var d=[],e=[],f={},g=function(a,k){var h=k+"  ";try{if(n.isDef(a))if(n.isNull(a))d.push("NULL");else if(n.isString(a))d.push('"'+a.replace(/\n/g,"\n"+k)+'"');else if(n.isFunction(a))d.push(String(a).replace(/\n/g,"\n"+k));else if(n.isObject(a)){n.hasUid(a)||e.push(a);var p=n.getUid(a);if(f[p])d.push("*** reference loop detected (id="+p+") ***");else{f[p]=!0;d.push("{");for(var r in a)if(c||!n.isFunction(a[r]))d.push("\n"),d.push(h),d.push(r+" = "),g(a[r],h);d.push("\n"+
+k+"}");delete f[p]}}else d.push(a);else d.push("undefined")}catch(N){d.push("*** "+N+" ***")}};g(a,"");for(a=0;a<e.length;a++)n.removeUid(e[a]);return d.join("")};n.debug.exposeArray=function(a){for(var c=[],d=0;d<a.length;d++)n.isArray(a[d])?c.push(n.debug.exposeArray(a[d])):c.push(a[d]);return"[ "+c.join(", ")+" ]"};
+n.debug.normalizeErrorObject=function(a){var c=n.getObjectByName("window.location.href");if(n.isString(a))return{message:a,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d=!1;try{var e=a.lineNumber||a.line||"Not available"}catch(g){e="Not available",d=!0}try{var f=a.fileName||a.filename||a.sourceURL||n.global.$googDebugFname||c}catch(g){f="Not available",d=!0}return!d&&a.lineNumber&&a.fileName&&a.stack&&a.message&&a.name?a:{message:a.message||"Not available",
+name:a.name||"UnknownError",lineNumber:e,fileName:f,stack:a.stack||"Not available"}};n.debug.enhanceError=function(a,c){a instanceof Error||(a=Error(a),Error.captureStackTrace&&Error.captureStackTrace(a,n.debug.enhanceError));a.stack||(a.stack=n.debug.getStacktrace(n.debug.enhanceError));if(c){for(var d=0;a["message"+d];)++d;a["message"+d]=String(c)}return a};
+n.debug.enhanceErrorWithContext=function(a,c){a=n.debug.enhanceError(a);if(c)for(var d in c)n.debug.errorcontext.addErrorContext(a,d,c[d]);return a};
+n.debug.getStacktraceSimple=function(a){if(!n.debug.FORCE_SLOPPY_STACKS){var c=n.debug.getNativeStackTrace_(n.debug.getStacktraceSimple);if(c)return c}c=[];for(var d=arguments.callee.caller,e=0;d&&(!a||e<a);){c.push(n.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=n.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}a&&e>=a?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
+n.debug.MAX_STACK_DEPTH=50;n.debug.getNativeStackTrace_=function(a){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,a),String(c.stack);try{throw c;}catch(d){c=d}return(a=c.stack)?String(a):null};n.debug.getStacktrace=function(a){var c;n.debug.FORCE_SLOPPY_STACKS||(c=n.debug.getNativeStackTrace_(a||n.debug.getStacktrace));c||(c=n.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return c};
+n.debug.getStacktraceHelper_=function(a,c){var d=[];if(n.array.contains(c,a))d.push("[...circular reference...]");else if(a&&c.length<n.debug.MAX_STACK_DEPTH){d.push(n.debug.getFunctionName(a)+"(");for(var e=a.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=n.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
+g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(a);d.push(")\n");try{d.push(n.debug.getStacktraceHelper_(a.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else a?d.push("[...long stack...]"):d.push("[end]");return d.join("")};n.debug.setFunctionResolver=function(a){n.debug.fnNameResolver_=a};
+n.debug.getFunctionName=function(a){if(n.debug.fnNameCache_[a])return n.debug.fnNameCache_[a];if(n.debug.fnNameResolver_){var c=n.debug.fnNameResolver_(a);if(c)return n.debug.fnNameCache_[a]=c}a=String(a);n.debug.fnNameCache_[a]||(c=/function ([^\(]+)/.exec(a),n.debug.fnNameCache_[a]=c?c[1]:"[Anonymous]");return n.debug.fnNameCache_[a]};n.debug.makeWhitespaceVisible=function(a){return a.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};
+n.debug.runtimeType=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};n.debug.fnNameCache_={};n.debug.freezeInternal_=n.DEBUG&&Object.freeze||function(a){return a};n.debug.freeze=function(a){return n.debug.freezeInternal_(a)};n.debug.entryPointRegistry={};n.debug.EntryPointMonitor=function(){};n.debug.entryPointRegistry.refList_=[];n.debug.entryPointRegistry.monitors_=[];n.debug.entryPointRegistry.monitorsMayExist_=!1;n.debug.entryPointRegistry.register=function(a){n.debug.entryPointRegistry.refList_[n.debug.entryPointRegistry.refList_.length]=a;if(n.debug.entryPointRegistry.monitorsMayExist_)for(var c=n.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)a(n.bind(c[d].wrap,c[d]))};
+n.debug.entryPointRegistry.monitorAll=function(a){n.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=n.bind(a.wrap,a),d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](c);n.debug.entryPointRegistry.monitors_.push(a)};
+n.debug.entryPointRegistry.unmonitorAllIfPossible=function(a){var c=n.debug.entryPointRegistry.monitors_;n.asserts.assert(a==c[c.length-1],"Only the most recent monitor can be unwrapped.");a=n.bind(a.unwrap,a);for(var d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](a);c.length--};n.disposable={};n.disposable.IDisposable=function(){};n.Disposable=function(){n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&(n.Disposable.instances_[n.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};n.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};n.Disposable.MONITORING_MODE=0;n.Disposable.INCLUDE_STACK_ON_CREATION=!0;n.Disposable.instances_={};
+n.Disposable.getUndisposedObjects=function(){var a=[],c;for(c in n.Disposable.instances_)n.Disposable.instances_.hasOwnProperty(c)&&a.push(n.Disposable.instances_[Number(c)]);return a};n.Disposable.clearUndisposedObjects=function(){n.Disposable.instances_={}};n.Disposable.prototype.disposed_=!1;n.Disposable.prototype.isDisposed=function(){return this.disposed_};
+n.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF)){var a=n.getUid(this);if(n.Disposable.MONITORING_MODE==n.Disposable.MonitoringMode.PERMANENT&&!n.Disposable.instances_.hasOwnProperty(a))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");if(n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&this.onDisposeCallbacks_&&
+0<this.onDisposeCallbacks_.length)throw Error(this+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete n.Disposable.instances_[a]}};n.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};n.Disposable.isDisposed=function(){return!1};n.dispose=function(a){a&&"function"==typeof a.dispose&&a.dispose()};
+n.disposeAll=function(a){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];n.isArrayLike(e)?n.disposeAll.apply(null,e):n.dispose(e)}};n.events={};l.scope.purify=function(a){return a()};
+n.events.BrowserFeature={HAS_W3C_BUTTON:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!n.userAgent.WEBKIT||n.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9b")||n.userAgent.IE&&n.userAgent.isVersionOrHigher("8")||n.userAgent.OPERA&&
+n.userAgent.isVersionOrHigher("9.5")||n.userAgent.WEBKIT&&n.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:n.userAgent.GECKO&&!n.userAgent.isVersionOrHigher("8")||n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in n.global||!!(n.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!n.global.navigator||!n.global.navigator.maxTouchPoints&&!n.global.navigator.msMaxTouchPoints),POINTER_EVENTS:"PointerEvent"in n.global,
+MSPOINTER_EVENTS:"MSPointerEvent"in n.global&&!(!n.global.navigator||!n.global.navigator.msPointerEnabled),PASSIVE_EVENTS:(0,l.scope.purify)(function(){if(!n.global.addEventListener||!Object.defineProperty)return!1;var a=!1,c=Object.defineProperty({},"passive",{get:function(){a=!0}});n.global.addEventListener("test",n.nullFunction,c);n.global.removeEventListener("test",n.nullFunction,c);return a})};n.events.EventId=function(a){this.id=a};n.events.EventId.prototype.toString=function(){return this.id};n.events.Event=function(a,c){this.type=a instanceof n.events.EventId?String(a):a;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};n.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};n.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};n.events.Event.stopPropagation=function(a){a.stopPropagation()};n.events.Event.preventDefault=function(a){a.preventDefault()};n.events.getVendorPrefixedName_=function(a){return n.userAgent.WEBKIT?"webkit"+a:n.userAgent.OPERA?"o"+a.toLowerCase():a.toLowerCase()};
+n.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:"focusin",FOCUSOUT:"focusout",CHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",
+INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICECHANGE:"devicechange",DEVICEMOTION:"devicemotion",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",
+LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",VOLUMECHANGE:"volumechange",
+WAITING:"waiting",SOURCEOPEN:"sourceopen",SOURCEENDED:"sourceended",SOURCECLOSED:"sourceclosed",ABORT:"abort",UPDATE:"update",UPDATESTART:"updatestart",UPDATEEND:"updateend",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",INSTALL:"install",ACTIVATE:"activate",FETCH:"fetch",FOREIGNFETCH:"foreignfetch",
+MESSAGEERROR:"messageerror",STATECHANGE:"statechange",UPDATEFOUND:"updatefound",CONTROLLERCHANGE:"controllerchange",ANIMATIONSTART:n.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:n.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:n.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:n.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",
+POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",
+MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:n.userAgent.IE?"textinput":"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",BEFOREINPUT:"beforeinput",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",
+SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint",BEFOREINSTALLPROMPT:"beforeinstallprompt",
+APPINSTALLED:"appinstalled"};n.events.getPointerFallbackEventName_=function(a,c,d){return n.events.BrowserFeature.POINTER_EVENTS?a:n.events.BrowserFeature.MSPOINTER_EVENTS?c:d};
+n.events.PointerFallbackEventType={POINTERDOWN:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERDOWN,n.events.EventType.MSPOINTERDOWN,n.events.EventType.MOUSEDOWN),POINTERUP:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERUP,n.events.EventType.MSPOINTERUP,n.events.EventType.MOUSEUP),POINTERCANCEL:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERCANCEL,n.events.EventType.MSPOINTERCANCEL,"mousecancel"),POINTERMOVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERMOVE,
+n.events.EventType.MSPOINTERMOVE,n.events.EventType.MOUSEMOVE),POINTEROVER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROVER,n.events.EventType.MSPOINTEROVER,n.events.EventType.MOUSEOVER),POINTEROUT:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROUT,n.events.EventType.MSPOINTEROUT,n.events.EventType.MOUSEOUT),POINTERENTER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERENTER,n.events.EventType.MSPOINTERENTER,n.events.EventType.MOUSEENTER),POINTERLEAVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERLEAVE,
+n.events.EventType.MSPOINTERLEAVE,n.events.EventType.MOUSELEAVE)};n.events.BrowserEvent=function(a,c){n.events.Event.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.event_=null;if(a){var d=this.type=a.type,e=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=
+c;(c=a.relatedTarget)?n.userAgent.GECKO&&(n.reflect.canAccessProperty(c)||(c=null)):d==n.events.EventType.MOUSEOVER?c=a.fromElement:d==n.events.EventType.MOUSEOUT&&(c=a.toElement);this.relatedTarget=c;n.isNull(e)?(this.offsetX=n.userAgent.WEBKIT||void 0!==a.offsetX?a.offsetX:a.layerX,this.offsetY=n.userAgent.WEBKIT||void 0!==a.offsetY?a.offsetY:a.layerY,this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||
+0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.charCode=a.charCode||("keypress"==d?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=n.events.BrowserEvent.getPointerType_(a);this.state=a.state;this.event_=a;a.defaultPrevented&&
+this.preventDefault()}};n.inherits(n.events.BrowserEvent,n.events.Event);n.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};n.events.BrowserEvent.PointerType={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"};n.events.BrowserEvent.IEButtonMap=n.debug.freeze([1,4,2]);n.events.BrowserEvent.IE_BUTTON_MAP=n.events.BrowserEvent.IEButtonMap;n.events.BrowserEvent.IE_POINTER_TYPE_MAP=n.debug.freeze({2:n.events.BrowserEvent.PointerType.TOUCH,3:n.events.BrowserEvent.PointerType.PEN,4:n.events.BrowserEvent.PointerType.MOUSE});
+n.events.BrowserEvent.prototype.stopPropagation=function(){n.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
+n.events.BrowserEvent.prototype.preventDefault=function(){n.events.BrowserEvent.superClass_.preventDefault.call(this);var a=this.event_;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,n.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(c){}};n.events.BrowserEvent.getPointerType_=function(a){return n.isString(a.pointerType)?a.pointerType:n.events.BrowserEvent.IE_POINTER_TYPE_MAP[a.pointerType]||""};n.events.Listenable=function(){};n.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);n.events.Listenable.addImplementation=function(a){a.prototype[n.events.Listenable.IMPLEMENTED_BY_PROP]=!0};n.events.Listenable.isImplementedBy=function(a){return!(!a||!a[n.events.Listenable.IMPLEMENTED_BY_PROP])};n.events.ListenableKey=function(){};n.events.ListenableKey.counter_=0;n.events.ListenableKey.reserveKey=function(){return++n.events.ListenableKey.counter_};n.events.Listener=function(a,c,d,e,f){this.listener=a;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=n.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};n.events.Listener.ENABLE_MONITORING=!1;var x=function(a){a.removed=!0;a.listener=null;a.proxy=null;a.src=null;a.handler=null};n.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};n.events.ListenerMap.prototype.add=function(a,c,d,e,f){var g=a.toString();a=this.listeners[g];a||(a=this.listeners[g]=[],this.typeCount_++);var h=n.events.ListenerMap.findListenerIndex_(a,c,e,f);-1<h?(c=a[h],d||(c.callOnce=!1)):(c=new n.events.Listener(c,this.src,g,!!e,f),c.callOnce=d,a.push(c));return c};
+n.events.ListenerMap.prototype.remove=function(a,c,d,e){a=a.toString();if(!(a in this.listeners))return!1;var f=this.listeners[a];c=n.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(x(f[c]),n.array.removeAt(f,c),0==f.length&&(delete this.listeners[a],this.typeCount_--),!0):!1};var y=function(a,c){var d=c.type;if(!(d in a.listeners))return!1;var e=n.array.remove(a.listeners[d],c);e&&(x(c),0==a.listeners[d].length&&(delete a.listeners[d],a.typeCount_--));return e};
+n.events.ListenerMap.prototype.removeAll=function(a){a=a&&a.toString();var c=0,d;for(d in this.listeners)if(!a||d==a){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,x(e[f]);delete this.listeners[d];this.typeCount_--}return c};n.events.ListenerMap.prototype.getListeners=function(a,c){a=this.listeners[a.toString()];var d=[];if(a)for(var e=0;e<a.length;++e){var f=a[e];f.capture==c&&d.push(f)}return d};
+n.events.ListenerMap.prototype.getListener=function(a,c,d,e){a=this.listeners[a.toString()];var f=-1;a&&(f=n.events.ListenerMap.findListenerIndex_(a,c,d,e));return-1<f?a[f]:null};n.events.ListenerMap.prototype.hasListener=function(a,c){var d=n.isDef(a),e=d?a.toString():"",f=n.isDef(c);return n.object.some(this.listeners,function(a){for(var g=0;g<a.length;++g)if(!(d&&a[g].type!=e||f&&a[g].capture!=c))return!0;return!1})};
+n.events.ListenerMap.findListenerIndex_=function(a,c,d,e){for(var f=0;f<a.length;++f){var g=a[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};n.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);n.events.onString_="on";n.events.onStringMap_={};n.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};n.events.CAPTURE_SIMULATION_MODE=2;n.events.listenerCountEstimate_=0;
+n.events.listen=function(a,c,d,e,f){if(e&&e.once)return n.events.listenOnce(a,c,d,e,f);if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listen(a,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(a)?a.listen(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(a,c,d,!1,e,f)};
+n.events.listen_=function(a,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=n.isObject(f)?!!f.capture:!!f;if(h&&!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_FAIL)return n.asserts.fail("Can not register capture listener in IE8-."),null;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var k=n.events.getListenerMap_(a);k||(a[n.events.LISTENER_MAP_PROP_]=k=new n.events.ListenerMap(a));
+d=k.add(c,d,e,h,g);if(d.proxy)return d;e=n.events.getProxy();d.proxy=e;e.src=a;e.listener=d;if(a.addEventListener)n.events.BrowserFeature.PASSIVE_EVENTS||(f=h),void 0===f&&(f=!1),a.addEventListener(c.toString(),e,f);else if(a.attachEvent)a.attachEvent(n.events.getOnString_(c.toString()),e);else if(a.addListener&&a.removeListener)n.asserts.assert("change"===c,"MediaQueryList only has a change event"),a.addListener(e);else throw Error("addEventListener and attachEvent are unavailable.");n.events.listenerCountEstimate_++;
+return d};n.events.getProxy=function(){var a=n.events.handleBrowserEvent_,c=n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return a.call(c.src,c.listener,d)}:function(d){d=a.call(c.src,c.listener,d);if(!d)return d};return c};
+n.events.listenOnce=function(a,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listenOnce(a,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(a)?a.listenOnce(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(a,c,d,!0,e,f)};n.events.listenWithWrapper=function(a,c,d,e,f){c.listen(a,d,e,f)};
+n.events.unlisten=function(a,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.unlisten(a,c[g],d,e,f);return null}e=n.isObject(e)?!!e.capture:!!e;d=n.events.wrapListener(d);if(n.events.Listenable.isImplementedBy(a))return a.unlisten(c,d,e,f);if(!a)return!1;if(a=n.events.getListenerMap_(a))if(c=a.getListener(c,d,e,f))return n.events.unlistenByKey(c);return!1};
+n.events.unlistenByKey=function(a){if(n.isNumber(a)||!a||a.removed)return!1;var c=a.src;if(n.events.Listenable.isImplementedBy(c))return c.unlistenByKey(a);var d=a.type,e=a.proxy;c.removeEventListener?c.removeEventListener(d,e,a.capture):c.detachEvent?c.detachEvent(n.events.getOnString_(d),e):c.addListener&&c.removeListener&&c.removeListener(e);n.events.listenerCountEstimate_--;(d=n.events.getListenerMap_(c))?(y(d,a),0==d.typeCount_&&(d.src=null,c[n.events.LISTENER_MAP_PROP_]=null)):x(a);return!0};
+n.events.unlistenWithWrapper=function(a,c,d,e,f){c.unlisten(a,d,e,f)};n.events.removeAll=function(a,c){if(!a)return 0;if(n.events.Listenable.isImplementedBy(a))return a.eventTargetListeners_?a.eventTargetListeners_.removeAll(c):0;a=n.events.getListenerMap_(a);if(!a)return 0;var d=0;c=c&&c.toString();for(var e in a.listeners)if(!c||e==c)for(var f=a.listeners[e].concat(),g=0;g<f.length;++g)n.events.unlistenByKey(f[g])&&++d;return d};
+n.events.getListeners=function(a,c){return n.events.Listenable.isImplementedBy(a)?a.getListeners(c,void 0):a?(a=n.events.getListenerMap_(a))?a.getListeners(c,void 0):[]:[]};n.events.getListener=function(a,c,d,e){d=n.events.wrapListener(d);e=!!e;return n.events.Listenable.isImplementedBy(a)?a.getListener(c,d,e,void 0):a?(a=n.events.getListenerMap_(a))?a.getListener(c,d,e,void 0):null:null};
+n.events.hasListener=function(a,c,d){if(n.events.Listenable.isImplementedBy(a))return a.hasListener(c,d);a=n.events.getListenerMap_(a);return!!a&&a.hasListener(c,d)};n.events.expose=function(a){var c=[],d;for(d in a)a[d]&&a[d].id?c.push(d+" = "+a[d]+" ("+a[d].id+")"):c.push(d+" = "+a[d]);return c.join("\n")};n.events.getOnString_=function(a){return a in n.events.onStringMap_?n.events.onStringMap_[a]:n.events.onStringMap_[a]=n.events.onString_+a};
+n.events.fireListeners=function(a,c,d){return n.events.Listenable.isImplementedBy(a)?a.fireListeners(c,d,void 0):n.events.fireListeners_(a,c,d,void 0)};n.events.fireListeners_=function(a,c,d,e){var f=!0;if(a=n.events.getListenerMap_(a))if(c=a.listeners[c.toString()])for(c=c.concat(),a=0;a<c.length;a++){var g=c[a];g&&g.capture==d&&!g.removed&&(g=n.events.fireListener(g,e),f=f&&!1!==g)}return f};
+n.events.fireListener=function(a,c){var d=a.listener,e=a.handler||a.src;a.callOnce&&n.events.unlistenByKey(a);return d.call(e,c)};n.events.getTotalListenerCount=function(){return n.events.listenerCountEstimate_};n.events.dispatchEvent=function(a,c){n.asserts.assert(n.events.Listenable.isImplementedBy(a),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return a.dispatchEvent(c)};n.events.protectBrowserEventEntryPoint=function(a){n.events.handleBrowserEvent_=a.protectEntryPoint(n.events.handleBrowserEvent_)};
+n.events.handleBrowserEvent_=function(a,c){if(a.removed)return!0;if(!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||n.getObjectByName("window.event");c=new n.events.BrowserEvent(d,this);var e=!0;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.ON){if(!n.events.isMarkedIeEvent_(d)){n.events.markIeEvent_(d);d=[];for(var f=c.currentTarget;f;f=f.parentNode)d.push(f);a=a.type;for(f=d.length-1;!c.propagationStopped_&&0<=f;f--){c.currentTarget=d[f];var g=n.events.fireListeners_(d[f],
+a,!0,c);e=e&&g}for(f=0;!c.propagationStopped_&&f<d.length;f++)c.currentTarget=d[f],g=n.events.fireListeners_(d[f],a,!1,c),e=e&&g}}else e=n.events.fireListener(a,c);return e}return n.events.fireListener(a,new n.events.BrowserEvent(c,this))};n.events.markIeEvent_=function(a){var c=!1;if(0==a.keyCode)try{a.keyCode=-1;return}catch(d){c=!0}if(c||void 0==a.returnValue)a.returnValue=!0};n.events.isMarkedIeEvent_=function(a){return 0>a.keyCode||void 0!=a.returnValue};n.events.uniqueIdCounter_=0;
+n.events.getUniqueId=function(a){return a+"_"+n.events.uniqueIdCounter_++};n.events.getListenerMap_=function(a){a=a[n.events.LISTENER_MAP_PROP_];return a instanceof n.events.ListenerMap?a:null};n.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
+n.events.wrapListener=function(a){n.asserts.assert(a,"Listener can not be null.");if(n.isFunction(a))return a;n.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[n.events.LISTENER_WRAPPER_PROP_]||(a[n.events.LISTENER_WRAPPER_PROP_]=function(c){return a.handleEvent(c)});return a[n.events.LISTENER_WRAPPER_PROP_]};n.debug.entryPointRegistry.register(function(a){n.events.handleBrowserEvent_=a(n.events.handleBrowserEvent_)});n.events.EventTarget=function(){n.Disposable.call(this);this.eventTargetListeners_=new n.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};n.inherits(n.events.EventTarget,n.Disposable);n.events.Listenable.addImplementation(n.events.EventTarget);n.events.EventTarget.MAX_ANCESTORS_=1E3;b=n.events.EventTarget.prototype;b.addEventListener=function(a,c,d,e){n.events.listen(this,a,c,d,e)};b.removeEventListener=function(a,c,d,e){n.events.unlisten(this,a,c,d,e)};
+b.dispatchEvent=function(a){z(this);var c=this.parentEventTarget_;if(c){var d=[];for(var e=1;c;c=c.parentEventTarget_)d.push(c),n.asserts.assert(++e<n.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return n.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,a,d)};b.disposeInternal=function(){n.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
+b.listen=function(a,c,d,e){z(this);return this.eventTargetListeners_.add(String(a),c,!1,d,e)};b.listenOnce=function(a,c,d,e){return this.eventTargetListeners_.add(String(a),c,!0,d,e)};b.unlisten=function(a,c,d,e){return this.eventTargetListeners_.remove(String(a),c,d,e)};b.unlistenByKey=function(a){return y(this.eventTargetListeners_,a)};
+b.fireListeners=function(a,c,d){a=this.eventTargetListeners_.listeners[String(a)];if(!a)return!0;a=a.concat();for(var e=!0,f=0;f<a.length;++f){var g=a[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,k=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(k,d)&&e}}return e&&0!=d.returnValue_};b.getListeners=function(a,c){return this.eventTargetListeners_.getListeners(String(a),c)};b.getListener=function(a,c,d,e){return this.eventTargetListeners_.getListener(String(a),c,d,e)};
+b.hasListener=function(a,c){return this.eventTargetListeners_.hasListener(n.isDef(a)?String(a):void 0,c)};var z=function(a){n.asserts.assert(a.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
+n.events.EventTarget.dispatchEventInternal_=function(a,c,d){var e=c.type||c;if(n.isString(c))c=new n.events.Event(c,a);else if(c instanceof n.events.Event)c.target=c.target||a;else{var f=c;c=new n.events.Event(e,a);n.object.extend(c,f)}f=!0;if(d)for(var g=d.length-1;!c.propagationStopped_&&0<=g;g--){var h=c.currentTarget=d[g];f=h.fireListeners(e,!0,c)&&f}c.propagationStopped_||(h=c.currentTarget=a,f=h.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=h.fireListeners(e,!1,c)&&f));if(d)for(g=0;!c.propagationStopped_&&
+g<d.length;g++)h=c.currentTarget=d[g],f=h.fireListeners(e,!1,c)&&f;return f};n.functions={};n.functions.constant=function(a){return function(){return a}};n.functions.FALSE=n.functions.constant(!1);n.functions.TRUE=n.functions.constant(!0);n.functions.NULL=n.functions.constant(null);n.functions.identity=function(a){return a};n.functions.error=function(a){return function(){throw Error(a);}};n.functions.fail=function(){};n.functions.lock=function(a,c){c=c||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,c))}};n.functions.nth=function(a){return function(){return arguments[a]}};
+n.functions.partialRight=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return a.apply(this,c)}};n.functions.withReturnValue=function(a,c){return n.functions.sequence(a,n.functions.constant(c))};n.functions.equalTo=function(a,c){return function(d){return c?a==d:a===d}};
+n.functions.compose=function(a,c){var d=arguments,e=d.length;return function(){var a;e&&(a=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)a=d[c].call(this,a);return a}};n.functions.sequence=function(a){var c=arguments,d=c.length;return function(){for(var a,f=0;f<d;f++)a=c[f].apply(this,arguments);return a}};n.functions.and=function(a){var c=arguments,d=c.length;return function(){for(var a=0;a<d;a++)if(!c[a].apply(this,arguments))return!1;return!0}};
+n.functions.or=function(a){var c=arguments,d=c.length;return function(){for(var a=0;a<d;a++)if(c[a].apply(this,arguments))return!0;return!1}};n.functions.not=function(a){return function(){return!a.apply(this,arguments)}};n.functions.create=function(a,c){var d=function(){};d.prototype=a.prototype;d=new d;a.apply(d,Array.prototype.slice.call(arguments,1));return d};n.functions.CACHE_RETURN_VALUE=!0;
+n.functions.cacheReturnValue=function(a){var c=!1,d;return function(){if(!n.functions.CACHE_RETURN_VALUE)return a();c||(d=a(),c=!0);return d}};n.functions.once=function(a){var c=a;return function(){if(c){var a=c;c=null;a()}}};n.functions.debounce=function(a,c,d){var e=0;return function(f){n.global.clearTimeout(e);var g=arguments;e=n.global.setTimeout(function(){a.apply(d,g)},c)}};
+n.functions.throttle=function(a,c,d){var e=0,f=!1,g=[],h=function(){e=0;f&&(f=!1,k())},k=function(){e=n.global.setTimeout(h,c);a.apply(d,g)};return function(a){g=arguments;e?f=!0:k()}};n.functions.rateLimit=function(a,c,d){var e=0,f=function(){e=0};return function(g){e||(e=n.global.setTimeout(f,c),a.apply(d,arguments))}};n.math={};n.math.randomInt=function(a){return Math.floor(Math.random()*a)};n.math.uniformRandom=function(a,c){return a+Math.random()*(c-a)};n.math.clamp=function(a,c,d){return Math.min(Math.max(a,c),d)};n.math.modulo=function(a,c){a%=c;return 0>a*c?a+c:a};n.math.lerp=function(a,c,d){return a+d*(c-a)};n.math.nearlyEquals=function(a,c,d){return Math.abs(a-c)<=(d||1E-6)};n.math.standardAngle=function(a){return n.math.modulo(a,360)};n.math.standardAngleInRadians=function(a){return n.math.modulo(a,2*Math.PI)};
+n.math.toRadians=function(a){return a*Math.PI/180};n.math.toDegrees=function(a){return 180*a/Math.PI};n.math.angleDx=function(a,c){return c*Math.cos(n.math.toRadians(a))};n.math.angleDy=function(a,c){return c*Math.sin(n.math.toRadians(a))};n.math.angle=function(a,c,d,e){return n.math.standardAngle(n.math.toDegrees(Math.atan2(e-c,d-a)))};n.math.angleDifference=function(a,c){a=n.math.standardAngle(c)-n.math.standardAngle(a);180<a?a-=360:-180>=a&&(a=360+a);return a};
+n.math.sign=function(a){return 0<a?1:0>a?-1:a};n.math.longestCommonSubsequence=function(a,c,d,e){d=d||function(a,c){return a==c};e=e||function(c){return a[c]};for(var f=a.length,g=c.length,h=[],k=0;k<f+1;k++)h[k]=[],h[k][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(k=1;k<=f;k++)for(m=1;m<=g;m++)d(a[k-1],c[m-1])?h[k][m]=h[k-1][m-1]+1:h[k][m]=Math.max(h[k-1][m],h[k][m-1]);var p=[];k=f;for(m=g;0<k&&0<m;)d(a[k-1],c[m-1])?(p.unshift(e(k-1,m-1)),k--,m--):h[k-1][m]>h[k][m-1]?k--:m--;return p};
+n.math.sum=function(a){return n.array.reduce(arguments,function(a,d){return a+d},0)};n.math.average=function(a){return n.math.sum.apply(null,arguments)/arguments.length};n.math.sampleVariance=function(a){var c=arguments.length;if(2>c)return 0;var d=n.math.average.apply(null,arguments);return n.math.sum.apply(null,n.array.map(arguments,function(a){return Math.pow(a-d,2)}))/(c-1)};n.math.standardDeviation=function(a){return Math.sqrt(n.math.sampleVariance.apply(null,arguments))};
+n.math.isInt=function(a){return isFinite(a)&&0==a%1};n.math.isFiniteNumber=function(a){return isFinite(a)};n.math.isNegativeZero=function(a){return 0==a&&0>1/a};n.math.log10Floor=function(a){if(0<a){var c=Math.round(Math.log(a)*Math.LOG10E);return c-(parseFloat("1e"+c)>a?1:0)}return 0==a?-Infinity:NaN};n.math.safeFloor=function(a,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.floor(a+(c||2E-15))};n.math.safeCeil=function(a,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.ceil(a-(c||2E-15))};n.iter={};n.iter.StopIteration="StopIteration"in n.global?n.global.StopIteration:{message:"StopIteration",stack:""};n.iter.Iterator=function(){};n.iter.Iterator.prototype.next=function(){throw n.iter.StopIteration;};n.iter.Iterator.prototype.__iterator__=function(){return this};
+n.iter.toIterator=function(a){if(a instanceof n.iter.Iterator)return a;if("function"==typeof a.__iterator__)return a.__iterator__(!1);if(n.isArrayLike(a)){var c=0,d=new n.iter.Iterator;d.next=function(){for(;;){if(c>=a.length)throw n.iter.StopIteration;if(c in a)return a[c++];c++}};return d}throw Error("Not implemented");};
+n.iter.forEach=function(a,c,d){if(n.isArrayLike(a))try{n.array.forEach(a,c,d)}catch(e){if(e!==n.iter.StopIteration)throw e;}else{a=n.iter.toIterator(a);try{for(;;)c.call(d,a.next(),void 0,a)}catch(e){if(e!==n.iter.StopIteration)throw e;}}};n.iter.filter=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){for(;;){var a=e.next();if(c.call(d,a,void 0,e))return a}};return a};n.iter.filterFalse=function(a,c,d){return n.iter.filter(a,n.functions.not(c),d)};
+n.iter.range=function(a,c,d){var e=0,f=a,g=d||1;1<arguments.length&&(e=a,f=+c);if(0==g)throw Error("Range step argument must not be zero");var h=new n.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw n.iter.StopIteration;var a=e;e+=g;return a};return h};n.iter.join=function(a,c){return n.iter.toArray(a).join(c)};n.iter.map=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=e.next();return c.call(d,a,void 0,e)};return a};
+n.iter.reduce=function(a,c,d,e){var f=d;n.iter.forEach(a,function(a){f=c.call(e,f,a)});return f};n.iter.some=function(a,c,d){a=n.iter.toIterator(a);try{for(;;)if(c.call(d,a.next(),void 0,a))return!0}catch(e){if(e!==n.iter.StopIteration)throw e;}return!1};n.iter.every=function(a,c,d){a=n.iter.toIterator(a);try{for(;;)if(!c.call(d,a.next(),void 0,a))return!1}catch(e){if(e!==n.iter.StopIteration)throw e;}return!0};n.iter.chain=function(a){return n.iter.chainFromIterable(arguments)};
+n.iter.chainFromIterable=function(a){var c=n.iter.toIterator(a);a=new n.iter.Iterator;var d=null;a.next=function(){for(;;){if(null==d){var a=c.next();d=n.iter.toIterator(a)}try{return d.next()}catch(f){if(f!==n.iter.StopIteration)throw f;d=null}}};return a};n.iter.dropWhile=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;var f=!0;a.next=function(){for(;;){var a=e.next();if(!f||!c.call(d,a,void 0,e))return f=!1,a}};return a};
+n.iter.takeWhile=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=e.next();if(c.call(d,a,void 0,e))return a;throw n.iter.StopIteration;};return a};n.iter.toArray=function(a){if(n.isArrayLike(a))return n.array.toArray(a);a=n.iter.toIterator(a);var c=[];n.iter.forEach(a,function(a){c.push(a)});return c};n.iter.equals=function(a,c,d){a=n.iter.zipLongest({},a,c);var e=d||n.array.defaultCompareEquality;return n.iter.every(a,function(a){return e(a[0],a[1])})};
+n.iter.nextOrValue=function(a){try{n.iter.toIterator(a).next()}catch(c){if(c!=n.iter.StopIteration)throw c;}};
+n.iter.product=function(a){if(n.array.some(arguments,function(a){return!a.length})||!arguments.length)return new n.iter.Iterator;var c=new n.iter.Iterator,d=arguments,e=n.array.repeat(0,d.length);c.next=function(){if(e){for(var a=n.array.map(e,function(a,c){return d[c][a]}),c=e.length-1;0<=c;c--){n.asserts.assert(e);if(e[c]<d[c].length-1){e[c]++;break}if(0==c){e=null;break}e[c]=0}return a}throw n.iter.StopIteration;};return c};
+n.iter.cycle=function(a){var c=n.iter.toIterator(a),d=[],e=0;a=new n.iter.Iterator;var f=!1;a.next=function(){var a=null;if(!f)try{return a=c.next(),d.push(a),a}catch(h){if(h!=n.iter.StopIteration||n.array.isEmpty(d))throw h;f=!0}a=d[e];e=(e+1)%d.length;return a};return a};n.iter.count=function(a,c){var d=a||0,e=n.isDef(c)?c:1;a=new n.iter.Iterator;a.next=function(){var a=d;d+=e;return a};return a};n.iter.repeat=function(a){var c=new n.iter.Iterator;c.next=n.functions.constant(a);return c};
+n.iter.accumulate=function(a){var c=n.iter.toIterator(a),d=0;a=new n.iter.Iterator;a.next=function(){return d+=c.next()};return a};n.iter.zip=function(a){var c=arguments,d=new n.iter.Iterator;if(0<c.length){var e=n.array.map(c,n.iter.toIterator);d.next=function(){return n.array.map(e,function(a){return a.next()})}}return d};
+n.iter.zipLongest=function(a,c){var d=n.array.slice(arguments,1),e=new n.iter.Iterator;if(0<d.length){var f=n.array.map(d,n.iter.toIterator);e.next=function(){var c=!1,d=n.array.map(f,function(d){try{var e=d.next();c=!0}catch(p){if(p!==n.iter.StopIteration)throw p;e=a}return e});if(!c)throw n.iter.StopIteration;return d}}return e};n.iter.compress=function(a,c){var d=n.iter.toIterator(c);return n.iter.filter(a,function(){return!!d.next()})};
+n.iter.GroupByIterator_=function(a,c){this.iterator=n.iter.toIterator(a);this.keyFunc=c||n.functions.identity};n.inherits(n.iter.GroupByIterator_,n.iter.Iterator);
+n.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var a=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==n.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[a,d]};
+n.iter.groupBy=function(a,c){return new n.iter.GroupByIterator_(a,c)};n.iter.starMap=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=n.iter.toArray(e.next());return c.apply(d,n.array.concat(a,void 0,e))};return a};
+n.iter.tee=function(a,c){var d=n.iter.toIterator(a),e=n.array.map(n.array.range(n.isNumber(c)?c:2),function(){return[]}),f=function(){var a=d.next();n.array.forEach(e,function(c){c.push(a)})};return n.array.map(e,function(a){var c=new n.iter.Iterator;c.next=function(){n.array.isEmpty(a)&&f();n.asserts.assert(!n.array.isEmpty(a));return a.shift()};return c})};n.iter.enumerate=function(a,c){return n.iter.zip(n.iter.count(c),a)};
+n.iter.limit=function(a,c){n.asserts.assert(n.math.isInt(c)&&0<=c);var d=n.iter.toIterator(a);a=new n.iter.Iterator;var e=c;a.next=function(){if(0<e--)return d.next();throw n.iter.StopIteration;};return a};n.iter.consume=function(a,c){n.asserts.assert(n.math.isInt(c)&&0<=c);for(a=n.iter.toIterator(a);0<c--;)n.iter.nextOrValue(a);return a};
+n.iter.slice=function(a,c,d){n.asserts.assert(n.math.isInt(c)&&0<=c);a=n.iter.consume(a,c);n.isNumber(d)&&(n.asserts.assert(n.math.isInt(d)&&d>=c),a=n.iter.limit(a,d-c));return a};n.iter.hasDuplicates_=function(a){var c=[];n.array.removeDuplicates(a,c);return a.length!=c.length};n.iter.permutations=function(a,c){a=n.iter.toArray(a);c=n.array.repeat(a,n.isNumber(c)?c:a.length);c=n.iter.product.apply(void 0,c);return n.iter.filter(c,function(a){return!n.iter.hasDuplicates_(a)})};
+n.iter.combinations=function(a,c){function d(a){return e[a]}var e=n.iter.toArray(a);a=n.iter.range(e.length);c=n.iter.permutations(a,c);var f=n.iter.filter(c,function(a){return n.array.isSorted(a)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};
+n.iter.combinationsWithReplacement=function(a,c){function d(a){return e[a]}var e=n.iter.toArray(a);a=n.array.range(e.length);c=n.array.repeat(a,c);c=n.iter.product.apply(void 0,c);var f=n.iter.filter(c,function(a){return n.array.isSorted(a)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};n.structs={};n.structs.Map=function(a,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else a&&this.addAll(a)};b=n.structs.Map.prototype;b.getCount=function(){return this.count_};b.getValues=function(){A(this);for(var a=[],c=0;c<this.keys_.length;c++)a.push(this.map_[this.keys_[c]]);return a};b.getKeys=function(){A(this);return this.keys_.concat()};
+b.containsKey=function(a){return n.structs.Map.hasKey_(this.map_,a)};b.containsValue=function(a){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(n.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==a)return!0}return!1};b.equals=function(a,c){if(this===a)return!0;if(this.count_!=a.getCount())return!1;c=c||n.structs.Map.defaultEquals;A(this);for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),a.get(d)))return!1;return!0};n.structs.Map.defaultEquals=function(a,c){return a===c};
+n.structs.Map.prototype.isEmpty=function(){return 0==this.count_};n.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};n.structs.Map.prototype.remove=function(a){return n.structs.Map.hasKey_(this.map_,a)?(delete this.map_[a],this.count_--,this.version_++,this.keys_.length>2*this.count_&&A(this),!0):!1};
+var A=function(a){if(a.count_!=a.keys_.length){for(var c=0,d=0;c<a.keys_.length;){var e=a.keys_[c];n.structs.Map.hasKey_(a.map_,e)&&(a.keys_[d++]=e);c++}a.keys_.length=d}if(a.count_!=a.keys_.length){var f={};for(d=c=0;c<a.keys_.length;)e=a.keys_[c],n.structs.Map.hasKey_(f,e)||(a.keys_[d++]=e,f[e]=1),c++;a.keys_.length=d}};b=n.structs.Map.prototype;b.get=function(a,c){return n.structs.Map.hasKey_(this.map_,a)?this.map_[a]:c};
+b.set=function(a,c){n.structs.Map.hasKey_(this.map_,a)||(this.count_++,this.keys_.push(a),this.version_++);this.map_[a]=c};b.addAll=function(a){if(a instanceof n.structs.Map)for(var c=a.getKeys(),d=0;d<c.length;d++)this.set(c[d],a.get(c[d]));else for(c in a)this.set(c,a[c])};b.forEach=function(a,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);a.call(c,g,f,this)}};b.clone=function(){return new n.structs.Map(this)};
+b.transpose=function(){for(var a=new n.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];a.set(this.map_[d],d)}return a};b.toObject=function(){A(this);for(var a={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];a[d]=this.map_[d]}return a};
+b.__iterator__=function(a){A(this);var c=0,d=this.version_,e=this,f=new n.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw n.iter.StopIteration;var f=e.keys_[c++];return a?f:e.map_[f]};return f};n.structs.Map.hasKey_=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)};n.structs.LinkedMap=function(a){this.maxCount_=a||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new n.structs.Map;this.head_=new n.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var C=function(a,c){(c=a.map_.get(c))&&a.cache_&&(c.remove(),B(a,c));return c};b=n.structs.LinkedMap.prototype;b.get=function(a,c){return(a=C(this,a))?a.value:c};b.set=function(a,c){var d=C(this,a);d?d.value=c:(d=new n.structs.LinkedMap.Node_(a,c),this.map_.set(a,d),B(this,d))};
+b.peek=function(){return this.head_.next.value};b.shift=function(){return D(this,this.head_.next)};b.pop=function(){return D(this,this.head_.prev)};b.remove=function(a){return(a=this.map_.get(a))?(this.removeNode(a),!0):!1};b.removeNode=function(a){a.remove();this.map_.remove(a.key)};b.getCount=function(){return this.map_.getCount()};b.isEmpty=function(){return this.map_.isEmpty()};b.getKeys=function(){return this.map(function(a,c){return c})};b.getValues=function(){return this.map(function(a){return a})};
+b.contains=function(a){return this.some(function(c){return c==a})};b.containsKey=function(a){return this.map_.containsKey(a)};b.clear=function(){E(this,0)};b.forEach=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)a.call(c,d.value,d.key,this)};b.map=function(a,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(a.call(c,e.value,e.key,this));return d};b.some=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(a.call(c,d.value,d.key,this))return!0;return!1};
+b.every=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!a.call(c,d.value,d.key,this))return!1;return!0};
+var B=function(a,c){a.cache_?(c.next=a.head_.next,c.prev=a.head_,a.head_.next=c,c.next.prev=c):(c.prev=a.head_.prev,c.next=a.head_,a.head_.prev=c,c.prev.next=c);null!=a.maxCount_&&E(a,a.maxCount_)},E=function(a,c){for(;a.getCount()>c;){var d=a.cache_?a.head_.prev:a.head_.next;a.removeNode(d);a.evictionCallback_&&a.evictionCallback_(d.key,d.value)}},D=function(a,c){a.head_!=c&&a.removeNode(c);return c.value};n.structs.LinkedMap.Node_=function(a,c){this.key=a;this.value=c};
+n.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};u.LicensesCache=function(a,c){n.events.EventTarget.call(this);this.timeout_=a||36E5;this.cache_=new n.structs.LinkedMap(c||100)};n.inherits(u.LicensesCache,n.events.EventTarget);u.LicensesCache.Entry=function(a){this.timeStamp_=n.now();this.licenses_=a};u.LicensesCache.prototype.get=function(a){a=this.cache_.get(a);var c;if(c=a)c=this.timeout_,c=n.now()-a.timeStamp_<=c;return c?a.licenses_:null};u.LicensesCache.prototype.remove=function(a){this.cache_.remove(a)};n.structs.getCount=function(a){return a.getCount&&"function"==typeof a.getCount?a.getCount():n.isArrayLike(a)||n.isString(a)?a.length:n.object.getCount(a)};n.structs.getValues=function(a){if(a.getValues&&"function"==typeof a.getValues)return a.getValues();if(n.isString(a))return a.split("");if(n.isArrayLike(a)){for(var c=[],d=a.length,e=0;e<d;e++)c.push(a[e]);return c}return n.object.getValues(a)};
+n.structs.getKeys=function(a){if(a.getKeys&&"function"==typeof a.getKeys)return a.getKeys();if(!a.getValues||"function"!=typeof a.getValues){if(n.isArrayLike(a)||n.isString(a)){var c=[];a=a.length;for(var d=0;d<a;d++)c.push(d);return c}return n.object.getKeys(a)}};
+n.structs.contains=function(a,c){return a.contains&&"function"==typeof a.contains?a.contains(c):a.containsValue&&"function"==typeof a.containsValue?a.containsValue(c):n.isArrayLike(a)||n.isString(a)?n.array.contains(a,c):n.object.containsValue(a,c)};n.structs.isEmpty=function(a){return a.isEmpty&&"function"==typeof a.isEmpty?a.isEmpty():n.isArrayLike(a)||n.isString(a)?n.array.isEmpty(a):n.object.isEmpty(a)};
+n.structs.clear=function(a){a.clear&&"function"==typeof a.clear?a.clear():n.isArrayLike(a)?n.array.clear(a):n.object.clear(a)};n.structs.forEach=function(a,c,d){if(a.forEach&&"function"==typeof a.forEach)a.forEach(c,d);else if(n.isArrayLike(a)||n.isString(a))n.array.forEach(a,c,d);else for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],a)};
+n.structs.filter=function(a,c,d){if("function"==typeof a.filter)return a.filter(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.filter(a,c,d);var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length;if(e){var h={};for(var k=0;k<g;k++)c.call(d,f[k],e[k],a)&&(h[e[k]]=f[k])}else for(h=[],k=0;k<g;k++)c.call(d,f[k],void 0,a)&&h.push(f[k]);return h};
+n.structs.map=function(a,c,d){if("function"==typeof a.map)return a.map(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.map(a,c,d);var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length;if(e){var h={};for(var k=0;k<g;k++)h[e[k]]=c.call(d,f[k],e[k],a)}else for(h=[],k=0;k<g;k++)h[k]=c.call(d,f[k],void 0,a);return h};
+n.structs.some=function(a,c,d){if("function"==typeof a.some)return a.some(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.some(a,c,d);for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],a))return!0;return!1};
+n.structs.every=function(a,c,d){if("function"==typeof a.every)return a.every(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.every(a,c,d);for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],a))return!1;return!0};n.uri={};n.uri.utils={};n.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};n.uri.utils.buildFromEncodedParts=function(a,c,d,e,f,g,h){var k="";a&&(k+=a+":");d&&(k+="//",c&&(k+=c+"@"),k+=d,e&&(k+=":"+e));f&&(k+=f);g&&(k+="?"+g);h&&(k+="#"+h);return k};n.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;n.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
+n.uri.utils.split=function(a){return a.match(n.uri.utils.splitRe_)};n.uri.utils.decodeIfPossible_=function(a,c){return a?c?decodeURI(a):decodeURIComponent(a):a};n.uri.utils.getComponentByIndex_=function(a,c){return n.uri.utils.split(c)[a]||null};n.uri.utils.getScheme=function(a){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.SCHEME,a)};
+n.uri.utils.getEffectiveScheme=function(a){a=n.uri.utils.getScheme(a);!a&&n.global.self&&n.global.self.location&&(a=n.global.self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};n.uri.utils.getUserInfoEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.USER_INFO,void 0)};n.uri.utils.getUserInfo=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getUserInfoEncoded())};
+n.uri.utils.getDomainEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.DOMAIN,void 0)};n.uri.utils.getDomain=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getDomainEncoded(),!0)};n.uri.utils.getPort=function(){return Number(n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PORT,void 0))||null};n.uri.utils.getPathEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PATH,void 0)};
+n.uri.utils.getPath=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getPathEncoded(),!0)};n.uri.utils.getQueryData=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.QUERY_DATA,void 0)};n.uri.utils.getFragmentEncoded=function(){var a=(void 0).indexOf("#");return 0>a?null:(void 0).substr(a+1)};n.uri.utils.setFragmentEncoded=function(a,c){return n.uri.utils.removeFragment(a)+(c?"#"+c:"")};n.uri.utils.getFragment=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getFragmentEncoded())};
+n.uri.utils.getHost=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(a[n.uri.utils.ComponentIndex.SCHEME],a[n.uri.utils.ComponentIndex.USER_INFO],a[n.uri.utils.ComponentIndex.DOMAIN],a[n.uri.utils.ComponentIndex.PORT])};n.uri.utils.getOrigin=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(a[n.uri.utils.ComponentIndex.SCHEME],null,a[n.uri.utils.ComponentIndex.DOMAIN],a[n.uri.utils.ComponentIndex.PORT])};
+n.uri.utils.getPathAndAfter=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(null,null,null,null,a[n.uri.utils.ComponentIndex.PATH],a[n.uri.utils.ComponentIndex.QUERY_DATA],a[n.uri.utils.ComponentIndex.FRAGMENT])};n.uri.utils.removeFragment=function(a){var c=a.indexOf("#");return 0>c?a:a.substr(0,c)};
+n.uri.utils.haveSameDomain=function(a,c){a=n.uri.utils.split(a);c=n.uri.utils.split(c);return a[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&a[n.uri.utils.ComponentIndex.SCHEME]==c[n.uri.utils.ComponentIndex.SCHEME]&&a[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.uri.utils.assertNoFragmentsOrQueries_=function(a){n.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};
+n.uri.utils.parseQueryData=function(a,c){if(a){a=a.split("&");for(var d=0;d<a.length;d++){var e=a[d].indexOf("="),f=null;if(0<=e){var g=a[d].substring(0,e);f=a[d].substring(e+1)}else g=a[d];c(g,f?n.string.urlDecode(f):"")}}};n.uri.utils.splitQueryData_=function(a){var c=a.indexOf("#");0>c&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);return[a.substr(0,d),e,a.substr(c)]};n.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};
+n.uri.utils.appendQueryData_=function(a,c){return c?a?a+"&"+c:c:a};n.uri.utils.appendQueryDataToUri_=function(a,c){if(!c)return a;a=n.uri.utils.splitQueryData_(a);a[1]=n.uri.utils.appendQueryData_(a[1],c);return n.uri.utils.joinQueryData_(a)};n.uri.utils.appendKeyValuePairs_=function(a,c,d){n.asserts.assertString(a);if(n.isArray(c)){n.asserts.assertArray(c);for(var e=0;e<c.length;e++)n.uri.utils.appendKeyValuePairs_(a,String(c[e]),d)}else null!=c&&d.push(a+(""===c?"":"="+n.string.urlEncode(c)))};
+n.uri.utils.buildQueryData=function(a,c){n.asserts.assert(0==Math.max(a.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var d=[];for(c=c||0;c<a.length;c+=2)n.uri.utils.appendKeyValuePairs_(a[c],a[c+1],d);return d.join("&")};n.uri.utils.buildQueryDataFromMap=function(a){var c=[],d;for(d in a)n.uri.utils.appendKeyValuePairs_(d,a[d],c);return c.join("&")};
+n.uri.utils.appendParams=function(a,c){var d=2==arguments.length?n.uri.utils.buildQueryData(arguments[1],0):n.uri.utils.buildQueryData(arguments,1);return n.uri.utils.appendQueryDataToUri_(a,d)};n.uri.utils.appendParamsFromMap=function(a,c){c=n.uri.utils.buildQueryDataFromMap(c);return n.uri.utils.appendQueryDataToUri_(a,c)};n.uri.utils.appendParam=function(a,c,d){d=n.isDefAndNotNull(d)?"="+n.string.urlEncode(d):"";return n.uri.utils.appendQueryDataToUri_(a,c+d)};
+n.uri.utils.findParam_=function(a,c,d,e){for(var f=d.length;0<=(c=a.indexOf(d,c))&&c<e;){var g=a.charCodeAt(c-1);if(g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.QUESTION)if(g=a.charCodeAt(c+f),!g||g==n.uri.utils.CharCode_.EQUAL||g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};n.uri.utils.hashOrEndRe_=/#|$/;n.uri.utils.hasParam=function(a,c){return 0<=n.uri.utils.findParam_(a,0,c,a.search(n.uri.utils.hashOrEndRe_))};
+n.uri.utils.getParamValue=function(a,c){var d=a.search(n.uri.utils.hashOrEndRe_),e=n.uri.utils.findParam_(a,0,c,d);if(0>e)return null;var f=a.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return n.string.urlDecode(a.substr(e,f-e))};n.uri.utils.getParamValues=function(a,c){for(var d=a.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(a,e,c,d));){e=a.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(n.string.urlDecode(a.substr(f,e-f)))}return g};
+n.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;n.uri.utils.removeParam=function(a,c){for(var d=a.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(a,e,c,d));)g.push(a.substring(e,f)),e=Math.min(a.indexOf("&",f)+1||d,d);g.push(a.substr(e));return g.join("").replace(n.uri.utils.trailingQueryPunctuationRe_,"$1")};
+n.uri.utils.setParam=function(a){var c=n.uri.utils.StandardQueryParam.RANDOM,d=n.string.getRandomString();return n.uri.utils.appendParam(n.uri.utils.removeParam(a,c),c,d)};n.uri.utils.setParamsFromMap=function(a,c){a=n.uri.utils.splitQueryData_(a);var d=a[1],e=[];d&&n.array.forEach(d.split("&"),function(a){var d=a.indexOf("=");c.hasOwnProperty(0<=d?a.substr(0,d):a)||e.push(a)});a[1]=n.uri.utils.appendQueryData_(e.join("&"),n.uri.utils.buildQueryDataFromMap(c));return n.uri.utils.joinQueryData_(a)};
+n.uri.utils.appendPath=function(a,c){n.uri.utils.assertNoFragmentsOrQueries_(a);n.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));n.string.startsWith(c,"/")&&(c=c.substr(1));return n.string.buildString(a,"/",c)};n.uri.utils.setPath=function(a,c){n.string.startsWith(c,"/");n.uri.utils.split(a)};n.uri.utils.StandardQueryParam={RANDOM:"zx"};n.uri.utils.makeUnique=function(a){return n.uri.utils.setParam(a)};n.Uri=function(a,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;a instanceof n.Uri?(this.ignoreCase_=n.isDef(c)?c:a.ignoreCase_,F(this,a.getScheme()),G(this,a.getUserInfo()),H(this,a.getDomain()),I(this,a.getPort()),this.setPath(a.getPath()),J(this,a.getQueryData().clone()),K(this,a.getFragment())):a&&(d=n.uri.utils.split(String(a)))?(this.ignoreCase_=!!c,F(this,d[n.uri.utils.ComponentIndex.SCHEME]||"",!0),G(this,
+d[n.uri.utils.ComponentIndex.USER_INFO]||"",!0),H(this,d[n.uri.utils.ComponentIndex.DOMAIN]||"",!0),I(this,d[n.uri.utils.ComponentIndex.PORT]),this.setPath(d[n.uri.utils.ComponentIndex.PATH]||"",!0),J(this,d[n.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),K(this,d[n.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new n.Uri.QueryData(null,this.ignoreCase_))};n.Uri.preserveParameterTypesCompatibilityFlag=!1;n.Uri.RANDOM_PARAM=n.uri.utils.StandardQueryParam.RANDOM;
+n.Uri.prototype.toString=function(){var a=[],c=this.getScheme();c&&a.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)a.push("//"),(c=this.getUserInfo())&&a.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(n.Uri.removeDoubleEncoding_(n.string.urlEncode(d))),d=this.getPort(),null!=d&&a.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&a.push("/"),a.push(n.Uri.encodeSpecialChars_(d,
+"/"==d.charAt(0)?n.Uri.reDisallowedInAbsolutePath_:n.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&a.push("?",d);(d=this.getFragment())&&a.push("#",n.Uri.encodeSpecialChars_(d,n.Uri.reDisallowedInFragment_));return a.join("")};
+n.Uri.prototype.resolve=function(a){var c=this.clone(),d=!!a.scheme_;d?F(c,a.getScheme()):d=!!a.userInfo_;d?G(c,a.getUserInfo()):d=!!a.domain_;d?H(c,a.getDomain()):d=null!=a.port_;var e=a.getPath();if(d)I(c,a.getPort());else if(d=!!a.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=n.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==a.queryData_.toString();d?J(c,a.getQueryData().clone()):d=!!a.fragment_;d&&
+K(c,a.getFragment());return c};n.Uri.prototype.clone=function(){return new n.Uri(this)};n.Uri.prototype.getScheme=function(){return this.scheme_};var F=function(a,c,d){L(a);a.scheme_=d?n.Uri.decodeOrEmpty_(c,!0):c;a.scheme_&&(a.scheme_=a.scheme_.replace(/:$/,""))};n.Uri.prototype.getUserInfo=function(){return this.userInfo_};var G=function(a,c,d){L(a);a.userInfo_=d?n.Uri.decodeOrEmpty_(c):c};n.Uri.prototype.getDomain=function(){return this.domain_};
+var H=function(a,c,d){L(a);a.domain_=d?n.Uri.decodeOrEmpty_(c,!0):c};n.Uri.prototype.getPort=function(){return this.port_};var I=function(a,c){L(a);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);a.port_=c}else a.port_=null};n.Uri.prototype.getPath=function(){return this.path_};n.Uri.prototype.setPath=function(a,c){L(this);this.path_=c?n.Uri.decodeOrEmpty_(a,!0):a};
+var J=function(a,c,d){L(a);c instanceof n.Uri.QueryData?(a.queryData_=c,a.queryData_.setIgnoreCase(a.ignoreCase_)):(d||(c=n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInQuery_)),a.queryData_=new n.Uri.QueryData(c,a.ignoreCase_))};n.Uri.prototype.getQueryData=function(){return this.queryData_};n.Uri.prototype.getFragment=function(){return this.fragment_};var K=function(a,c,d){L(a);a.fragment_=d?n.Uri.decodeOrEmpty_(c):c};
+n.Uri.prototype.makeUnique=function(){L(this);var a=n.Uri.RANDOM_PARAM,c=n.string.getRandomString();L(this);this.queryData_.set(a,c);return this};n.Uri.prototype.removeParameter=function(a){L(this);this.queryData_.remove(a);return this};var L=function(a){if(a.isReadOnly_)throw Error("Tried to modify a read-only Uri");};n.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a)};
+n.Uri.parse=function(a,c){return a instanceof n.Uri?a.clone():new n.Uri(a,c)};n.Uri.create=function(a,c,d,e,f,g,h,k){k=new n.Uri(null,k);a&&F(k,a);c&&G(k,c);d&&H(k,d);e&&I(k,e);f&&k.setPath(f);g&&J(k,g);h&&K(k,h);return k};n.Uri.resolve=function(a,c){a instanceof n.Uri||(a=n.Uri.parse(a));c instanceof n.Uri||(c=n.Uri.parse(c));return a.resolve(c)};
+n.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(n.string.contains(a,"./")||n.string.contains(a,"/.")){var c=n.string.startsWith(a,"/");a=a.split("/");for(var d=[],e=0;e<a.length;){var f=a[e++];"."==f?c&&e==a.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==a.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return a};n.Uri.decodeOrEmpty_=function(a,c){return a?c?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""};
+n.Uri.encodeSpecialChars_=function(a,c,d){return n.isString(a)?(a=encodeURI(a).replace(c,n.Uri.encodeChar_),d&&(a=n.Uri.removeDoubleEncoding_(a)),a):null};n.Uri.encodeChar_=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)};n.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};n.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;n.Uri.reDisallowedInRelativePath_=/[#\?:]/g;n.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
+n.Uri.reDisallowedInQuery_=/[#\?@]/g;n.Uri.reDisallowedInFragment_=/#/g;n.Uri.haveSameDomain=function(a,c){a=n.uri.utils.split(a);c=n.uri.utils.split(c);return a[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&a[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.Uri.QueryData=function(a,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c};
+var M=function(a){a.keyMap_||(a.keyMap_=new n.structs.Map,a.count_=0,a.encodedQuery_&&n.uri.utils.parseQueryData(a.encodedQuery_,function(c,d){a.add(n.string.urlDecode(c),d)}))};n.Uri.QueryData.createFromMap=function(a,c,d){c=n.structs.getKeys(a);if("undefined"==typeof c)throw Error("Keys are undefined");d=new n.Uri.QueryData(null,d);a=n.structs.getValues(a);for(var e=0;e<c.length;e++){var f=c[e],g=a[e];n.isArray(g)?aa(d,f,g):d.add(f,g)}return d};
+n.Uri.QueryData.createFromKeysValues=function(a,c,d,e){if(a.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new n.Uri.QueryData(null,e);for(e=0;e<a.length;e++)d.add(a[e],c[e]);return d};b=n.Uri.QueryData.prototype;b.getCount=function(){M(this);return this.count_};b.add=function(a,c){M(this);this.encodedQuery_=null;a=P(this,a);var d=this.keyMap_.get(a);d||this.keyMap_.set(a,d=[]);d.push(c);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+b.remove=function(a){M(this);a=P(this,a);return this.keyMap_.containsKey(a)?(this.encodedQuery_=null,this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length,this.keyMap_.remove(a)):!1};b.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};b.isEmpty=function(){M(this);return 0==this.count_};b.containsKey=function(a){M(this);a=P(this,a);return this.keyMap_.containsKey(a)};b.containsValue=function(a){var c=this.getValues();return n.array.contains(c,a)};
+b.forEach=function(a,c){M(this);this.keyMap_.forEach(function(d,e){n.array.forEach(d,function(d){a.call(c,d,e,this)},this)},this)};b.getKeys=function(){M(this);for(var a=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=a[e],g=0;g<f.length;g++)d.push(c[e]);return d};
+b.getValues=function(a){M(this);var c=[];if(n.isString(a))this.containsKey(a)&&(c=n.array.concat(c,this.keyMap_.get(P(this,a))));else{a=this.keyMap_.getValues();for(var d=0;d<a.length;d++)c=n.array.concat(c,a[d])}return c};b.set=function(a,c){M(this);this.encodedQuery_=null;a=P(this,a);this.containsKey(a)&&(this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length);this.keyMap_.set(a,[c]);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+b.get=function(a,c){a=a?this.getValues(a):[];return n.Uri.preserveParameterTypesCompatibilityFlag?0<a.length?a[0]:c:0<a.length?String(a[0]):c};var aa=function(a,c,d){a.remove(c);0<d.length&&(a.encodedQuery_=null,a.keyMap_.set(P(a,c),n.array.clone(d)),a.count_=n.asserts.assertNumber(a.count_)+d.length)};
+n.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var a=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++){var e=c[d],f=n.string.urlEncode(e);e=this.getValues(e);for(var g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+n.string.urlEncode(e[g]));a.push(h)}}return this.encodedQuery_=a.join("&")};
+n.Uri.QueryData.prototype.clone=function(){var a=new n.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;this.keyMap_&&(a.keyMap_=this.keyMap_.clone(),a.count_=this.count_);return a};var P=function(a,c){c=String(c);a.ignoreCase_&&(c=c.toLowerCase());return c};n.Uri.QueryData.prototype.setIgnoreCase=function(a){a&&!this.ignoreCase_&&(M(this),this.encodedQuery_=null,this.keyMap_.forEach(function(a,d){var c=d.toLowerCase();d!=c&&(this.remove(d),aa(this,c,a))},this));this.ignoreCase_=a};
+n.Uri.QueryData.prototype.extend=function(a){for(var c=0;c<arguments.length;c++)n.structs.forEach(arguments[c],function(a,c){this.add(c,a)},this)};u.WebStoreService=function(){this.baseUrl_=u.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+u.WebStoreService.WEB_STORE_REQUEST_PATH_};u.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};u.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
+var Q=function(a,c,d,e,f,g,h,k,m,p,r,N){var sa=d?d:"",ta=k||"application/x-www-form-urlencoded",O=r||null,ba=N||null,ca=function(a,c){if(c&&200==a){a=null;try{a=JSON.parse(c)}catch(Ca){g(u.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}O&&ba&&(console.log("Updating the licenses cache for appId: "+O),ba.cache_.set(O,new u.LicensesCache.Entry(a)));f(a)}else g(u.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)};r=function(r){if(r){var t=new XMLHttpRequest;t.open(e,c);t.setRequestHeader("Authorization","Bearer "+
+r);t.setRequestHeader("Content-Type",ta);t.onreadystatechange=function(){4==t.readyState&&(401==t.status&&r?chrome.identity.removeCachedAuthToken({token:r},function(){h?Q(a,e,d,e,f,g,!1,k,m,p):(console.log(t),ca(t.status,t.responseText))}):(console.log(t),ca(t.status,t.responseText)))};t.send(sa)}else g(u.Errors.ErrorTypes.TOKEN_MISSING_ERROR)};p?r(p):chrome.identity.getAuthToken({interactive:m||!1},r)},R=function(a,c){c=c.parameters||{};if("env"in c){switch(c.env){case "prod":a.baseUrl_=u.WebStoreService.Environment.PROD;
+break;default:a.baseUrl_=u.WebStoreService.Environment.SANDBOX}a.baseUrlAndPath_=a.baseUrl_+u.WebStoreService.WEB_STORE_REQUEST_PATH_}};u.WebStoreService.prototype.onFailure_=function(a,c,d){a(u.Errors.getErrorResponse(d||c))};
+var da=function(a,c,d,e,f,g){var h=new n.Uri.QueryData;h.add("projection",f.projection?f.projection:"THIN");var k=new n.Uri(a.baseUrlAndPath_+"/items/"+c+"/payments");J(k,h);e=n.bind(a.onFailure_,a,e,u.Errors.ErrorTypes.GET_PURCHASES_ERROR);console.log("Making a request to apiary to retrieve licenses for appId: "+c);Q(a,k.toString(),null,"GET",d,e,!0,void 0,f.interactive,void 0,c,g)},ea=function(a,c,d,e,f,g){c=a.baseUrlAndPath_+"/items/"+c+"/skus/"+d;f=n.bind(a.onFailure_,a,f,u.Errors.ErrorTypes.CONSUME_PURCHASE_ERROR);
+console.log("Sending consume call to apiary.");Q(a,c,null,"DELETE",e,f,!0,void 0,g)},fa=function(a,c,d,e,f,g){var h=new n.Uri.QueryData;h.add("hl",g.hl?g.hl:window.navigator.language);g.gl&&h.add("gl",g.gl);h.add("projection",g.projection?g.projection:"THIN");c=a.baseUrlAndPath_+"/items/"+c+"/skus";f&&(c=c+"/"+f);f=new n.Uri(c);J(f,h);e=n.bind(a.onFailure_,a,e,u.Errors.ErrorTypes.GET_SKU_DETAILS_ERROR);Q(a,f.toString(),null,"GET",d,e,!0,void 0,g.interactive)};u.BackgroundDelegate=function(){this.licensesCache_=new u.LicensesCache;chrome.runtime.onConnectExternal.addListener(n.bind(this.onConnect_,this))};n.inherits(u.BackgroundDelegate,n.craw.AppBackgroundDelegate);n.craw.AppBackgroundDelegate.setImpl();u.BackgroundDelegate.Methods_={BUY:"buy",CONSUME_PURCHASE:"consumePurchase",GET_PURCHASES:"getPurchases",GET_SKU_DETAILS:"getSkuDetails"};u.BackgroundDelegate.METHOD_NAME_="method";
+u.BackgroundDelegate.prototype.getWindowBounds=function(){return{width:435,height:345}};
+var ha=function(a,c,d,e,f){chrome.identity.getAuthToken({interactive:!1},function(g){chrome.app.window.create("/html/craw_window.html",{bounds:a.getWindowBounds(),frame:"chrome",hidden:!1},function(a){d.onDisconnect.addListener(function(){a.close()});var h=a.contentWindow;h.crawConfig_=new n.craw.WindowConfig("https://www.google.com/intl/en-US/chrome/blank.html",!1);h.iapJwt_=e;h.sku_=f;var m=c.parameters;m||(m={});m.userSessionIndex=0;m.fullscreen=!0;m.oauthToken=g;m.propertyId="ChromeIAP";m.applicationId=
+d.sender.id;h.iapParams_=m;a.onClosed.addListener(function(){var a=h.purchase_result,c={};a&&"checkoutOrderId"in a?(c.response={orderId:a.checkoutOrderId},(a=h.payment_data)&&(c.response.paymentData=a),(a=h.signature)&&(c.response.signature=a),console.log("Clearing licenses cache value after payment for appId: "+d.sender.id),this.licensesCache_.remove(d.sender.id)):c=u.Errors.getErrorResponse(u.Errors.ErrorTypes.PURCHASE_CANCELED);d.postMessage(c);d.disconnect()}.bind(this))}.bind(this))}.bind(a))},
+ia=function(a,c,d,e,f){var g=function(a){e({response:{details:a}})},h=a.licensesCache_.get(d);h?(console.log("Retrieving licenses cache value for appId: "+d),g(h)):(h=c.parameters||{},R(f,c),da(f,d,g,e,h,a.licensesCache_))},ja=function(a,c,d,e){var f=a.parameters||{};R(e,a);fa(e,c,function(a){d({response:{details:a}})},d,a.sku,f)},ka=function(a,c,d,e,f){a=function(a){console.log("Clearing licenses cache value after payment for appId: "+d);this.licensesCache_.remove(d);e({response:{details:a}})}.bind(a);
+var g=c.parameters||{};R(f,c);ea(f,d,c.sku,a,e,g.interactive)};
+u.BackgroundDelegate.prototype.onConnect_=function(a){var c=function(c){a.postMessage(c);a.disconnect()},d=new u.WebStoreService;a.onMessage.addListener(n.bind(function(e){!e.sku&&u.BackgroundDelegate.Methods_.GET_SKU_DETAILS!=e[u.BackgroundDelegate.METHOD_NAME_]&&u.BackgroundDelegate.Methods_.GET_PURCHASES!=e[u.BackgroundDelegate.METHOD_NAME_]&&u.BackgroundDelegate.Methods_.CONSUME_PURCHASE!=e[u.BackgroundDelegate.METHOD_NAME_]||"prod"==(e.parameters||{}).env?u.BackgroundDelegate.Methods_.GET_PURCHASES==
+e[u.BackgroundDelegate.METHOD_NAME_]?ia(this,e,a.sender.id,c,d):u.BackgroundDelegate.Methods_.GET_SKU_DETAILS==e[u.BackgroundDelegate.METHOD_NAME_]?ja(e,a.sender.id,c,d):u.BackgroundDelegate.Methods_.CONSUME_PURCHASE==e[u.BackgroundDelegate.METHOD_NAME_]?ka(this,e,a.sender.id,c,d):ha(this,e,a,e.jwt,e.sku):c(u.Errors.getErrorResponse(u.Errors.ErrorTypes.ENV_NOT_SUPPORTED_ERROR))},this))};n.async={};n.async.FreeList=function(a,c,d){this.limit_=d;this.create_=a;this.reset_=c;this.occupants_=0;this.head_=null};n.async.FreeList.prototype.get=function(){if(0<this.occupants_){this.occupants_--;var a=this.head_;this.head_=a.next;a.next=null}else a=this.create_();return a};n.async.FreeList.prototype.put=function(a){this.reset_(a);this.occupants_<this.limit_&&(this.occupants_++,a.next=this.head_,this.head_=a)};n.dom.HtmlElement=function(){};n.dom.TagName=function(a){this.tagName_=a};n.dom.TagName.prototype.toString=function(){return this.tagName_};n.dom.TagName.A=new n.dom.TagName("A");n.dom.TagName.ABBR=new n.dom.TagName("ABBR");n.dom.TagName.ACRONYM=new n.dom.TagName("ACRONYM");n.dom.TagName.ADDRESS=new n.dom.TagName("ADDRESS");n.dom.TagName.APPLET=new n.dom.TagName("APPLET");n.dom.TagName.AREA=new n.dom.TagName("AREA");n.dom.TagName.ARTICLE=new n.dom.TagName("ARTICLE");n.dom.TagName.ASIDE=new n.dom.TagName("ASIDE");
+n.dom.TagName.AUDIO=new n.dom.TagName("AUDIO");n.dom.TagName.B=new n.dom.TagName("B");n.dom.TagName.BASE=new n.dom.TagName("BASE");n.dom.TagName.BASEFONT=new n.dom.TagName("BASEFONT");n.dom.TagName.BDI=new n.dom.TagName("BDI");n.dom.TagName.BDO=new n.dom.TagName("BDO");n.dom.TagName.BIG=new n.dom.TagName("BIG");n.dom.TagName.BLOCKQUOTE=new n.dom.TagName("BLOCKQUOTE");n.dom.TagName.BODY=new n.dom.TagName("BODY");n.dom.TagName.BR=new n.dom.TagName("BR");n.dom.TagName.BUTTON=new n.dom.TagName("BUTTON");
+n.dom.TagName.CANVAS=new n.dom.TagName("CANVAS");n.dom.TagName.CAPTION=new n.dom.TagName("CAPTION");n.dom.TagName.CENTER=new n.dom.TagName("CENTER");n.dom.TagName.CITE=new n.dom.TagName("CITE");n.dom.TagName.CODE=new n.dom.TagName("CODE");n.dom.TagName.COL=new n.dom.TagName("COL");n.dom.TagName.COLGROUP=new n.dom.TagName("COLGROUP");n.dom.TagName.COMMAND=new n.dom.TagName("COMMAND");n.dom.TagName.DATA=new n.dom.TagName("DATA");n.dom.TagName.DATALIST=new n.dom.TagName("DATALIST");
+n.dom.TagName.DD=new n.dom.TagName("DD");n.dom.TagName.DEL=new n.dom.TagName("DEL");n.dom.TagName.DETAILS=new n.dom.TagName("DETAILS");n.dom.TagName.DFN=new n.dom.TagName("DFN");n.dom.TagName.DIALOG=new n.dom.TagName("DIALOG");n.dom.TagName.DIR=new n.dom.TagName("DIR");n.dom.TagName.DIV=new n.dom.TagName("DIV");n.dom.TagName.DL=new n.dom.TagName("DL");n.dom.TagName.DT=new n.dom.TagName("DT");n.dom.TagName.EM=new n.dom.TagName("EM");n.dom.TagName.EMBED=new n.dom.TagName("EMBED");
+n.dom.TagName.FIELDSET=new n.dom.TagName("FIELDSET");n.dom.TagName.FIGCAPTION=new n.dom.TagName("FIGCAPTION");n.dom.TagName.FIGURE=new n.dom.TagName("FIGURE");n.dom.TagName.FONT=new n.dom.TagName("FONT");n.dom.TagName.FOOTER=new n.dom.TagName("FOOTER");n.dom.TagName.FORM=new n.dom.TagName("FORM");n.dom.TagName.FRAME=new n.dom.TagName("FRAME");n.dom.TagName.FRAMESET=new n.dom.TagName("FRAMESET");n.dom.TagName.H1=new n.dom.TagName("H1");n.dom.TagName.H2=new n.dom.TagName("H2");n.dom.TagName.H3=new n.dom.TagName("H3");
+n.dom.TagName.H4=new n.dom.TagName("H4");n.dom.TagName.H5=new n.dom.TagName("H5");n.dom.TagName.H6=new n.dom.TagName("H6");n.dom.TagName.HEAD=new n.dom.TagName("HEAD");n.dom.TagName.HEADER=new n.dom.TagName("HEADER");n.dom.TagName.HGROUP=new n.dom.TagName("HGROUP");n.dom.TagName.HR=new n.dom.TagName("HR");n.dom.TagName.HTML=new n.dom.TagName("HTML");n.dom.TagName.I=new n.dom.TagName("I");n.dom.TagName.IFRAME=new n.dom.TagName("IFRAME");n.dom.TagName.IMG=new n.dom.TagName("IMG");
+n.dom.TagName.INPUT=new n.dom.TagName("INPUT");n.dom.TagName.INS=new n.dom.TagName("INS");n.dom.TagName.ISINDEX=new n.dom.TagName("ISINDEX");n.dom.TagName.KBD=new n.dom.TagName("KBD");n.dom.TagName.KEYGEN=new n.dom.TagName("KEYGEN");n.dom.TagName.LABEL=new n.dom.TagName("LABEL");n.dom.TagName.LEGEND=new n.dom.TagName("LEGEND");n.dom.TagName.LI=new n.dom.TagName("LI");n.dom.TagName.LINK=new n.dom.TagName("LINK");n.dom.TagName.MAIN=new n.dom.TagName("MAIN");n.dom.TagName.MAP=new n.dom.TagName("MAP");
+n.dom.TagName.MARK=new n.dom.TagName("MARK");n.dom.TagName.MATH=new n.dom.TagName("MATH");n.dom.TagName.MENU=new n.dom.TagName("MENU");n.dom.TagName.MENUITEM=new n.dom.TagName("MENUITEM");n.dom.TagName.META=new n.dom.TagName("META");n.dom.TagName.METER=new n.dom.TagName("METER");n.dom.TagName.NAV=new n.dom.TagName("NAV");n.dom.TagName.NOFRAMES=new n.dom.TagName("NOFRAMES");n.dom.TagName.NOSCRIPT=new n.dom.TagName("NOSCRIPT");n.dom.TagName.OBJECT=new n.dom.TagName("OBJECT");n.dom.TagName.OL=new n.dom.TagName("OL");
+n.dom.TagName.OPTGROUP=new n.dom.TagName("OPTGROUP");n.dom.TagName.OPTION=new n.dom.TagName("OPTION");n.dom.TagName.OUTPUT=new n.dom.TagName("OUTPUT");n.dom.TagName.P=new n.dom.TagName("P");n.dom.TagName.PARAM=new n.dom.TagName("PARAM");n.dom.TagName.PICTURE=new n.dom.TagName("PICTURE");n.dom.TagName.PRE=new n.dom.TagName("PRE");n.dom.TagName.PROGRESS=new n.dom.TagName("PROGRESS");n.dom.TagName.Q=new n.dom.TagName("Q");n.dom.TagName.RP=new n.dom.TagName("RP");n.dom.TagName.RT=new n.dom.TagName("RT");
+n.dom.TagName.RTC=new n.dom.TagName("RTC");n.dom.TagName.RUBY=new n.dom.TagName("RUBY");n.dom.TagName.S=new n.dom.TagName("S");n.dom.TagName.SAMP=new n.dom.TagName("SAMP");n.dom.TagName.SCRIPT=new n.dom.TagName("SCRIPT");n.dom.TagName.SECTION=new n.dom.TagName("SECTION");n.dom.TagName.SELECT=new n.dom.TagName("SELECT");n.dom.TagName.SMALL=new n.dom.TagName("SMALL");n.dom.TagName.SOURCE=new n.dom.TagName("SOURCE");n.dom.TagName.SPAN=new n.dom.TagName("SPAN");n.dom.TagName.STRIKE=new n.dom.TagName("STRIKE");
+n.dom.TagName.STRONG=new n.dom.TagName("STRONG");n.dom.TagName.STYLE=new n.dom.TagName("STYLE");n.dom.TagName.SUB=new n.dom.TagName("SUB");n.dom.TagName.SUMMARY=new n.dom.TagName("SUMMARY");n.dom.TagName.SUP=new n.dom.TagName("SUP");n.dom.TagName.SVG=new n.dom.TagName("SVG");n.dom.TagName.TABLE=new n.dom.TagName("TABLE");n.dom.TagName.TBODY=new n.dom.TagName("TBODY");n.dom.TagName.TD=new n.dom.TagName("TD");n.dom.TagName.TEMPLATE=new n.dom.TagName("TEMPLATE");n.dom.TagName.TEXTAREA=new n.dom.TagName("TEXTAREA");
+n.dom.TagName.TFOOT=new n.dom.TagName("TFOOT");n.dom.TagName.TH=new n.dom.TagName("TH");n.dom.TagName.THEAD=new n.dom.TagName("THEAD");n.dom.TagName.TIME=new n.dom.TagName("TIME");n.dom.TagName.TITLE=new n.dom.TagName("TITLE");n.dom.TagName.TR=new n.dom.TagName("TR");n.dom.TagName.TRACK=new n.dom.TagName("TRACK");n.dom.TagName.TT=new n.dom.TagName("TT");n.dom.TagName.U=new n.dom.TagName("U");n.dom.TagName.UL=new n.dom.TagName("UL");n.dom.TagName.VAR=new n.dom.TagName("VAR");n.dom.TagName.VIDEO=new n.dom.TagName("VIDEO");
+n.dom.TagName.WBR=new n.dom.TagName("WBR");n.async.throwException=function(a){n.global.setTimeout(function(){throw a;},0)};n.async.nextTick=function(a,c,d){var e=a;c&&(e=n.bind(a,c));e=n.async.nextTick.wrapCallback_(e);n.isFunction(n.global.setImmediate)&&(d||n.async.nextTick.useSetImmediate_())?n.global.setImmediate(e):(n.async.nextTick.setImmediate_||(n.async.nextTick.setImmediate_=n.async.nextTick.getSetImmediateEmulator_()),n.async.nextTick.setImmediate_(e))};
+n.async.nextTick.useSetImmediate_=function(){return n.global.Window&&n.global.Window.prototype&&!n.labs.userAgent.browser.isEdge()&&n.global.Window.prototype.setImmediate==n.global.setImmediate?!1:!0};
+n.async.nextTick.getSetImmediateEmulator_=function(){var a=n.global.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!n.labs.userAgent.engine.isPresto()&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var c=a.contentWindow;a=c.document;a.open();a.write("");a.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+"//"+
+c.location.host;a=n.bind(function(a){if(("*"==e||a.origin==e)&&a.data==d)this.port1.onmessage()},this);c.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof a&&!n.labs.userAgent.browser.isIE()){var c=new a,d={},e=d;c.port1.onmessage=function(){if(n.isDef(d.next)){d=d.next;var a=d.cb;d.cb=null;a()}};return function(a){e.next={cb:a};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
+document.createElement("SCRIPT")?function(a){var c=document.createElement("SCRIPT");c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;a();a=null};document.documentElement.appendChild(c)}:function(a){n.global.setTimeout(a,0)}};n.async.nextTick.wrapCallback_=n.functions.identity;n.debug.entryPointRegistry.register(function(a){n.async.nextTick.wrapCallback_=a});n.async.WorkQueue=function(){this.workTail_=this.workHead_=null};n.async.WorkQueue.DEFAULT_MAX_UNUSED=100;n.async.WorkQueue.freelist_=new n.async.FreeList(function(){return new n.async.WorkItem},function(a){a.reset()},n.async.WorkQueue.DEFAULT_MAX_UNUSED);n.async.WorkQueue.prototype.add=function(a,c){var d=n.async.WorkQueue.freelist_.get();d.set(a,c);this.workTail_?this.workTail_.next=d:(n.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
+n.async.WorkQueue.prototype.remove=function(){var a=null;this.workHead_&&(a=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),a.next=null);return a};n.async.WorkItem=function(){this.next=this.scope=this.fn=null};n.async.WorkItem.prototype.set=function(a,c){this.fn=a;this.scope=c;this.next=null};n.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};n.async.run=function(a,c){n.async.run.schedule_||n.async.run.initializeRunner_();n.async.run.workQueueScheduled_||(n.async.run.schedule_(),n.async.run.workQueueScheduled_=!0);n.async.run.workQueue_.add(a,c)};n.async.run.initializeRunner_=function(){if(-1!=String(n.global.Promise).indexOf("[native code]")){var a=n.global.Promise.resolve(void 0);n.async.run.schedule_=function(){a.then(n.async.run.processWorkQueue)}}else n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue)}};
+n.async.run.forceNextTick=function(a){n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue);a&&a(n.async.run.processWorkQueue)}};n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue;n.DEBUG&&(n.async.run.resetQueue=function(){n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue});
+n.async.run.processWorkQueue=function(){for(var a;a=n.async.run.workQueue_.remove();){try{a.fn.call(a.scope)}catch(c){n.async.throwException(c)}n.async.WorkQueue.freelist_.put(a)}n.async.run.workQueueScheduled_=!1};n.debug.LogRecord=function(a,c,d,e,f){this.reset(a,c,d,e,f)};n.debug.LogRecord.prototype.exception_=null;n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;n.debug.LogRecord.nextSequenceNumber_=0;n.debug.LogRecord.prototype.reset=function(a,c,d,e,f){n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||n.debug.LogRecord.nextSequenceNumber_++);e||n.now();this.level_=a;this.msg_=c;delete this.exception_};n.debug.LogRecord.prototype.setLevel=function(a){this.level_=a};
+n.debug.LogRecord.prototype.getMessage=function(){return this.msg_};n.debug.LogBuffer=function(){n.asserts.assert(n.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};n.debug.LogBuffer.getInstance=function(){n.debug.LogBuffer.instance_||(n.debug.LogBuffer.instance_=new n.debug.LogBuffer);return n.debug.LogBuffer.instance_};n.debug.LogBuffer.CAPACITY=0;n.debug.LogBuffer.isBufferingEnabled=function(){return 0<n.debug.LogBuffer.CAPACITY};
+n.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(n.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};n.debug.Logger=function(a){this.name_=a;this.handlers_=this.children_=this.level_=this.parent_=null};n.debug.Logger.ROOT_LOGGER_NAME="";n.debug.Logger.ENABLE_HIERARCHY=!0;n.debug.Logger.ENABLE_PROFILER_LOGGING=!1;n.debug.Logger.ENABLE_HIERARCHY||(n.debug.Logger.rootHandlers_=[]);n.debug.Logger.Level=function(a,c){this.name=a;this.value=c};n.debug.Logger.Level.prototype.toString=function(){return this.name};n.debug.Logger.Level.OFF=new n.debug.Logger.Level("OFF",Infinity);
+n.debug.Logger.Level.SHOUT=new n.debug.Logger.Level("SHOUT",1200);n.debug.Logger.Level.SEVERE=new n.debug.Logger.Level("SEVERE",1E3);n.debug.Logger.Level.WARNING=new n.debug.Logger.Level("WARNING",900);n.debug.Logger.Level.INFO=new n.debug.Logger.Level("INFO",800);n.debug.Logger.Level.CONFIG=new n.debug.Logger.Level("CONFIG",700);n.debug.Logger.Level.FINE=new n.debug.Logger.Level("FINE",500);n.debug.Logger.Level.FINER=new n.debug.Logger.Level("FINER",400);
+n.debug.Logger.Level.FINEST=new n.debug.Logger.Level("FINEST",300);n.debug.Logger.Level.ALL=new n.debug.Logger.Level("ALL",0);n.debug.Logger.Level.PREDEFINED_LEVELS=[n.debug.Logger.Level.OFF,n.debug.Logger.Level.SHOUT,n.debug.Logger.Level.SEVERE,n.debug.Logger.Level.WARNING,n.debug.Logger.Level.INFO,n.debug.Logger.Level.CONFIG,n.debug.Logger.Level.FINE,n.debug.Logger.Level.FINER,n.debug.Logger.Level.FINEST,n.debug.Logger.Level.ALL];n.debug.Logger.Level.predefinedLevelsCache_=null;
+n.debug.Logger.Level.createPredefinedLevelsCache_=function(){n.debug.Logger.Level.predefinedLevelsCache_={};for(var a=0,c;c=n.debug.Logger.Level.PREDEFINED_LEVELS[a];a++)n.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,n.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};n.debug.Logger.Level.getPredefinedLevel=function(a){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();return n.debug.Logger.Level.predefinedLevelsCache_[a]||null};
+n.debug.Logger.Level.getPredefinedLevelByValue=function(a){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();if(a in n.debug.Logger.Level.predefinedLevelsCache_)return n.debug.Logger.Level.predefinedLevelsCache_[a];for(var c=0;c<n.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=n.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=a)return d}return null};n.debug.Logger.getLogger=function(a){return n.debug.LogManager.getLogger(a)};
+n.debug.Logger.logToProfilers=function(a){if(n.debug.Logger.ENABLE_PROFILER_LOGGING){var c=n.global.msWriteProfilerMark;c?c(a):(c=n.global.console)&&c.timeStamp&&c.timeStamp(a)}};b=n.debug.Logger.prototype;b.getName=function(){return this.name_};
+b.addHandler=function(a){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(a)):(n.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootHandlers_.push(a)))};b.removeHandler=function(a){if(n.debug.LOGGING_ENABLED){var c=n.debug.Logger.ENABLE_HIERARCHY?this.handlers_:n.debug.Logger.rootHandlers_;return!!c&&n.array.remove(c,a)}return!1};
+b.getParent=function(){return this.parent_};b.getChildren=function(){this.children_||(this.children_={});return this.children_};b.setLevel=function(a){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?this.level_=a:(n.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootLevel_=a))};
+var la=function(a){if(!n.debug.LOGGING_ENABLED)return n.debug.Logger.Level.OFF;if(!n.debug.Logger.ENABLE_HIERARCHY)return n.debug.Logger.rootLevel_;if(a.level_)return a.level_;if(a.parent_)return la(a.parent_);n.asserts.fail("Root logger has no level set.");return null};
+n.debug.Logger.prototype.log=function(a,c,d){if(n.debug.LOGGING_ENABLED&&n.debug.LOGGING_ENABLED&&a.value>=la(this).value){n.isFunction(c)&&(c=c());if(n.debug.LogBuffer.isBufferingEnabled()){var e=n.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%n.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(a,c,f),a=e):(e.isFull_=g==n.debug.LogBuffer.CAPACITY-1,a=e.buffer_[g]=new n.debug.LogRecord(a,c,f))}else a=new n.debug.LogRecord(a,String(c),this.name_);d&&(a.exception_=
+d);n.debug.Logger.ENABLE_PROFILER_LOGGING&&n.debug.Logger.logToProfilers("log:"+a.getMessage());if(n.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){f=d;e=a;if(f.handlers_)for(g=0;c=f.handlers_[g];g++)c(e);d=d.getParent()}else for(d=0;c=n.debug.Logger.rootHandlers_[d++];)c(a)}};n.debug.Logger.prototype.warning=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.WARNING,a,c)};n.debug.Logger.prototype.info=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.INFO,a,c)};
+n.debug.Logger.prototype.fine=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.FINE,a,c)};n.debug.LogManager={};n.debug.LogManager.loggers_={};n.debug.LogManager.rootLogger_=null;n.debug.LogManager.initialize=function(){n.debug.LogManager.rootLogger_||(n.debug.LogManager.rootLogger_=new n.debug.Logger(n.debug.Logger.ROOT_LOGGER_NAME),n.debug.LogManager.loggers_[n.debug.Logger.ROOT_LOGGER_NAME]=n.debug.LogManager.rootLogger_,n.debug.LogManager.rootLogger_.setLevel(n.debug.Logger.Level.CONFIG))};
+n.debug.LogManager.getLoggers=function(){return n.debug.LogManager.loggers_};n.debug.LogManager.getRoot=function(){n.debug.LogManager.initialize();return n.debug.LogManager.rootLogger_};n.debug.LogManager.getLogger=function(a){n.debug.LogManager.initialize();return n.debug.LogManager.loggers_[a]||n.debug.LogManager.createLogger_(a)};
+n.debug.LogManager.createFunctionForCatchErrors=function(a){return function(c){var d=a||n.debug.LogManager.getRoot();n.debug.LOGGING_ENABLED&&d.log(n.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
+n.debug.LogManager.createLogger_=function(a){var c=new n.debug.Logger(a);if(n.debug.Logger.ENABLE_HIERARCHY){var d=a.lastIndexOf("."),e=a.substr(d+1);d=n.debug.LogManager.getLogger(a.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return n.debug.LogManager.loggers_[a]=c};n.json={};n.json.USE_NATIVE_JSON=!1;n.json.TRY_NATIVE_JSON=!1;n.json.isValid=function(a){return/^\s*$/.test(a)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};n.json.errorLogger_=n.nullFunction;n.json.setErrorLogger=function(a){n.json.errorLogger_=a};
+n.json.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(a){if(n.json.TRY_NATIVE_JSON)try{return n.global.JSON.parse(a)}catch(e){var c=e}a=String(a);if(n.json.isValid(a))try{var d=eval("("+a+")");c&&n.json.errorLogger_("Invalid JSON: "+a,c);return d}catch(e){}throw Error("Invalid JSON string: "+a);};n.json.serialize=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(a,c){return(new n.json.Serializer(c)).serialize(a)};n.json.Serializer=function(a){this.replacer_=a};
+n.json.Serializer.prototype.serialize=function(a){var c=[];S(this,a,c);return c.join("")};
+var S=function(a,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(n.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],S(a,a.replacer_?a.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),ma(e,d),d.push(":"),S(a,a.replacer_?a.replacer_.call(c,e,f):
+f,d),g=","));d.push("}");return}}switch(typeof c){case "string":ma(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};n.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
+n.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;var ma=function(a,c){c.push('"',a.replace(n.json.Serializer.charsToReplace_,function(a){var c=n.json.Serializer.charToJsonCharCache_[a];c||(c="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),n.json.Serializer.charToJsonCharCache_[a]=c);return c}),'"')};n.json.hybrid={};n.json.hybrid.stringify=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(a){if(n.global.JSON)try{return n.global.JSON.stringify(a)}catch(c){}return n.json.serialize(a)};n.json.hybrid.parse_=function(a){var c=n.json.parse;if(n.global.JSON)try{var d=n.global.JSON.parse(a);n.asserts.assert("object"==typeof d);return d}catch(e){}return c(a)};n.json.hybrid.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(a){return n.json.hybrid.parse_(a)};n.log={};n.log.ENABLED=n.debug.LOGGING_ENABLED;n.log.ROOT_LOGGER_NAME=n.debug.Logger.ROOT_LOGGER_NAME;n.log.Logger=n.debug.Logger;n.log.Level=n.debug.Logger.Level;n.log.LogRecord=n.debug.LogRecord;n.log.getLogger=function(a){return n.log.ENABLED?n.debug.LogManager.getLogger(a):null};n.log.addHandler=function(a){n.log.ENABLED&&a&&a.addHandler(void 0)};n.log.removeHandler=function(a){return n.log.ENABLED&&a?a.removeHandler(void 0):!1};n.log.log=function(a,c,d,e){n.log.ENABLED&&a&&a.log(c,d,e)};
+n.log.error=function(a,c,d){n.log.ENABLED&&a&&n.debug.LOGGING_ENABLED&&a.log(n.debug.Logger.Level.SEVERE,c,d)};n.log.warning=function(a,c){n.log.ENABLED&&a&&a.warning(c,void 0)};n.log.info=function(a,c,d){n.log.ENABLED&&a&&a.info(c,d)};n.log.fine=function(a,c){n.log.ENABLED&&a&&a.fine(c,void 0)};n.net={};n.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
+n.net.ErrorCode.getDebugMessage=function(a){switch(a){case n.net.ErrorCode.NO_ERROR:return"No Error";case n.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case n.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case n.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case n.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case n.net.ErrorCode.EXCEPTION:return"An exception occurred";case n.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
+case n.net.ErrorCode.ABORT:return"Request was aborted";case n.net.ErrorCode.TIMEOUT:return"Request timed out";case n.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};n.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};n.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
+PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
+n.net.HttpStatus.isSuccess=function(a){switch(a){case n.net.HttpStatus.OK:case n.net.HttpStatus.CREATED:case n.net.HttpStatus.ACCEPTED:case n.net.HttpStatus.NO_CONTENT:case n.net.HttpStatus.PARTIAL_CONTENT:case n.net.HttpStatus.NOT_MODIFIED:case n.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};n.net.XhrLike=function(){};b=n.net.XhrLike.prototype;b.open=function(){};b.send=function(){};b.abort=function(){};b.setRequestHeader=function(){};b.getResponseHeader=function(){};b.getAllResponseHeaders=function(){};n.net.XmlHttpFactory=function(){};n.net.XmlHttpFactory.prototype.cachedOptions_=null;n.net.XmlHttpFactory.prototype.getOptions=function(){var a;(a=this.cachedOptions_)||(a={},na(this)&&(a[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,a[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),a=this.cachedOptions_=a);return a};n.net.WrapperXmlHttpFactory=function(a,c){this.xhrFactory_=a;this.optionsFactory_=c};n.inherits(n.net.WrapperXmlHttpFactory,n.net.XmlHttpFactory);n.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};n.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};n.net.XmlHttp=function(){return n.net.XmlHttp.factory_.createInstance()};n.net.XmlHttp.ASSUME_NATIVE_XHR=!1;n.net.XmlHttpDefines={};n.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;n.net.XmlHttp.getOptions=function(){return n.net.XmlHttp.factory_.getOptions()};n.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};n.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
+n.net.XmlHttp.setFactory=function(a,c){n.net.XmlHttp.setGlobalFactory(new n.net.WrapperXmlHttpFactory(n.asserts.assert(a),n.asserts.assert(c)))};n.net.XmlHttp.setGlobalFactory=function(a){n.net.XmlHttp.factory_=a};n.net.DefaultXmlHttpFactory=function(){};n.inherits(n.net.DefaultXmlHttpFactory,n.net.XmlHttpFactory);n.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var a=na(this);return a?new ActiveXObject(a):new XMLHttpRequest};
+var na=function(a){if(n.net.XmlHttp.ASSUME_NATIVE_XHR||n.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!a.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),a.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return a.ieProgId_};n.net.XmlHttp.setGlobalFactory(new n.net.DefaultXmlHttpFactory);n.promise={};n.promise.Resolver=function(){};n.Thenable=function(){};n.Thenable.prototype.then=function(){};n.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";n.Thenable.addImplementation=function(a){a.prototype.then=a.prototype.then;a.prototype[n.Thenable.IMPLEMENTED_BY_PROP]=!0};n.Thenable.isImplementedBy=function(a){if(!a)return!1;try{return!!a[n.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};n.Promise=function(a,c){this.state_=n.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<n.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==n.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);n.Promise.LONG_STACK_TRACES&&(this.stack_=[],T(this,Error("created")),this.currentStep_=0);if(a!=n.nullFunction)try{var d=this;a.call(c,function(a){U(d,n.Promise.State_.FULFILLED,a)},function(a){if(n.DEBUG&&
+!(a instanceof n.Promise.CancellationError))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(f){}U(d,n.Promise.State_.REJECTED,a)})}catch(e){U(this,n.Promise.State_.REJECTED,e)}};n.Promise.LONG_STACK_TRACES=!1;n.Promise.UNHANDLED_REJECTION_DELAY=0;n.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};n.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
+n.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};n.Promise.DEFAULT_MAX_UNUSED=100;n.Promise.freelist_=new n.async.FreeList(function(){return new n.Promise.CallbackEntry_},function(a){a.reset()},n.Promise.DEFAULT_MAX_UNUSED);n.Promise.getCallbackEntry_=function(a,c,d){var e=n.Promise.freelist_.get();e.onFulfilled=a;e.onRejected=c;e.context=d;return e};n.Promise.returnEntry_=function(a){n.Promise.freelist_.put(a)};
+n.Promise.resolve=function(a){if(a instanceof n.Promise)return a;var c=new n.Promise(n.nullFunction);U(c,n.Promise.State_.FULFILLED,a);return c};n.Promise.reject=function(a){return new n.Promise(function(c,d){d(a)})};n.Promise.resolveThen_=function(a,c,d){n.Promise.maybeThen_(a,c,d,null)||n.async.run(n.partial(c,a))};n.Promise.race=function(a){return new n.Promise(function(c,d){a.length||c(void 0);for(var e=0,f;e<a.length;e++)f=a[e],n.Promise.resolveThen_(f,c,d)})};
+n.Promise.all=function(a){return new n.Promise(function(c,d){var e=a.length,f=[];if(e)for(var g=function(a,d){e--;f[a]=d;0==e&&c(f)},h=function(a){d(a)},k=0,m;k<a.length;k++)m=a[k],n.Promise.resolveThen_(m,n.partial(g,k),h);else c(f)})};
+n.Promise.allSettled=function(a){return new n.Promise(function(c){var d=a.length,e=[];if(d)for(var f=function(a,f,g){d--;e[a]=f?{fulfilled:!0,value:g}:{fulfilled:!1,reason:g};0==d&&c(e)},g=0,h;g<a.length;g++)h=a[g],n.Promise.resolveThen_(h,n.partial(f,g,!0),n.partial(f,g,!1));else c(e)})};
+n.Promise.firstFulfilled=function(a){return new n.Promise(function(c,d){var e=a.length,f=[];if(e)for(var g=function(a){c(a)},h=function(a,c){e--;f[a]=c;0==e&&d(f)},k=0,m;k<a.length;k++)m=a[k],n.Promise.resolveThen_(m,g,n.partial(h,k));else c(void 0)})};n.Promise.withResolver=function(){var a,c,d=new n.Promise(function(d,f){a=d;c=f});return new n.Promise.Resolver_(d,a,c)};
+n.Promise.prototype.then=function(a,c,d){null!=a&&n.asserts.assertFunction(a,"opt_onFulfilled should be a function.");null!=c&&n.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");n.Promise.LONG_STACK_TRACES&&T(this,Error("then"));return oa(this,n.isFunction(a)?a:null,n.isFunction(c)?c:null,d)};n.Thenable.addImplementation(n.Promise);
+var pa=function(a,c){n.Promise.LONG_STACK_TRACES&&T(a,Error("thenCatch"));return oa(a,null,c,void 0)};n.Promise.prototype.cancel=function(a){this.state_==n.Promise.State_.PENDING&&n.async.run(function(){var c=new n.Promise.CancellationError(a);qa(this,c)},this)};
+var qa=function(a,c){if(a.state_==n.Promise.State_.PENDING)if(a.parent_){var d=a.parent_;if(d.callbackEntries_){for(var e=0,f=null,g=null,h=d.callbackEntries_;h&&(h.always||(e++,h.child==a&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.state_==n.Promise.State_.PENDING&&1==e?qa(d,c):(g?(e=g,n.asserts.assert(d.callbackEntries_),n.asserts.assert(null!=e),e.next==d.callbackEntriesTail_&&(d.callbackEntriesTail_=e),e.next=e.next.next):ra(d),ua(d,f,n.Promise.State_.REJECTED,c)))}a.parent_=null}else U(a,n.Promise.State_.REJECTED,
+c)},wa=function(a,c){a.callbackEntries_||a.state_!=n.Promise.State_.FULFILLED&&a.state_!=n.Promise.State_.REJECTED||va(a);n.asserts.assert(null!=c.onFulfilled);a.callbackEntriesTail_?a.callbackEntriesTail_.next=c:a.callbackEntries_=c;a.callbackEntriesTail_=c},oa=function(a,c,d,e){var f=n.Promise.getCallbackEntry_(null,null,null);f.child=new n.Promise(function(a,h){f.onFulfilled=c?function(d){try{var f=c.call(e,d);a(f)}catch(p){h(p)}}:a;f.onRejected=d?function(c){try{var f=d.call(e,c);!n.isDef(f)&&
+c instanceof n.Promise.CancellationError?h(c):a(f)}catch(p){h(p)}}:h});f.child.parent_=a;wa(a,f);return f.child};n.Promise.prototype.unblockAndFulfill_=function(a){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.FULFILLED,a)};n.Promise.prototype.unblockAndReject_=function(a){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.REJECTED,a)};
+var U=function(a,c,d){a.state_==n.Promise.State_.PENDING&&(a===d&&(c=n.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),a.state_=n.Promise.State_.BLOCKED,n.Promise.maybeThen_(d,a.unblockAndFulfill_,a.unblockAndReject_,a)||(a.result_=d,a.state_=c,a.parent_=null,va(a),c!=n.Promise.State_.REJECTED||d instanceof n.Promise.CancellationError||n.Promise.addUnhandledRejection_(a,d)))};
+n.Promise.maybeThen_=function(a,c,d,e){if(a instanceof n.Promise)return null!=c&&n.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&n.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),n.Promise.LONG_STACK_TRACES&&T(a,Error("then")),wa(a,n.Promise.getCallbackEntry_(c||n.nullFunction,d||null,e)),!0;if(n.Thenable.isImplementedBy(a))return a.then(c,d,e),!0;if(n.isObject(a))try{var f=a.then;if(n.isFunction(f))return n.Promise.tryThen_(a,
+f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};n.Promise.tryThen_=function(a,c,d,e,f){var g=!1,h=function(a){g||(g=!0,d.call(f,a))},k=function(a){g||(g=!0,e.call(f,a))};try{c.call(a,h,k)}catch(m){k(m)}};var va=function(a){a.executing_||(a.executing_=!0,n.async.run(a.executeCallbacks_,a))},ra=function(a){var c=null;a.callbackEntries_&&(c=a.callbackEntries_,a.callbackEntries_=c.next,c.next=null);a.callbackEntries_||(a.callbackEntriesTail_=null);null!=c&&n.asserts.assert(null!=c.onFulfilled);return c};
+n.Promise.prototype.executeCallbacks_=function(){for(var a;a=ra(this);)n.Promise.LONG_STACK_TRACES&&this.currentStep_++,ua(this,a,this.state_,this.result_);this.executing_=!1};
+var ua=function(a,c,d,e){if(d==n.Promise.State_.REJECTED&&c.onRejected&&!c.always)if(0<n.Promise.UNHANDLED_REJECTION_DELAY)for(;a&&a.unhandledRejectionId_;a=a.parent_)n.global.clearTimeout(a.unhandledRejectionId_),a.unhandledRejectionId_=0;else if(0==n.Promise.UNHANDLED_REJECTION_DELAY)for(;a&&a.hadUnhandledRejection_;a=a.parent_)a.hadUnhandledRejection_=!1;if(c.child)c.child.parent_=null,n.Promise.invokeCallback_(c,d,e);else try{c.always?c.onFulfilled.call(c.context):n.Promise.invokeCallback_(c,
+d,e)}catch(f){n.Promise.handleRejection_.call(null,f)}n.Promise.returnEntry_(c)};n.Promise.invokeCallback_=function(a,c,d){c==n.Promise.State_.FULFILLED?a.onFulfilled.call(a.context,d):a.onRejected&&a.onRejected.call(a.context,d)};
+var T=function(a,c){if(n.Promise.LONG_STACK_TRACES&&n.isString(c.stack)){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");a.stack_.push(c+d)}},xa=function(a,c){if(n.Promise.LONG_STACK_TRACES&&c&&n.isString(c.stack)&&a.stack_.length){for(var d=["Promise trace:"],e=a;e;e=e.parent_){for(var f=a.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==n.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
+n.Promise.addUnhandledRejection_=function(a,c){0<n.Promise.UNHANDLED_REJECTION_DELAY?a.unhandledRejectionId_=n.global.setTimeout(function(){xa(a,c);n.Promise.handleRejection_.call(null,c)},n.Promise.UNHANDLED_REJECTION_DELAY):0==n.Promise.UNHANDLED_REJECTION_DELAY&&(a.hadUnhandledRejection_=!0,n.async.run(function(){a.hadUnhandledRejection_&&(xa(a,c),n.Promise.handleRejection_.call(null,c))}))};n.Promise.handleRejection_=n.async.throwException;
+n.Promise.setUnhandledRejectionHandler=function(a){n.Promise.handleRejection_=a};n.Promise.CancellationError=function(a){n.debug.Error.call(this,a)};n.inherits(n.Promise.CancellationError,n.debug.Error);n.Promise.CancellationError.prototype.name="cancel";n.Promise.Resolver_=function(a,c,d){this.promise=a;this.resolve=c;this.reject=d};n.Timer=function(a,c){n.events.EventTarget.call(this);this.interval_=a||1;this.timerObject_=c||n.Timer.defaultTimerObject;this.boundTick_=n.bind(this.tick_,this);this.last_=n.now()};n.inherits(n.Timer,n.events.EventTarget);n.Timer.MAX_TIMEOUT_=2147483647;n.Timer.INVALID_TIMEOUT_ID_=-1;n.Timer.prototype.enabled=!1;n.Timer.defaultTimerObject=n.global;n.Timer.intervalScale=.8;b=n.Timer.prototype;b.timer_=null;
+b.setInterval=function(a){this.interval_=a;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};
+b.tick_=function(){if(this.enabled){var a=n.now()-this.last_;0<a&&a<this.interval_*n.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-a):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(n.Timer.TICK),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now()))}};
+b.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now())};b.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};b.disposeInternal=function(){n.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};n.Timer.TICK="tick";
+n.Timer.callOnce=function(a,c,d){if(n.isFunction(a))d&&(a=n.bind(a,d));else if(a&&"function"==typeof a.handleEvent)a=n.bind(a.handleEvent,a);else throw Error("Invalid listener argument");return Number(c)>n.Timer.MAX_TIMEOUT_?n.Timer.INVALID_TIMEOUT_ID_:n.Timer.defaultTimerObject.setTimeout(a,c||0)};n.Timer.clear=function(a){n.Timer.defaultTimerObject.clearTimeout(a)};
+n.Timer.promise=function(a,c){var d=null;return pa(new n.Promise(function(e,f){d=n.Timer.callOnce(function(){e(c)},a);d==n.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(a){n.Timer.clear(d);throw a;})};n.net.XhrIo=function(a){n.events.EventTarget.call(this);this.headers=new n.structs.Map;this.xmlHttpFactory_=a||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=n.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};n.inherits(n.net.XhrIo,n.events.EventTarget);
+n.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};n.net.XhrIo.prototype.logger_=n.log.getLogger("goog.net.XhrIo");n.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";n.net.XhrIo.CONTENT_TRANSFER_ENCODING="Content-Transfer-Encoding";n.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;n.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];n.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";n.net.XhrIo.XHR2_TIMEOUT_="timeout";
+n.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";n.net.XhrIo.sendInstances_=[];n.net.XhrIo.send=function(a,c,d,e,f,g,h){var k=new n.net.XhrIo;n.net.XhrIo.sendInstances_.push(k);c&&k.listen(n.net.EventType.COMPLETE,c);k.listenOnce(n.net.EventType.READY,k.cleanupSend_);g&&(k.timeoutInterval_=Math.max(0,g));h&&(k.withCredentials_=h);k.send(a,d,e,f);return k};n.net.XhrIo.cleanup=function(){for(var a=n.net.XhrIo.sendInstances_;a.length;)a.pop().dispose()};
+n.net.XhrIo.protectEntryPoints=function(a){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=a.protectEntryPoint(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};n.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();n.array.remove(n.net.XhrIo.sendInstances_,this)};
+n.net.XhrIo.prototype.send=function(a,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+a);c=c?c.toUpperCase():"GET";this.lastUri_=a;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():n.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():n.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=n.bind(this.onReadyStateChange_,
+this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=n.bind(function(a){this.onProgressHandler_(a,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=n.bind(this.onProgressHandler_,this)));try{n.log.fine(this.logger_,V(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(a),!0),this.inOpen_=!1}catch(g){n.log.fine(this.logger_,V(this,"Error opening Xhr: "+g.message));ya(this,g);return}a=d||"";var f=this.headers.clone();e&&n.structs.forEach(e,function(a,c){f.set(c,
+a)});e=n.array.find(f.getKeys(),n.net.XhrIo.isContentTypeHeader_);d=n.global.FormData&&a instanceof n.global.FormData;!n.array.contains(n.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(n.net.XhrIo.CONTENT_TYPE_HEADER,n.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(a,c){this.xhr_.setRequestHeader(c,a)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);"withCredentials"in this.xhr_&&this.xhr_.withCredentials!==this.withCredentials_&&(this.xhr_.withCredentials=this.withCredentials_);
+try{za(this),0<this.timeoutInterval_&&(this.useXhr2Timeout_=n.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),n.log.fine(this.logger_,V(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[n.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=n.bind(this.timeout_,this)):this.timeoutId_=n.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),n.log.fine(this.logger_,V(this,"Sending request")),
+this.inSend_=!0,this.xhr_.send(a),this.inSend_=!1}catch(g){n.log.fine(this.logger_,V(this,"Send error: "+g.message)),ya(this,g)}};n.net.XhrIo.shouldUseXhr2Timeout_=function(a){return n.userAgent.IE&&n.userAgent.isVersionOrHigher(9)&&n.isNumber(a[n.net.XhrIo.XHR2_TIMEOUT_])&&n.isDef(a[n.net.XhrIo.XHR2_ON_TIMEOUT_])};n.net.XhrIo.isContentTypeHeader_=function(a){return n.string.caseInsensitiveEquals(a)};
+n.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof n&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",n.log.fine(this.logger_,V(this,this.lastError_)),this.dispatchEvent(n.net.EventType.TIMEOUT),this.abort(n.net.ErrorCode.TIMEOUT))};var ya=function(a,c){a.active_=!1;a.xhr_&&(a.inAbort_=!0,a.xhr_.abort(),a.inAbort_=!1);a.lastError_=c;Aa(a);W(a)},Aa=function(a){a.errorDispatched_||(a.errorDispatched_=!0,a.dispatchEvent(n.net.EventType.COMPLETE),a.dispatchEvent(n.net.EventType.ERROR))};
+n.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(n.log.fine(this.logger_,V(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(n.net.EventType.COMPLETE),this.dispatchEvent(n.net.EventType.ABORT),W(this))};n.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),W(this,!0));n.net.XhrIo.superClass_.disposeInternal.call(this)};
+n.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)Ba(this);else this.onReadyStateChangeEntryPoint_()};n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){Ba(this)};
+var Ba=function(a){if(a.active_&&"undefined"!=typeof n)if(a.xhrOptions_[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&X(a)==n.net.XmlHttp.ReadyState.COMPLETE&&2==Y(a))n.log.fine(a.logger_,V(a,"Local request error detected and ignored"));else if(a.inSend_&&X(a)==n.net.XmlHttp.ReadyState.COMPLETE)n.Timer.callOnce(a.onReadyStateChange_,0,a);else if(a.dispatchEvent(n.net.EventType.READY_STATE_CHANGE),Z(a)){n.log.fine(a.logger_,V(a,"Request complete"));a.active_=!1;try{if(a.isSuccess())a.dispatchEvent(n.net.EventType.COMPLETE),
+a.dispatchEvent(n.net.EventType.SUCCESS);else{try{var c=X(a)>n.net.XmlHttp.ReadyState.LOADED?a.xhr_.statusText:""}catch(d){n.log.fine(a.logger_,"Can not get status: "+d.message),c=""}a.lastError_=c+" ["+Y(a)+"]";Aa(a)}}finally{W(a)}}};
+n.net.XhrIo.prototype.onProgressHandler_=function(a,c){n.asserts.assert(a.type===n.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(a,n.net.EventType.PROGRESS));this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(a,c?n.net.EventType.DOWNLOAD_PROGRESS:n.net.EventType.UPLOAD_PROGRESS))};n.net.XhrIo.buildProgressEvent_=function(a,c){return{type:c,lengthComputable:a.lengthComputable,loaded:a.loaded,total:a.total}};
+var W=function(a,c){if(a.xhr_){za(a);var d=a.xhr_,e=a.xhrOptions_[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?n.nullFunction:null;a.xhr_=null;a.xhrOptions_=null;c||a.dispatchEvent(n.net.EventType.READY);try{d.onreadystatechange=e}catch(f){n.log.error(a.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},za=function(a){a.xhr_&&a.useXhr2Timeout_&&(a.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=null);a.timeoutId_&&(n.Timer.clear(a.timeoutId_),a.timeoutId_=null)},Z=function(a){return X(a)==
+n.net.XmlHttp.ReadyState.COMPLETE};n.net.XhrIo.prototype.isSuccess=function(){var a=Y(this),c;if(!(c=n.net.HttpStatus.isSuccess(a))){if(a=0===a)a=n.uri.utils.getEffectiveScheme(String(this.lastUri_)),a=!n.net.XhrIo.HTTP_SCHEME_PATTERN.test(a);c=a}return c};var X=function(a){return a.xhr_?a.xhr_.readyState:n.net.XmlHttp.ReadyState.UNINITIALIZED},Y=function(a){try{return X(a)>n.net.XmlHttp.ReadyState.LOADED?a.xhr_.status:-1}catch(c){return-1}};
+n.net.XhrIo.prototype.getResponseHeader=function(a){if(this.xhr_&&Z(this))return a=this.xhr_.getResponseHeader(a),n.isNull(a)?void 0:a};n.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&Z(this)?this.xhr_.getAllResponseHeaders()||"":""};var V=function(a,c){return c+" ["+a.lastMethod_+" "+a.lastUri_+" "+Y(a)+"]"};n.debug.entryPointRegistry.register(function(a){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=a(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});n.craw.AppAuthenticator=function(){};n.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";n.craw.AppBackground=function(){this.delegate_=n.craw.AppBackgroundDelegate.createImpl();chrome.app.runtime.onLaunched.addListener(n.bind(this.launchWindow_,this,null))};n.craw.AppBackground.prototype.launchWindow_=function(a){null!==a&&chrome.app.window.create("/html/craw_window.html",{id:"",bounds:this.delegate_.getWindowBounds(),frame:"chrome",hidden:!1},function(c){c.contentWindow.crawConfig_=new n.craw.WindowConfig(a,!0)})};window.onload=function(){new n.craw.AppBackground};
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js
new file mode 100644
index 0000000000000000000000000000000000000000..c02e8cf2ae0a12ceca7b10575452db8980274514
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js
@@ -0,0 +1,534 @@
+var a,k=k||{};k.scope={};k.findInternal=function(b,c,d){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var g=b[f];if(c.call(d,g,f,b))return{i:f,v:g}}return{i:-1,v:void 0}};k.ASSUME_ES5=!1;k.ASSUME_NO_NATIVE_MAP=!1;k.ASSUME_NO_NATIVE_SET=!1;k.defineProperty=k.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,c,d){b!=Array.prototype&&b!=Object.prototype&&(b[c]=d.value)};
+k.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};k.global=k.getGlobal(this);k.polyfill=function(b,c){if(c){var d=k.global;b=b.split(".");for(var e=0;e<b.length-1;e++){var f=b[e];f in d||(d[f]={});d=d[f]}b=b[b.length-1];e=d[b];c=c(e);c!=e&&null!=c&&k.defineProperty(d,b,{configurable:!0,writable:!0,value:c})}};
+k.checkStringArgs=function(b,c,d){if(null==b)throw new TypeError("The 'this' value for String.prototype."+d+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+d+" must not be a regular expression");return b+""};var n=n||{};n.global=this;n.isDef=function(b){return void 0!==b};n.isString=function(b){return"string"==typeof b};n.isBoolean=function(b){return"boolean"==typeof b};n.isNumber=function(b){return"number"==typeof b};
+n.exportPath_=function(b,c,d){b=b.split(".");d=d||n.global;b[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)!b.length&&n.isDef(c)?d[e]=c:d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}};n.define=function(b,c){n.exportPath_(b,c)};n.DEBUG=!0;n.LOCALE="en";n.TRUSTED_SITE=!0;n.STRICT_MODE_COMPATIBLE=!1;n.DISALLOW_TEST_ONLY_CODE=!n.DEBUG;n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
+n.provide=function(b){if(n.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");n.constructNamespace_(b)};n.constructNamespace_=function(b,c){n.exportPath_(b,c)};n.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+n.module=function(b){if(!n.isString(b)||!b||-1==b.search(n.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!n.isInModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(n.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+n.moduleLoaderState_.moduleName=b};n.module.get=function(){return null};n.module.getInternal_=function(){return null};n.moduleLoaderState_=null;n.isInModuleLoader_=function(){return null!=n.moduleLoaderState_};n.module.declareLegacyNamespace=function(){n.moduleLoaderState_.declareLegacyNamespace=!0};n.setTestOnly=function(b){if(n.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};n.forwardDeclare=function(){};
+n.getObjectByName=function(b){b=b.split(".");for(var c=n.global,d=0;d<b.length;d++)if(c=c[b[d]],!n.isDefAndNotNull(c))return null;return c};n.globalize=function(b,c){c=c||n.global;for(var d in b)c[d]=b[d]};n.addDependency=function(b,c,d,e){if(n.DEPENDENCIES_ENABLED){var f=n.getLoader_();f&&f.addDependency(b,c,d,e)}};n.useStrictRequires=!1;n.ENABLE_DEBUG_LOADER=!0;n.logToConsole_=function(b){n.global.console&&n.global.console.error(b)};n.require=function(b){n.ENABLE_DEBUG_LOADER&&n.debugLoader_&&n.getLoader_().earlyProcessLoad(b)};
+n.basePath="";n.nullFunction=function(){};n.abstractMethod=function(){throw Error("unimplemented abstract method");};n.addSingletonGetter=function(b){b.instance_=void 0;b.getInstance=function(){if(b.instance_)return b.instance_;n.DEBUG&&(n.instantiatedSingletons_[n.instantiatedSingletons_.length]=b);return b.instance_=new b}};n.instantiatedSingletons_=[];n.LOAD_MODULE_USING_EVAL=!0;n.SEAL_MODULE_EXPORTS=n.DEBUG;n.loadedModules_={};n.DEPENDENCIES_ENABLED=!1;n.TRANSPILE="detect";n.TRANSPILER="transpile.js";
+n.DEBUG_LOADER="";n.hasBadLetScoping=null;n.useSafari10Workaround=function(){if(null==n.hasBadLetScoping){try{var b=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){b=!1}n.hasBadLetScoping=b}return n.hasBadLetScoping};n.workaroundSafari10EvalBug=function(b){return"(function(){"+b+"\n;})();\n"};
+n.loadModule=function(b){var c=n.moduleLoaderState_;try{n.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1};if(n.isFunction(b))var d=b.call(void 0,{});else if(n.isString(b))n.useSafari10Workaround()&&(b=n.workaroundSafari10EvalBug(b)),d=n.loadModuleFromSource_.call(void 0,b);else throw Error("Invalid module definition");var e=n.moduleLoaderState_.moduleName;if(n.isString(e)&&e)n.moduleLoaderState_.declareLegacyNamespace?n.constructNamespace_(e,d):n.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==
+typeof d&&null!=d&&Object.seal(d),n.loadedModules_[e]=d;else throw Error('Invalid module name "'+e+'"');}finally{n.moduleLoaderState_=c}};n.loadModuleFromSource_=function(b){eval(b);return{}};n.normalizePath_=function(b){b=b.split("/");for(var c=0;c<b.length;)"."==b[c]?b.splice(c,1):c&&".."==b[c]&&b[c-1]&&".."!=b[c-1]?b.splice(--c,2):c++;return b.join("/")};
+n.loadFileSync_=function(b){if(n.global.CLOSURE_LOAD_FILE_SYNC)return n.global.CLOSURE_LOAD_FILE_SYNC(b);try{var c=new n.global.XMLHttpRequest;c.open("get",b,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
+n.transpile_=function(b,c){var d=n.global.$jscomp;d||(n.global.$jscomp=d={});var e=d.transpile;if(!e){var f=n.basePath+n.TRANSPILER,g=n.loadFileSync_(f);if(g){(function(){eval(g+"\n//# sourceURL="+f)}).call(n.global);if(n.global.$gwtExport&&n.global.$gwtExport.$jscomp&&!n.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(n.global.$gwtExport));n.global.$jscomp.transpile=n.global.$gwtExport.$jscomp.transpile;
+d=n.global.$jscomp;e=d.transpile}}if(!e){var h=" requires transpilation but no transpiler was found.";h+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';e=d.transpile=function(b,c){n.logToConsole_(c+h);return b}}return e(b,c)};
+n.typeOf=function(b){var c=typeof b;if("object"==c)if(b){if(b instanceof Array)return"array";if(b instanceof Object)return c;var d=Object.prototype.toString.call(b);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof b.length&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return"function"}else return"null";
+else if("function"==c&&"undefined"==typeof b.call)return"object";return c};n.isNull=function(b){return null===b};n.isDefAndNotNull=function(b){return null!=b};n.isArray=function(b){return"array"==n.typeOf(b)};n.isArrayLike=function(b){var c=n.typeOf(b);return"array"==c||"object"==c&&"number"==typeof b.length};n.isDateLike=function(b){return n.isObject(b)&&"function"==typeof b.getFullYear};n.isFunction=function(b){return"function"==n.typeOf(b)};
+n.isObject=function(b){var c=typeof b;return"object"==c&&null!=b||"function"==c};n.getUid=function(b){return b[n.UID_PROPERTY_]||(b[n.UID_PROPERTY_]=++n.uidCounter_)};n.hasUid=function(b){return!!b[n.UID_PROPERTY_]};n.removeUid=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(n.UID_PROPERTY_);try{delete b[n.UID_PROPERTY_]}catch(c){}};n.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);n.uidCounter_=0;n.getHashCode=n.getUid;n.removeHashCode=n.removeUid;
+n.cloneObject=function(b){var c=n.typeOf(b);if("object"==c||"array"==c){if("function"===typeof b.clone)return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=n.cloneObject(b[d]);return c}return b};n.bindNative_=function(b,c,d){return b.call.apply(b.bind,arguments)};
+n.bindJs_=function(b,c,d){if(!b)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return b.apply(c,d)}}return function(){return b.apply(c,arguments)}};n.bind=function(b,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?n.bind=n.bindNative_:n.bind=n.bindJs_;return n.bind.apply(null,arguments)};
+n.partial=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return b.apply(this,c)}};n.mixin=function(b,c){for(var d in c)b[d]=c[d]};n.now=n.TRUSTED_SITE&&Date.now||function(){return+new Date};
+n.globalEval=function(b){if(n.global.execScript)n.global.execScript(b,"JavaScript");else if(n.global.eval){if(null==n.evalWorksForGlobals_){try{n.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof n.global._evalTest_){try{delete n.global._evalTest_}catch(e){}n.evalWorksForGlobals_=!0}else n.evalWorksForGlobals_=!1}if(n.evalWorksForGlobals_)n.global.eval(b);else{var c=n.global.document,d=c.createElement("SCRIPT");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(b));
+c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};n.evalWorksForGlobals_=null;
+n.getCssName=function(b,c){if("."==String(b).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+b);var d=function(b){return n.cssNameMapping_[b]||b},e=function(b){b=b.split("-");for(var c=[],e=0;e<b.length;e++)c.push(d(b[e]));return c.join("-")};e=n.cssNameMapping_?"BY_WHOLE"==n.cssNameMappingStyle_?d:e:function(b){return b};b=c?b+"-"+e(c):e(b);return n.global.CLOSURE_CSS_NAME_MAP_FN?n.global.CLOSURE_CSS_NAME_MAP_FN(b):b};
+n.setCssNameMapping=function(b,c){n.cssNameMapping_=b;n.cssNameMappingStyle_=c};n.getMsg=function(b,c){c&&(b=b.replace(/\{\$([^}]+)}/g,function(b,e){return null!=c&&e in c?c[e]:b}));return b};n.getMsgWithFallback=function(b){return b};n.exportSymbol=function(b,c,d){n.exportPath_(b,c,d)};n.exportProperty=function(b,c,d){b[c]=d};
+n.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b;b.base=function(b,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(b,e)}};
+n.base=function(b,c,d){var e=arguments.callee.caller;if(n.STRICT_MODE_COMPATIBLE||n.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(b,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=
+b.constructor;h;h=h.superClass_&&h.superClass_.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(b,f);if(b[c]===e)return b.constructor.prototype[c].apply(b,f);throw Error("goog.base called from a method of one name to a method of a different name");};n.scope=function(b){if(n.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");b.call(n.global)};
+n.defineClass=function(b,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=n.defineClass.createSealingConstructor_(d,b);b&&n.inherits(d,b);delete c.constructor;delete c.statics;n.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):n.defineClass.applyProperties_(d,e));return d};n.defineClass.SEAL_CLASS_INSTANCES=n.DEBUG;
+n.defineClass.createSealingConstructor_=function(b,c){if(!n.defineClass.SEAL_CLASS_INSTANCES)return b;var d=!n.defineClass.isUnsealable_(c),e=function(){var c=b.apply(this,arguments)||this;c[n.UID_PROPERTY_]=c[n.UID_PROPERTY_];this.constructor===e&&d&&Object.seal instanceof Function&&Object.seal(c);return c};return e};n.defineClass.isUnsealable_=function(b){return b&&b.prototype&&b.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};n.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+n.defineClass.applyProperties_=function(b,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d]);for(var e=0;e<n.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=n.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d])};n.tagUnsealableClass=function(){};n.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
+if(n.DEPENDENCIES_ENABLED){n.inHtmlDocument_=function(){var b=n.global.document;return null!=b&&"write"in b};n.findBasePath_=function(){if(n.isDef(n.global.CLOSURE_BASE_PATH)&&n.isString(n.global.CLOSURE_BASE_PATH))n.basePath=n.global.CLOSURE_BASE_PATH;else if(n.inHtmlDocument_()){var b=n.global.document,c=b.currentScript;b=c?[c]:b.getElementsByTagName("SCRIPT");for(c=b.length-1;0<=c;--c){var d=b[c].src,e=d.lastIndexOf("?");e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){n.basePath=d.substr(0,e-
+7);break}}}};n.findBasePath_();n.Transpiler=function(){this.requiresTranspilation_=null};n.Transpiler.prototype.createRequiresTranspilation_=function(){function b(b,c){e?d[b]=!0:c()?d[b]=!1:e=d[b]=!0}function c(b){try{return!!eval(b)}catch(h){return!1}}var d={es3:!1},e=!1,f=n.global.navigator&&n.global.navigator.userAgent?n.global.navigator.userAgent:"";b("es5",function(){return c("[1,].length==1")});b("es6",function(){var b=f.match(/Edge\/(\d+)(\.\d)*/i);return b&&15>Number(b[1])?!1:c('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});
+b("es6-impl",function(){return!0});b("es7",function(){return c("2 ** 2 == 4")});b("es8",function(){return c("async () => 1, true")});b("es_next",function(){return c("({...rest} = {}), true")});return d};n.Transpiler.prototype.needsTranspile=function(b){if("always"==n.TRANSPILE)return!0;if("never"==n.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(b in this.requiresTranspilation_)return this.requiresTranspilation_[b];throw Error("Unknown language mode: "+
+b);};n.Transpiler.prototype.transpile=function(b,c){return n.transpile_(b,c)};n.transpiler_=new n.Transpiler;n.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.lastNonModuleScriptIndex_=0};n.DebugLoader.IS_OLD_IE_=!(n.global.atob||!n.global.document||!n.global.document.all);a=n.DebugLoader.prototype;a.earlyProcessLoad=function(b){n.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(b)};a.load=function(b){var c=this.getPathFromDeps_(b);
+if(c){var d=[],e={},f=this.dependencies_,g=this,h=function(b){if(!(b in f.written||b in f.visited)){f.visited[b]=!0;if(b in f.requires)for(var c in f.requires[b])if(!g.isProvided(c))if(c in f.nameToPath)h(f.nameToPath[c]);else throw Error("Undefined nameToPath for "+c);b in e||(e[b]=!0,d.push(b))}};h(c);for(b=0;b<d.length;b++)c=d[b],this.dependencies_.written[c]=!0;for(b=0;b<d.length;b++)if(c=d[b]){var l=f.loadFlags[c]||{},m=this.getTranspiler().needsTranspile(l.lang||"es3");"goog"==l.module||m?this.importProcessedScript_(n.basePath+
+c,"goog"==l.module,m):this.importScript_(n.basePath+c)}else throw Error("Undefined script input");}else if(b="goog.require could not find: "+b,this.logToConsole(b),n.useStrictRequires)throw Error(b);};a.addDependency=function(b,c,d,e){var f;b=b.replace(/\\/g,"/");var g=this.dependencies_;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.nameToPath[f]=b,g.loadFlags[b]=e;for(e=0;c=d[e];e++)b in g.requires||(g.requires[b]={}),g.requires[b][c]=!0};a.importScript_=function(b,c){(n.global.CLOSURE_IMPORT_SCRIPT||
+n.bind(this.writeScriptTag_,this))(b,c)&&(this.dependencies_.written[b]=!0)};a.importProcessedScript_=function(b,c,d){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+b+'", '+c+", "+d+");")};a.maybeProcessDeferredDep_=function(b){this.isDeferredModule_(b)&&this.allDepsAreAvailable_(b)&&this.maybeProcessDeferredPath_(n.basePath+this.getPathFromDeps_(b))};a.isDeferredModule_=function(b){var c=(b=this.getPathFromDeps_(b))&&this.dependencies_.loadFlags[b]||{},d=c.lang||"es3";return b&&("goog"==
+c.module||this.getTranspiler().needsTranspile(d))?n.basePath+b in this.dependencies_.deferred:!1};a.allDepsAreAvailable_=function(b){if((b=this.getPathFromDeps_(b))&&b in this.dependencies_.requires)for(var c in this.dependencies_.requires[b])if(!this.isProvided(c)&&!this.isDeferredModule_(c))return!1;return!0};a.maybeProcessDeferredPath_=function(b){if(b in this.dependencies_.deferred){var c=this.dependencies_.deferred[b];delete this.dependencies_.deferred[b];n.globalEval(c)}};a.writeScriptSrcNode_=
+function(b){n.global.document.write('<script type="text/javascript" src="'+b+'">\x3c/script>')};a.appendScriptSrcNode_=function(b){var c=n.global.document,d=c.createElement("script");d.type="text/javascript";d.src=b;d.defer=!1;d.async=!1;c.head.appendChild(d)};a.writeScriptTag_=function(b,c){if(this.inHtmlDocument()){var d=n.global.document;if(!n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==d.readyState){if(/\bdeps.js$/.test(b))return!1;throw Error('Cannot write "'+b+'" after document load');
+}void 0===c?n.DebugLoader.IS_OLD_IE_?(c=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",d.write('<script type="text/javascript" src="'+b+'"'+c+">\x3c/script>")):n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?this.appendScriptSrcNode_(b):this.writeScriptSrcNode_(b):d.write('<script type="text/javascript">'+this.protectScriptTag_(c)+"\x3c/script>");return!0}return!1};a.protectScriptTag_=function(b){return b.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")};a.getPathFromDeps_=
+function(b){return b in this.dependencies_.nameToPath?this.dependencies_.nameToPath[b]:null};a.getTranspiler=function(){return n.transpiler_};a.isProvided=function(b){return n.isProvided_(b)};a.inHtmlDocument=function(){return n.inHtmlDocument_()};a.logToConsole=function(b){n.logToConsole_(b)};n.debugLoader_=null;n.registerDebugLoader=function(){var b=q;if(n.debugLoader_)throw Error("Debug loader already registered!");if(!(b instanceof n.DebugLoader))throw Error("Not a goog.DebugLoader.");n.debugLoader_=
+b};n.getLoader_=function(){if(!n.debugLoader_&&n.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");n.debugLoader_||(n.debugLoader_=new n.DebugLoader);return n.debugLoader_};var q;n.DEBUG_LOADER&&(q=new n.DebugLoader,q.importScript_(n.basePath+n.DEBUG_LOADER));n.global.CLOSURE_NO_DEPS||(q=q||new n.DebugLoader,n.DEBUG_LOADER||n.registerDebugLoader(),q.importScript_(n.basePath+"deps.js"))};n.craw={};n.craw.AppWindowDelegate=function(){};n.craw.AppWindowDelegate.defaultImpl_=n.craw.AppWindowDelegate;n.craw.AppWindowDelegate.setDefaultImpl=function(){n.craw.AppWindowDelegate.defaultImpl_=t.WindowDelegate};n.craw.AppWindowDelegate.createDefaultImpl=function(b){return new n.craw.AppWindowDelegate.defaultImpl_(b)};n.craw.AppWindowDelegate.prototype.onWindowReady=function(){};n.craw.AppWindowDelegate.prototype.pollOnlineStatus=function(){return null};
+n.craw.AppWindowDelegate.prototype.finishedLaunch=function(){return!0};n.craw.AppWindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("craw_app_unavailable")};n.debug={};n.debug.Error=function(b){if(Error.captureStackTrace)Error.captureStackTrace(this,n.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}b&&(this.message=String(b))};n.inherits(n.debug.Error,Error);n.debug.Error.prototype.name="CustomError";n.dom={};n.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};n.asserts={};n.asserts.ENABLE_ASSERTS=n.DEBUG;n.asserts.AssertionError=function(b,c){n.debug.Error.call(this,n.asserts.subs_(b,c))};n.inherits(n.asserts.AssertionError,n.debug.Error);n.asserts.AssertionError.prototype.name="AssertionError";n.asserts.DEFAULT_ERROR_HANDLER=function(b){throw b;};n.asserts.errorHandler_=n.asserts.DEFAULT_ERROR_HANDLER;n.asserts.subs_=function(b,c){b=b.split("%s");for(var d="",e=b.length-1,f=0;f<e;f++)d+=b[f]+(f<c.length?c[f]:"%s");return d+b[e]};
+n.asserts.doAssertFailure_=function(b,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else b&&(f+=": "+b,g=c);b=new n.asserts.AssertionError(""+f,g||[]);n.asserts.errorHandler_(b)};n.asserts.setErrorHandler=function(b){n.asserts.ENABLE_ASSERTS&&(n.asserts.errorHandler_=b)};n.asserts.assert=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!b&&n.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.fail=function(b,c){n.asserts.ENABLE_ASSERTS&&n.asserts.errorHandler_(new n.asserts.AssertionError("Failure"+(b?": "+b:""),Array.prototype.slice.call(arguments,1)))};n.asserts.assertNumber=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isNumber(b)&&n.asserts.doAssertFailure_("Expected number but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertString=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isString(b)&&n.asserts.doAssertFailure_("Expected string but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};n.asserts.assertFunction=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isFunction(b)&&n.asserts.doAssertFailure_("Expected function but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertObject=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isObject(b)&&n.asserts.doAssertFailure_("Expected object but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};n.asserts.assertArray=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isArray(b)&&n.asserts.doAssertFailure_("Expected array but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertBoolean=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isBoolean(b)&&n.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};n.asserts.assertElement=function(b,c,d){!n.asserts.ENABLE_ASSERTS||n.isObject(b)&&b.nodeType==n.dom.NodeType.ELEMENT||n.asserts.doAssertFailure_("Expected Element but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertInstanceof=function(b,c,d,e){!n.asserts.ENABLE_ASSERTS||b instanceof c||n.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[n.asserts.getType_(c),n.asserts.getType_(b)],d,Array.prototype.slice.call(arguments,3));return b};n.asserts.assertFinite=function(b,c,d){!n.asserts.ENABLE_ASSERTS||"number"==typeof b&&isFinite(b)||n.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertObjectPrototypeIsIntact=function(){for(var b in Object.prototype)n.asserts.fail(b+" should not be enumerable in Object.prototype.")};n.asserts.getType_=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};n.array={};n.NATIVE_ARRAY_PROTOTYPES=n.TRUSTED_SITE;n.array.ASSUME_NATIVE_FUNCTIONS=!1;n.array.peek=function(b){return b[b.length-1]};n.array.last=n.array.peek;
+n.array.indexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.indexOf.call(b,c,d)}:function(b,c,d){d=null==d?0:0>d?Math.max(0,b.length+d):d;if(n.isString(b))return n.isString(c)&&1==c.length?b.indexOf(c,d):-1;for(;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
+n.array.lastIndexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.lastIndexOf.call(b,c,null==d?b.length-1:d)}:function(b,c,d){d=null==d?b.length-1:d;0>d&&(d=Math.max(0,b.length+d));if(n.isString(b))return n.isString(c)&&1==c.length?b.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in b&&b[d]===c)return d;return-1};
+n.array.forEach=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(b,c,d){n.asserts.assert(null!=b.length);Array.prototype.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};n.array.forEachRight=function(b,c){var d=b.length,e=n.isString(b)?b.split(""):b;for(--d;0<=d;--d)d in e&&c.call(void 0,e[d],d,b)};
+n.array.filter=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=n.isString(b)?b.split(""):b,l=0;l<e;l++)if(l in h){var m=h[l];c.call(d,m,l,b)&&(f[g++]=m)}return f};
+n.array.map=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=Array(e),g=n.isString(b)?b.split(""):b,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,b));return f};
+n.array.reduce=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(b,c,d,e){n.asserts.assert(null!=b.length);e&&(c=n.bind(c,e));return Array.prototype.reduce.call(b,c,d)}:function(b,c,d,e){var f=d;n.array.forEach(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
+n.array.reduceRight=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(b,c,d,e){n.asserts.assert(null!=b.length);n.asserts.assert(null!=c);e&&(c=n.bind(c,e));return Array.prototype.reduceRight.call(b,c,d)}:function(b,c,d,e){var f=d;n.array.forEachRight(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
+n.array.some=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return!0;return!1};
+n.array.every=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return!1;return!0};n.array.count=function(b,c,d){var e=0;n.array.forEach(b,function(b,g,h){c.call(d,b,g,h)&&++e},d);return e};
+n.array.find=function(b,c,d){c=n.array.findIndex(b,c,d);return 0>c?null:n.isString(b)?b.charAt(c):b[c]};n.array.findIndex=function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};n.array.findRight=function(b,c,d){c=n.array.findIndexRight(b,c,d);return 0>c?null:n.isString(b)?b.charAt(c):b[c]};
+n.array.findIndexRight=function(b,c,d){var e=b.length,f=n.isString(b)?b.split(""):b;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};n.array.contains=function(b,c){return 0<=n.array.indexOf(b,c)};n.array.isEmpty=function(b){return 0==b.length};n.array.clear=function(b){if(!n.isArray(b))for(var c=b.length-1;0<=c;c--)delete b[c];b.length=0};n.array.insert=function(b,c){n.array.contains(b,c)||b.push(c)};n.array.insertAt=function(b,c,d){n.array.splice(b,d,0,c)};
+n.array.insertArrayAt=function(b,c,d){n.partial(n.array.splice,b,d,0).apply(null,c)};n.array.insertBefore=function(b,c,d){var e;2==arguments.length||0>(e=n.array.indexOf(b,d))?b.push(c):n.array.insertAt(b,c,e)};n.array.remove=function(b,c){c=n.array.indexOf(b,c);var d;(d=0<=c)&&n.array.removeAt(b,c);return d};n.array.removeLast=function(b,c){c=n.array.lastIndexOf(b,c);return 0<=c?(n.array.removeAt(b,c),!0):!1};
+n.array.removeAt=function(b,c){n.asserts.assert(null!=b.length);return 1==Array.prototype.splice.call(b,c,1).length};n.array.removeIf=function(b,c,d){c=n.array.findIndex(b,c,d);return 0<=c?(n.array.removeAt(b,c),!0):!1};n.array.removeAllIf=function(b,c,d){var e=0;n.array.forEachRight(b,function(f,g){c.call(d,f,g,b)&&n.array.removeAt(b,g)&&e++});return e};n.array.concat=function(b){return Array.prototype.concat.apply([],arguments)};n.array.join=function(b){return Array.prototype.concat.apply([],arguments)};
+n.array.toArray=function(b){var c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];return d}return[]};n.array.clone=n.array.toArray;n.array.extend=function(b,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(n.isArrayLike(e)){var f=b.length||0,g=e.length||0;b.length=f+g;for(var h=0;h<g;h++)b[f+h]=e[h]}else b.push(e)}};n.array.splice=function(b,c,d,e){n.asserts.assert(null!=b.length);return Array.prototype.splice.apply(b,n.array.slice(arguments,1))};
+n.array.slice=function(b,c,d){n.asserts.assert(null!=b.length);return 2>=arguments.length?Array.prototype.slice.call(b,c):Array.prototype.slice.call(b,c,d)};n.array.removeDuplicates=function(b,c){c=c||b;for(var d={},e=0,f=0;f<b.length;){var g=b[f++];var h=g;h=n.isObject(h)?"o"+n.getUid(h):(typeof h).charAt(0)+h;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};n.array.binarySearch=function(b,c,d){return n.array.binarySearch_(b,d||n.array.defaultCompare,!1,c)};
+n.array.binarySelect=function(b,c,d){return n.array.binarySearch_(b,c,!0,void 0,d)};n.array.binarySearch_=function(b,c,d,e,f){for(var g=0,h=b.length,l;g<h;){var m=g+h>>1;var p=d?c.call(f,b[m],m,b):c(e,b[m]);0<p?g=m+1:(h=m,l=!p)}return l?g:~g};n.array.sort=function(b,c){b.sort(c||n.array.defaultCompare)};
+n.array.stableSort=function(b,c){for(var d=Array(b.length),e=0;e<b.length;e++)d[e]={index:e,value:b[e]};var f=c||n.array.defaultCompare;n.array.sort(d,function(b,c){return f(b.value,c.value)||b.index-c.index});for(e=0;e<b.length;e++)b[e]=d[e].value};n.array.sortByKey=function(b,c,d){var e=d||n.array.defaultCompare;n.array.sort(b,function(b,d){return e(c(b),c(d))})};n.array.sortObjectsByKey=function(b,c,d){n.array.sortByKey(b,function(b){return b[c]},d)};
+n.array.isSorted=function(b){for(var c=n.array.defaultCompare,d=1;d<b.length;d++)if(0<c(b[d-1],b[d]))return!1;return!0};n.array.equals=function(b,c){if(!n.isArrayLike(b)||!n.isArrayLike(c)||b.length!=c.length)return!1;for(var d=b.length,e=n.array.defaultCompareEquality,f=0;f<d;f++)if(!e(b[f],c[f]))return!1;return!0};
+n.array.compare3=function(b,c,d){d=d||n.array.defaultCompare;for(var e=Math.min(b.length,c.length),f=0;f<e;f++){var g=d(b[f],c[f]);if(0!=g)return g}return n.array.defaultCompare(b.length,c.length)};n.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};n.array.inverseDefaultCompare=function(b,c){return-n.array.defaultCompare(b,c)};n.array.defaultCompareEquality=function(b,c){return b===c};
+n.array.binaryInsert=function(b,c,d){d=n.array.binarySearch(b,c,d);return 0>d?(n.array.insertAt(b,c,-(d+1)),!0):!1};n.array.binaryRemove=function(b,c,d){c=n.array.binarySearch(b,c,d);return 0<=c?n.array.removeAt(b,c):!1};n.array.bucket=function(b,c,d){for(var e={},f=0;f<b.length;f++){var g=b[f],h=c.call(d,g,f,b);n.isDef(h)&&(e[h]||(e[h]=[])).push(g)}return e};n.array.toObject=function(b,c,d){var e={};n.array.forEach(b,function(f,g){e[c.call(d,f,g,b)]=f});return e};
+n.array.range=function(b,c,d){var e=[],f=0,g=b;d=d||1;void 0!==c&&(f=b,g=c);if(0>d*(g-f))return[];if(0<d)for(b=f;b<g;b+=d)e.push(b);else for(b=f;b>g;b+=d)e.push(b);return e};n.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};n.array.flatten=function(b){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(n.isArray(e))for(var f=0;f<e.length;f+=8192){var g=n.array.slice(e,f,f+8192);g=n.array.flatten.apply(null,g);for(var h=0;h<g.length;h++)c.push(g[h])}else c.push(e)}return c};
+n.array.rotate=function(b,c){n.asserts.assert(null!=b.length);b.length&&(c%=b.length,0<c?Array.prototype.unshift.apply(b,b.splice(-c,c)):0>c&&Array.prototype.push.apply(b,b.splice(0,-c)));return b};n.array.moveItem=function(b,c,d){n.asserts.assert(0<=c&&c<b.length);n.asserts.assert(0<=d&&d<b.length);c=Array.prototype.splice.call(b,c,1);Array.prototype.splice.call(b,d,0,c[0])};
+n.array.zip=function(b){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};n.array.shuffle=function(b,c){c=c||Math.random;for(var d=b.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=b[d];b[d]=b[e];b[e]=f}};n.array.copyByIndex=function(b,c){var d=[];n.array.forEach(c,function(c){d.push(b[c])});return d};
+n.array.concatMap=function(b,c,d){return n.array.concat.apply([],n.array.map(b,c,d))};n.debug.errorcontext={};n.debug.errorcontext.addErrorContext=function(b,c,d){b[n.debug.errorcontext.CONTEXT_KEY_]||(b[n.debug.errorcontext.CONTEXT_KEY_]={});b[n.debug.errorcontext.CONTEXT_KEY_][c]=d};n.debug.errorcontext.getErrorContext=function(b){return b[n.debug.errorcontext.CONTEXT_KEY_]||{}};n.debug.errorcontext.CONTEXT_KEY_="__closure__error__context__984382";n.string={};n.string.DETECT_DOUBLE_ESCAPING=!1;n.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;n.string.Unicode={NBSP:"\u00a0"};n.string.startsWith=function(b,c){return 0==b.lastIndexOf(c,0)};n.string.endsWith=function(b,c){var d=b.length-c.length;return 0<=d&&b.indexOf(c,d)==d};n.string.caseInsensitiveStartsWith=function(b){return 0==n.string.caseInsensitiveCompare("tel:",b.substr(0,4))};
+n.string.caseInsensitiveEndsWith=function(b,c){return 0==n.string.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))};n.string.caseInsensitiveEquals=function(b){return n.net.XhrIo.CONTENT_TYPE_HEADER.toLowerCase()==b.toLowerCase()};n.string.subs=function(b,c){for(var d=b.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};
+n.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};n.string.isEmptyOrWhitespace=function(b){return/^[\s\xa0]*$/.test(b)};n.string.isEmptyString=function(b){return 0==b.length};n.string.isEmpty=n.string.isEmptyOrWhitespace;n.string.isEmptyOrWhitespaceSafe=function(b){return n.string.isEmptyOrWhitespace(n.string.makeSafe(b))};n.string.isEmptySafe=n.string.isEmptyOrWhitespaceSafe;n.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};
+n.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};n.string.isNumeric=function(b){return!/[^0-9]/.test(b)};n.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};n.string.isSpace=function(b){return" "==b};n.string.isUnicodeChar=function(b){return 1==b.length&&" "<=b&&"~">=b||"\u0080"<=b&&"\ufffd">=b};n.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};n.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};
+n.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};n.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};n.string.collapseBreakingSpaces=function(b){return b.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};n.string.trim=n.TRUSTED_SITE&&String.prototype.trim?function(b){return b.trim()}:function(b){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(b)[1]};n.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};
+n.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};n.string.caseInsensitiveCompare=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};
+n.string.numberAwareCompare_=function(b,c,d){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var e=b.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var l=f[h];if(d!=l)return b=parseInt(d,10),!isNaN(b)&&(c=parseInt(l,10),!isNaN(c)&&b-c)?b-c:d<l?-1:1}return e.length!=f.length?e.length-f.length:b<c?-1:1};n.string.intAwareCompare=function(b,c){return n.string.numberAwareCompare_(b,c,/\d+|\D+/g)};
+n.string.floatAwareCompare=function(b,c){return n.string.numberAwareCompare_(b,c,/\d+|\.\d+|\D+/g)};n.string.numerateCompare=n.string.floatAwareCompare;n.string.urlEncode=function(b){return encodeURIComponent(String(b))};n.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};n.string.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
+n.string.htmlEscape=function(b,c){if(c)b=b.replace(n.string.AMP_RE_,"&amp;").replace(n.string.LT_RE_,"&lt;").replace(n.string.GT_RE_,"&gt;").replace(n.string.QUOT_RE_,"&quot;").replace(n.string.SINGLE_QUOTE_RE_,"&#39;").replace(n.string.NULL_RE_,"&#0;"),n.string.DETECT_DOUBLE_ESCAPING&&(b=b.replace(n.string.E_RE_,"&#101;"));else{if(!n.string.ALL_RE_.test(b))return b;-1!=b.indexOf("&")&&(b=b.replace(n.string.AMP_RE_,"&amp;"));-1!=b.indexOf("<")&&(b=b.replace(n.string.LT_RE_,"&lt;"));-1!=b.indexOf(">")&&
+(b=b.replace(n.string.GT_RE_,"&gt;"));-1!=b.indexOf('"')&&(b=b.replace(n.string.QUOT_RE_,"&quot;"));-1!=b.indexOf("'")&&(b=b.replace(n.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=b.indexOf("\x00")&&(b=b.replace(n.string.NULL_RE_,"&#0;"));n.string.DETECT_DOUBLE_ESCAPING&&-1!=b.indexOf("e")&&(b=b.replace(n.string.E_RE_,"&#101;"))}return b};n.string.AMP_RE_=/&/g;n.string.LT_RE_=/</g;n.string.GT_RE_=/>/g;n.string.QUOT_RE_=/"/g;n.string.SINGLE_QUOTE_RE_=/'/g;n.string.NULL_RE_=/\x00/g;n.string.E_RE_=/e/g;
+n.string.ALL_RE_=n.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;n.string.unescapeEntities=function(b){return n.string.contains(b,"&")?!n.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in n.global?n.string.unescapeEntitiesUsingDom_(b):n.string.unescapePureXmlEntities_(b):b};n.string.unescapeEntitiesWithDocument=function(b,c){return n.string.contains(b,"&")?n.string.unescapeEntitiesUsingDom_(b,c):b};
+n.string.unescapeEntitiesUsingDom_=function(b,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):n.global.document.createElement("div");return b.replace(n.string.HTML_ENTITY_PATTERN_,function(b,c){var f=d[b];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=b+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[b]=f})};
+n.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(b,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?b:String.fromCharCode(d)}})};n.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;n.string.whitespaceEscape=function(b){return n.string.newLineToBr(b.replace(/  /g," &#160;"),void 0)};
+n.string.preserveSpaces=function(b){return b.replace(/(^|[\n ]) /g,"$1"+n.string.Unicode.NBSP)};n.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};n.string.truncate=function(b,c,d){d&&(b=n.string.unescapeEntities(b));b.length>c&&(b=b.substring(0,c-3)+"...");d&&(b=n.string.htmlEscape(b));return b};
+n.string.truncateMiddle=function(b,c,d,e){d&&(b=n.string.unescapeEntities(b));e&&b.length>c?(e>c&&(e=c),b=b.substring(0,c-e)+"..."+b.substring(b.length-e)):b.length>c&&(e=Math.floor(c/2),b=b.substring(0,e+c%2)+"..."+b.substring(b.length-e));d&&(b=n.string.htmlEscape(b));return b};n.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};n.string.jsEscapeCache_={"'":"\\'"};
+n.string.quote=function(b){b=String(b);for(var c=['"'],d=0;d<b.length;d++){var e=b.charAt(d),f=e.charCodeAt(0);c[d+1]=n.string.specialEscapeChars_[e]||(31<f&&127>f?e:n.string.escapeChar(e))}c.push('"');return c.join("")};n.string.escapeString=function(b){for(var c=[],d=0;d<b.length;d++)c[d]=n.string.escapeChar(b.charAt(d));return c.join("")};
+n.string.escapeChar=function(b){if(b in n.string.jsEscapeCache_)return n.string.jsEscapeCache_[b];if(b in n.string.specialEscapeChars_)return n.string.jsEscapeCache_[b]=n.string.specialEscapeChars_[b];var c=b.charCodeAt(0);if(31<c&&127>c)var d=b;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return n.string.jsEscapeCache_[b]=d};n.string.contains=function(b,c){return-1!=b.indexOf(c)};
+n.string.caseInsensitiveContains=function(b,c){return n.string.contains(b.toLowerCase(),c.toLowerCase())};n.string.countOf=function(b,c){return b&&c?b.split(c).length-1:0};n.string.removeAt=function(b){return b};n.string.remove=function(b,c){return b.replace(c,"")};n.string.removeAll=function(b,c){c=new RegExp(n.string.regExpEscape(c),"g");return b.replace(c,"")};n.string.replaceAll=function(b,c,d){c=new RegExp(n.string.regExpEscape(c),"g");return b.replace(c,d.replace(/\$/g,"$$$$"))};
+n.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};n.string.repeat=String.prototype.repeat?function(b,c){return b.repeat(c)}:function(b,c){return Array(c+1).join(b)};n.string.padNumber=function(b,c,d){b=n.isDef(d)?b.toFixed(d):String(b);d=b.indexOf(".");-1==d&&(d=b.length);return n.string.repeat("0",Math.max(0,c-d))+b};n.string.makeSafe=function(b){return null==b?"":String(b)};
+n.string.buildString=function(b){return Array.prototype.join.call(arguments,"")};n.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^n.now()).toString(36)};
+n.string.compareVersions=function(b,c){var d=0;b=n.string.trim(String(b)).split(".");c=n.string.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;0==d&&f<e;f++){var g=b[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=n.string.compareElements_(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||n.string.compareElements_(0==g[2].length,0==h[2].length)||n.string.compareElements_(g[2],
+h[2]);g=g[3];h=h[3]}while(0==d)}return d};n.string.compareElements_=function(b,c){return b<c?-1:b>c?1:0};n.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d)c=31*c+b.charCodeAt(d)>>>0;return c};n.string.uniqueStringCounter_=2147483648*Math.random()|0;n.string.createUniqueString=function(){return"goog_"+n.string.uniqueStringCounter_++};n.string.toNumber=function(b){var c=Number(b);return 0==c&&n.string.isEmptyOrWhitespace(b)?NaN:c};n.string.isLowerCamelCase=function(b){return/^[a-z]+([A-Z][a-z]*)*$/.test(b)};
+n.string.isUpperCamelCase=function(b){return/^([A-Z][a-z]*)+$/.test(b)};n.string.toCamelCase=function(b){return String(b).replace(/\-([a-z])/g,function(b,d){return d.toUpperCase()})};n.string.toSelectorCase=function(b){return String(b).replace(/([A-Z])/g,"-$1").toLowerCase()};n.string.toTitleCase=function(b,c){c=n.isString(c)?n.string.regExpEscape(c):"\\s";return b.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(b,c,f){return c+f.toUpperCase()})};
+n.string.capitalize=function(b){return String(b.charAt(0)).toUpperCase()+String(b.substr(1)).toLowerCase()};n.string.parseInt=function(b){isFinite(b)&&(b=String(b));return n.isString(b)?/^\s*-?0x/i.test(b)?parseInt(b,16):parseInt(b,10):NaN};n.string.splitLimit=function(b,c,d){b=b.split(c);for(var e=[];0<d&&b.length;)e.push(b.shift()),d--;b.length&&e.push(b.join(c));return e};
+n.string.lastComponent=function(b,c){if(c)"string"==typeof c&&(c=[c]);else return b;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=b.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?b:b.slice(d+1)};
+n.string.editDistance=function(b,c){var d=[],e=[];if(b==c)return 0;if(!b.length||!c.length)return Math.max(b.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<b.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(b[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};n.labs={};n.labs.userAgent={};n.labs.userAgent.util={};n.labs.userAgent.util.getNativeUserAgentString_=function(){var b=n.labs.userAgent.util.getNavigator_();return b&&(b=b.userAgent)?b:""};n.labs.userAgent.util.getNavigator_=function(){return n.global.navigator};n.labs.userAgent.util.userAgent_=n.labs.userAgent.util.getNativeUserAgentString_();n.labs.userAgent.util.setUserAgent=function(b){n.labs.userAgent.util.userAgent_=b||n.labs.userAgent.util.getNativeUserAgentString_()};
+n.labs.userAgent.util.getUserAgent=function(){return n.labs.userAgent.util.userAgent_};n.labs.userAgent.util.matchUserAgent=function(b){return n.string.contains(n.labs.userAgent.util.getUserAgent(),b)};n.labs.userAgent.util.matchUserAgentIgnoreCase=function(){return n.string.caseInsensitiveContains(n.labs.userAgent.util.getUserAgent(),"WebKit")};
+n.labs.userAgent.util.extractVersionTuples=function(b){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(b);)d.push([e[1],e[2],e[3]||void 0]);return d};n.object={};n.object.is=function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c};n.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};n.object.filter=function(b,c,d){var e={},f;for(f in b)c.call(d,b[f],f,b)&&(e[f]=b[f]);return e};n.object.map=function(b,c,d){var e={},f;for(f in b)e[f]=c.call(d,b[f],f,b);return e};n.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return!0;return!1};n.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return!1;return!0};
+n.object.getCount=function(b){var c=0,d;for(d in b)c++;return c};n.object.getAnyKey=function(b){for(var c in b)return c};n.object.getAnyValue=function(b){for(var c in b)return b[c]};n.object.contains=function(b,c){return n.object.containsValue(b,c)};n.object.getValues=function(b){var c=[],d=0,e;for(e in b)c[d++]=b[e];return c};n.object.getKeys=function(b){var c=[],d=0,e;for(e in b)c[d++]=e;return c};
+n.object.getValueByKeys=function(b,c){var d=n.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==b)return;b=b[e[d]]}return b};n.object.containsKey=function(b,c){return null!==b&&c in b};n.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return!0;return!1};n.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};n.object.findValue=function(b,c,d){return(c=n.object.findKey(b,c,d))&&b[c]};n.object.isEmpty=function(b){for(var c in b)return!1;return!0};
+n.object.clear=function(b){for(var c in b)delete b[c]};n.object.remove=function(b,c){var d;(d=c in b)&&delete b[c];return d};n.object.add=function(b,c,d){if(null!==b&&c in b)throw Error('The object already contains the key "'+c+'"');n.object.set(b,c,d)};n.object.get=function(b,c,d){return null!==b&&c in b?b[c]:d};n.object.set=function(b,c,d){b[c]=d};n.object.setIfUndefined=function(b,c,d){return c in b?b[c]:b[c]=d};
+n.object.setWithReturnValueIfNotSet=function(b,c,d){if(c in b)return b[c];d=d();return b[c]=d};n.object.equals=function(b,c){for(var d in b)if(!(d in c)||b[d]!==c[d])return!1;for(d in c)if(!(d in b))return!1;return!0};n.object.clone=function(b){var c={},d;for(d in b)c[d]=b[d];return c};n.object.unsafeClone=function(b){var c=n.typeOf(b);if("object"==c||"array"==c){if(n.isFunction(b.clone))return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=n.object.unsafeClone(b[d]);return c}return b};
+n.object.transpose=function(b){var c={},d;for(d in b)c[b[d]]=d;return c};n.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");n.object.extend=function(b,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)b[d]=e[d];for(var g=0;g<n.object.PROTOTYPE_FIELDS_.length;g++)d=n.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(b[d]=e[d])}};
+n.object.create=function(b){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};n.object.createSet=function(b){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};
+n.object.createImmutableView=function(b){var c=b;Object.isFrozen&&!Object.isFrozen(b)&&(c=Object.create(b),Object.freeze(c));return c};n.object.isImmutableView=function(b){return!!Object.isFrozen&&Object.isFrozen(b)};
+n.object.getAllPropertyNames=function(b,c,d){if(!b)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return n.object.getKeys(b);for(var e={};b&&(b!==Object.prototype||c)&&(b!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(b),g=0;g<f.length;g++)e[f[g]]=!0;b=Object.getPrototypeOf(b)}return n.object.getKeys(e)};n.labs.userAgent.browser={};n.labs.userAgent.browser.matchOpera_=function(){return n.labs.userAgent.util.matchUserAgent("Opera")};n.labs.userAgent.browser.matchIE_=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.browser.matchEdge_=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.browser.matchFirefox_=function(){return n.labs.userAgent.util.matchUserAgent("Firefox")};
+n.labs.userAgent.browser.matchSafari_=function(){return n.labs.userAgent.util.matchUserAgent("Safari")&&!(n.labs.userAgent.browser.matchChrome_()||n.labs.userAgent.browser.matchCoast_()||n.labs.userAgent.browser.matchOpera_()||n.labs.userAgent.browser.matchEdge_()||n.labs.userAgent.browser.isSilk()||n.labs.userAgent.util.matchUserAgent("Android"))};n.labs.userAgent.browser.matchCoast_=function(){return n.labs.userAgent.util.matchUserAgent("Coast")};
+n.labs.userAgent.browser.matchIosWebview_=function(){return(n.labs.userAgent.util.matchUserAgent("iPad")||n.labs.userAgent.util.matchUserAgent("iPhone"))&&!n.labs.userAgent.browser.matchSafari_()&&!n.labs.userAgent.browser.matchChrome_()&&!n.labs.userAgent.browser.matchCoast_()&&n.labs.userAgent.util.matchUserAgent("AppleWebKit")};n.labs.userAgent.browser.matchChrome_=function(){return(n.labs.userAgent.util.matchUserAgent("Chrome")||n.labs.userAgent.util.matchUserAgent("CriOS"))&&!n.labs.userAgent.browser.matchEdge_()};
+n.labs.userAgent.browser.matchAndroidBrowser_=function(){return n.labs.userAgent.util.matchUserAgent("Android")&&!(n.labs.userAgent.browser.isChrome()||n.labs.userAgent.browser.isFirefox()||n.labs.userAgent.browser.isOpera()||n.labs.userAgent.browser.isSilk())};n.labs.userAgent.browser.isOpera=n.labs.userAgent.browser.matchOpera_;n.labs.userAgent.browser.isIE=n.labs.userAgent.browser.matchIE_;n.labs.userAgent.browser.isEdge=n.labs.userAgent.browser.matchEdge_;n.labs.userAgent.browser.isFirefox=n.labs.userAgent.browser.matchFirefox_;
+n.labs.userAgent.browser.isSafari=n.labs.userAgent.browser.matchSafari_;n.labs.userAgent.browser.isCoast=n.labs.userAgent.browser.matchCoast_;n.labs.userAgent.browser.isIosWebview=n.labs.userAgent.browser.matchIosWebview_;n.labs.userAgent.browser.isChrome=n.labs.userAgent.browser.matchChrome_;n.labs.userAgent.browser.isAndroidBrowser=n.labs.userAgent.browser.matchAndroidBrowser_;n.labs.userAgent.browser.isSilk=function(){return n.labs.userAgent.util.matchUserAgent("Silk")};
+n.labs.userAgent.browser.getVersion=function(){function b(b){b=n.array.find(b,e);return d[b]||""}var c=n.labs.userAgent.util.getUserAgent();if(n.labs.userAgent.browser.isIE())return n.labs.userAgent.browser.getIEVersion_(c);c=n.labs.userAgent.util.extractVersionTuples(c);var d={};n.array.forEach(c,function(b){d[b[0]]=b[1]});var e=n.partial(n.object.containsKey,d);return n.labs.userAgent.browser.isOpera()?b(["Version","Opera"]):n.labs.userAgent.browser.isEdge()?b(["Edge"]):n.labs.userAgent.browser.isChrome()?
+b(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};n.labs.userAgent.browser.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.browser.getVersion(),b)};
+n.labs.userAgent.browser.getIEVersion_=function(b){var c=/rv: *([\d\.]*)/.exec(b);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(b);if(d&&d[1])if(b=/Trident\/(\d.\d)/.exec(b),"7.0"==d[1])if(b&&b[1])switch(b[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};n.labs.userAgent.engine={};n.labs.userAgent.engine.isPresto=function(){return n.labs.userAgent.util.matchUserAgent("Presto")};n.labs.userAgent.engine.isTrident=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.engine.isEdge=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.engine.isWebKit=function(){return n.labs.userAgent.util.matchUserAgentIgnoreCase()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.isGecko=function(){return n.labs.userAgent.util.matchUserAgent("Gecko")&&!n.labs.userAgent.engine.isWebKit()&&!n.labs.userAgent.engine.isTrident()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.getVersion=function(){var b=n.labs.userAgent.util.getUserAgent();if(b){b=n.labs.userAgent.util.extractVersionTuples(b);var c=n.labs.userAgent.engine.getEngineTuple_(b);if(c)return"Gecko"==c[0]?n.labs.userAgent.engine.getVersionForKey_(b):c[1];b=b[0];var d;if(b&&(d=b[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
+n.labs.userAgent.engine.getEngineTuple_=function(b){if(!n.labs.userAgent.engine.isEdge())return b[1];for(var c=0;c<b.length;c++){var d=b[c];if("Edge"==d[0])return d}};n.labs.userAgent.engine.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.engine.getVersion(),b)};n.labs.userAgent.engine.getVersionForKey_=function(b){return(b=n.array.find(b,function(b){return"Firefox"==b[0]}))&&b[1]||""};n.labs.userAgent.platform={};n.labs.userAgent.platform.isAndroid=function(){return n.labs.userAgent.util.matchUserAgent("Android")};n.labs.userAgent.platform.isIpod=function(){return n.labs.userAgent.util.matchUserAgent("iPod")};n.labs.userAgent.platform.isIphone=function(){return n.labs.userAgent.util.matchUserAgent("iPhone")&&!n.labs.userAgent.util.matchUserAgent("iPod")&&!n.labs.userAgent.util.matchUserAgent("iPad")};n.labs.userAgent.platform.isIpad=function(){return n.labs.userAgent.util.matchUserAgent("iPad")};
+n.labs.userAgent.platform.isIos=function(){return n.labs.userAgent.platform.isIphone()||n.labs.userAgent.platform.isIpad()||n.labs.userAgent.platform.isIpod()};n.labs.userAgent.platform.isMacintosh=function(){return n.labs.userAgent.util.matchUserAgent("Macintosh")};n.labs.userAgent.platform.isLinux=function(){return n.labs.userAgent.util.matchUserAgent("Linux")};n.labs.userAgent.platform.isWindows=function(){return n.labs.userAgent.util.matchUserAgent("Windows")};
+n.labs.userAgent.platform.isChromeOS=function(){return n.labs.userAgent.util.matchUserAgent("CrOS")};n.labs.userAgent.platform.isChromecast=function(){return n.labs.userAgent.util.matchUserAgent("CrKey")};
+n.labs.userAgent.platform.getVersion=function(){var b=n.labs.userAgent.util.getUserAgent(),c="";n.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(b=c.exec(b))?b[1]:"0.0"):n.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(b=c.exec(b))&&b[1].replace(/_/g,".")):n.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(b=c.exec(b))?b[1].replace(/_/g,"."):"10"):n.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(b=c.exec(b))&&
+b[1]):n.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(b=c.exec(b))&&b[1]);return c||""};n.labs.userAgent.platform.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.platform.getVersion(),b)};n.reflect={};n.reflect.object=function(b,c){return c};n.reflect.objectProperty=function(b){return b};n.reflect.sinkValue=function(b){n.reflect.sinkValue[" "](b);return b};n.reflect.sinkValue[" "]=n.nullFunction;n.reflect.canAccessProperty=function(b){try{return n.reflect.sinkValue(b.nodeName),!0}catch(c){}return!1};n.reflect.cache=function(b,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(b,e)?b[e]:b[e]=d(c)};n.userAgent={};n.userAgent.ASSUME_IE=!1;n.userAgent.ASSUME_EDGE=!1;n.userAgent.ASSUME_GECKO=!1;n.userAgent.ASSUME_WEBKIT=!1;n.userAgent.ASSUME_MOBILE_WEBKIT=!1;n.userAgent.ASSUME_OPERA=!1;n.userAgent.ASSUME_ANY_VERSION=!1;n.userAgent.BROWSER_KNOWN_=n.userAgent.ASSUME_IE||n.userAgent.ASSUME_EDGE||n.userAgent.ASSUME_GECKO||n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_OPERA;n.userAgent.getUserAgentString=function(){return n.labs.userAgent.util.getUserAgent()};
+n.userAgent.getNavigatorTyped=function(){return n.global.navigator||null};n.userAgent.getNavigator=function(){return n.userAgent.getNavigatorTyped()};n.userAgent.OPERA=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_OPERA:n.labs.userAgent.browser.isOpera();n.userAgent.IE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_IE:n.labs.userAgent.browser.isIE();n.userAgent.EDGE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_EDGE:n.labs.userAgent.engine.isEdge();n.userAgent.EDGE_OR_IE=n.userAgent.EDGE||n.userAgent.IE;
+n.userAgent.GECKO=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_GECKO:n.labs.userAgent.engine.isGecko();n.userAgent.WEBKIT=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_MOBILE_WEBKIT:n.labs.userAgent.engine.isWebKit();n.userAgent.isMobile_=function(){return n.userAgent.WEBKIT&&n.labs.userAgent.util.matchUserAgent("Mobile")};n.userAgent.MOBILE=n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.isMobile_();n.userAgent.SAFARI=n.userAgent.WEBKIT;
+n.userAgent.determinePlatform_=function(){var b=n.userAgent.getNavigatorTyped();return b&&b.platform||""};n.userAgent.PLATFORM=n.userAgent.determinePlatform_();n.userAgent.ASSUME_MAC=!1;n.userAgent.ASSUME_WINDOWS=!1;n.userAgent.ASSUME_LINUX=!1;n.userAgent.ASSUME_X11=!1;n.userAgent.ASSUME_ANDROID=!1;n.userAgent.ASSUME_IPHONE=!1;n.userAgent.ASSUME_IPAD=!1;n.userAgent.ASSUME_IPOD=!1;
+n.userAgent.PLATFORM_KNOWN_=n.userAgent.ASSUME_MAC||n.userAgent.ASSUME_WINDOWS||n.userAgent.ASSUME_LINUX||n.userAgent.ASSUME_X11||n.userAgent.ASSUME_ANDROID||n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD;n.userAgent.MAC=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_MAC:n.labs.userAgent.platform.isMacintosh();n.userAgent.WINDOWS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_WINDOWS:n.labs.userAgent.platform.isWindows();
+n.userAgent.isLegacyLinux_=function(){return n.labs.userAgent.platform.isLinux()||n.labs.userAgent.platform.isChromeOS()};n.userAgent.LINUX=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_LINUX:n.userAgent.isLegacyLinux_();n.userAgent.isX11_=function(){var b=n.userAgent.getNavigatorTyped();return!!b&&n.string.contains(b.appVersion||"","X11")};n.userAgent.X11=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_X11:n.userAgent.isX11_();
+n.userAgent.ANDROID=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_ANDROID:n.labs.userAgent.platform.isAndroid();n.userAgent.IPHONE=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE:n.labs.userAgent.platform.isIphone();n.userAgent.IPAD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPAD:n.labs.userAgent.platform.isIpad();n.userAgent.IPOD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIpod();
+n.userAgent.IOS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIos();n.userAgent.determineVersion_=function(){var b="",c=n.userAgent.getVersionRegexResult_();c&&(b=c?c[1]:"");return n.userAgent.IE&&(c=n.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(b))?String(c):b};
+n.userAgent.getVersionRegexResult_=function(){var b=n.userAgent.getUserAgentString();if(n.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(b);if(n.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(b);if(n.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);if(n.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(b);if(n.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(b)};n.userAgent.getDocumentMode_=function(){var b=n.global.document;return b?b.documentMode:void 0};n.userAgent.VERSION=n.userAgent.determineVersion_();
+n.userAgent.compare=function(b,c){return n.string.compareVersions(b,c)};n.userAgent.isVersionOrHigherCache_={};n.userAgent.isVersionOrHigher=function(b){return n.userAgent.ASSUME_ANY_VERSION||n.reflect.cache(n.userAgent.isVersionOrHigherCache_,b,function(){return 0<=n.string.compareVersions(n.userAgent.VERSION,b)})};n.userAgent.isVersion=n.userAgent.isVersionOrHigher;n.userAgent.isDocumentModeOrHigher=function(b){return Number(n.userAgent.DOCUMENT_MODE)>=b};n.userAgent.isDocumentMode=n.userAgent.isDocumentModeOrHigher;
+var u;var v=n.global.document;u=v&&n.userAgent.IE?n.userAgent.getDocumentMode_()||("CSS1Compat"==v.compatMode?parseInt(n.userAgent.VERSION,10):5):void 0;n.userAgent.DOCUMENT_MODE=u;n.debug.LOGGING_ENABLED=n.DEBUG;n.debug.FORCE_SLOPPY_STACKS=!1;n.debug.catchErrors=function(b,c,d){d=d||n.global;var e=d.onerror,f=!!c;n.userAgent.WEBKIT&&!n.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(c,d,l,m,p){e&&e(c,d,l,m,p);b({message:c,fileName:d,line:l,lineNumber:l,col:m,error:p});return f}};
+n.debug.expose=function(b,c){if("undefined"==typeof b)return"undefined";if(null==b)return"NULL";var d=[],e;for(e in b)if(c||!n.isFunction(b[e])){var f=e+" = ";try{f+=b[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
+n.debug.deepExpose=function(b,c){var d=[],e=[],f={},g=function(b,l){var h=l+"  ";try{if(n.isDef(b))if(n.isNull(b))d.push("NULL");else if(n.isString(b))d.push('"'+b.replace(/\n/g,"\n"+l)+'"');else if(n.isFunction(b))d.push(String(b).replace(/\n/g,"\n"+l));else if(n.isObject(b)){n.hasUid(b)||e.push(b);var p=n.getUid(b);if(f[p])d.push("*** reference loop detected (id="+p+") ***");else{f[p]=!0;d.push("{");for(var A in b)if(c||!n.isFunction(b[A]))d.push("\n"),d.push(h),d.push(A+" = "),g(b[A],h);d.push("\n"+
+l+"}");delete f[p]}}else d.push(b);else d.push("undefined")}catch(O){d.push("*** "+O+" ***")}};g(b,"");for(b=0;b<e.length;b++)n.removeUid(e[b]);return d.join("")};n.debug.exposeArray=function(b){for(var c=[],d=0;d<b.length;d++)n.isArray(b[d])?c.push(n.debug.exposeArray(b[d])):c.push(b[d]);return"[ "+c.join(", ")+" ]"};
+n.debug.normalizeErrorObject=function(b){var c=n.getObjectByName("window.location.href");if(n.isString(b))return{message:b,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d=!1;try{var e=b.lineNumber||b.line||"Not available"}catch(g){e="Not available",d=!0}try{var f=b.fileName||b.filename||b.sourceURL||n.global.$googDebugFname||c}catch(g){f="Not available",d=!0}return!d&&b.lineNumber&&b.fileName&&b.stack&&b.message&&b.name?b:{message:b.message||"Not available",
+name:b.name||"UnknownError",lineNumber:e,fileName:f,stack:b.stack||"Not available"}};n.debug.enhanceError=function(b,c){b instanceof Error||(b=Error(b),Error.captureStackTrace&&Error.captureStackTrace(b,n.debug.enhanceError));b.stack||(b.stack=n.debug.getStacktrace(n.debug.enhanceError));if(c){for(var d=0;b["message"+d];)++d;b["message"+d]=String(c)}return b};
+n.debug.enhanceErrorWithContext=function(b,c){b=n.debug.enhanceError(b);if(c)for(var d in c)n.debug.errorcontext.addErrorContext(b,d,c[d]);return b};
+n.debug.getStacktraceSimple=function(b){if(!n.debug.FORCE_SLOPPY_STACKS){var c=n.debug.getNativeStackTrace_(n.debug.getStacktraceSimple);if(c)return c}c=[];for(var d=arguments.callee.caller,e=0;d&&(!b||e<b);){c.push(n.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=n.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}b&&e>=b?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
+n.debug.MAX_STACK_DEPTH=50;n.debug.getNativeStackTrace_=function(b){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,b),String(c.stack);try{throw c;}catch(d){c=d}return(b=c.stack)?String(b):null};n.debug.getStacktrace=function(b){var c;n.debug.FORCE_SLOPPY_STACKS||(c=n.debug.getNativeStackTrace_(b||n.debug.getStacktrace));c||(c=n.debug.getStacktraceHelper_(b||arguments.callee.caller,[]));return c};
+n.debug.getStacktraceHelper_=function(b,c){var d=[];if(n.array.contains(c,b))d.push("[...circular reference...]");else if(b&&c.length<n.debug.MAX_STACK_DEPTH){d.push(n.debug.getFunctionName(b)+"(");for(var e=b.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=n.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
+g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(b);d.push(")\n");try{d.push(n.debug.getStacktraceHelper_(b.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else b?d.push("[...long stack...]"):d.push("[end]");return d.join("")};n.debug.setFunctionResolver=function(b){n.debug.fnNameResolver_=b};
+n.debug.getFunctionName=function(b){if(n.debug.fnNameCache_[b])return n.debug.fnNameCache_[b];if(n.debug.fnNameResolver_){var c=n.debug.fnNameResolver_(b);if(c)return n.debug.fnNameCache_[b]=c}b=String(b);n.debug.fnNameCache_[b]||(c=/function ([^\(]+)/.exec(b),n.debug.fnNameCache_[b]=c?c[1]:"[Anonymous]");return n.debug.fnNameCache_[b]};n.debug.makeWhitespaceVisible=function(b){return b.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};
+n.debug.runtimeType=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};n.debug.fnNameCache_={};n.debug.freezeInternal_=n.DEBUG&&Object.freeze||function(b){return b};n.debug.freeze=function(b){return n.debug.freezeInternal_(b)};n.debug.entryPointRegistry={};n.debug.EntryPointMonitor=function(){};n.debug.entryPointRegistry.refList_=[];n.debug.entryPointRegistry.monitors_=[];n.debug.entryPointRegistry.monitorsMayExist_=!1;n.debug.entryPointRegistry.register=function(b){n.debug.entryPointRegistry.refList_[n.debug.entryPointRegistry.refList_.length]=b;if(n.debug.entryPointRegistry.monitorsMayExist_)for(var c=n.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)b(n.bind(c[d].wrap,c[d]))};
+n.debug.entryPointRegistry.monitorAll=function(b){n.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=n.bind(b.wrap,b),d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](c);n.debug.entryPointRegistry.monitors_.push(b)};
+n.debug.entryPointRegistry.unmonitorAllIfPossible=function(b){var c=n.debug.entryPointRegistry.monitors_;n.asserts.assert(b==c[c.length-1],"Only the most recent monitor can be unwrapped.");b=n.bind(b.unwrap,b);for(var d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](b);c.length--};n.disposable={};n.disposable.IDisposable=function(){};n.Disposable=function(){n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&(n.Disposable.instances_[n.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};n.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};n.Disposable.MONITORING_MODE=0;n.Disposable.INCLUDE_STACK_ON_CREATION=!0;n.Disposable.instances_={};
+n.Disposable.getUndisposedObjects=function(){var b=[],c;for(c in n.Disposable.instances_)n.Disposable.instances_.hasOwnProperty(c)&&b.push(n.Disposable.instances_[Number(c)]);return b};n.Disposable.clearUndisposedObjects=function(){n.Disposable.instances_={}};n.Disposable.prototype.disposed_=!1;n.Disposable.prototype.isDisposed=function(){return this.disposed_};
+n.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF)){var b=n.getUid(this);if(n.Disposable.MONITORING_MODE==n.Disposable.MonitoringMode.PERMANENT&&!n.Disposable.instances_.hasOwnProperty(b))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");if(n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&this.onDisposeCallbacks_&&
+0<this.onDisposeCallbacks_.length)throw Error(this+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete n.Disposable.instances_[b]}};n.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};n.Disposable.isDisposed=function(){return!1};n.dispose=function(b){b&&"function"==typeof b.dispose&&b.dispose()};
+n.disposeAll=function(b){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];n.isArrayLike(e)?n.disposeAll.apply(null,e):n.dispose(e)}};n.events={};k.scope.purify=function(b){return b()};
+n.events.BrowserFeature={HAS_W3C_BUTTON:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!n.userAgent.WEBKIT||n.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9b")||n.userAgent.IE&&n.userAgent.isVersionOrHigher("8")||n.userAgent.OPERA&&
+n.userAgent.isVersionOrHigher("9.5")||n.userAgent.WEBKIT&&n.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:n.userAgent.GECKO&&!n.userAgent.isVersionOrHigher("8")||n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in n.global||!!(n.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!n.global.navigator||!n.global.navigator.maxTouchPoints&&!n.global.navigator.msMaxTouchPoints),POINTER_EVENTS:"PointerEvent"in n.global,
+MSPOINTER_EVENTS:"MSPointerEvent"in n.global&&!(!n.global.navigator||!n.global.navigator.msPointerEnabled),PASSIVE_EVENTS:(0,k.scope.purify)(function(){if(!n.global.addEventListener||!Object.defineProperty)return!1;var b=!1,c=Object.defineProperty({},"passive",{get:function(){b=!0}});n.global.addEventListener("test",n.nullFunction,c);n.global.removeEventListener("test",n.nullFunction,c);return b})};n.events.EventId=function(b){this.id=b};n.events.EventId.prototype.toString=function(){return this.id};n.events.Event=function(b,c){this.type=b instanceof n.events.EventId?String(b):b;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};n.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};n.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};n.events.Event.stopPropagation=function(b){b.stopPropagation()};n.events.Event.preventDefault=function(b){b.preventDefault()};n.events.getVendorPrefixedName_=function(b){return n.userAgent.WEBKIT?"webkit"+b:n.userAgent.OPERA?"o"+b.toLowerCase():b.toLowerCase()};
+n.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:"focusin",FOCUSOUT:"focusout",CHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",
+INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICECHANGE:"devicechange",DEVICEMOTION:"devicemotion",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",
+LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",VOLUMECHANGE:"volumechange",
+WAITING:"waiting",SOURCEOPEN:"sourceopen",SOURCEENDED:"sourceended",SOURCECLOSED:"sourceclosed",ABORT:"abort",UPDATE:"update",UPDATESTART:"updatestart",UPDATEEND:"updateend",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",INSTALL:"install",ACTIVATE:"activate",FETCH:"fetch",FOREIGNFETCH:"foreignfetch",
+MESSAGEERROR:"messageerror",STATECHANGE:"statechange",UPDATEFOUND:"updatefound",CONTROLLERCHANGE:"controllerchange",ANIMATIONSTART:n.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:n.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:n.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:n.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",
+POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",
+MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:n.userAgent.IE?"textinput":"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",BEFOREINPUT:"beforeinput",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",
+SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint",BEFOREINSTALLPROMPT:"beforeinstallprompt",
+APPINSTALLED:"appinstalled"};n.events.getPointerFallbackEventName_=function(b,c,d){return n.events.BrowserFeature.POINTER_EVENTS?b:n.events.BrowserFeature.MSPOINTER_EVENTS?c:d};
+n.events.PointerFallbackEventType={POINTERDOWN:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERDOWN,n.events.EventType.MSPOINTERDOWN,n.events.EventType.MOUSEDOWN),POINTERUP:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERUP,n.events.EventType.MSPOINTERUP,n.events.EventType.MOUSEUP),POINTERCANCEL:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERCANCEL,n.events.EventType.MSPOINTERCANCEL,"mousecancel"),POINTERMOVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERMOVE,
+n.events.EventType.MSPOINTERMOVE,n.events.EventType.MOUSEMOVE),POINTEROVER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROVER,n.events.EventType.MSPOINTEROVER,n.events.EventType.MOUSEOVER),POINTEROUT:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROUT,n.events.EventType.MSPOINTEROUT,n.events.EventType.MOUSEOUT),POINTERENTER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERENTER,n.events.EventType.MSPOINTERENTER,n.events.EventType.MOUSEENTER),POINTERLEAVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERLEAVE,
+n.events.EventType.MSPOINTERLEAVE,n.events.EventType.MOUSELEAVE)};n.events.BrowserEvent=function(b,c){n.events.Event.call(this,b?b.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.event_=null;if(b){var d=this.type=b.type,e=b.changedTouches?b.changedTouches[0]:null;this.target=b.target||b.srcElement;this.currentTarget=
+c;(c=b.relatedTarget)?n.userAgent.GECKO&&(n.reflect.canAccessProperty(c)||(c=null)):d==n.events.EventType.MOUSEOVER?c=b.fromElement:d==n.events.EventType.MOUSEOUT&&(c=b.toElement);this.relatedTarget=c;n.isNull(e)?(this.offsetX=n.userAgent.WEBKIT||void 0!==b.offsetX?b.offsetX:b.layerX,this.offsetY=n.userAgent.WEBKIT||void 0!==b.offsetY?b.offsetY:b.layerY,this.clientX=void 0!==b.clientX?b.clientX:b.pageX,this.clientY=void 0!==b.clientY?b.clientY:b.pageY,this.screenX=b.screenX||0,this.screenY=b.screenY||
+0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0);this.button=b.button;this.keyCode=b.keyCode||0;this.key=b.key||"";this.charCode=b.charCode||("keypress"==d?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.pointerId=b.pointerId||0;this.pointerType=n.events.BrowserEvent.getPointerType_(b);this.state=b.state;this.event_=b;b.defaultPrevented&&
+this.preventDefault()}};n.inherits(n.events.BrowserEvent,n.events.Event);n.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};n.events.BrowserEvent.PointerType={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"};n.events.BrowserEvent.IEButtonMap=n.debug.freeze([1,4,2]);n.events.BrowserEvent.IE_BUTTON_MAP=n.events.BrowserEvent.IEButtonMap;n.events.BrowserEvent.IE_POINTER_TYPE_MAP=n.debug.freeze({2:n.events.BrowserEvent.PointerType.TOUCH,3:n.events.BrowserEvent.PointerType.PEN,4:n.events.BrowserEvent.PointerType.MOUSE});
+n.events.BrowserEvent.prototype.stopPropagation=function(){n.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
+n.events.BrowserEvent.prototype.preventDefault=function(){n.events.BrowserEvent.superClass_.preventDefault.call(this);var b=this.event_;if(b.preventDefault)b.preventDefault();else if(b.returnValue=!1,n.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(b.ctrlKey||112<=b.keyCode&&123>=b.keyCode)b.keyCode=-1}catch(c){}};n.events.BrowserEvent.getPointerType_=function(b){return n.isString(b.pointerType)?b.pointerType:n.events.BrowserEvent.IE_POINTER_TYPE_MAP[b.pointerType]||""};n.events.Listenable=function(){};n.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);n.events.Listenable.addImplementation=function(b){b.prototype[n.events.Listenable.IMPLEMENTED_BY_PROP]=!0};n.events.Listenable.isImplementedBy=function(b){return!(!b||!b[n.events.Listenable.IMPLEMENTED_BY_PROP])};n.events.ListenableKey=function(){};n.events.ListenableKey.counter_=0;n.events.ListenableKey.reserveKey=function(){return++n.events.ListenableKey.counter_};n.events.Listener=function(b,c,d,e,f){this.listener=b;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=n.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};n.events.Listener.ENABLE_MONITORING=!1;var w=function(b){b.removed=!0;b.listener=null;b.proxy=null;b.src=null;b.handler=null};n.events.ListenerMap=function(b){this.src=b;this.listeners={};this.typeCount_=0};n.events.ListenerMap.prototype.add=function(b,c,d,e,f){var g=b.toString();b=this.listeners[g];b||(b=this.listeners[g]=[],this.typeCount_++);var h=n.events.ListenerMap.findListenerIndex_(b,c,e,f);-1<h?(c=b[h],d||(c.callOnce=!1)):(c=new n.events.Listener(c,this.src,g,!!e,f),c.callOnce=d,b.push(c));return c};
+n.events.ListenerMap.prototype.remove=function(b,c,d,e){b=b.toString();if(!(b in this.listeners))return!1;var f=this.listeners[b];c=n.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(w(f[c]),n.array.removeAt(f,c),0==f.length&&(delete this.listeners[b],this.typeCount_--),!0):!1};var x=function(b,c){var d=c.type;if(!(d in b.listeners))return!1;var e=n.array.remove(b.listeners[d],c);e&&(w(c),0==b.listeners[d].length&&(delete b.listeners[d],b.typeCount_--));return e};
+n.events.ListenerMap.prototype.removeAll=function(b){b=b&&b.toString();var c=0,d;for(d in this.listeners)if(!b||d==b){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,w(e[f]);delete this.listeners[d];this.typeCount_--}return c};n.events.ListenerMap.prototype.getListeners=function(b,c){b=this.listeners[b.toString()];var d=[];if(b)for(var e=0;e<b.length;++e){var f=b[e];f.capture==c&&d.push(f)}return d};
+n.events.ListenerMap.prototype.getListener=function(b,c,d,e){b=this.listeners[b.toString()];var f=-1;b&&(f=n.events.ListenerMap.findListenerIndex_(b,c,d,e));return-1<f?b[f]:null};n.events.ListenerMap.prototype.hasListener=function(b,c){var d=n.isDef(b),e=d?b.toString():"",f=n.isDef(c);return n.object.some(this.listeners,function(b){for(var g=0;g<b.length;++g)if(!(d&&b[g].type!=e||f&&b[g].capture!=c))return!0;return!1})};
+n.events.ListenerMap.findListenerIndex_=function(b,c,d,e){for(var f=0;f<b.length;++f){var g=b[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};n.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);n.events.onString_="on";n.events.onStringMap_={};n.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};n.events.CAPTURE_SIMULATION_MODE=2;n.events.listenerCountEstimate_=0;
+n.events.listen=function(b,c,d,e,f){if(e&&e.once)return n.events.listenOnce(b,c,d,e,f);if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listen(b,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(b)?b.listen(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(b,c,d,!1,e,f)};
+n.events.listen_=function(b,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=n.isObject(f)?!!f.capture:!!f;if(h&&!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_FAIL)return n.asserts.fail("Can not register capture listener in IE8-."),null;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var l=n.events.getListenerMap_(b);l||(b[n.events.LISTENER_MAP_PROP_]=l=new n.events.ListenerMap(b));
+d=l.add(c,d,e,h,g);if(d.proxy)return d;e=n.events.getProxy();d.proxy=e;e.src=b;e.listener=d;if(b.addEventListener)n.events.BrowserFeature.PASSIVE_EVENTS||(f=h),void 0===f&&(f=!1),b.addEventListener(c.toString(),e,f);else if(b.attachEvent)b.attachEvent(n.events.getOnString_(c.toString()),e);else if(b.addListener&&b.removeListener)n.asserts.assert("change"===c,"MediaQueryList only has a change event"),b.addListener(e);else throw Error("addEventListener and attachEvent are unavailable.");n.events.listenerCountEstimate_++;
+return d};n.events.getProxy=function(){var b=n.events.handleBrowserEvent_,c=n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return b.call(c.src,c.listener,d)}:function(d){d=b.call(c.src,c.listener,d);if(!d)return d};return c};
+n.events.listenOnce=function(b,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listenOnce(b,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(b)?b.listenOnce(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(b,c,d,!0,e,f)};n.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};
+n.events.unlisten=function(b,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.unlisten(b,c[g],d,e,f);return null}e=n.isObject(e)?!!e.capture:!!e;d=n.events.wrapListener(d);if(n.events.Listenable.isImplementedBy(b))return b.unlisten(c,d,e,f);if(!b)return!1;if(b=n.events.getListenerMap_(b))if(c=b.getListener(c,d,e,f))return n.events.unlistenByKey(c);return!1};
+n.events.unlistenByKey=function(b){if(n.isNumber(b)||!b||b.removed)return!1;var c=b.src;if(n.events.Listenable.isImplementedBy(c))return c.unlistenByKey(b);var d=b.type,e=b.proxy;c.removeEventListener?c.removeEventListener(d,e,b.capture):c.detachEvent?c.detachEvent(n.events.getOnString_(d),e):c.addListener&&c.removeListener&&c.removeListener(e);n.events.listenerCountEstimate_--;(d=n.events.getListenerMap_(c))?(x(d,b),0==d.typeCount_&&(d.src=null,c[n.events.LISTENER_MAP_PROP_]=null)):w(b);return!0};
+n.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};n.events.removeAll=function(b,c){if(!b)return 0;if(n.events.Listenable.isImplementedBy(b))return b.eventTargetListeners_?b.eventTargetListeners_.removeAll(c):0;b=n.events.getListenerMap_(b);if(!b)return 0;var d=0;c=c&&c.toString();for(var e in b.listeners)if(!c||e==c)for(var f=b.listeners[e].concat(),g=0;g<f.length;++g)n.events.unlistenByKey(f[g])&&++d;return d};
+n.events.getListeners=function(b,c){return n.events.Listenable.isImplementedBy(b)?b.getListeners(c,void 0):b?(b=n.events.getListenerMap_(b))?b.getListeners(c,void 0):[]:[]};n.events.getListener=function(b,c,d,e){d=n.events.wrapListener(d);e=!!e;return n.events.Listenable.isImplementedBy(b)?b.getListener(c,d,e,void 0):b?(b=n.events.getListenerMap_(b))?b.getListener(c,d,e,void 0):null:null};
+n.events.hasListener=function(b,c,d){if(n.events.Listenable.isImplementedBy(b))return b.hasListener(c,d);b=n.events.getListenerMap_(b);return!!b&&b.hasListener(c,d)};n.events.expose=function(b){var c=[],d;for(d in b)b[d]&&b[d].id?c.push(d+" = "+b[d]+" ("+b[d].id+")"):c.push(d+" = "+b[d]);return c.join("\n")};n.events.getOnString_=function(b){return b in n.events.onStringMap_?n.events.onStringMap_[b]:n.events.onStringMap_[b]=n.events.onString_+b};
+n.events.fireListeners=function(b,c,d){return n.events.Listenable.isImplementedBy(b)?b.fireListeners(c,d,void 0):n.events.fireListeners_(b,c,d,void 0)};n.events.fireListeners_=function(b,c,d,e){var f=!0;if(b=n.events.getListenerMap_(b))if(c=b.listeners[c.toString()])for(c=c.concat(),b=0;b<c.length;b++){var g=c[b];g&&g.capture==d&&!g.removed&&(g=n.events.fireListener(g,e),f=f&&!1!==g)}return f};
+n.events.fireListener=function(b,c){var d=b.listener,e=b.handler||b.src;b.callOnce&&n.events.unlistenByKey(b);return d.call(e,c)};n.events.getTotalListenerCount=function(){return n.events.listenerCountEstimate_};n.events.dispatchEvent=function(b,c){n.asserts.assert(n.events.Listenable.isImplementedBy(b),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return b.dispatchEvent(c)};n.events.protectBrowserEventEntryPoint=function(b){n.events.handleBrowserEvent_=b.protectEntryPoint(n.events.handleBrowserEvent_)};
+n.events.handleBrowserEvent_=function(b,c){if(b.removed)return!0;if(!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||n.getObjectByName("window.event");c=new n.events.BrowserEvent(d,this);var e=!0;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.ON){if(!n.events.isMarkedIeEvent_(d)){n.events.markIeEvent_(d);d=[];for(var f=c.currentTarget;f;f=f.parentNode)d.push(f);b=b.type;for(f=d.length-1;!c.propagationStopped_&&0<=f;f--){c.currentTarget=d[f];var g=n.events.fireListeners_(d[f],
+b,!0,c);e=e&&g}for(f=0;!c.propagationStopped_&&f<d.length;f++)c.currentTarget=d[f],g=n.events.fireListeners_(d[f],b,!1,c),e=e&&g}}else e=n.events.fireListener(b,c);return e}return n.events.fireListener(b,new n.events.BrowserEvent(c,this))};n.events.markIeEvent_=function(b){var c=!1;if(0==b.keyCode)try{b.keyCode=-1;return}catch(d){c=!0}if(c||void 0==b.returnValue)b.returnValue=!0};n.events.isMarkedIeEvent_=function(b){return 0>b.keyCode||void 0!=b.returnValue};n.events.uniqueIdCounter_=0;
+n.events.getUniqueId=function(b){return b+"_"+n.events.uniqueIdCounter_++};n.events.getListenerMap_=function(b){b=b[n.events.LISTENER_MAP_PROP_];return b instanceof n.events.ListenerMap?b:null};n.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
+n.events.wrapListener=function(b){n.asserts.assert(b,"Listener can not be null.");if(n.isFunction(b))return b;n.asserts.assert(b.handleEvent,"An object listener must have handleEvent method.");b[n.events.LISTENER_WRAPPER_PROP_]||(b[n.events.LISTENER_WRAPPER_PROP_]=function(c){return b.handleEvent(c)});return b[n.events.LISTENER_WRAPPER_PROP_]};n.debug.entryPointRegistry.register(function(b){n.events.handleBrowserEvent_=b(n.events.handleBrowserEvent_)});n.events.EventTarget=function(){n.Disposable.call(this);this.eventTargetListeners_=new n.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};n.inherits(n.events.EventTarget,n.Disposable);n.events.Listenable.addImplementation(n.events.EventTarget);n.events.EventTarget.MAX_ANCESTORS_=1E3;a=n.events.EventTarget.prototype;a.addEventListener=function(b,c,d,e){n.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){n.events.unlisten(this,b,c,d,e)};
+a.dispatchEvent=function(b){y(this);var c=this.parentEventTarget_;if(c){var d=[];for(var e=1;c;c=c.parentEventTarget_)d.push(c),n.asserts.assert(++e<n.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return n.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,b,d)};a.disposeInternal=function(){n.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
+a.listen=function(b,c,d,e){y(this);return this.eventTargetListeners_.add(String(b),c,!1,d,e)};a.listenOnce=function(b,c,d,e){return this.eventTargetListeners_.add(String(b),c,!0,d,e)};a.unlisten=function(b,c,d,e){return this.eventTargetListeners_.remove(String(b),c,d,e)};a.unlistenByKey=function(b){return x(this.eventTargetListeners_,b)};
+a.fireListeners=function(b,c,d){b=this.eventTargetListeners_.listeners[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,l=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(l,d)&&e}}return e&&0!=d.returnValue_};a.getListeners=function(b,c){return this.eventTargetListeners_.getListeners(String(b),c)};a.getListener=function(b,c,d,e){return this.eventTargetListeners_.getListener(String(b),c,d,e)};
+a.hasListener=function(b,c){return this.eventTargetListeners_.hasListener(n.isDef(b)?String(b):void 0,c)};var y=function(b){n.asserts.assert(b.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
+n.events.EventTarget.dispatchEventInternal_=function(b,c,d){var e=c.type||c;if(n.isString(c))c=new n.events.Event(c,b);else if(c instanceof n.events.Event)c.target=c.target||b;else{var f=c;c=new n.events.Event(e,b);n.object.extend(c,f)}f=!0;if(d)for(var g=d.length-1;!c.propagationStopped_&&0<=g;g--){var h=c.currentTarget=d[g];f=h.fireListeners(e,!0,c)&&f}c.propagationStopped_||(h=c.currentTarget=b,f=h.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=h.fireListeners(e,!1,c)&&f));if(d)for(g=0;!c.propagationStopped_&&
+g<d.length;g++)h=c.currentTarget=d[g],f=h.fireListeners(e,!1,c)&&f;return f};n.functions={};n.functions.constant=function(b){return function(){return b}};n.functions.FALSE=n.functions.constant(!1);n.functions.TRUE=n.functions.constant(!0);n.functions.NULL=n.functions.constant(null);n.functions.identity=function(b){return b};n.functions.error=function(b){return function(){throw Error(b);}};n.functions.fail=function(){};n.functions.lock=function(b,c){c=c||0;return function(){return b.apply(this,Array.prototype.slice.call(arguments,0,c))}};n.functions.nth=function(b){return function(){return arguments[b]}};
+n.functions.partialRight=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return b.apply(this,c)}};n.functions.withReturnValue=function(b,c){return n.functions.sequence(b,n.functions.constant(c))};n.functions.equalTo=function(b,c){return function(d){return c?b==d:b===d}};
+n.functions.compose=function(b,c){var d=arguments,e=d.length;return function(){var b;e&&(b=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)b=d[c].call(this,b);return b}};n.functions.sequence=function(b){var c=arguments,d=c.length;return function(){for(var b,f=0;f<d;f++)b=c[f].apply(this,arguments);return b}};n.functions.and=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(!c[b].apply(this,arguments))return!1;return!0}};
+n.functions.or=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(c[b].apply(this,arguments))return!0;return!1}};n.functions.not=function(b){return function(){return!b.apply(this,arguments)}};n.functions.create=function(b,c){var d=function(){};d.prototype=b.prototype;d=new d;b.apply(d,Array.prototype.slice.call(arguments,1));return d};n.functions.CACHE_RETURN_VALUE=!0;
+n.functions.cacheReturnValue=function(b){var c=!1,d;return function(){if(!n.functions.CACHE_RETURN_VALUE)return b();c||(d=b(),c=!0);return d}};n.functions.once=function(b){var c=b;return function(){if(c){var b=c;c=null;b()}}};n.functions.debounce=function(b,c,d){var e=0;return function(f){n.global.clearTimeout(e);var g=arguments;e=n.global.setTimeout(function(){b.apply(d,g)},c)}};
+n.functions.throttle=function(b,c,d){var e=0,f=!1,g=[],h=function(){e=0;f&&(f=!1,l())},l=function(){e=n.global.setTimeout(h,c);b.apply(d,g)};return function(b){g=arguments;e?f=!0:l()}};n.functions.rateLimit=function(b,c,d){var e=0,f=function(){e=0};return function(g){e||(e=n.global.setTimeout(f,c),b.apply(d,arguments))}};n.math={};n.math.randomInt=function(){return Math.floor(Math.random()*n.craw.AppWindow.NETWORK_TEST_URLS_.length)};n.math.uniformRandom=function(b,c){return b+Math.random()*(c-b)};n.math.clamp=function(b,c,d){return Math.min(Math.max(b,c),d)};n.math.modulo=function(b,c){b%=c;return 0>b*c?b+c:b};n.math.lerp=function(b,c,d){return b+d*(c-b)};n.math.nearlyEquals=function(b,c,d){return Math.abs(b-c)<=(d||1E-6)};n.math.standardAngle=function(b){return n.math.modulo(b,360)};
+n.math.standardAngleInRadians=function(b){return n.math.modulo(b,2*Math.PI)};n.math.toRadians=function(b){return b*Math.PI/180};n.math.toDegrees=function(b){return 180*b/Math.PI};n.math.angleDx=function(b,c){return c*Math.cos(n.math.toRadians(b))};n.math.angleDy=function(b,c){return c*Math.sin(n.math.toRadians(b))};n.math.angle=function(b,c,d,e){return n.math.standardAngle(n.math.toDegrees(Math.atan2(e-c,d-b)))};
+n.math.angleDifference=function(b,c){b=n.math.standardAngle(c)-n.math.standardAngle(b);180<b?b-=360:-180>=b&&(b=360+b);return b};n.math.sign=function(b){return 0<b?1:0>b?-1:b};
+n.math.longestCommonSubsequence=function(b,c,d,e){d=d||function(b,c){return b==c};e=e||function(c){return b[c]};for(var f=b.length,g=c.length,h=[],l=0;l<f+1;l++)h[l]=[],h[l][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(l=1;l<=f;l++)for(m=1;m<=g;m++)d(b[l-1],c[m-1])?h[l][m]=h[l-1][m-1]+1:h[l][m]=Math.max(h[l-1][m],h[l][m-1]);var p=[];l=f;for(m=g;0<l&&0<m;)d(b[l-1],c[m-1])?(p.unshift(e(l-1,m-1)),l--,m--):h[l-1][m]>h[l][m-1]?l--:m--;return p};
+n.math.sum=function(b){return n.array.reduce(arguments,function(b,d){return b+d},0)};n.math.average=function(b){return n.math.sum.apply(null,arguments)/arguments.length};n.math.sampleVariance=function(b){var c=arguments.length;if(2>c)return 0;var d=n.math.average.apply(null,arguments);return n.math.sum.apply(null,n.array.map(arguments,function(b){return Math.pow(b-d,2)}))/(c-1)};n.math.standardDeviation=function(b){return Math.sqrt(n.math.sampleVariance.apply(null,arguments))};
+n.math.isInt=function(b){return isFinite(b)&&0==b%1};n.math.isFiniteNumber=function(b){return isFinite(b)};n.math.isNegativeZero=function(b){return 0==b&&0>1/b};n.math.log10Floor=function(b){if(0<b){var c=Math.round(Math.log(b)*Math.LOG10E);return c-(parseFloat("1e"+c)>b?1:0)}return 0==b?-Infinity:NaN};n.math.safeFloor=function(b,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.floor(b+(c||2E-15))};n.math.safeCeil=function(b,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.ceil(b-(c||2E-15))};n.iter={};n.iter.StopIteration="StopIteration"in n.global?n.global.StopIteration:{message:"StopIteration",stack:""};n.iter.Iterator=function(){};n.iter.Iterator.prototype.next=function(){throw n.iter.StopIteration;};n.iter.Iterator.prototype.__iterator__=function(){return this};
+n.iter.toIterator=function(b){if(b instanceof n.iter.Iterator)return b;if("function"==typeof b.__iterator__)return b.__iterator__(!1);if(n.isArrayLike(b)){var c=0,d=new n.iter.Iterator;d.next=function(){for(;;){if(c>=b.length)throw n.iter.StopIteration;if(c in b)return b[c++];c++}};return d}throw Error("Not implemented");};
+n.iter.forEach=function(b,c,d){if(n.isArrayLike(b))try{n.array.forEach(b,c,d)}catch(e){if(e!==n.iter.StopIteration)throw e;}else{b=n.iter.toIterator(b);try{for(;;)c.call(d,b.next(),void 0,b)}catch(e){if(e!==n.iter.StopIteration)throw e;}}};n.iter.filter=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){for(;;){var b=e.next();if(c.call(d,b,void 0,e))return b}};return b};n.iter.filterFalse=function(b,c,d){return n.iter.filter(b,n.functions.not(c),d)};
+n.iter.range=function(b,c,d){var e=0,f=b,g=d||1;1<arguments.length&&(e=b,f=+c);if(0==g)throw Error("Range step argument must not be zero");var h=new n.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw n.iter.StopIteration;var b=e;e+=g;return b};return h};n.iter.join=function(b,c){return n.iter.toArray(b).join(c)};n.iter.map=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=e.next();return c.call(d,b,void 0,e)};return b};
+n.iter.reduce=function(b,c,d,e){var f=d;n.iter.forEach(b,function(b){f=c.call(e,f,b)});return f};n.iter.some=function(b,c,d){b=n.iter.toIterator(b);try{for(;;)if(c.call(d,b.next(),void 0,b))return!0}catch(e){if(e!==n.iter.StopIteration)throw e;}return!1};n.iter.every=function(b,c,d){b=n.iter.toIterator(b);try{for(;;)if(!c.call(d,b.next(),void 0,b))return!1}catch(e){if(e!==n.iter.StopIteration)throw e;}return!0};n.iter.chain=function(b){return n.iter.chainFromIterable(arguments)};
+n.iter.chainFromIterable=function(b){var c=n.iter.toIterator(b);b=new n.iter.Iterator;var d=null;b.next=function(){for(;;){if(null==d){var b=c.next();d=n.iter.toIterator(b)}try{return d.next()}catch(f){if(f!==n.iter.StopIteration)throw f;d=null}}};return b};n.iter.dropWhile=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;var f=!0;b.next=function(){for(;;){var b=e.next();if(!f||!c.call(d,b,void 0,e))return f=!1,b}};return b};
+n.iter.takeWhile=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=e.next();if(c.call(d,b,void 0,e))return b;throw n.iter.StopIteration;};return b};n.iter.toArray=function(b){if(n.isArrayLike(b))return n.array.toArray(b);b=n.iter.toIterator(b);var c=[];n.iter.forEach(b,function(b){c.push(b)});return c};n.iter.equals=function(b,c){b=n.iter.zipLongest({},b,c);var d=n.array.defaultCompareEquality;return n.iter.every(b,function(b){return d(b[0],b[1])})};
+n.iter.nextOrValue=function(b){try{n.iter.toIterator(b).next()}catch(c){if(c!=n.iter.StopIteration)throw c;}};
+n.iter.product=function(b){if(n.array.some(arguments,function(b){return!b.length})||!arguments.length)return new n.iter.Iterator;var c=new n.iter.Iterator,d=arguments,e=n.array.repeat(0,d.length);c.next=function(){if(e){for(var b=n.array.map(e,function(b,c){return d[c][b]}),c=e.length-1;0<=c;c--){n.asserts.assert(e);if(e[c]<d[c].length-1){e[c]++;break}if(0==c){e=null;break}e[c]=0}return b}throw n.iter.StopIteration;};return c};
+n.iter.cycle=function(b){var c=n.iter.toIterator(b),d=[],e=0;b=new n.iter.Iterator;var f=!1;b.next=function(){var b=null;if(!f)try{return b=c.next(),d.push(b),b}catch(h){if(h!=n.iter.StopIteration||n.array.isEmpty(d))throw h;f=!0}b=d[e];e=(e+1)%d.length;return b};return b};n.iter.count=function(b,c){var d=b||0,e=n.isDef(c)?c:1;b=new n.iter.Iterator;b.next=function(){var b=d;d+=e;return b};return b};n.iter.repeat=function(b){var c=new n.iter.Iterator;c.next=n.functions.constant(b);return c};
+n.iter.accumulate=function(b){var c=n.iter.toIterator(b),d=0;b=new n.iter.Iterator;b.next=function(){return d+=c.next()};return b};n.iter.zip=function(b){var c=arguments,d=new n.iter.Iterator;if(0<c.length){var e=n.array.map(c,n.iter.toIterator);d.next=function(){return n.array.map(e,function(b){return b.next()})}}return d};
+n.iter.zipLongest=function(b,c){var d=n.array.slice(arguments,1),e=new n.iter.Iterator;if(0<d.length){var f=n.array.map(d,n.iter.toIterator);e.next=function(){var c=!1,d=n.array.map(f,function(d){try{var e=d.next();c=!0}catch(p){if(p!==n.iter.StopIteration)throw p;e=b}return e});if(!c)throw n.iter.StopIteration;return d}}return e};n.iter.compress=function(b,c){var d=n.iter.toIterator(c);return n.iter.filter(b,function(){return!!d.next()})};
+n.iter.GroupByIterator_=function(b,c){this.iterator=n.iter.toIterator(b);this.keyFunc=c||n.functions.identity};n.inherits(n.iter.GroupByIterator_,n.iter.Iterator);
+n.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var b=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==n.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[b,d]};
+n.iter.groupBy=function(b,c){return new n.iter.GroupByIterator_(b,c)};n.iter.starMap=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=n.iter.toArray(e.next());return c.apply(d,n.array.concat(b,void 0,e))};return b};
+n.iter.tee=function(b,c){var d=n.iter.toIterator(b),e=n.array.map(n.array.range(n.isNumber(c)?c:2),function(){return[]}),f=function(){var b=d.next();n.array.forEach(e,function(c){c.push(b)})};return n.array.map(e,function(b){var c=new n.iter.Iterator;c.next=function(){n.array.isEmpty(b)&&f();n.asserts.assert(!n.array.isEmpty(b));return b.shift()};return c})};n.iter.enumerate=function(b,c){return n.iter.zip(n.iter.count(c),b)};
+n.iter.limit=function(b,c){n.asserts.assert(n.math.isInt(c)&&0<=c);var d=n.iter.toIterator(b);b=new n.iter.Iterator;var e=c;b.next=function(){if(0<e--)return d.next();throw n.iter.StopIteration;};return b};n.iter.consume=function(b,c){n.asserts.assert(n.math.isInt(c)&&0<=c);for(b=n.iter.toIterator(b);0<c--;)n.iter.nextOrValue(b);return b};
+n.iter.slice=function(b,c,d){n.asserts.assert(n.math.isInt(c)&&0<=c);b=n.iter.consume(b,c);n.isNumber(d)&&(n.asserts.assert(n.math.isInt(d)&&d>=c),b=n.iter.limit(b,d-c));return b};n.iter.hasDuplicates_=function(b){var c=[];n.array.removeDuplicates(b,c);return b.length!=c.length};n.iter.permutations=function(b,c){b=n.iter.toArray(b);c=n.array.repeat(b,n.isNumber(c)?c:b.length);c=n.iter.product.apply(void 0,c);return n.iter.filter(c,function(b){return!n.iter.hasDuplicates_(b)})};
+n.iter.combinations=function(b,c){function d(b){return e[b]}var e=n.iter.toArray(b);b=n.iter.range(e.length);c=n.iter.permutations(b,c);var f=n.iter.filter(c,function(b){return n.array.isSorted(b)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};
+n.iter.combinationsWithReplacement=function(b,c){function d(b){return e[b]}var e=n.iter.toArray(b);b=n.array.range(e.length);c=n.array.repeat(b,c);c=n.iter.product.apply(void 0,c);var f=n.iter.filter(c,function(b){return n.array.isSorted(b)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};n.structs={};n.structs.Map=function(b,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else b&&this.addAll(b)};a=n.structs.Map.prototype;a.getCount=function(){return this.count_};a.getValues=function(){z(this);for(var b=[],c=0;c<this.keys_.length;c++)b.push(this.map_[this.keys_[c]]);return b};a.getKeys=function(){z(this);return this.keys_.concat()};
+a.containsKey=function(b){return n.structs.Map.hasKey_(this.map_,b)};a.containsValue=function(b){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(n.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==b)return!0}return!1};a.equals=function(b,c){if(this===b)return!0;if(this.count_!=b.getCount())return!1;c=c||n.structs.Map.defaultEquals;z(this);for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),b.get(d)))return!1;return!0};n.structs.Map.defaultEquals=function(b,c){return b===c};
+n.structs.Map.prototype.isEmpty=function(){return 0==this.count_};n.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};n.structs.Map.prototype.remove=function(b){return n.structs.Map.hasKey_(this.map_,b)?(delete this.map_[b],this.count_--,this.version_++,this.keys_.length>2*this.count_&&z(this),!0):!1};
+var z=function(b){if(b.count_!=b.keys_.length){for(var c=0,d=0;c<b.keys_.length;){var e=b.keys_[c];n.structs.Map.hasKey_(b.map_,e)&&(b.keys_[d++]=e);c++}b.keys_.length=d}if(b.count_!=b.keys_.length){var f={};for(d=c=0;c<b.keys_.length;)e=b.keys_[c],n.structs.Map.hasKey_(f,e)||(b.keys_[d++]=e,f[e]=1),c++;b.keys_.length=d}};a=n.structs.Map.prototype;a.get=function(b,c){return n.structs.Map.hasKey_(this.map_,b)?this.map_[b]:c};
+a.set=function(b,c){n.structs.Map.hasKey_(this.map_,b)||(this.count_++,this.keys_.push(b),this.version_++);this.map_[b]=c};a.addAll=function(b){if(b instanceof n.structs.Map)for(var c=b.getKeys(),d=0;d<c.length;d++)this.set(c[d],b.get(c[d]));else for(c in b)this.set(c,b[c])};a.forEach=function(b,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);b.call(c,g,f,this)}};a.clone=function(){return new n.structs.Map(this)};
+a.transpose=function(){for(var b=new n.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];b.set(this.map_[d],d)}return b};a.toObject=function(){z(this);for(var b={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];b[d]=this.map_[d]}return b};
+a.__iterator__=function(b){z(this);var c=0,d=this.version_,e=this,f=new n.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw n.iter.StopIteration;var f=e.keys_[c++];return b?f:e.map_[f]};return f};n.structs.Map.hasKey_=function(b,c){return Object.prototype.hasOwnProperty.call(b,c)};n.structs.LinkedMap=function(b){this.maxCount_=b||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new n.structs.Map;this.head_=new n.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var C=function(b,c){(c=b.map_.get(c))&&b.cache_&&(c.remove(),B(b,c));return c};a=n.structs.LinkedMap.prototype;a.get=function(b,c){return(b=C(this,b))?b.value:c};a.set=function(b,c){var d=C(this,b);d?d.value=c:(d=new n.structs.LinkedMap.Node_(b,c),this.map_.set(b,d),B(this,d))};
+a.peek=function(){return this.head_.next.value};a.shift=function(){return D(this,this.head_.next)};a.pop=function(){return D(this,this.head_.prev)};a.remove=function(b){return(b=this.map_.get(b))?(this.removeNode(b),!0):!1};a.removeNode=function(b){b.remove();this.map_.remove(b.key)};a.getCount=function(){return this.map_.getCount()};a.isEmpty=function(){return this.map_.isEmpty()};a.getKeys=function(){return this.map(function(b,c){return c})};a.getValues=function(){return this.map(function(b){return b})};
+a.contains=function(b){return this.some(function(c){return c==b})};a.containsKey=function(b){return this.map_.containsKey(b)};a.clear=function(){E(this,0)};a.forEach=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)b.call(c,d.value,d.key,this)};a.map=function(b,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(b.call(c,e.value,e.key,this));return d};a.some=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(b.call(c,d.value,d.key,this))return!0;return!1};
+a.every=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!b.call(c,d.value,d.key,this))return!1;return!0};
+var B=function(b,c){b.cache_?(c.next=b.head_.next,c.prev=b.head_,b.head_.next=c,c.next.prev=c):(c.prev=b.head_.prev,c.next=b.head_,b.head_.prev=c,c.prev.next=c);null!=b.maxCount_&&E(b,b.maxCount_)},E=function(b,c){for(;b.getCount()>c;){var d=b.cache_?b.head_.prev:b.head_.next;b.removeNode(d);b.evictionCallback_&&b.evictionCallback_(d.key,d.value)}},D=function(b,c){b.head_!=c&&b.removeNode(c);return c.value};n.structs.LinkedMap.Node_=function(b,c){this.key=b;this.value=c};
+n.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};var t={LicensesCache:function(b,c){n.events.EventTarget.call(this);this.timeout_=b||36E5;this.cache_=new n.structs.LinkedMap(c||100)}};n.inherits(t.LicensesCache,n.events.EventTarget);t.LicensesCache.Entry=function(b){this.timeStamp_=n.now();this.licenses_=b};t.LicensesCache.prototype.get=function(b){b=this.cache_.get(b);var c;if(c=b)c=this.timeout_,c=n.now()-b.timeStamp_<=c;return c?b.licenses_:null};t.LicensesCache.prototype.remove=function(b){this.cache_.remove(b)};n.structs.getCount=function(b){return b.getCount&&"function"==typeof b.getCount?b.getCount():n.isArrayLike(b)||n.isString(b)?b.length:n.object.getCount(b)};n.structs.getValues=function(b){if(b.getValues&&"function"==typeof b.getValues)return b.getValues();if(n.isString(b))return b.split("");if(n.isArrayLike(b)){for(var c=[],d=b.length,e=0;e<d;e++)c.push(b[e]);return c}return n.object.getValues(b)};
+n.structs.getKeys=function(b){if(b.getKeys&&"function"==typeof b.getKeys)return b.getKeys();if(!b.getValues||"function"!=typeof b.getValues){if(n.isArrayLike(b)||n.isString(b)){var c=[];b=b.length;for(var d=0;d<b;d++)c.push(d);return c}return n.object.getKeys(b)}};
+n.structs.contains=function(b,c){return b.contains&&"function"==typeof b.contains?b.contains(c):b.containsValue&&"function"==typeof b.containsValue?b.containsValue(c):n.isArrayLike(b)||n.isString(b)?n.array.contains(b,c):n.object.containsValue(b,c)};n.structs.isEmpty=function(b){return b.isEmpty&&"function"==typeof b.isEmpty?b.isEmpty():n.isArrayLike(b)||n.isString(b)?n.array.isEmpty(b):n.object.isEmpty(b)};
+n.structs.clear=function(b){b.clear&&"function"==typeof b.clear?b.clear():n.isArrayLike(b)?n.array.clear(b):n.object.clear(b)};n.structs.forEach=function(b,c,d){if(b.forEach&&"function"==typeof b.forEach)b.forEach(c,d);else if(n.isArrayLike(b)||n.isString(b))n.array.forEach(b,c,d);else for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],b)};
+n.structs.filter=function(b,c,d){if("function"==typeof b.filter)return b.filter(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.filter(b,c,d);var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)c.call(d,f[l],e[l],b)&&(h[e[l]]=f[l])}else for(h=[],l=0;l<g;l++)c.call(d,f[l],void 0,b)&&h.push(f[l]);return h};
+n.structs.map=function(b,c,d){if("function"==typeof b.map)return b.map(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.map(b,c,d);var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)h[e[l]]=c.call(d,f[l],e[l],b)}else for(h=[],l=0;l<g;l++)h[l]=c.call(d,f[l],void 0,b);return h};
+n.structs.some=function(b,c,d){if("function"==typeof b.some)return b.some(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.some(b,c,d);for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],b))return!0;return!1};
+n.structs.every=function(b,c,d){if("function"==typeof b.every)return b.every(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.every(b,c,d);for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],b))return!1;return!0};n.uri={};n.uri.utils={};n.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};n.uri.utils.buildFromEncodedParts=function(b,c,d,e,f,g,h){var l="";b&&(l+=b+":");d&&(l+="//",c&&(l+=c+"@"),l+=d,e&&(l+=":"+e));f&&(l+=f);g&&(l+="?"+g);h&&(l+="#"+h);return l};n.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;n.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
+n.uri.utils.split=function(b){return b.match(n.uri.utils.splitRe_)};n.uri.utils.decodeIfPossible_=function(b,c){return b?c?decodeURI(b):decodeURIComponent(b):b};n.uri.utils.getComponentByIndex_=function(b,c){return n.uri.utils.split(c)[b]||null};n.uri.utils.getScheme=function(b){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.SCHEME,b)};
+n.uri.utils.getEffectiveScheme=function(b){b=n.uri.utils.getScheme(b);!b&&n.global.self&&n.global.self.location&&(b=n.global.self.location.protocol,b=b.substr(0,b.length-1));return b?b.toLowerCase():""};n.uri.utils.getUserInfoEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.USER_INFO,void 0)};n.uri.utils.getUserInfo=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getUserInfoEncoded())};
+n.uri.utils.getDomainEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.DOMAIN,void 0)};n.uri.utils.getDomain=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getDomainEncoded(),!0)};n.uri.utils.getPort=function(){return Number(n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PORT,void 0))||null};n.uri.utils.getPathEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PATH,void 0)};
+n.uri.utils.getPath=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getPathEncoded(),!0)};n.uri.utils.getQueryData=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.QUERY_DATA,void 0)};n.uri.utils.getFragmentEncoded=function(){var b=(void 0).indexOf("#");return 0>b?null:(void 0).substr(b+1)};n.uri.utils.setFragmentEncoded=function(b,c){return n.uri.utils.removeFragment(b)+(c?"#"+c:"")};n.uri.utils.getFragment=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getFragmentEncoded())};
+n.uri.utils.getHost=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(b[n.uri.utils.ComponentIndex.SCHEME],b[n.uri.utils.ComponentIndex.USER_INFO],b[n.uri.utils.ComponentIndex.DOMAIN],b[n.uri.utils.ComponentIndex.PORT])};n.uri.utils.getOrigin=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(b[n.uri.utils.ComponentIndex.SCHEME],null,b[n.uri.utils.ComponentIndex.DOMAIN],b[n.uri.utils.ComponentIndex.PORT])};
+n.uri.utils.getPathAndAfter=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(null,null,null,null,b[n.uri.utils.ComponentIndex.PATH],b[n.uri.utils.ComponentIndex.QUERY_DATA],b[n.uri.utils.ComponentIndex.FRAGMENT])};n.uri.utils.removeFragment=function(b){var c=b.indexOf("#");return 0>c?b:b.substr(0,c)};
+n.uri.utils.haveSameDomain=function(b,c){b=n.uri.utils.split(b);c=n.uri.utils.split(c);return b[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&b[n.uri.utils.ComponentIndex.SCHEME]==c[n.uri.utils.ComponentIndex.SCHEME]&&b[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.uri.utils.assertNoFragmentsOrQueries_=function(b){n.asserts.assert(0>b.indexOf("#")&&0>b.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",b)};
+n.uri.utils.parseQueryData=function(b,c){if(b){b=b.split("&");for(var d=0;d<b.length;d++){var e=b[d].indexOf("="),f=null;if(0<=e){var g=b[d].substring(0,e);f=b[d].substring(e+1)}else g=b[d];c(g,f?n.string.urlDecode(f):"")}}};n.uri.utils.splitQueryData_=function(b){var c=b.indexOf("#");0>c&&(c=b.length);var d=b.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=b.substring(d+1,c);return[b.substr(0,d),e,b.substr(c)]};n.uri.utils.joinQueryData_=function(b){return b[0]+(b[1]?"?"+b[1]:"")+b[2]};
+n.uri.utils.appendQueryData_=function(b,c){return c?b?b+"&"+c:c:b};n.uri.utils.appendQueryDataToUri_=function(b,c){if(!c)return b;b=n.uri.utils.splitQueryData_(b);b[1]=n.uri.utils.appendQueryData_(b[1],c);return n.uri.utils.joinQueryData_(b)};n.uri.utils.appendKeyValuePairs_=function(b,c,d){n.asserts.assertString(b);if(n.isArray(c)){n.asserts.assertArray(c);for(var e=0;e<c.length;e++)n.uri.utils.appendKeyValuePairs_(b,String(c[e]),d)}else null!=c&&d.push(b+(""===c?"":"="+n.string.urlEncode(c)))};
+n.uri.utils.buildQueryData=function(b,c){n.asserts.assert(0==Math.max(b.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var d=[];for(c=c||0;c<b.length;c+=2)n.uri.utils.appendKeyValuePairs_(b[c],b[c+1],d);return d.join("&")};n.uri.utils.buildQueryDataFromMap=function(b){var c=[],d;for(d in b)n.uri.utils.appendKeyValuePairs_(d,b[d],c);return c.join("&")};
+n.uri.utils.appendParams=function(b,c){var d=2==arguments.length?n.uri.utils.buildQueryData(arguments[1],0):n.uri.utils.buildQueryData(arguments,1);return n.uri.utils.appendQueryDataToUri_(b,d)};n.uri.utils.appendParamsFromMap=function(b,c){c=n.uri.utils.buildQueryDataFromMap(c);return n.uri.utils.appendQueryDataToUri_(b,c)};n.uri.utils.appendParam=function(b,c,d){d=n.isDefAndNotNull(d)?"="+n.string.urlEncode(d):"";return n.uri.utils.appendQueryDataToUri_(b,c+d)};
+n.uri.utils.findParam_=function(b,c,d,e){for(var f=d.length;0<=(c=b.indexOf(d,c))&&c<e;){var g=b.charCodeAt(c-1);if(g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.QUESTION)if(g=b.charCodeAt(c+f),!g||g==n.uri.utils.CharCode_.EQUAL||g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};n.uri.utils.hashOrEndRe_=/#|$/;n.uri.utils.hasParam=function(b,c){return 0<=n.uri.utils.findParam_(b,0,c,b.search(n.uri.utils.hashOrEndRe_))};
+n.uri.utils.getParamValue=function(b,c){var d=b.search(n.uri.utils.hashOrEndRe_),e=n.uri.utils.findParam_(b,0,c,d);if(0>e)return null;var f=b.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return n.string.urlDecode(b.substr(e,f-e))};n.uri.utils.getParamValues=function(b,c){for(var d=b.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(b,e,c,d));){e=b.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(n.string.urlDecode(b.substr(f,e-f)))}return g};
+n.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;n.uri.utils.removeParam=function(b,c){for(var d=b.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(b,e,c,d));)g.push(b.substring(e,f)),e=Math.min(b.indexOf("&",f)+1||d,d);g.push(b.substr(e));return g.join("").replace(n.uri.utils.trailingQueryPunctuationRe_,"$1")};
+n.uri.utils.setParam=function(b){var c=n.uri.utils.StandardQueryParam.RANDOM,d=n.string.getRandomString();return n.uri.utils.appendParam(n.uri.utils.removeParam(b,c),c,d)};n.uri.utils.setParamsFromMap=function(b,c){b=n.uri.utils.splitQueryData_(b);var d=b[1],e=[];d&&n.array.forEach(d.split("&"),function(b){var d=b.indexOf("=");c.hasOwnProperty(0<=d?b.substr(0,d):b)||e.push(b)});b[1]=n.uri.utils.appendQueryData_(e.join("&"),n.uri.utils.buildQueryDataFromMap(c));return n.uri.utils.joinQueryData_(b)};
+n.uri.utils.appendPath=function(b,c){n.uri.utils.assertNoFragmentsOrQueries_(b);n.string.endsWith(b,"/")&&(b=b.substr(0,b.length-1));n.string.startsWith(c,"/")&&(c=c.substr(1));return n.string.buildString(b,"/",c)};n.uri.utils.setPath=function(b,c){n.string.startsWith(c,"/");n.uri.utils.split(b)};n.uri.utils.StandardQueryParam={RANDOM:"zx"};n.uri.utils.makeUnique=function(b){return n.uri.utils.setParam(b)};n.Uri=function(b,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;b instanceof n.Uri?(this.ignoreCase_=n.isDef(c)?c:b.ignoreCase_,F(this,b.getScheme()),G(this,b.getUserInfo()),H(this,b.getDomain()),I(this,b.getPort()),this.setPath(b.getPath()),J(this,b.getQueryData().clone()),L(this,b.getFragment())):b&&(d=n.uri.utils.split(String(b)))?(this.ignoreCase_=!!c,F(this,d[n.uri.utils.ComponentIndex.SCHEME]||"",!0),G(this,
+d[n.uri.utils.ComponentIndex.USER_INFO]||"",!0),H(this,d[n.uri.utils.ComponentIndex.DOMAIN]||"",!0),I(this,d[n.uri.utils.ComponentIndex.PORT]),this.setPath(d[n.uri.utils.ComponentIndex.PATH]||"",!0),J(this,d[n.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),L(this,d[n.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new n.Uri.QueryData(null,this.ignoreCase_))};n.Uri.preserveParameterTypesCompatibilityFlag=!1;n.Uri.RANDOM_PARAM=n.uri.utils.StandardQueryParam.RANDOM;
+n.Uri.prototype.toString=function(){var b=[],c=this.getScheme();c&&b.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)b.push("//"),(c=this.getUserInfo())&&b.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),b.push(n.Uri.removeDoubleEncoding_(n.string.urlEncode(d))),d=this.getPort(),null!=d&&b.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&b.push("/"),b.push(n.Uri.encodeSpecialChars_(d,
+"/"==d.charAt(0)?n.Uri.reDisallowedInAbsolutePath_:n.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&b.push("?",d);(d=this.getFragment())&&b.push("#",n.Uri.encodeSpecialChars_(d,n.Uri.reDisallowedInFragment_));return b.join("")};
+n.Uri.prototype.resolve=function(b){var c=this.clone(),d=!!b.scheme_;d?F(c,b.getScheme()):d=!!b.userInfo_;d?G(c,b.getUserInfo()):d=!!b.domain_;d?H(c,b.getDomain()):d=null!=b.port_;var e=b.getPath();if(d)I(c,b.getPort());else if(d=!!b.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=n.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==b.queryData_.toString();d?J(c,b.getQueryData().clone()):d=!!b.fragment_;d&&
+L(c,b.getFragment());return c};n.Uri.prototype.clone=function(){return new n.Uri(this)};n.Uri.prototype.getScheme=function(){return this.scheme_};var F=function(b,c,d){M(b);b.scheme_=d?n.Uri.decodeOrEmpty_(c,!0):c;b.scheme_&&(b.scheme_=b.scheme_.replace(/:$/,""))};n.Uri.prototype.getUserInfo=function(){return this.userInfo_};var G=function(b,c,d){M(b);b.userInfo_=d?n.Uri.decodeOrEmpty_(c):c};n.Uri.prototype.getDomain=function(){return this.domain_};
+var H=function(b,c,d){M(b);b.domain_=d?n.Uri.decodeOrEmpty_(c,!0):c};n.Uri.prototype.getPort=function(){return this.port_};var I=function(b,c){M(b);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);b.port_=c}else b.port_=null};n.Uri.prototype.getPath=function(){return this.path_};n.Uri.prototype.setPath=function(b,c){M(this);this.path_=c?n.Uri.decodeOrEmpty_(b,!0):b};
+var J=function(b,c,d){M(b);c instanceof n.Uri.QueryData?(b.queryData_=c,b.queryData_.setIgnoreCase(b.ignoreCase_)):(d||(c=n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInQuery_)),b.queryData_=new n.Uri.QueryData(c,b.ignoreCase_))};n.Uri.prototype.getQueryData=function(){return this.queryData_};var N=function(b,c,d){M(b);b.queryData_.set(c,d)};n.Uri.prototype.getFragment=function(){return this.fragment_};var L=function(b,c,d){M(b);b.fragment_=d?n.Uri.decodeOrEmpty_(c):c};
+n.Uri.prototype.makeUnique=function(){M(this);N(this,n.Uri.RANDOM_PARAM,n.string.getRandomString());return this};n.Uri.prototype.removeParameter=function(b){M(this);this.queryData_.remove(b);return this};var M=function(b){if(b.isReadOnly_)throw Error("Tried to modify a read-only Uri");};n.Uri.prototype.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b)};n.Uri.parse=function(b,c){return b instanceof n.Uri?b.clone():new n.Uri(b,c)};
+n.Uri.create=function(b,c,d,e,f,g,h,l){l=new n.Uri(null,l);b&&F(l,b);c&&G(l,c);d&&H(l,d);e&&I(l,e);f&&l.setPath(f);g&&J(l,g);h&&L(l,h);return l};n.Uri.resolve=function(b,c){b instanceof n.Uri||(b=n.Uri.parse(b));c instanceof n.Uri||(c=n.Uri.parse(c));return b.resolve(c)};
+n.Uri.removeDotSegments=function(b){if(".."==b||"."==b)return"";if(n.string.contains(b,"./")||n.string.contains(b,"/.")){var c=n.string.startsWith(b,"/");b=b.split("/");for(var d=[],e=0;e<b.length;){var f=b[e++];"."==f?c&&e==b.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==b.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return b};n.Uri.decodeOrEmpty_=function(b,c){return b?c?decodeURI(b.replace(/%25/g,"%2525")):decodeURIComponent(b):""};
+n.Uri.encodeSpecialChars_=function(b,c,d){return n.isString(b)?(b=encodeURI(b).replace(c,n.Uri.encodeChar_),d&&(b=n.Uri.removeDoubleEncoding_(b)),b):null};n.Uri.encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15).toString(16)+(b&15).toString(16)};n.Uri.removeDoubleEncoding_=function(b){return b.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};n.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;n.Uri.reDisallowedInRelativePath_=/[#\?:]/g;n.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
+n.Uri.reDisallowedInQuery_=/[#\?@]/g;n.Uri.reDisallowedInFragment_=/#/g;n.Uri.haveSameDomain=function(b,c){b=n.uri.utils.split(b);c=n.uri.utils.split(c);return b[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&b[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.Uri.QueryData=function(b,c){this.count_=this.keyMap_=null;this.encodedQuery_=b||null;this.ignoreCase_=!!c};
+var P=function(b){b.keyMap_||(b.keyMap_=new n.structs.Map,b.count_=0,b.encodedQuery_&&n.uri.utils.parseQueryData(b.encodedQuery_,function(c,d){b.add(n.string.urlDecode(c),d)}))};n.Uri.QueryData.createFromMap=function(b,c,d){c=n.structs.getKeys(b);if("undefined"==typeof c)throw Error("Keys are undefined");d=new n.Uri.QueryData(null,d);b=n.structs.getValues(b);for(var e=0;e<c.length;e++){var f=c[e],g=b[e];n.isArray(g)?aa(d,f,g):d.add(f,g)}return d};
+n.Uri.QueryData.createFromKeysValues=function(b,c,d,e){if(b.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new n.Uri.QueryData(null,e);for(e=0;e<b.length;e++)d.add(b[e],c[e]);return d};a=n.Uri.QueryData.prototype;a.getCount=function(){P(this);return this.count_};a.add=function(b,c){P(this);this.encodedQuery_=null;b=Q(this,b);var d=this.keyMap_.get(b);d||this.keyMap_.set(b,d=[]);d.push(c);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+a.remove=function(b){P(this);b=Q(this,b);return this.keyMap_.containsKey(b)?(this.encodedQuery_=null,this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length,this.keyMap_.remove(b)):!1};a.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};a.isEmpty=function(){P(this);return 0==this.count_};a.containsKey=function(b){P(this);b=Q(this,b);return this.keyMap_.containsKey(b)};a.containsValue=function(b){var c=this.getValues();return n.array.contains(c,b)};
+a.forEach=function(b,c){P(this);this.keyMap_.forEach(function(d,e){n.array.forEach(d,function(d){b.call(c,d,e,this)},this)},this)};a.getKeys=function(){P(this);for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=b[e],g=0;g<f.length;g++)d.push(c[e]);return d};
+a.getValues=function(b){P(this);var c=[];if(n.isString(b))this.containsKey(b)&&(c=n.array.concat(c,this.keyMap_.get(Q(this,b))));else{b=this.keyMap_.getValues();for(var d=0;d<b.length;d++)c=n.array.concat(c,b[d])}return c};a.set=function(b,c){P(this);this.encodedQuery_=null;b=Q(this,b);this.containsKey(b)&&(this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length);this.keyMap_.set(b,[c]);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+a.get=function(b,c){b=b?this.getValues(b):[];return n.Uri.preserveParameterTypesCompatibilityFlag?0<b.length?b[0]:c:0<b.length?String(b[0]):c};var aa=function(b,c,d){b.remove(c);0<d.length&&(b.encodedQuery_=null,b.keyMap_.set(Q(b,c),n.array.clone(d)),b.count_=n.asserts.assertNumber(b.count_)+d.length)};
+n.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++){var e=c[d],f=n.string.urlEncode(e);e=this.getValues(e);for(var g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+n.string.urlEncode(e[g]));b.push(h)}}return this.encodedQuery_=b.join("&")};
+n.Uri.QueryData.prototype.clone=function(){var b=new n.Uri.QueryData;b.encodedQuery_=this.encodedQuery_;this.keyMap_&&(b.keyMap_=this.keyMap_.clone(),b.count_=this.count_);return b};var Q=function(b,c){c=String(c);b.ignoreCase_&&(c=c.toLowerCase());return c};n.Uri.QueryData.prototype.setIgnoreCase=function(b){b&&!this.ignoreCase_&&(P(this),this.encodedQuery_=null,this.keyMap_.forEach(function(b,d){var c=d.toLowerCase();d!=c&&(this.remove(d),aa(this,c,b))},this));this.ignoreCase_=b};
+n.Uri.QueryData.prototype.extend=function(b){for(var c=0;c<arguments.length;c++)n.structs.forEach(arguments[c],function(b,c){this.add(c,b)},this)};t.Errors={};t.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};t.Errors.getErrorResponse=function(b){return{request:{},response:{errorType:b}}};t.WebStoreService=function(){this.baseUrl_=t.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+t.WebStoreService.WEB_STORE_REQUEST_PATH_};t.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};t.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
+var ca=function(b,c,d,e,f,g,h,l,m,p){var A=d?d:"",O=l||"application/x-www-form-urlencoded",ba=function(b,c){if(c&&200==b){b=null;try{b=JSON.parse(c)}catch(wa){g(t.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}f(b)}else g(t.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)},da=function(K){if(K){var r=new XMLHttpRequest;r.open(e,c);r.setRequestHeader("Authorization","Bearer "+K);r.setRequestHeader("Content-Type",O);r.onreadystatechange=function(){4==r.readyState&&(401==r.status&&K?chrome.identity.removeCachedAuthToken({token:K},
+function(){h?ca(b,e,d,e,f,g,!1,l,m,p):(console.log(r),ba(r.status,r.responseText))}):(console.log(r),ba(r.status,r.responseText)))};r.send(A)}else g(t.Errors.ErrorTypes.TOKEN_MISSING_ERROR)};p?da(p):chrome.identity.getAuthToken({interactive:m||!1},da)};t.WebStoreService.prototype.onFailure_=function(b,c,d){b(t.Errors.getErrorResponse(d||c))};
+var ea=function(b,c,d,e,f,g,h,l){c={hl:window.navigator.language,itemId:c,sku:d,paymentVersion:1};h&&(c.gl=h);h=new n.Uri.QueryData;l&&h.add("projection",l);l=new n.Uri(b.baseUrlAndPath_+"/payments/buy");J(l,h);f=n.bind(b.onFailure_,b,f,t.Errors.ErrorTypes.MINT_JWT_ERROR);ca(b,l.toString(),JSON.stringify(c),"POST",function(b){e(b.jwt,b.paymentData,b.signature)},f,!0,"application/json",void 0,g)};n.dom.asserts={};n.dom.asserts.assertIsLocation=function(b){if(n.asserts.ENABLE_ASSERTS){var c=n.dom.asserts.getWindow_(b);"undefined"!=typeof c.Location&&"undefined"!=typeof c.Element&&n.asserts.assert(b&&(b instanceof c.Location||!(b instanceof c.Element)),"Argument is not a Location (or a non-Element mock); got: %s",n.dom.asserts.debugStringForType_(b))}};
+n.dom.asserts.assertIsElementType_=function(b,c){if(n.asserts.ENABLE_ASSERTS){var d=n.dom.asserts.getWindow_(b);"undefined"!=typeof d[c]&&"undefined"!=typeof d.Location&&"undefined"!=typeof d.Element&&n.asserts.assert(b&&(b instanceof d[c]||!(b instanceof d.Location||b instanceof d.Element)),"Argument is not a %s (or a non-Element, non-Location mock); got: %s",c,n.dom.asserts.debugStringForType_(b))}return b};
+n.dom.asserts.assertIsHTMLAnchorElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLAnchorElement")};n.dom.asserts.assertIsHTMLButtonElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLButtonElement")};n.dom.asserts.assertIsHTMLLinkElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLLinkElement")};n.dom.asserts.assertIsHTMLImageElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLImageElement")};
+n.dom.asserts.assertIsHTMLVideoElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLVideoElement")};n.dom.asserts.assertIsHTMLInputElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLInputElement")};n.dom.asserts.assertIsHTMLEmbedElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLEmbedElement")};n.dom.asserts.assertIsHTMLFormElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLFormElement")};
+n.dom.asserts.assertIsHTMLFrameElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLFrameElement")};n.dom.asserts.assertIsHTMLIFrameElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLIFrameElement")};n.dom.asserts.assertIsHTMLObjectElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLObjectElement")};n.dom.asserts.assertIsHTMLScriptElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLScriptElement")};
+n.dom.asserts.debugStringForType_=function(b){return n.isObject(b)?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):void 0===b?"undefined":null===b?"null":typeof b};n.dom.asserts.getWindow_=function(b){return(b=b&&b.ownerDocument)&&(b.defaultView||b.parentWindow)||n.global};n.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!n.userAgent.GECKO&&!n.userAgent.IE||n.userAgent.IE&&n.userAgent.isDocumentModeOrHigher(9)||n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:n.userAgent.IE||n.userAgent.OPERA||n.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:n.userAgent.IE,LEGACY_IE_RANGES:n.userAgent.IE&&
+!n.userAgent.isDocumentModeOrHigher(9)};n.dom.HtmlElement=function(){};n.dom.TagName=function(b){this.tagName_=b};n.dom.TagName.prototype.toString=function(){return this.tagName_};n.dom.TagName.A=new n.dom.TagName("A");n.dom.TagName.ABBR=new n.dom.TagName("ABBR");n.dom.TagName.ACRONYM=new n.dom.TagName("ACRONYM");n.dom.TagName.ADDRESS=new n.dom.TagName("ADDRESS");n.dom.TagName.APPLET=new n.dom.TagName("APPLET");n.dom.TagName.AREA=new n.dom.TagName("AREA");n.dom.TagName.ARTICLE=new n.dom.TagName("ARTICLE");n.dom.TagName.ASIDE=new n.dom.TagName("ASIDE");
+n.dom.TagName.AUDIO=new n.dom.TagName("AUDIO");n.dom.TagName.B=new n.dom.TagName("B");n.dom.TagName.BASE=new n.dom.TagName("BASE");n.dom.TagName.BASEFONT=new n.dom.TagName("BASEFONT");n.dom.TagName.BDI=new n.dom.TagName("BDI");n.dom.TagName.BDO=new n.dom.TagName("BDO");n.dom.TagName.BIG=new n.dom.TagName("BIG");n.dom.TagName.BLOCKQUOTE=new n.dom.TagName("BLOCKQUOTE");n.dom.TagName.BODY=new n.dom.TagName("BODY");n.dom.TagName.BR=new n.dom.TagName("BR");n.dom.TagName.BUTTON=new n.dom.TagName("BUTTON");
+n.dom.TagName.CANVAS=new n.dom.TagName("CANVAS");n.dom.TagName.CAPTION=new n.dom.TagName("CAPTION");n.dom.TagName.CENTER=new n.dom.TagName("CENTER");n.dom.TagName.CITE=new n.dom.TagName("CITE");n.dom.TagName.CODE=new n.dom.TagName("CODE");n.dom.TagName.COL=new n.dom.TagName("COL");n.dom.TagName.COLGROUP=new n.dom.TagName("COLGROUP");n.dom.TagName.COMMAND=new n.dom.TagName("COMMAND");n.dom.TagName.DATA=new n.dom.TagName("DATA");n.dom.TagName.DATALIST=new n.dom.TagName("DATALIST");
+n.dom.TagName.DD=new n.dom.TagName("DD");n.dom.TagName.DEL=new n.dom.TagName("DEL");n.dom.TagName.DETAILS=new n.dom.TagName("DETAILS");n.dom.TagName.DFN=new n.dom.TagName("DFN");n.dom.TagName.DIALOG=new n.dom.TagName("DIALOG");n.dom.TagName.DIR=new n.dom.TagName("DIR");n.dom.TagName.DIV=new n.dom.TagName("DIV");n.dom.TagName.DL=new n.dom.TagName("DL");n.dom.TagName.DT=new n.dom.TagName("DT");n.dom.TagName.EM=new n.dom.TagName("EM");n.dom.TagName.EMBED=new n.dom.TagName("EMBED");
+n.dom.TagName.FIELDSET=new n.dom.TagName("FIELDSET");n.dom.TagName.FIGCAPTION=new n.dom.TagName("FIGCAPTION");n.dom.TagName.FIGURE=new n.dom.TagName("FIGURE");n.dom.TagName.FONT=new n.dom.TagName("FONT");n.dom.TagName.FOOTER=new n.dom.TagName("FOOTER");n.dom.TagName.FORM=new n.dom.TagName("FORM");n.dom.TagName.FRAME=new n.dom.TagName("FRAME");n.dom.TagName.FRAMESET=new n.dom.TagName("FRAMESET");n.dom.TagName.H1=new n.dom.TagName("H1");n.dom.TagName.H2=new n.dom.TagName("H2");n.dom.TagName.H3=new n.dom.TagName("H3");
+n.dom.TagName.H4=new n.dom.TagName("H4");n.dom.TagName.H5=new n.dom.TagName("H5");n.dom.TagName.H6=new n.dom.TagName("H6");n.dom.TagName.HEAD=new n.dom.TagName("HEAD");n.dom.TagName.HEADER=new n.dom.TagName("HEADER");n.dom.TagName.HGROUP=new n.dom.TagName("HGROUP");n.dom.TagName.HR=new n.dom.TagName("HR");n.dom.TagName.HTML=new n.dom.TagName("HTML");n.dom.TagName.I=new n.dom.TagName("I");n.dom.TagName.IFRAME=new n.dom.TagName("IFRAME");n.dom.TagName.IMG=new n.dom.TagName("IMG");
+n.dom.TagName.INPUT=new n.dom.TagName("INPUT");n.dom.TagName.INS=new n.dom.TagName("INS");n.dom.TagName.ISINDEX=new n.dom.TagName("ISINDEX");n.dom.TagName.KBD=new n.dom.TagName("KBD");n.dom.TagName.KEYGEN=new n.dom.TagName("KEYGEN");n.dom.TagName.LABEL=new n.dom.TagName("LABEL");n.dom.TagName.LEGEND=new n.dom.TagName("LEGEND");n.dom.TagName.LI=new n.dom.TagName("LI");n.dom.TagName.LINK=new n.dom.TagName("LINK");n.dom.TagName.MAIN=new n.dom.TagName("MAIN");n.dom.TagName.MAP=new n.dom.TagName("MAP");
+n.dom.TagName.MARK=new n.dom.TagName("MARK");n.dom.TagName.MATH=new n.dom.TagName("MATH");n.dom.TagName.MENU=new n.dom.TagName("MENU");n.dom.TagName.MENUITEM=new n.dom.TagName("MENUITEM");n.dom.TagName.META=new n.dom.TagName("META");n.dom.TagName.METER=new n.dom.TagName("METER");n.dom.TagName.NAV=new n.dom.TagName("NAV");n.dom.TagName.NOFRAMES=new n.dom.TagName("NOFRAMES");n.dom.TagName.NOSCRIPT=new n.dom.TagName("NOSCRIPT");n.dom.TagName.OBJECT=new n.dom.TagName("OBJECT");n.dom.TagName.OL=new n.dom.TagName("OL");
+n.dom.TagName.OPTGROUP=new n.dom.TagName("OPTGROUP");n.dom.TagName.OPTION=new n.dom.TagName("OPTION");n.dom.TagName.OUTPUT=new n.dom.TagName("OUTPUT");n.dom.TagName.P=new n.dom.TagName("P");n.dom.TagName.PARAM=new n.dom.TagName("PARAM");n.dom.TagName.PICTURE=new n.dom.TagName("PICTURE");n.dom.TagName.PRE=new n.dom.TagName("PRE");n.dom.TagName.PROGRESS=new n.dom.TagName("PROGRESS");n.dom.TagName.Q=new n.dom.TagName("Q");n.dom.TagName.RP=new n.dom.TagName("RP");n.dom.TagName.RT=new n.dom.TagName("RT");
+n.dom.TagName.RTC=new n.dom.TagName("RTC");n.dom.TagName.RUBY=new n.dom.TagName("RUBY");n.dom.TagName.S=new n.dom.TagName("S");n.dom.TagName.SAMP=new n.dom.TagName("SAMP");n.dom.TagName.SCRIPT=new n.dom.TagName("SCRIPT");n.dom.TagName.SECTION=new n.dom.TagName("SECTION");n.dom.TagName.SELECT=new n.dom.TagName("SELECT");n.dom.TagName.SMALL=new n.dom.TagName("SMALL");n.dom.TagName.SOURCE=new n.dom.TagName("SOURCE");n.dom.TagName.SPAN=new n.dom.TagName("SPAN");n.dom.TagName.STRIKE=new n.dom.TagName("STRIKE");
+n.dom.TagName.STRONG=new n.dom.TagName("STRONG");n.dom.TagName.STYLE=new n.dom.TagName("STYLE");n.dom.TagName.SUB=new n.dom.TagName("SUB");n.dom.TagName.SUMMARY=new n.dom.TagName("SUMMARY");n.dom.TagName.SUP=new n.dom.TagName("SUP");n.dom.TagName.SVG=new n.dom.TagName("SVG");n.dom.TagName.TABLE=new n.dom.TagName("TABLE");n.dom.TagName.TBODY=new n.dom.TagName("TBODY");n.dom.TagName.TD=new n.dom.TagName("TD");n.dom.TagName.TEMPLATE=new n.dom.TagName("TEMPLATE");n.dom.TagName.TEXTAREA=new n.dom.TagName("TEXTAREA");
+n.dom.TagName.TFOOT=new n.dom.TagName("TFOOT");n.dom.TagName.TH=new n.dom.TagName("TH");n.dom.TagName.THEAD=new n.dom.TagName("THEAD");n.dom.TagName.TIME=new n.dom.TagName("TIME");n.dom.TagName.TITLE=new n.dom.TagName("TITLE");n.dom.TagName.TR=new n.dom.TagName("TR");n.dom.TagName.TRACK=new n.dom.TagName("TRACK");n.dom.TagName.TT=new n.dom.TagName("TT");n.dom.TagName.U=new n.dom.TagName("U");n.dom.TagName.UL=new n.dom.TagName("UL");n.dom.TagName.VAR=new n.dom.TagName("VAR");n.dom.TagName.VIDEO=new n.dom.TagName("VIDEO");
+n.dom.TagName.WBR=new n.dom.TagName("WBR");n.dom.tags={};n.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};n.dom.tags.isVoidTag=function(b){return!0===n.dom.tags.VOID_TAGS_[b]};n.string.TypedString=function(){};n.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=n.string.Const.TYPE_MARKER_};n.string.Const.prototype.implementsGoogStringTypedString=!0;n.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
+n.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};n.string.Const.unwrap=function(b){if(b instanceof n.string.Const&&b.constructor===n.string.Const&&b.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===n.string.Const.TYPE_MARKER_)return b.stringConstValueWithSecurityContract__googStringSecurityPrivate_;n.asserts.fail("expected object of type Const, got '"+b+"'");return"type_error:Const"};
+n.string.Const.from=function(b){return n.string.Const.create__googStringSecurityPrivate_(b)};n.string.Const.TYPE_MARKER_={};n.string.Const.create__googStringSecurityPrivate_=function(b){var c=new n.string.Const;c.stringConstValueWithSecurityContract__googStringSecurityPrivate_=b;return c};n.string.Const.EMPTY=n.string.Const.from("");n.html={};n.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeScript.prototype.implementsGoogStringTypedString=!0;n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.SafeScript.fromConstant=function(b){b=n.string.Const.unwrap(b);return 0===b.length?n.html.SafeScript.EMPTY:n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeScript.fromConstantAndArgs=function(b,c){for(var d=[],e=1;e<arguments.length;e++)d.push(n.html.SafeScript.stringify_(arguments[e]));return n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+n.string.Const.unwrap(b)+")("+d.join(", ")+");")};n.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};
+n.DEBUG&&(n.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});
+n.html.SafeScript.unwrap=function(b){if(b instanceof n.html.SafeScript&&b.constructor===n.html.SafeScript&&b.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeScriptWrappedValue_;n.asserts.fail("expected object of type SafeScript, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeScript"};n.html.SafeScript.stringify_=function(b){return JSON.stringify(b).replace(/</g,"\\x3c")};
+n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(b)};n.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=b;return this};n.html.SafeScript.EMPTY=n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");n.fs={};n.fs.url={};n.fs.url.createObjectUrl=function(b){return n.fs.url.getUrlObject_().createObjectURL(b)};n.fs.url.revokeObjectUrl=function(b){n.fs.url.getUrlObject_().revokeObjectURL(b)};n.fs.url.getUrlObject_=function(){var b=n.fs.url.findUrlObject_();if(null!=b)return b;throw Error("This browser doesn't seem to support blob URLs");};
+n.fs.url.findUrlObject_=function(){return n.isDef(n.global.URL)&&n.isDef(n.global.URL.createObjectURL)?n.global.URL:n.isDef(n.global.webkitURL)&&n.isDef(n.global.webkitURL.createObjectURL)?n.global.webkitURL:n.isDef(n.global.createObjectURL)?n.global:null};n.fs.url.browserSupportsObjectUrls=function(){return null!=n.fs.url.findUrlObject_()};n.i18n={};n.i18n.bidi={};n.i18n.bidi.FORCE_RTL=!1;
+n.i18n.bidi.IS_RTL=n.i18n.bidi.FORCE_RTL||("ar"==n.LOCALE.substring(0,2).toLowerCase()||"fa"==n.LOCALE.substring(0,2).toLowerCase()||"he"==n.LOCALE.substring(0,2).toLowerCase()||"iw"==n.LOCALE.substring(0,2).toLowerCase()||"ps"==n.LOCALE.substring(0,2).toLowerCase()||"sd"==n.LOCALE.substring(0,2).toLowerCase()||"ug"==n.LOCALE.substring(0,2).toLowerCase()||"ur"==n.LOCALE.substring(0,2).toLowerCase()||"yi"==n.LOCALE.substring(0,2).toLowerCase())&&(2==n.LOCALE.length||"-"==n.LOCALE.substring(2,3)||"_"==
+n.LOCALE.substring(2,3))||3<=n.LOCALE.length&&"ckb"==n.LOCALE.substring(0,3).toLowerCase()&&(3==n.LOCALE.length||"-"==n.LOCALE.substring(3,4)||"_"==n.LOCALE.substring(3,4));n.i18n.bidi.Format={LRE:"\u202a",RLE:"\u202b",PDF:"\u202c",LRM:"\u200e",RLM:"\u200f"};n.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};n.i18n.bidi.RIGHT="right";n.i18n.bidi.LEFT="left";n.i18n.bidi.I18N_RIGHT=n.i18n.bidi.IS_RTL?n.i18n.bidi.LEFT:n.i18n.bidi.RIGHT;n.i18n.bidi.I18N_LEFT=n.i18n.bidi.IS_RTL?n.i18n.bidi.RIGHT:n.i18n.bidi.LEFT;
+n.i18n.bidi.toDir=function(b){return"number"==typeof b?0<b?n.i18n.bidi.Dir.LTR:0>b?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.NEUTRAL:null==b?null:b?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.LTR};n.i18n.bidi.ltrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";n.i18n.bidi.rtlChars_="\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc";n.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
+n.i18n.bidi.stripHtmlIfNeeded_=function(b,c){return c?b.replace(n.i18n.bidi.htmlSkipReg_,""):b};n.i18n.bidi.rtlCharReg_=new RegExp("["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.ltrCharReg_=new RegExp("["+n.i18n.bidi.ltrChars_+"]");n.i18n.bidi.hasAnyRtl=function(b,c){return n.i18n.bidi.rtlCharReg_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.hasRtlChar=n.i18n.bidi.hasAnyRtl;n.i18n.bidi.hasAnyLtr=function(b){return n.i18n.bidi.ltrCharReg_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,void 0))};
+n.i18n.bidi.ltrRe_=new RegExp("^["+n.i18n.bidi.ltrChars_+"]");n.i18n.bidi.rtlRe_=new RegExp("^["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.isRtlChar=function(b){return n.i18n.bidi.rtlRe_.test(b)};n.i18n.bidi.isLtrChar=function(b){return n.i18n.bidi.ltrRe_.test(b)};n.i18n.bidi.isNeutralChar=function(b){return!n.i18n.bidi.isLtrChar(b)&&!n.i18n.bidi.isRtlChar(b)};n.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+n.i18n.bidi.rtlChars_+"]*["+n.i18n.bidi.ltrChars_+"]");
+n.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+n.i18n.bidi.ltrChars_+"]*["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.startsWithRtl=function(b,c){return n.i18n.bidi.rtlDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isRtlText=n.i18n.bidi.startsWithRtl;n.i18n.bidi.startsWithLtr=function(b,c){return n.i18n.bidi.ltrDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isLtrText=n.i18n.bidi.startsWithLtr;n.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;
+n.i18n.bidi.isNeutralText=function(b,c){b=n.i18n.bidi.stripHtmlIfNeeded_(b,c);return n.i18n.bidi.isRequiredLtrRe_.test(b)||!n.i18n.bidi.hasAnyLtr(b)&&!n.i18n.bidi.hasAnyRtl(b)};n.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+n.i18n.bidi.ltrChars_+"][^"+n.i18n.bidi.rtlChars_+"]*$");n.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+n.i18n.bidi.rtlChars_+"][^"+n.i18n.bidi.ltrChars_+"]*$");n.i18n.bidi.endsWithLtr=function(b,c){return n.i18n.bidi.ltrExitDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};
+n.i18n.bidi.isLtrExitText=n.i18n.bidi.endsWithLtr;n.i18n.bidi.endsWithRtl=function(b,c){return n.i18n.bidi.rtlExitDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isRtlExitText=n.i18n.bidi.endsWithRtl;n.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;n.i18n.bidi.isRtlLanguage=function(b){return n.i18n.bidi.rtlLocalesRe_.test(b)};n.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
+n.i18n.bidi.guardBracketInText=function(b,c){c=(void 0===c?n.i18n.bidi.hasAnyRtl(b):c)?n.i18n.bidi.Format.RLM:n.i18n.bidi.Format.LRM;return b.replace(n.i18n.bidi.bracketGuardTextRe_,c+"$&"+c)};n.i18n.bidi.enforceRtlInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+b+"</span>"};n.i18n.bidi.enforceRtlInText=function(b){return n.i18n.bidi.Format.RLE+b+n.i18n.bidi.Format.PDF};
+n.i18n.bidi.enforceLtrInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+b+"</span>"};n.i18n.bidi.enforceLtrInText=function(b){return n.i18n.bidi.Format.LRE+b+n.i18n.bidi.Format.PDF};n.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;n.i18n.bidi.leftRe_=/left/gi;n.i18n.bidi.rightRe_=/right/gi;n.i18n.bidi.tempRe_=/%%%%/g;
+n.i18n.bidi.mirrorCSS=function(b){return b.replace(n.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(n.i18n.bidi.leftRe_,"%%%%").replace(n.i18n.bidi.rightRe_,n.i18n.bidi.LEFT).replace(n.i18n.bidi.tempRe_,n.i18n.bidi.RIGHT)};n.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;n.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;n.i18n.bidi.normalizeHebrewQuote=function(b){return b.replace(n.i18n.bidi.doubleQuoteSubstituteRe_,"$1\u05f4").replace(n.i18n.bidi.singleQuoteSubstituteRe_,"$1\u05f3")};
+n.i18n.bidi.wordSeparatorRe_=/\s+/;n.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;n.i18n.bidi.rtlDetectionThreshold_=.4;
+n.i18n.bidi.estimateDirection=function(b,c){var d=0,e=0,f=!1;b=n.i18n.bidi.stripHtmlIfNeeded_(b,c).split(n.i18n.bidi.wordSeparatorRe_);for(c=0;c<b.length;c++){var g=b[c];n.i18n.bidi.startsWithRtl(g)?(d++,e++):n.i18n.bidi.isRequiredLtrRe_.test(g)?f=!0:n.i18n.bidi.hasAnyLtr(g)?e++:n.i18n.bidi.hasNumeralsRe_.test(g)&&(f=!0)}return 0==e?f?n.i18n.bidi.Dir.LTR:n.i18n.bidi.Dir.NEUTRAL:d/e>n.i18n.bidi.rtlDetectionThreshold_?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.LTR};
+n.i18n.bidi.detectRtlDirectionality=function(b,c){return n.i18n.bidi.estimateDirection(b,c)==n.i18n.bidi.Dir.RTL};n.i18n.bidi.setElementDirAndAlign=function(b,c){b&&(c=n.i18n.bidi.toDir(c))&&(b.style.textAlign=c==n.i18n.bidi.Dir.RTL?n.i18n.bidi.RIGHT:n.i18n.bidi.LEFT,b.dir=c==n.i18n.bidi.Dir.RTL?"rtl":"ltr")};n.i18n.bidi.setElementDirByTextDirectionality=function(b,c){switch(n.i18n.bidi.estimateDirection(c)){case n.i18n.bidi.Dir.LTR:b.dir="ltr";break;case n.i18n.bidi.Dir.RTL:b.dir="rtl";break;default:b.removeAttribute("dir")}};
+n.i18n.bidi.DirectionalString=function(){};n.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;n.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};
+n.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;n.html.TrustedResourceUrl.prototype.getDirection=function(){return n.i18n.bidi.Dir.LTR};n.DEBUG&&(n.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
+n.html.TrustedResourceUrl.unwrap=function(b){if(b instanceof n.html.TrustedResourceUrl&&b.constructor===n.html.TrustedResourceUrl&&b.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;n.asserts.fail("expected object of type TrustedResourceUrl, got '"+b+"' of type "+n.typeOf(b));return"type_error:TrustedResourceUrl"};
+n.html.TrustedResourceUrl.format=function(b,c){var d=n.string.Const.unwrap(b);if(!n.html.TrustedResourceUrl.BASE_URL_.test(d))throw Error("Invalid TrustedResourceUrl format: "+d);b=d.replace(n.html.TrustedResourceUrl.FORMAT_MARKER_,function(b,f){if(!Object.prototype.hasOwnProperty.call(c,f))throw Error('Found marker, "'+f+'", in format string, "'+d+'", but no valid label mapping found in args: '+JSON.stringify(c));b=c[f];return b instanceof n.string.Const?n.string.Const.unwrap(b):encodeURIComponent(String(b))});
+return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;n.html.TrustedResourceUrl.BASE_URL_=/^(?:https:)?\/\/[0-9a-z.:[\]-]+\/|^\/[^\/\\]|^about:blank#/i;
+n.html.TrustedResourceUrl.formatWithParams=function(b,c,d){b=n.html.TrustedResourceUrl.format(b,c);b=n.html.TrustedResourceUrl.unwrap(b);c=/\?/.test(b)?"&":"?";for(var e in d)for(var f=n.isArray(d[e])?d[e]:[d[e]],g=0;g<f.length;g++)null!=f[g]&&(b+=c+encodeURIComponent(e)+"="+encodeURIComponent(String(f[g])),c="&");return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.TrustedResourceUrl.fromConstant=function(b){return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n.string.Const.unwrap(b))};
+n.html.TrustedResourceUrl.fromConstants=function(b){for(var c="",d=0;d<b.length;d++)c+=n.string.Const.unwrap(b[d]);return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new n.html.TrustedResourceUrl;c.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=b;return c};n.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";n.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;n.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};n.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;
+n.html.SafeUrl.prototype.getDirection=function(){return n.i18n.bidi.Dir.LTR};n.DEBUG&&(n.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});
+n.html.SafeUrl.unwrap=function(b){if(b instanceof n.html.SafeUrl&&b.constructor===n.html.SafeUrl&&b.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;n.asserts.fail("expected object of type SafeUrl, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeUrl"};n.html.SafeUrl.fromConstant=function(b){return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(n.string.Const.unwrap(b))};
+n.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp|3gpp2|aac|midi|mp4|mpeg|ogg|x-m4a|x-wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))$/i;n.html.SafeUrl.fromBlob=function(b){b=n.html.SAFE_MIME_TYPE_PATTERN_.test(b.type)?n.fs.url.createObjectUrl(b):n.html.SafeUrl.INNOCUOUS_STRING;return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i;
+n.html.SafeUrl.fromDataUrl=function(b){var c=b.match(n.html.DATA_URL_PATTERN_);c=c&&n.html.SAFE_MIME_TYPE_PATTERN_.test(c[1]);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c?b:n.html.SafeUrl.INNOCUOUS_STRING)};n.html.SafeUrl.fromTelUrl=function(b){n.string.caseInsensitiveStartsWith(b)||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeUrl.fromTrustedResourceUrl=function(b){return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(n.html.TrustedResourceUrl.unwrap(b))};
+n.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;n.html.SafeUrl.sanitize=function(b){if(b instanceof n.html.SafeUrl)return b;b=b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);n.html.SAFE_URL_PATTERN_.test(b)||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeUrl.sanitizeAssertUnchanged=function(b){if(b instanceof n.html.SafeUrl)return b;b=b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);n.asserts.assert(n.html.SAFE_URL_PATTERN_.test(b))||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new n.html.SafeUrl;c.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;return c};n.html.SafeUrl.ABOUT_BLANK=n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");n.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeStyle.fromConstant=function(b){b=n.string.Const.unwrap(b);if(0===b.length)return n.html.SafeStyle.EMPTY;n.html.SafeStyle.checkStyle_(b);n.asserts.assert(n.string.endsWith(b,";"),"Last character of style string is not ';': "+b);n.asserts.assert(n.string.contains(b,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+b);return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeStyle.checkStyle_=function(b){n.asserts.assert(!/[<>]/.test(b),"Forbidden characters in style string: "+b)};n.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};n.DEBUG&&(n.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
+n.html.SafeStyle.unwrap=function(b){if(b instanceof n.html.SafeStyle&&b.constructor===n.html.SafeStyle&&b.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleWrappedValue_;n.asserts.fail("expected object of type SafeStyle, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeStyle"};n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(b)};
+n.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=b;return this};n.html.SafeStyle.EMPTY=n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");n.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
+n.html.SafeStyle.create=function(b){var c="",d;for(d in b){if(!/^[-_a-zA-Z0-9]+$/.test(d))throw Error("Name allows only [-_a-zA-Z0-9], got: "+d);var e=b[d];null!=e&&(e=n.isArray(e)?n.array.map(e,n.html.SafeStyle.sanitizePropertyValue_).join(" "):n.html.SafeStyle.sanitizePropertyValue_(e),c+=d+":"+e+";")}if(!c)return n.html.SafeStyle.EMPTY;n.html.SafeStyle.checkStyle_(c);return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
+n.html.SafeStyle.sanitizePropertyValue_=function(b){if(b instanceof n.html.SafeUrl)return'url("'+n.html.SafeUrl.unwrap(b).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';b=b instanceof n.string.Const?n.string.Const.unwrap(b):n.html.SafeStyle.sanitizePropertyValueString_(String(b));n.asserts.assert(!/[{;}]/.test(b),"Value does not allow [{;}].");return b};
+n.html.SafeStyle.sanitizePropertyValueString_=function(b){var c=b.replace(n.html.SafeUrl.FUNCTIONS_RE_,"$1").replace(n.html.SafeUrl.URL_RE_,"url");return n.html.SafeStyle.VALUE_RE_.test(c)?n.html.SafeStyle.hasBalancedQuotes_(b)?n.html.SafeStyle.sanitizeUrl_(b):(n.asserts.fail("String value requires balanced quotes, got: "+b),n.html.SafeStyle.INNOCUOUS_STRING):(n.asserts.fail("String value allows only "+n.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+b),n.html.SafeStyle.INNOCUOUS_STRING)};
+n.html.SafeStyle.hasBalancedQuotes_=function(b){for(var c=!0,d=!0,e=0;e<b.length;e++){var f=b.charAt(e);"'"==f&&d?c=!c:'"'==f&&c&&(d=!d)}return c&&d};n.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9]";n.html.SafeStyle.VALUE_RE_=new RegExp("^"+n.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$");n.html.SafeUrl.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;n.html.SafeUrl.FUNCTIONS_RE_=/\b(hsl|hsla|rgb|rgba|(rotate|scale|translate)(X|Y|Z|3d)?)\([-0-9a-z.%, ]+\)/g;
+n.html.SafeStyle.sanitizeUrl_=function(b){return b.replace(n.html.SafeUrl.URL_RE_,function(b,d,e,f){var c="";e=e.replace(/^(['"])(.*)\1$/,function(b,d,e){c=d;return e});b=n.html.SafeUrl.sanitize(e).getTypedStringValue();return d+c+b+c+f})};n.html.SafeStyle.concat=function(b){var c="",d=function(b){n.isArray(b)?n.array.forEach(b,d):c+=n.html.SafeStyle.unwrap(b)};n.array.forEach(arguments,d);return c?n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c):n.html.SafeStyle.EMPTY};n.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeStyleSheet.createRule=function(b,c){if(n.string.contains(b,"<"))throw Error("Selector does not allow '<', got: "+b);var d=b.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(d))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+b);if(!n.html.SafeStyleSheet.hasBalancedBrackets_(d))throw Error("() and [] in selector must be balanced, got: "+b);c instanceof n.html.SafeStyle||(c=n.html.SafeStyle.create(c));
+b=b+"{"+n.html.SafeStyle.unwrap(c)+"}";return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeStyleSheet.hasBalancedBrackets_=function(b){for(var c={"(":")","[":"]"},d=[],e=0;e<b.length;e++){var f=b[e];if(c[f])d.push(c[f]);else if(n.object.contains(c,f)&&d.pop()!=f)return!1}return 0==d.length};n.html.SafeStyleSheet.concat=function(b){var c="",d=function(b){n.isArray(b)?n.array.forEach(b,d):c+=n.html.SafeStyleSheet.unwrap(b)};n.array.forEach(arguments,d);return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
+n.html.SafeStyleSheet.fromConstant=function(b){b=n.string.Const.unwrap(b);if(0===b.length)return n.html.SafeStyleSheet.EMPTY;n.asserts.assert(!n.string.contains(b,"<"),"Forbidden '<' character in style sheet string: "+b);return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};
+n.DEBUG&&(n.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});
+n.html.SafeStyleSheet.unwrap=function(b){if(b instanceof n.html.SafeStyleSheet&&b.constructor===n.html.SafeStyleSheet&&b.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;n.asserts.fail("expected object of type SafeStyleSheet, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeStyleSheet"};
+n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(b)};n.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=b;return this};n.html.SafeStyleSheet.EMPTY=n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");n.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};n.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;n.html.SafeHtml.prototype.getDirection=function(){return this.dir_};n.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;n.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};
+n.DEBUG&&(n.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});n.html.SafeHtml.unwrap=function(b){if(b instanceof n.html.SafeHtml&&b.constructor===n.html.SafeHtml&&b.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;n.asserts.fail("expected object of type SafeHtml, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeHtml"};
+n.html.SafeHtml.htmlEscape=function(b){if(b instanceof n.html.SafeHtml)return b;var c=null;b.implementsGoogI18nBidiDirectionalString&&(c=b.getDirection());return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.htmlEscape(b.implementsGoogStringTypedString?b.getTypedStringValue():String(b)),c)};
+n.html.SafeHtml.htmlEscapePreservingNewlines=function(b){if(b instanceof n.html.SafeHtml)return b;b=n.html.SafeHtml.htmlEscape(b);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.newLineToBr(n.html.SafeHtml.unwrap(b)),b.getDirection())};
+n.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(b){if(b instanceof n.html.SafeHtml)return b;b=n.html.SafeHtml.htmlEscape(b);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.whitespaceEscape(n.html.SafeHtml.unwrap(b)),b.getDirection())};n.html.SafeHtml.from=n.html.SafeHtml.htmlEscape;n.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;n.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};
+n.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};n.html.SafeHtml.create=function(b,c,d){n.html.SafeHtml.verifyTagName(String(b));return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(b),c,d)};
+n.html.SafeHtml.verifyTagName=function(b){if(!n.html.SafeHtml.VALID_NAMES_IN_TAG_.test(b))throw Error("Invalid tag name <"+b+">.");if(b.toUpperCase()in n.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+b+"> is not allowed for SafeHtml.");};
+n.html.SafeHtml.createIframe=function(b,c,d,e){b&&n.html.TrustedResourceUrl.unwrap(b);var f={};f.src=b||null;f.srcdoc=c&&n.html.SafeHtml.unwrap(c);b=n.html.SafeHtml.combineAttributes(f,{sandbox:""},d);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};
+n.html.SafeHtml.createSandboxIframe=function(b,c,d,e){if(!n.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var f={};f.src=b?n.html.SafeUrl.unwrap(n.html.SafeUrl.sanitize(b)):null;f.srcdoc=c||null;f.sandbox="";b=n.html.SafeHtml.combineAttributes(f,{},d);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};n.html.SafeHtml.canUseSandboxIframe=function(){return n.global.HTMLIFrameElement&&"sandbox"in n.global.HTMLIFrameElement.prototype};
+n.html.SafeHtml.createScriptSrc=function(b,c){n.html.TrustedResourceUrl.unwrap(b);b=n.html.SafeHtml.combineAttributes({src:b},{},c);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",b)};
+n.html.SafeHtml.createScript=function(b,c){for(var d in c){var e=d.toLowerCase();if("language"==e||"src"==e||"text"==e||"type"==e)throw Error('Cannot set "'+e+'" attribute');}d="";b=n.array.concat(b);for(e=0;e<b.length;e++)d+=n.html.SafeScript.unwrap(b[e]);b=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,n.i18n.bidi.Dir.NEUTRAL);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",c,b)};
+n.html.SafeHtml.createStyle=function(b,c){c=n.html.SafeHtml.combineAttributes({type:"text/css"},{},c);var d="";b=n.array.concat(b);for(var e=0;e<b.length;e++)d+=n.html.SafeStyleSheet.unwrap(b[e]);b=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,n.i18n.bidi.Dir.NEUTRAL);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",c,b)};
+n.html.SafeHtml.createMetaRefresh=function(b,c){b=n.html.SafeUrl.unwrap(n.html.SafeUrl.sanitize(b));(n.labs.userAgent.browser.isIE()||n.labs.userAgent.browser.isEdge())&&n.string.contains(b,";")&&(b="'"+b.replace(/'/g,"%27")+"'");return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(c||0)+"; url="+b})};
+n.html.SafeHtml.getAttrNameAndValue_=function(b,c,d){if(d instanceof n.string.Const)d=n.string.Const.unwrap(d);else if("style"==c.toLowerCase())d=n.html.SafeHtml.getStyleValue_(d);else{if(/^on/i.test(c))throw Error('Attribute "'+c+'" requires goog.string.Const value, "'+d+'" given.');if(c.toLowerCase()in n.html.SafeHtml.URL_ATTRIBUTES_)if(d instanceof n.html.TrustedResourceUrl)d=n.html.TrustedResourceUrl.unwrap(d);else if(d instanceof n.html.SafeUrl)d=n.html.SafeUrl.unwrap(d);else if(n.isString(d))d=
+n.html.SafeUrl.sanitize(d).getTypedStringValue();else throw Error('Attribute "'+c+'" on tag "'+b+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+d+'" given.');}d.implementsGoogStringTypedString&&(d=d.getTypedStringValue());n.asserts.assert(n.isString(d)||n.isNumber(d),"String or number value expected, got "+typeof d+" with value: "+d);return c+'="'+n.string.htmlEscape(String(d))+'"'};
+n.html.SafeHtml.getStyleValue_=function(b){if(!n.isObject(b))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof b+" given: "+b);b instanceof n.html.SafeStyle||(b=n.html.SafeStyle.create(b));return n.html.SafeStyle.unwrap(b)};n.html.SafeHtml.createWithDir=function(b,c,d,e){c=n.html.SafeHtml.create(c,d,e);c.dir_=b;return c};
+n.html.SafeHtml.concat=function(b){var c=n.i18n.bidi.Dir.NEUTRAL,d="",e=function(b){n.isArray(b)?n.array.forEach(b,e):(b=n.html.SafeHtml.htmlEscape(b),d+=n.html.SafeHtml.unwrap(b),b=b.getDirection(),c==n.i18n.bidi.Dir.NEUTRAL?c=b:b!=n.i18n.bidi.Dir.NEUTRAL&&c!=b&&(c=null))};n.array.forEach(arguments,e);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,c)};n.html.SafeHtml.concatWithDir=function(b,c){var d=n.html.SafeHtml.concat(n.array.slice(arguments,1));d.dir_=b;return d};
+n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(b,c){return(new n.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(b,c)};n.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b,c){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;this.dir_=c;return this};
+n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(b,c,d){var e=null;var f="<"+b+n.html.SafeHtml.stringifyAttributes(b,c);n.isDefAndNotNull(d)?n.isArray(d)||(d=[d]):d=[];n.dom.tags.isVoidTag(b.toLowerCase())?(n.asserts.assert(!d.length,"Void tag <"+b+"> does not allow content."),f+=">"):(e=n.html.SafeHtml.concat(d),f+=">"+n.html.SafeHtml.unwrap(e)+"</"+b+">",e=e.getDirection());(b=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(b)?n.i18n.bidi.Dir.NEUTRAL:null);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(f,
+e)};n.html.SafeHtml.stringifyAttributes=function(b,c){var d="";if(c)for(var e in c){if(!n.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error('Invalid attribute name "'+e+'".');var f=c[e];n.isDefAndNotNull(f)&&(d+=" "+n.html.SafeHtml.getAttrNameAndValue_(b,e,f))}return d};
+n.html.SafeHtml.combineAttributes=function(b,c,d){var e={},f;for(f in b)n.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=b[f];for(f in c)n.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=c[f];for(f in d){var g=f.toLowerCase();if(g in b)throw Error('Cannot override "'+g+'" attribute, got "'+f+'" with value "'+d[f]+'"');g in c&&delete e[g];e[f]=d[f]}return e};n.html.SafeHtml.DOCTYPE_HTML=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",n.i18n.bidi.Dir.NEUTRAL);
+n.html.SafeHtml.EMPTY=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",n.i18n.bidi.Dir.NEUTRAL);n.html.SafeHtml.BR=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",n.i18n.bidi.Dir.NEUTRAL);n.dom.safe={};n.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};n.dom.safe.insertAdjacentHtml=function(b,c,d){b.insertAdjacentHTML(c,n.html.SafeHtml.unwrap(d))};n.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};
+n.dom.safe.setInnerHtml=function(b,c){if(n.asserts.ENABLE_ASSERTS&&n.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[b.tagName.toUpperCase()])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+b.tagName+".");b.innerHTML=n.html.SafeHtml.unwrap(c)};n.dom.safe.setOuterHtml=function(b,c){b.outerHTML=n.html.SafeHtml.unwrap(c)};
+n.dom.safe.setFormElementAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLFormElement(b).action=n.html.SafeUrl.unwrap(c)};n.dom.safe.setButtonFormAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLButtonElement(b).formAction=n.html.SafeUrl.unwrap(c)};
+n.dom.safe.setInputFormAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLInputElement(b).formAction=n.html.SafeUrl.unwrap(c)};n.dom.safe.setStyle=function(b,c){b.style.cssText=n.html.SafeStyle.unwrap(c)};n.dom.safe.documentWrite=function(b,c){b.write(n.html.SafeHtml.unwrap(c))};
+n.dom.safe.setAnchorHref=function(b,c){n.dom.asserts.assertIsHTMLAnchorElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=n.html.SafeUrl.unwrap(c)};n.dom.safe.setImageSrc=function(b,c){n.dom.asserts.assertIsHTMLImageElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.src=n.html.SafeUrl.unwrap(c)};
+n.dom.safe.setVideoSrc=function(b,c){n.dom.asserts.assertIsHTMLVideoElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.src=n.html.SafeUrl.unwrap(c)};n.dom.safe.setEmbedSrc=function(b,c){n.dom.asserts.assertIsHTMLEmbedElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setFrameSrc=function(b,c){n.dom.asserts.assertIsHTMLFrameElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};
+n.dom.safe.setIframeSrc=function(b,c){n.dom.asserts.assertIsHTMLIFrameElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setIframeSrcdoc=function(b,c){n.dom.asserts.assertIsHTMLIFrameElement(b);b.srcdoc=n.html.SafeHtml.unwrap(c)};
+n.dom.safe.setLinkHrefAndRel=function(b,c,d){n.dom.asserts.assertIsHTMLLinkElement(b);b.rel=d;n.string.caseInsensitiveContains(d,"stylesheet")?(n.asserts.assert(c instanceof n.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),b.href=n.html.TrustedResourceUrl.unwrap(c)):b.href=c instanceof n.html.TrustedResourceUrl?n.html.TrustedResourceUrl.unwrap(c):c instanceof n.html.SafeUrl?n.html.SafeUrl.unwrap(c):n.html.SafeUrl.sanitizeAssertUnchanged(c).getTypedStringValue()};
+n.dom.safe.setObjectData=function(b,c){n.dom.asserts.assertIsHTMLObjectElement(b);b.data=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setScriptSrc=function(b,c){n.dom.asserts.assertIsHTMLScriptElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setScriptContent=function(b,c){n.dom.asserts.assertIsHTMLScriptElement(b);b.text=n.html.SafeScript.unwrap(c)};
+n.dom.safe.setLocationHref=function(b,c){n.dom.asserts.assertIsLocation(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=n.html.SafeUrl.unwrap(c)};n.dom.safe.replaceLocation=function(b,c){n.dom.asserts.assertIsLocation(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.replace(n.html.SafeUrl.unwrap(c))};
+n.dom.safe.openInWindow=function(b,c,d,e,f){b=b instanceof n.html.SafeUrl?b:n.html.SafeUrl.sanitizeAssertUnchanged(b);return(c||window).open(n.html.SafeUrl.unwrap(b),d?n.string.Const.unwrap(d):"",e,f)};n.html.uncheckedconversions={};n.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,null)};
+n.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};n.math.Coordinate=function(b,c){this.x=n.isDef(b)?b:0;this.y=n.isDef(c)?c:0};n.math.Coordinate.prototype.clone=function(){return new n.math.Coordinate(this.x,this.y)};n.DEBUG&&(n.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});n.math.Coordinate.prototype.equals=function(b){return b instanceof n.math.Coordinate&&n.math.Coordinate.equals(this,b)};n.math.Coordinate.equals=function(b,c){return b==c?!0:b&&c?b.x==c.x&&b.y==c.y:!1};
+n.math.Coordinate.distance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};n.math.Coordinate.magnitude=function(b){return Math.sqrt(b.x*b.x+b.y*b.y)};n.math.Coordinate.azimuth=function(b){return n.math.angle(0,0,b.x,b.y)};n.math.Coordinate.squaredDistance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};n.math.Coordinate.difference=function(b,c){return new n.math.Coordinate(b.x-c.x,b.y-c.y)};n.math.Coordinate.sum=function(b,c){return new n.math.Coordinate(b.x+c.x,b.y+c.y)};
+a=n.math.Coordinate.prototype;a.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};a.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};a.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};a.translate=function(b,c){b instanceof n.math.Coordinate?(this.x+=b.x,this.y+=b.y):(this.x+=Number(b),n.isNumber(c)&&(this.y+=c));return this};a.scale=function(b,c){c=n.isNumber(c)?c:b;this.x*=b;this.y*=c;return this};n.math.Size=function(b,c){this.width=b;this.height=c};n.math.Size.equals=function(b,c){return b==c?!0:b&&c?b.width==c.width&&b.height==c.height:!1};n.math.Size.prototype.clone=function(){return new n.math.Size(this.width,this.height)};n.DEBUG&&(n.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});a=n.math.Size.prototype;a.area=function(){return this.width*this.height};a.aspectRatio=function(){return this.width/this.height};a.isEmpty=function(){return!this.area()};
+a.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};a.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};a.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};a.scale=function(b,c){c=n.isNumber(c)?c:b;this.width*=b;this.height*=c;return this};n.dom.ASSUME_QUIRKS_MODE=!1;n.dom.ASSUME_STANDARDS_MODE=!1;n.dom.COMPAT_MODE_KNOWN_=n.dom.ASSUME_QUIRKS_MODE||n.dom.ASSUME_STANDARDS_MODE;n.dom.getDomHelper=function(b){return b?new n.dom.DomHelper(n.dom.getOwnerDocument(b)):n.dom.defaultDomHelper_||(n.dom.defaultDomHelper_=new n.dom.DomHelper)};n.dom.getDocument=function(){return document};n.dom.getElement=function(b){return n.dom.getElementHelper_(document,b)};n.dom.getElementHelper_=function(b,c){return n.isString(c)?b.getElementById(c):c};
+n.dom.getRequiredElement=function(b){return n.dom.getRequiredElementHelper_(document,b)};n.dom.getRequiredElementHelper_=function(b,c){n.asserts.assertString(c);b=n.dom.getElementHelper_(b,c);return b=n.asserts.assertElement(b,"No element found with id: "+c)};n.dom.$=n.dom.getElement;n.dom.getElementsByTagName=function(b,c){return(c||document).getElementsByTagName(String(b))};n.dom.getElementsByTagNameAndClass=function(b,c,d){return n.dom.getElementsByTagNameAndClass_(document,b,c,d)};
+n.dom.getElementByTagNameAndClass=function(b,c,d){return n.dom.getElementByTagNameAndClass_(document,b,c,d)};n.dom.getElementsByClass=function(b,c){var d=c||document;return n.dom.canUseQuerySelector_(d)?d.querySelectorAll("."+b):n.dom.getElementsByTagNameAndClass_(document,"*",b,c)};n.dom.getElementByClass=function(b,c){var d=c||document;return(d.getElementsByClassName?d.getElementsByClassName(b)[0]:n.dom.getElementByTagNameAndClass_(document,"*",b,c))||null};
+n.dom.getRequiredElementByClass=function(b,c){c=n.dom.getElementByClass(b,c);return n.asserts.assert(c,"No element found with className: "+b)};n.dom.canUseQuerySelector_=function(b){return!(!b.querySelectorAll||!b.querySelector)};
+n.dom.getElementsByTagNameAndClass_=function(b,c,d,e){b=e||b;c=c&&"*"!=c?String(c).toUpperCase():"";if(n.dom.canUseQuerySelector_(b)&&(c||d))return b.querySelectorAll(c+(d?"."+d:""));if(d&&b.getElementsByClassName){b=b.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)c==h.nodeName&&(e[f++]=h);e.length=f;return e}return b}b=b.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++)c=h.className,"function"==typeof c.split&&n.array.contains(c.split(/\s+/),d)&&(e[f++]=h);e.length=
+f;return e}return b};n.dom.getElementByTagNameAndClass_=function(b,c,d,e){var f=e||b,g=c&&"*"!=c?String(c).toUpperCase():"";return n.dom.canUseQuerySelector_(f)&&(g||d)?f.querySelector(g+(d?"."+d:"")):n.dom.getElementsByTagNameAndClass_(b,c,d,e)[0]||null};n.dom.$$=n.dom.getElementsByTagNameAndClass;
+n.dom.setProperties=function(b,c){n.object.forEach(c,function(c,e){c&&c.implementsGoogStringTypedString&&(c=c.getTypedStringValue());"style"==e?b.style.cssText=c:"class"==e?b.className=c:"for"==e?b.htmlFor=c:n.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(e)?b.setAttribute(n.dom.DIRECT_ATTRIBUTE_MAP_[e],c):n.string.startsWith(e,"aria-")||n.string.startsWith(e,"data-")?b.setAttribute(e,c):b[e]=c})};
+n.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};n.dom.getViewportSize=function(b){return n.dom.getViewportSize_(b||window)};n.dom.getViewportSize_=function(b){b=b.document;b=n.dom.isCss1CompatMode_(b)?b.documentElement:b.body;return new n.math.Size(b.clientWidth,b.clientHeight)};
+n.dom.getDocumentHeight=function(){return n.dom.getDocumentHeight_(window)};n.dom.getDocumentHeightForWindow=function(b){return n.dom.getDocumentHeight_(b)};
+n.dom.getDocumentHeight_=function(b){var c=b.document,d=0;if(c){d=c.body;var e=c.documentElement;if(!e||!d)return 0;b=n.dom.getViewportSize_(b).height;if(n.dom.isCss1CompatMode_(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;e.clientHeight!=f&&(c=d.scrollHeight,f=d.offsetHeight);d=c>b?c>f?c:f:c<f?c:f}}return d};n.dom.getPageScroll=function(b){return n.dom.getDomHelper((b||n.global||window).document).getDocumentScroll()};
+n.dom.getDocumentScroll=function(){return n.dom.getDocumentScroll_(document)};n.dom.getDocumentScroll_=function(b){var c=n.dom.getDocumentScrollElement_(b);b=n.dom.getWindow_(b);return n.userAgent.IE&&n.userAgent.isVersionOrHigher("10")&&b.pageYOffset!=c.scrollTop?new n.math.Coordinate(c.scrollLeft,c.scrollTop):new n.math.Coordinate(b.pageXOffset||c.scrollLeft,b.pageYOffset||c.scrollTop)};n.dom.getDocumentScrollElement=function(){return n.dom.getDocumentScrollElement_(document)};
+n.dom.getDocumentScrollElement_=function(b){return b.scrollingElement?b.scrollingElement:!n.userAgent.WEBKIT&&n.dom.isCss1CompatMode_(b)?b.documentElement:b.body||b.documentElement};n.dom.getWindow=function(b){return b?n.dom.getWindow_(b):window};n.dom.getWindow_=function(b){return b.parentWindow||b.defaultView};n.dom.createDom=function(b,c,d){return n.dom.createDom_(document,arguments)};
+n.dom.createDom_=function(b,c){var d=String(c[0]),e=c[1];if(!n.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',n.string.htmlEscape(e.name),'"');if(e.type){d.push(' type="',n.string.htmlEscape(e.type),'"');var f={};n.object.extend(f,e);delete f.type;e=f}d.push(">");d=d.join("")}d=b.createElement(d);e&&(n.isString(e)?d.className=e:n.isArray(e)?d.className=e.join(" "):n.dom.setProperties(d,e));2<c.length&&n.dom.append_(b,d,c,2);return d};
+n.dom.append_=function(b,c,d,e){function f(d){d&&c.appendChild(n.isString(d)?b.createTextNode(d):d)}for(;e<d.length;e++){var g=d[e];n.isArrayLike(g)&&!n.dom.isNodeLike(g)?n.array.forEach(n.dom.isNodeList(g)?n.array.toArray(g):g,f):f(g)}};n.dom.$dom=n.dom.createDom;n.dom.createElement=function(b){return n.dom.createElement_(document,b)};n.dom.createElement_=function(b,c){return b.createElement(String(c))};n.dom.createTextNode=function(b){return document.createTextNode(String(b))};
+n.dom.createTable=function(b,c,d){return n.dom.createTable_(document,b,c,!!d)};n.dom.createTable_=function(b,c,d,e){for(var f=n.dom.createElement_(b,"TABLE"),g=f.appendChild(n.dom.createElement_(b,"TBODY")),h=0;h<c;h++){for(var l=n.dom.createElement_(b,"TR"),m=0;m<d;m++){var p=n.dom.createElement_(b,"TD");e&&n.dom.setTextContent(p,n.string.Unicode.NBSP);l.appendChild(p)}g.appendChild(l)}return f};
+n.dom.constHtmlToNode=function(b){var c=n.array.map(arguments,n.string.Const.unwrap);c=n.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(n.string.Const.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),c.join(""));return n.dom.safeHtmlToNode(c)};n.dom.safeHtmlToNode=function(b){return n.dom.safeHtmlToNode_(document,b)};
+n.dom.safeHtmlToNode_=function(b,c){var d=n.dom.createElement_(b,"DIV");n.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(n.dom.safe.setInnerHtml(d,n.html.SafeHtml.concat(n.html.SafeHtml.BR,c)),d.removeChild(d.firstChild)):n.dom.safe.setInnerHtml(d,c);return n.dom.childrenToNode_(b,d)};n.dom.childrenToNode_=function(b,c){if(1==c.childNodes.length)return c.removeChild(c.firstChild);for(b=b.createDocumentFragment();c.firstChild;)b.appendChild(c.firstChild);return b};n.dom.isCss1CompatMode=function(){return n.dom.isCss1CompatMode_(document)};
+n.dom.isCss1CompatMode_=function(b){return n.dom.COMPAT_MODE_KNOWN_?n.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==b.compatMode};n.dom.canHaveChildren=function(b){if(b.nodeType!=n.dom.NodeType.ELEMENT)return!1;switch(b.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0};
+n.dom.appendChild=function(b,c){b.appendChild(c)};n.dom.append=function(b,c){n.dom.append_(n.dom.getOwnerDocument(b),b,arguments,1)};n.dom.removeChildren=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};n.dom.insertSiblingBefore=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c)};n.dom.insertSiblingAfter=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};n.dom.insertChildAt=function(b,c,d){b.insertBefore(c,b.childNodes[d]||null)};
+n.dom.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};n.dom.replaceNode=function(b,c){var d=c.parentNode;d&&d.replaceChild(b,c)};n.dom.flattenElement=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=n.dom.NodeType.DOCUMENT_FRAGMENT){if(b.removeNode)return b.removeNode(!1);for(;c=b.firstChild;)d.insertBefore(c,b);return n.dom.removeNode(b)}};
+n.dom.getChildren=function(b){return n.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=b.children?b.children:n.array.filter(b.childNodes,function(b){return b.nodeType==n.dom.NodeType.ELEMENT})};n.dom.getFirstElementChild=function(b){return n.isDef(b.firstElementChild)?b.firstElementChild:n.dom.getNextElementNode_(b.firstChild,!0)};n.dom.getLastElementChild=function(b){return n.isDef(b.lastElementChild)?b.lastElementChild:n.dom.getNextElementNode_(b.lastChild,!1)};
+n.dom.getNextElementSibling=function(b){return n.isDef(b.nextElementSibling)?b.nextElementSibling:n.dom.getNextElementNode_(b.nextSibling,!0)};n.dom.getPreviousElementSibling=function(b){return n.isDef(b.previousElementSibling)?b.previousElementSibling:n.dom.getNextElementNode_(b.previousSibling,!1)};n.dom.getNextElementNode_=function(b,c){for(;b&&b.nodeType!=n.dom.NodeType.ELEMENT;)b=c?b.nextSibling:b.previousSibling;return b};
+n.dom.getNextNode=function(b){if(!b)return null;if(b.firstChild)return b.firstChild;for(;b&&!b.nextSibling;)b=b.parentNode;return b?b.nextSibling:null};n.dom.getPreviousNode=function(b){if(!b)return null;if(!b.previousSibling)return b.parentNode;for(b=b.previousSibling;b&&b.lastChild;)b=b.lastChild;return b};n.dom.isNodeLike=function(b){return n.isObject(b)&&0<b.nodeType};n.dom.isElement=function(b){return n.isObject(b)&&b.nodeType==n.dom.NodeType.ELEMENT};
+n.dom.isWindow=function(b){return n.isObject(b)&&b.window==b};n.dom.getParentElement=function(b){var c;if(n.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY&&!(n.userAgent.IE&&n.userAgent.isVersionOrHigher("9")&&!n.userAgent.isVersionOrHigher("10")&&n.global.SVGElement&&b instanceof n.global.SVGElement)&&(c=b.parentElement))return c;c=b.parentNode;return n.dom.isElement(c)?c:null};
+n.dom.contains=function(b,c){if(!b||!c)return!1;if(b.contains&&c.nodeType==n.dom.NodeType.ELEMENT)return b==c||b.contains(c);if("undefined"!=typeof b.compareDocumentPosition)return b==c||!!(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
+n.dom.compareNodeOrder=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if(n.userAgent.IE&&!n.userAgent.isDocumentModeOrHigher(9)){if(b.nodeType==n.dom.NodeType.DOCUMENT)return-1;if(c.nodeType==n.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==n.dom.NodeType.ELEMENT,e=c.nodeType==n.dom.NodeType.ELEMENT;if(d&&e)return b.sourceIndex-c.sourceIndex;var f=b.parentNode,g=c.parentNode;
+return f==g?n.dom.compareSiblingOrder_(b,c):!d&&n.dom.contains(f,c)?-1*n.dom.compareParentsDescendantNodeIe_(b,c):!e&&n.dom.contains(g,b)?n.dom.compareParentsDescendantNodeIe_(c,b):(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}e=n.dom.getOwnerDocument(b);d=e.createRange();d.selectNode(b);d.collapse(!0);b=e.createRange();b.selectNode(c);b.collapse(!0);return d.compareBoundaryPoints(n.global.Range.START_TO_END,b)};
+n.dom.compareParentsDescendantNodeIe_=function(b,c){var d=b.parentNode;if(d==c)return-1;for(;c.parentNode!=d;)c=c.parentNode;return n.dom.compareSiblingOrder_(c,b)};n.dom.compareSiblingOrder_=function(b,c){for(;c=c.previousSibling;)if(c==b)return-1;return 1};
+n.dom.findCommonAncestor=function(b){var c,d=arguments.length;if(!d)return null;if(1==d)return arguments[0];var e=[],f=Infinity;for(c=0;c<d;c++){for(var g=[],h=arguments[c];h;)g.unshift(h),h=h.parentNode;e.push(g);f=Math.min(f,g.length)}g=null;for(c=0;c<f;c++){h=e[0][c];for(var l=1;l<d;l++)if(h!=e[l][c])return g;g=h}return g};n.dom.getOwnerDocument=function(b){n.asserts.assert(b,"Node cannot be null or undefined.");return b.nodeType==n.dom.NodeType.DOCUMENT?b:b.ownerDocument||b.document};
+n.dom.getFrameContentDocument=function(b){return b.contentDocument||b.contentWindow.document};n.dom.getFrameContentWindow=function(b){try{return b.contentWindow||(b.contentDocument?n.dom.getWindow(b.contentDocument):null)}catch(c){}return null};
+n.dom.setTextContent=function(b,c){n.asserts.assert(null!=b,"goog.dom.setTextContent expects a non-null value for node");if("textContent"in b)b.textContent=c;else if(b.nodeType==n.dom.NodeType.TEXT)b.data=String(c);else if(b.firstChild&&b.firstChild.nodeType==n.dom.NodeType.TEXT){for(;b.lastChild!=b.firstChild;)b.removeChild(b.lastChild);b.firstChild.data=String(c)}else{n.dom.removeChildren(b);var d=n.dom.getOwnerDocument(b);b.appendChild(d.createTextNode(String(c)))}};
+n.dom.getOuterHtml=function(b){n.asserts.assert(null!==b,"goog.dom.getOuterHtml expects a non-null value for element");if("outerHTML"in b)return b.outerHTML;var c=n.dom.getOwnerDocument(b);c=n.dom.createElement_(c,"DIV");c.appendChild(b.cloneNode(!0));return c.innerHTML};n.dom.findNode=function(b,c){var d=[];return n.dom.findNodes_(b,c,d,!0)?d[0]:void 0};n.dom.findNodes=function(b,c){var d=[];n.dom.findNodes_(b,c,d,!1);return d};
+n.dom.findNodes_=function(b,c,d,e){if(null!=b)for(b=b.firstChild;b;){if(c(b)&&(d.push(b),e)||n.dom.findNodes_(b,c,d,e))return!0;b=b.nextSibling}return!1};n.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};n.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};n.dom.isFocusableTabIndex=function(b){return n.dom.hasSpecifiedTabIndex_(b)&&n.dom.isTabIndexFocusable_(b)};n.dom.setFocusableTabIndex=function(b,c){c?b.tabIndex=0:(b.tabIndex=-1,b.removeAttribute("tabIndex"))};
+n.dom.isFocusable=function(b){var c;return(c=n.dom.nativelySupportsFocus_(b)?!b.disabled&&(!n.dom.hasSpecifiedTabIndex_(b)||n.dom.isTabIndexFocusable_(b)):n.dom.isFocusableTabIndex(b))&&n.userAgent.IE?n.dom.hasNonZeroBoundingRect_(b):c};n.dom.hasSpecifiedTabIndex_=function(b){return n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9")?(b=b.getAttributeNode("tabindex"),n.isDefAndNotNull(b)&&b.specified):b.hasAttribute("tabindex")};
+n.dom.isTabIndexFocusable_=function(b){b=b.tabIndex;return n.isNumber(b)&&0<=b&&32768>b};n.dom.nativelySupportsFocus_=function(b){return"A"==b.tagName||"INPUT"==b.tagName||"TEXTAREA"==b.tagName||"SELECT"==b.tagName||"BUTTON"==b.tagName};n.dom.hasNonZeroBoundingRect_=function(b){b=!n.isFunction(b.getBoundingClientRect)||n.userAgent.IE&&null==b.parentElement?{height:b.offsetHeight,width:b.offsetWidth}:b.getBoundingClientRect();return n.isDefAndNotNull(b)&&0<b.height&&0<b.width};
+n.dom.getTextContent=function(b){if(n.dom.BrowserFeature.CAN_USE_INNER_TEXT&&null!==b&&"innerText"in b)b=n.string.canonicalizeNewlines(b.innerText);else{var c=[];n.dom.getTextContent_(b,c,!0);b=c.join("")}b=b.replace(/ \xAD /g," ").replace(/\xAD/g,"");b=b.replace(/\u200B/g,"");n.dom.BrowserFeature.CAN_USE_INNER_TEXT||(b=b.replace(/ +/g," "));" "!=b&&(b=b.replace(/^\s*/,""));return b};n.dom.getRawTextContent=function(b){var c=[];n.dom.getTextContent_(b,c,!1);return c.join("")};
+n.dom.getTextContent_=function(b,c,d){if(!(b.nodeName in n.dom.TAGS_TO_IGNORE_))if(b.nodeType==n.dom.NodeType.TEXT)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in n.dom.PREDEFINED_TAG_VALUES_)c.push(n.dom.PREDEFINED_TAG_VALUES_[b.nodeName]);else for(b=b.firstChild;b;)n.dom.getTextContent_(b,c,d),b=b.nextSibling};n.dom.getNodeTextLength=function(b){return n.dom.getTextContent(b).length};
+n.dom.getNodeTextOffset=function(b,c){c=c||n.dom.getOwnerDocument(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(n.dom.getTextContent(e));b=b.parentNode}return n.string.trimLeft(d.join("")).replace(/ +/g," ").length};
+n.dom.getNodeAtOffset=function(b,c,d){b=[b];for(var e=0,f=null;0<b.length&&e<c;)if(f=b.pop(),!(f.nodeName in n.dom.TAGS_TO_IGNORE_))if(f.nodeType==n.dom.NodeType.TEXT){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in n.dom.PREDEFINED_TAG_VALUES_)e+=n.dom.PREDEFINED_TAG_VALUES_[f.nodeName].length;else for(g=f.childNodes.length-1;0<=g;g--)b.push(f.childNodes[g]);n.isObject(d)&&(d.remainder=f?f.nodeValue.length+c-e-1:0,d.node=f);return f};
+n.dom.isNodeList=function(b){if(b&&"number"==typeof b.length){if(n.isObject(b))return"function"==typeof b.item||"string"==typeof b.item;if(n.isFunction(b))return"function"==typeof b.item}return!1};n.dom.getAncestorByTagNameAndClass=function(b,c,d,e){if(!c&&!d)return null;var f=c?String(c).toUpperCase():null;return n.dom.getAncestor(b,function(b){return(!f||b.nodeName==f)&&(!d||n.isString(b.className)&&n.array.contains(b.className.split(/\s+/),d))},!0,e)};
+n.dom.getAncestorByClass=function(b,c,d){return n.dom.getAncestorByTagNameAndClass(b,null,c,d)};n.dom.getAncestor=function(b,c,d,e){b&&!d&&(b=b.parentNode);for(d=0;b&&(null==e||d<=e);){n.asserts.assert("parentNode"!=b.name);if(c(b))return b;b=b.parentNode;d++}return null};n.dom.getActiveElement=function(b){try{return b&&b.activeElement}catch(c){}return null};
+n.dom.getPixelRatio=function(){var b=n.dom.getWindow();return n.isDef(b.devicePixelRatio)?b.devicePixelRatio:b.matchMedia?n.dom.matchesPixelRatio_(3)||n.dom.matchesPixelRatio_(2)||n.dom.matchesPixelRatio_(1.5)||n.dom.matchesPixelRatio_(1)||.75:1};n.dom.matchesPixelRatio_=function(b){return n.dom.getWindow().matchMedia("(min-resolution: "+b+"dppx),(min--moz-device-pixel-ratio: "+b+"),(min-resolution: "+96*b+"dpi)").matches?b:0};n.dom.getCanvasContext2D=function(b){return b.getContext("2d")};
+n.dom.DomHelper=function(b){this.document_=b||n.global.document||document};a=n.dom.DomHelper.prototype;a.getDomHelper=n.dom.getDomHelper;a.getDocument=function(){return this.document_};a.getElement=function(b){return n.dom.getElementHelper_(this.document_,b)};a.getRequiredElement=function(b){return n.dom.getRequiredElementHelper_(this.document_,b)};a.$=n.dom.DomHelper.prototype.getElement;a.getElementsByTagName=function(b,c){return(c||this.document_).getElementsByTagName(String(b))};
+a.getElementsByTagNameAndClass=function(b,c,d){return n.dom.getElementsByTagNameAndClass_(this.document_,b,c,d)};a.getElementByTagNameAndClass=function(b,c,d){return n.dom.getElementByTagNameAndClass_(this.document_,b,c,d)};a.getElementsByClass=function(b,c){return n.dom.getElementsByClass(b,c||this.document_)};a.getElementByClass=function(b,c){return n.dom.getElementByClass(b,c||this.document_)};a.getRequiredElementByClass=function(b,c){return n.dom.getRequiredElementByClass(b,c||this.document_)};
+a.$$=n.dom.DomHelper.prototype.getElementsByTagNameAndClass;a.setProperties=n.dom.setProperties;a.getViewportSize=function(b){return n.dom.getViewportSize(b||this.getWindow())};a.getDocumentHeight=function(){return n.dom.getDocumentHeight_(this.getWindow())};a.createDom=function(b,c,d){return n.dom.createDom_(this.document_,arguments)};a.$dom=n.dom.DomHelper.prototype.createDom;a.createElement=function(b){return n.dom.createElement_(this.document_,b)};a.createTextNode=function(b){return this.document_.createTextNode(String(b))};
+a.createTable=function(b,c,d){return n.dom.createTable_(this.document_,b,c,!!d)};a.safeHtmlToNode=function(b){return n.dom.safeHtmlToNode_(this.document_,b)};a.isCss1CompatMode=function(){return n.dom.isCss1CompatMode_(this.document_)};a.getWindow=function(){return n.dom.getWindow_(this.document_)};a.getDocumentScrollElement=function(){return n.dom.getDocumentScrollElement_(this.document_)};a.getDocumentScroll=function(){return n.dom.getDocumentScroll_(this.document_)};
+a.getActiveElement=function(b){return n.dom.getActiveElement(b||this.document_)};a.appendChild=n.dom.appendChild;a.append=n.dom.append;a.canHaveChildren=n.dom.canHaveChildren;a.removeChildren=n.dom.removeChildren;a.insertSiblingBefore=n.dom.insertSiblingBefore;a.insertSiblingAfter=n.dom.insertSiblingAfter;a.insertChildAt=n.dom.insertChildAt;a.removeNode=n.dom.removeNode;a.replaceNode=n.dom.replaceNode;a.flattenElement=n.dom.flattenElement;a.getChildren=n.dom.getChildren;a.getFirstElementChild=n.dom.getFirstElementChild;
+a.getLastElementChild=n.dom.getLastElementChild;a.getNextElementSibling=n.dom.getNextElementSibling;a.getPreviousElementSibling=n.dom.getPreviousElementSibling;a.getNextNode=n.dom.getNextNode;a.getPreviousNode=n.dom.getPreviousNode;a.isNodeLike=n.dom.isNodeLike;a.isElement=n.dom.isElement;a.isWindow=n.dom.isWindow;a.getParentElement=n.dom.getParentElement;a.contains=n.dom.contains;a.compareNodeOrder=n.dom.compareNodeOrder;a.findCommonAncestor=n.dom.findCommonAncestor;a.getOwnerDocument=n.dom.getOwnerDocument;
+a.getFrameContentDocument=n.dom.getFrameContentDocument;a.getFrameContentWindow=n.dom.getFrameContentWindow;a.setTextContent=n.dom.setTextContent;a.getOuterHtml=n.dom.getOuterHtml;a.findNode=n.dom.findNode;a.findNodes=n.dom.findNodes;a.isFocusableTabIndex=n.dom.isFocusableTabIndex;a.setFocusableTabIndex=n.dom.setFocusableTabIndex;a.isFocusable=n.dom.isFocusable;a.getTextContent=n.dom.getTextContent;a.getNodeTextLength=n.dom.getNodeTextLength;a.getNodeTextOffset=n.dom.getNodeTextOffset;
+a.getNodeAtOffset=n.dom.getNodeAtOffset;a.isNodeList=n.dom.isNodeList;a.getAncestorByTagNameAndClass=n.dom.getAncestorByTagNameAndClass;a.getAncestorByClass=n.dom.getAncestorByClass;a.getAncestor=n.dom.getAncestor;a.getCanvasContext2D=n.dom.getCanvasContext2D;t.WindowDelegate=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=this.transactionStarted_=this.walletIsLoaded_=!1;this.webStoreService_=new t.WebStoreService};n.inherits(t.WindowDelegate,n.craw.AppWindowDelegate);n.craw.AppWindowDelegate.setDefaultImpl();t.WindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("iap_unavailable")};
+t.WindowDelegate.prototype.pollOnlineStatus=function(){if(!window.iapParams_.oauthToken)return chrome.i18n.getMessage("please_sign_in");if(this.retrieveJwtFailed_)return chrome.i18n.getMessage("jwt_retrieve_failed")};t.WindowDelegate.prototype.finishedLaunch=function(){return this.isFinishedLaunch_};
+var R=function(b){var c=window.iapParams_;b.isFinishedLaunch_&&c.oauthToken&&b.walletIsLoaded_&&!b.transactionStarted_&&(b.transactionStarted_=!0,n.dom.getDocument().querySelector("webview").contentWindow.postMessage({jwt:window.iapJwt_,parameters:c},"*"))};t.WindowDelegate.prototype.retrieveJwtOnSuccess_=function(b,c,d){window.iapJwt_=b;window.payment_data=c;window.signature=d;this.retrieveJwtFailed_=!1;this.isFinishedLaunch_=!0;R(this)};
+t.WindowDelegate.prototype.retrieveJwtOnFailed_=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=!0};
+t.WindowDelegate.prototype.onWindowReady=function(){var b=n.dom.getDocument().querySelector("webview");if(b){b.style.borderTop="1px #eaeaea solid";var c=!1,d=window.iapParams_,e=this,f=function(b){if(window.sku_){var c=window.sku_,d=window.iapParams_||{},f=e.webStoreService_,g=d||{};if("env"in g){switch(g.env){case "prod":f.baseUrl_=t.WebStoreService.Environment.PROD;break;default:f.baseUrl_=t.WebStoreService.Environment.SANDBOX}f.baseUrlAndPath_=f.baseUrl_+t.WebStoreService.WEB_STORE_REQUEST_PATH_}e.retrieveJwtFailed_=
+!1;e.isFinishedLaunch_=!1;ea(e.webStoreService_,d.applicationId,c,n.bind(e.retrieveJwtOnSuccess_,e),n.bind(e.retrieveJwtOnFailed_,e),b,d.gl,d.projection)}else e.isFinishedLaunch_=!0,R(e)};d.oauthToken?f(d.oauthToken):chrome.identity.getAuthToken({interactive:!0},function(b){window.iapParams_.oauthToken=b;f(b)});b.addEventListener("contentload",function(){if(!c){c=!0;switch(d.env||"sandbox"){case "prod":var e="https://payments.google.com/payments/v4/js/integrator.js";break;default:e="https://sandbox.google.com/payments/v4/js/integrator.js"}b.executeScript({runAt:"document_start",
+code:'document.write("<script type=\\"text/javascript\\" src=\\"'+e+"\\\" data-payments-main>\x3c/script><script type=\\\"text/javascript\\\">window.addEventListener('message', function(e) {  if (e.origin != 'chrome-extension://"+chrome.runtime.id+"') return;var mode = payments.business.integration.mashupMode.embedded('renderplace');var bootstrapper = payments.business.integration.bootstrap.asMashupMode(mode);bootstrapper    .usingDefaultActivityStatusChangeHandler()    .usingBaseZIndex(1201)    .usingOnResizeFrameCallback(function() {        var iframe = document.getElementById('renderplaceIframe');        var size = {'width': iframe.clientWidth, 'height': iframe.clientHeight};        e.source.postMessage({resize: size}, e.origin);})    .usingOAuthToken(e.data.parameters.oauthToken)    .usingStyle('pc=#FF0000;ac=#0000FF');var standaloneContextBootstrapper = bootstrapper.inStandaloneContext(    payments.business.integration.standaloneContextAuthId.forGaia());var buyFlowScenario =    standaloneContextBootstrapper.buyFlow(function(res) {        e.source.postMessage({type: 'success', result: res}, e.origin);});buyFlowScenario.withEncryptedParameters(e.data.jwt);buyFlowScenario.load(undefined, function(res) {    e.source.postMessage({type: 'failure', result: res}, e.origin);});}, false);console.log('registered payment listener: ' + Date.now());\x3c/script>&nbsp;\");"},
+function(){console.log("did exec once");b.executeScript({runAt:"document_end",code:"document.write(\"<script type=\\\"text/javascript\\\">var elem = document.createElement('div');elem.setAttribute('id', 'renderplace');elem.setAttribute('style', 'margin-left:35px;margin-right:35px;');document.body.appendChild(elem);console.log('finished loading, start payment: ' + Date.now());\x3c/script>\");"})})}},!1);b.addEventListener("consolemessage",function(b){-1!=b.message.indexOf("finished")&&(e.walletIsLoaded_=
+!0,R(e))});b.addEventListener("newwindow",function(b){window.open(b.targetUrl);b.window.discard()},!1)}};window.addEventListener("message",function(b){console.log(b);if("type"in b.data)window.purchase_result=b.data.result,window.close();else if("resize"in b.data){var c=chrome.app.window.current();c.resizeTo(c.outerBounds.width+0,b.data.resize.height+80)}},!1);n.async={};n.async.FreeList=function(b,c,d){this.limit_=d;this.create_=b;this.reset_=c;this.occupants_=0;this.head_=null};n.async.FreeList.prototype.get=function(){if(0<this.occupants_){this.occupants_--;var b=this.head_;this.head_=b.next;b.next=null}else b=this.create_();return b};n.async.FreeList.prototype.put=function(b){this.reset_(b);this.occupants_<this.limit_&&(this.occupants_++,b.next=this.head_,this.head_=b)};n.async.throwException=function(b){n.global.setTimeout(function(){throw b;},0)};n.async.nextTick=function(b,c,d){var e=b;c&&(e=n.bind(b,c));e=n.async.nextTick.wrapCallback_(e);n.isFunction(n.global.setImmediate)&&(d||n.async.nextTick.useSetImmediate_())?n.global.setImmediate(e):(n.async.nextTick.setImmediate_||(n.async.nextTick.setImmediate_=n.async.nextTick.getSetImmediateEmulator_()),n.async.nextTick.setImmediate_(e))};
+n.async.nextTick.useSetImmediate_=function(){return n.global.Window&&n.global.Window.prototype&&!n.labs.userAgent.browser.isEdge()&&n.global.Window.prototype.setImmediate==n.global.setImmediate?!1:!0};
+n.async.nextTick.getSetImmediateEmulator_=function(){var b=n.global.MessageChannel;"undefined"===typeof b&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!n.labs.userAgent.engine.isPresto()&&(b=function(){var b=document.createElement("IFRAME");b.style.display="none";b.src="";document.documentElement.appendChild(b);var c=b.contentWindow;b=c.document;b.open();b.write("");b.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+"//"+
+c.location.host;b=n.bind(function(b){if(("*"==e||b.origin==e)&&b.data==d)this.port1.onmessage()},this);c.addEventListener("message",b,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof b&&!n.labs.userAgent.browser.isIE()){var c=new b,d={},e=d;c.port1.onmessage=function(){if(n.isDef(d.next)){d=d.next;var b=d.cb;d.cb=null;b()}};return function(b){e.next={cb:b};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
+document.createElement("SCRIPT")?function(b){var c=document.createElement("SCRIPT");c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;b();b=null};document.documentElement.appendChild(c)}:function(b){n.global.setTimeout(b,0)}};n.async.nextTick.wrapCallback_=n.functions.identity;n.debug.entryPointRegistry.register(function(b){n.async.nextTick.wrapCallback_=b});n.async.WorkQueue=function(){this.workTail_=this.workHead_=null};n.async.WorkQueue.DEFAULT_MAX_UNUSED=100;n.async.WorkQueue.freelist_=new n.async.FreeList(function(){return new n.async.WorkItem},function(b){b.reset()},n.async.WorkQueue.DEFAULT_MAX_UNUSED);n.async.WorkQueue.prototype.add=function(b,c){var d=n.async.WorkQueue.freelist_.get();d.set(b,c);this.workTail_?this.workTail_.next=d:(n.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
+n.async.WorkQueue.prototype.remove=function(){var b=null;this.workHead_&&(b=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),b.next=null);return b};n.async.WorkItem=function(){this.next=this.scope=this.fn=null};n.async.WorkItem.prototype.set=function(b,c){this.fn=b;this.scope=c;this.next=null};n.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};n.async.run=function(b,c){n.async.run.schedule_||n.async.run.initializeRunner_();n.async.run.workQueueScheduled_||(n.async.run.schedule_(),n.async.run.workQueueScheduled_=!0);n.async.run.workQueue_.add(b,c)};n.async.run.initializeRunner_=function(){if(-1!=String(n.global.Promise).indexOf("[native code]")){var b=n.global.Promise.resolve(void 0);n.async.run.schedule_=function(){b.then(n.async.run.processWorkQueue)}}else n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue)}};
+n.async.run.forceNextTick=function(b){n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue);b&&b(n.async.run.processWorkQueue)}};n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue;n.DEBUG&&(n.async.run.resetQueue=function(){n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue});
+n.async.run.processWorkQueue=function(){for(var b;b=n.async.run.workQueue_.remove();){try{b.fn.call(b.scope)}catch(c){n.async.throwException(c)}n.async.WorkQueue.freelist_.put(b)}n.async.run.workQueueScheduled_=!1};n.debug.LogRecord=function(b,c,d,e,f){this.reset(b,c,d,e,f)};n.debug.LogRecord.prototype.exception_=null;n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;n.debug.LogRecord.nextSequenceNumber_=0;n.debug.LogRecord.prototype.reset=function(b,c,d,e,f){n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||n.debug.LogRecord.nextSequenceNumber_++);e||n.now();this.level_=b;this.msg_=c;delete this.exception_};n.debug.LogRecord.prototype.setLevel=function(b){this.level_=b};
+n.debug.LogRecord.prototype.getMessage=function(){return this.msg_};n.debug.LogBuffer=function(){n.asserts.assert(n.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};n.debug.LogBuffer.getInstance=function(){n.debug.LogBuffer.instance_||(n.debug.LogBuffer.instance_=new n.debug.LogBuffer);return n.debug.LogBuffer.instance_};n.debug.LogBuffer.CAPACITY=0;n.debug.LogBuffer.isBufferingEnabled=function(){return 0<n.debug.LogBuffer.CAPACITY};
+n.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(n.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};n.debug.Logger=function(b){this.name_=b;this.handlers_=this.children_=this.level_=this.parent_=null};n.debug.Logger.ROOT_LOGGER_NAME="";n.debug.Logger.ENABLE_HIERARCHY=!0;n.debug.Logger.ENABLE_PROFILER_LOGGING=!1;n.debug.Logger.ENABLE_HIERARCHY||(n.debug.Logger.rootHandlers_=[]);n.debug.Logger.Level=function(b,c){this.name=b;this.value=c};n.debug.Logger.Level.prototype.toString=function(){return this.name};n.debug.Logger.Level.OFF=new n.debug.Logger.Level("OFF",Infinity);
+n.debug.Logger.Level.SHOUT=new n.debug.Logger.Level("SHOUT",1200);n.debug.Logger.Level.SEVERE=new n.debug.Logger.Level("SEVERE",1E3);n.debug.Logger.Level.WARNING=new n.debug.Logger.Level("WARNING",900);n.debug.Logger.Level.INFO=new n.debug.Logger.Level("INFO",800);n.debug.Logger.Level.CONFIG=new n.debug.Logger.Level("CONFIG",700);n.debug.Logger.Level.FINE=new n.debug.Logger.Level("FINE",500);n.debug.Logger.Level.FINER=new n.debug.Logger.Level("FINER",400);
+n.debug.Logger.Level.FINEST=new n.debug.Logger.Level("FINEST",300);n.debug.Logger.Level.ALL=new n.debug.Logger.Level("ALL",0);n.debug.Logger.Level.PREDEFINED_LEVELS=[n.debug.Logger.Level.OFF,n.debug.Logger.Level.SHOUT,n.debug.Logger.Level.SEVERE,n.debug.Logger.Level.WARNING,n.debug.Logger.Level.INFO,n.debug.Logger.Level.CONFIG,n.debug.Logger.Level.FINE,n.debug.Logger.Level.FINER,n.debug.Logger.Level.FINEST,n.debug.Logger.Level.ALL];n.debug.Logger.Level.predefinedLevelsCache_=null;
+n.debug.Logger.Level.createPredefinedLevelsCache_=function(){n.debug.Logger.Level.predefinedLevelsCache_={};for(var b=0,c;c=n.debug.Logger.Level.PREDEFINED_LEVELS[b];b++)n.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,n.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};n.debug.Logger.Level.getPredefinedLevel=function(b){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();return n.debug.Logger.Level.predefinedLevelsCache_[b]||null};
+n.debug.Logger.Level.getPredefinedLevelByValue=function(b){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();if(b in n.debug.Logger.Level.predefinedLevelsCache_)return n.debug.Logger.Level.predefinedLevelsCache_[b];for(var c=0;c<n.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=n.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=b)return d}return null};n.debug.Logger.getLogger=function(b){return n.debug.LogManager.getLogger(b)};
+n.debug.Logger.logToProfilers=function(b){if(n.debug.Logger.ENABLE_PROFILER_LOGGING){var c=n.global.msWriteProfilerMark;c?c(b):(c=n.global.console)&&c.timeStamp&&c.timeStamp(b)}};a=n.debug.Logger.prototype;a.getName=function(){return this.name_};
+a.addHandler=function(b){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(b)):(n.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootHandlers_.push(b)))};a.removeHandler=function(b){if(n.debug.LOGGING_ENABLED){var c=n.debug.Logger.ENABLE_HIERARCHY?this.handlers_:n.debug.Logger.rootHandlers_;return!!c&&n.array.remove(c,b)}return!1};
+a.getParent=function(){return this.parent_};a.getChildren=function(){this.children_||(this.children_={});return this.children_};a.setLevel=function(b){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?this.level_=b:(n.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootLevel_=b))};
+var fa=function(b){if(!n.debug.LOGGING_ENABLED)return n.debug.Logger.Level.OFF;if(!n.debug.Logger.ENABLE_HIERARCHY)return n.debug.Logger.rootLevel_;if(b.level_)return b.level_;if(b.parent_)return fa(b.parent_);n.asserts.fail("Root logger has no level set.");return null};
+n.debug.Logger.prototype.log=function(b,c,d){if(n.debug.LOGGING_ENABLED&&n.debug.LOGGING_ENABLED&&b.value>=fa(this).value){n.isFunction(c)&&(c=c());if(n.debug.LogBuffer.isBufferingEnabled()){var e=n.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%n.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(b,c,f),b=e):(e.isFull_=g==n.debug.LogBuffer.CAPACITY-1,b=e.buffer_[g]=new n.debug.LogRecord(b,c,f))}else b=new n.debug.LogRecord(b,String(c),this.name_);d&&(b.exception_=
+d);n.debug.Logger.ENABLE_PROFILER_LOGGING&&n.debug.Logger.logToProfilers("log:"+b.getMessage());if(n.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){f=d;e=b;if(f.handlers_)for(g=0;c=f.handlers_[g];g++)c(e);d=d.getParent()}else for(d=0;c=n.debug.Logger.rootHandlers_[d++];)c(b)}};n.debug.Logger.prototype.warning=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.WARNING,b,c)};n.debug.Logger.prototype.info=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.INFO,b,c)};
+n.debug.Logger.prototype.fine=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.FINE,b,c)};n.debug.LogManager={};n.debug.LogManager.loggers_={};n.debug.LogManager.rootLogger_=null;n.debug.LogManager.initialize=function(){n.debug.LogManager.rootLogger_||(n.debug.LogManager.rootLogger_=new n.debug.Logger(n.debug.Logger.ROOT_LOGGER_NAME),n.debug.LogManager.loggers_[n.debug.Logger.ROOT_LOGGER_NAME]=n.debug.LogManager.rootLogger_,n.debug.LogManager.rootLogger_.setLevel(n.debug.Logger.Level.CONFIG))};
+n.debug.LogManager.getLoggers=function(){return n.debug.LogManager.loggers_};n.debug.LogManager.getRoot=function(){n.debug.LogManager.initialize();return n.debug.LogManager.rootLogger_};n.debug.LogManager.getLogger=function(b){n.debug.LogManager.initialize();return n.debug.LogManager.loggers_[b]||n.debug.LogManager.createLogger_(b)};
+n.debug.LogManager.createFunctionForCatchErrors=function(b){return function(c){var d=b||n.debug.LogManager.getRoot();n.debug.LOGGING_ENABLED&&d.log(n.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
+n.debug.LogManager.createLogger_=function(b){var c=new n.debug.Logger(b);if(n.debug.Logger.ENABLE_HIERARCHY){var d=b.lastIndexOf("."),e=b.substr(d+1);d=n.debug.LogManager.getLogger(b.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return n.debug.LogManager.loggers_[b]=c};n.json={};n.json.USE_NATIVE_JSON=!1;n.json.TRY_NATIVE_JSON=!1;n.json.isValid=function(b){return/^\s*$/.test(b)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(b.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};n.json.errorLogger_=n.nullFunction;n.json.setErrorLogger=function(b){n.json.errorLogger_=b};
+n.json.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(b){if(n.json.TRY_NATIVE_JSON)try{return n.global.JSON.parse(b)}catch(e){var c=e}b=String(b);if(n.json.isValid(b))try{var d=eval("("+b+")");c&&n.json.errorLogger_("Invalid JSON: "+b,c);return d}catch(e){}throw Error("Invalid JSON string: "+b);};n.json.serialize=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(b,c){return(new n.json.Serializer(c)).serialize(b)};n.json.Serializer=function(b){this.replacer_=b};
+n.json.Serializer.prototype.serialize=function(b){var c=[];S(this,b,c);return c.join("")};
+var S=function(b,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(n.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],S(b,b.replacer_?b.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),ha(e,d),d.push(":"),S(b,b.replacer_?b.replacer_.call(c,e,f):
+f,d),g=","));d.push("}");return}}switch(typeof c){case "string":ha(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};n.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
+n.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;var ha=function(b,c){c.push('"',b.replace(n.json.Serializer.charsToReplace_,function(b){var c=n.json.Serializer.charToJsonCharCache_[b];c||(c="\\u"+(b.charCodeAt(0)|65536).toString(16).substr(1),n.json.Serializer.charToJsonCharCache_[b]=c);return c}),'"')};n.json.hybrid={};n.json.hybrid.stringify=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(b){if(n.global.JSON)try{return n.global.JSON.stringify(b)}catch(c){}return n.json.serialize(b)};n.json.hybrid.parse_=function(b){var c=n.json.parse;if(n.global.JSON)try{var d=n.global.JSON.parse(b);n.asserts.assert("object"==typeof d);return d}catch(e){}return c(b)};n.json.hybrid.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(b){return n.json.hybrid.parse_(b)};n.log={};n.log.ENABLED=n.debug.LOGGING_ENABLED;n.log.ROOT_LOGGER_NAME=n.debug.Logger.ROOT_LOGGER_NAME;n.log.Logger=n.debug.Logger;n.log.Level=n.debug.Logger.Level;n.log.LogRecord=n.debug.LogRecord;n.log.getLogger=function(b){return n.log.ENABLED?n.debug.LogManager.getLogger(b):null};n.log.addHandler=function(b){n.log.ENABLED&&b&&b.addHandler(void 0)};n.log.removeHandler=function(b){return n.log.ENABLED&&b?b.removeHandler(void 0):!1};n.log.log=function(b,c,d,e){n.log.ENABLED&&b&&b.log(c,d,e)};
+n.log.error=function(b,c,d){n.log.ENABLED&&b&&n.debug.LOGGING_ENABLED&&b.log(n.debug.Logger.Level.SEVERE,c,d)};n.log.warning=function(b,c){n.log.ENABLED&&b&&b.warning(c,void 0)};n.log.info=function(b,c,d){n.log.ENABLED&&b&&b.info(c,d)};n.log.fine=function(b,c){n.log.ENABLED&&b&&b.fine(c,void 0)};n.net={};n.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
+n.net.ErrorCode.getDebugMessage=function(b){switch(b){case n.net.ErrorCode.NO_ERROR:return"No Error";case n.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case n.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case n.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case n.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case n.net.ErrorCode.EXCEPTION:return"An exception occurred";case n.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
+case n.net.ErrorCode.ABORT:return"Request was aborted";case n.net.ErrorCode.TIMEOUT:return"Request timed out";case n.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};n.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};n.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
+PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
+n.net.HttpStatus.isSuccess=function(b){switch(b){case n.net.HttpStatus.OK:case n.net.HttpStatus.CREATED:case n.net.HttpStatus.ACCEPTED:case n.net.HttpStatus.NO_CONTENT:case n.net.HttpStatus.PARTIAL_CONTENT:case n.net.HttpStatus.NOT_MODIFIED:case n.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};n.net.XhrLike=function(){};a=n.net.XhrLike.prototype;a.open=function(){};a.send=function(){};a.abort=function(){};a.setRequestHeader=function(){};a.getResponseHeader=function(){};a.getAllResponseHeaders=function(){};n.net.XmlHttpFactory=function(){};n.net.XmlHttpFactory.prototype.cachedOptions_=null;n.net.XmlHttpFactory.prototype.getOptions=function(){var b;(b=this.cachedOptions_)||(b={},ia(this)&&(b[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,b[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),b=this.cachedOptions_=b);return b};n.net.WrapperXmlHttpFactory=function(b,c){this.xhrFactory_=b;this.optionsFactory_=c};n.inherits(n.net.WrapperXmlHttpFactory,n.net.XmlHttpFactory);n.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};n.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};n.net.XmlHttp=function(){return n.net.XmlHttp.factory_.createInstance()};n.net.XmlHttp.ASSUME_NATIVE_XHR=!1;n.net.XmlHttpDefines={};n.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;n.net.XmlHttp.getOptions=function(){return n.net.XmlHttp.factory_.getOptions()};n.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};n.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
+n.net.XmlHttp.setFactory=function(b,c){n.net.XmlHttp.setGlobalFactory(new n.net.WrapperXmlHttpFactory(n.asserts.assert(b),n.asserts.assert(c)))};n.net.XmlHttp.setGlobalFactory=function(b){n.net.XmlHttp.factory_=b};n.net.DefaultXmlHttpFactory=function(){};n.inherits(n.net.DefaultXmlHttpFactory,n.net.XmlHttpFactory);n.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var b=ia(this);return b?new ActiveXObject(b):new XMLHttpRequest};
+var ia=function(b){if(n.net.XmlHttp.ASSUME_NATIVE_XHR||n.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!b.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),b.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return b.ieProgId_};n.net.XmlHttp.setGlobalFactory(new n.net.DefaultXmlHttpFactory);n.promise={};n.promise.Resolver=function(){};n.Thenable=function(){};n.Thenable.prototype.then=function(){};n.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";n.Thenable.addImplementation=function(b){b.prototype.then=b.prototype.then;b.prototype[n.Thenable.IMPLEMENTED_BY_PROP]=!0};n.Thenable.isImplementedBy=function(b){if(!b)return!1;try{return!!b[n.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};n.Promise=function(b,c){this.state_=n.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<n.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==n.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);n.Promise.LONG_STACK_TRACES&&(this.stack_=[],T(this,Error("created")),this.currentStep_=0);if(b!=n.nullFunction)try{var d=this;b.call(c,function(b){U(d,n.Promise.State_.FULFILLED,b)},function(b){if(n.DEBUG&&
+!(b instanceof n.Promise.CancellationError))try{if(b instanceof Error)throw b;throw Error("Promise rejected.");}catch(f){}U(d,n.Promise.State_.REJECTED,b)})}catch(e){U(this,n.Promise.State_.REJECTED,e)}};n.Promise.LONG_STACK_TRACES=!1;n.Promise.UNHANDLED_REJECTION_DELAY=0;n.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};n.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
+n.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};n.Promise.DEFAULT_MAX_UNUSED=100;n.Promise.freelist_=new n.async.FreeList(function(){return new n.Promise.CallbackEntry_},function(b){b.reset()},n.Promise.DEFAULT_MAX_UNUSED);n.Promise.getCallbackEntry_=function(b,c,d){var e=n.Promise.freelist_.get();e.onFulfilled=b;e.onRejected=c;e.context=d;return e};n.Promise.returnEntry_=function(b){n.Promise.freelist_.put(b)};
+n.Promise.resolve=function(b){if(b instanceof n.Promise)return b;var c=new n.Promise(n.nullFunction);U(c,n.Promise.State_.FULFILLED,b);return c};n.Promise.reject=function(b){return new n.Promise(function(c,d){d(b)})};n.Promise.resolveThen_=function(b,c,d){n.Promise.maybeThen_(b,c,d,null)||n.async.run(n.partial(c,b))};n.Promise.race=function(b){return new n.Promise(function(c,d){b.length||c(void 0);for(var e=0,f;e<b.length;e++)f=b[e],n.Promise.resolveThen_(f,c,d)})};
+n.Promise.all=function(b){return new n.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b,d){e--;f[b]=d;0==e&&c(f)},h=function(b){d(b)},l=0,m;l<b.length;l++)m=b[l],n.Promise.resolveThen_(m,n.partial(g,l),h);else c(f)})};
+n.Promise.allSettled=function(b){return new n.Promise(function(c){var d=b.length,e=[];if(d)for(var f=function(b,f,g){d--;e[b]=f?{fulfilled:!0,value:g}:{fulfilled:!1,reason:g};0==d&&c(e)},g=0,h;g<b.length;g++)h=b[g],n.Promise.resolveThen_(h,n.partial(f,g,!0),n.partial(f,g,!1));else c(e)})};
+n.Promise.firstFulfilled=function(b){return new n.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b){c(b)},h=function(b,c){e--;f[b]=c;0==e&&d(f)},l=0,m;l<b.length;l++)m=b[l],n.Promise.resolveThen_(m,g,n.partial(h,l));else c(void 0)})};n.Promise.withResolver=function(){var b,c,d=new n.Promise(function(d,f){b=d;c=f});return new n.Promise.Resolver_(d,b,c)};
+n.Promise.prototype.then=function(b,c,d){null!=b&&n.asserts.assertFunction(b,"opt_onFulfilled should be a function.");null!=c&&n.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");n.Promise.LONG_STACK_TRACES&&T(this,Error("then"));return ja(this,n.isFunction(b)?b:null,n.isFunction(c)?c:null,d)};n.Thenable.addImplementation(n.Promise);
+var ka=function(b,c){n.Promise.LONG_STACK_TRACES&&T(b,Error("thenCatch"));return ja(b,null,c,void 0)};n.Promise.prototype.cancel=function(b){this.state_==n.Promise.State_.PENDING&&n.async.run(function(){var c=new n.Promise.CancellationError(b);la(this,c)},this)};
+var la=function(b,c){if(b.state_==n.Promise.State_.PENDING)if(b.parent_){var d=b.parent_;if(d.callbackEntries_){for(var e=0,f=null,g=null,h=d.callbackEntries_;h&&(h.always||(e++,h.child==b&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.state_==n.Promise.State_.PENDING&&1==e?la(d,c):(g?(e=g,n.asserts.assert(d.callbackEntries_),n.asserts.assert(null!=e),e.next==d.callbackEntriesTail_&&(d.callbackEntriesTail_=e),e.next=e.next.next):ma(d),na(d,f,n.Promise.State_.REJECTED,c)))}b.parent_=null}else U(b,n.Promise.State_.REJECTED,
+c)},pa=function(b,c){b.callbackEntries_||b.state_!=n.Promise.State_.FULFILLED&&b.state_!=n.Promise.State_.REJECTED||oa(b);n.asserts.assert(null!=c.onFulfilled);b.callbackEntriesTail_?b.callbackEntriesTail_.next=c:b.callbackEntries_=c;b.callbackEntriesTail_=c},ja=function(b,c,d,e){var f=n.Promise.getCallbackEntry_(null,null,null);f.child=new n.Promise(function(b,h){f.onFulfilled=c?function(d){try{var f=c.call(e,d);b(f)}catch(p){h(p)}}:b;f.onRejected=d?function(c){try{var f=d.call(e,c);!n.isDef(f)&&
+c instanceof n.Promise.CancellationError?h(c):b(f)}catch(p){h(p)}}:h});f.child.parent_=b;pa(b,f);return f.child};n.Promise.prototype.unblockAndFulfill_=function(b){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.FULFILLED,b)};n.Promise.prototype.unblockAndReject_=function(b){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.REJECTED,b)};
+var U=function(b,c,d){b.state_==n.Promise.State_.PENDING&&(b===d&&(c=n.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),b.state_=n.Promise.State_.BLOCKED,n.Promise.maybeThen_(d,b.unblockAndFulfill_,b.unblockAndReject_,b)||(b.result_=d,b.state_=c,b.parent_=null,oa(b),c!=n.Promise.State_.REJECTED||d instanceof n.Promise.CancellationError||n.Promise.addUnhandledRejection_(b,d)))};
+n.Promise.maybeThen_=function(b,c,d,e){if(b instanceof n.Promise)return null!=c&&n.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&n.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),n.Promise.LONG_STACK_TRACES&&T(b,Error("then")),pa(b,n.Promise.getCallbackEntry_(c||n.nullFunction,d||null,e)),!0;if(n.Thenable.isImplementedBy(b))return b.then(c,d,e),!0;if(n.isObject(b))try{var f=b.then;if(n.isFunction(f))return n.Promise.tryThen_(b,
+f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};n.Promise.tryThen_=function(b,c,d,e,f){var g=!1,h=function(b){g||(g=!0,d.call(f,b))},l=function(b){g||(g=!0,e.call(f,b))};try{c.call(b,h,l)}catch(m){l(m)}};var oa=function(b){b.executing_||(b.executing_=!0,n.async.run(b.executeCallbacks_,b))},ma=function(b){var c=null;b.callbackEntries_&&(c=b.callbackEntries_,b.callbackEntries_=c.next,c.next=null);b.callbackEntries_||(b.callbackEntriesTail_=null);null!=c&&n.asserts.assert(null!=c.onFulfilled);return c};
+n.Promise.prototype.executeCallbacks_=function(){for(var b;b=ma(this);)n.Promise.LONG_STACK_TRACES&&this.currentStep_++,na(this,b,this.state_,this.result_);this.executing_=!1};
+var na=function(b,c,d,e){if(d==n.Promise.State_.REJECTED&&c.onRejected&&!c.always)if(0<n.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.unhandledRejectionId_;b=b.parent_)n.global.clearTimeout(b.unhandledRejectionId_),b.unhandledRejectionId_=0;else if(0==n.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.hadUnhandledRejection_;b=b.parent_)b.hadUnhandledRejection_=!1;if(c.child)c.child.parent_=null,n.Promise.invokeCallback_(c,d,e);else try{c.always?c.onFulfilled.call(c.context):n.Promise.invokeCallback_(c,
+d,e)}catch(f){n.Promise.handleRejection_.call(null,f)}n.Promise.returnEntry_(c)};n.Promise.invokeCallback_=function(b,c,d){c==n.Promise.State_.FULFILLED?b.onFulfilled.call(b.context,d):b.onRejected&&b.onRejected.call(b.context,d)};
+var T=function(b,c){if(n.Promise.LONG_STACK_TRACES&&n.isString(c.stack)){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");b.stack_.push(c+d)}},qa=function(b,c){if(n.Promise.LONG_STACK_TRACES&&c&&n.isString(c.stack)&&b.stack_.length){for(var d=["Promise trace:"],e=b;e;e=e.parent_){for(var f=b.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==n.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
+n.Promise.addUnhandledRejection_=function(b,c){0<n.Promise.UNHANDLED_REJECTION_DELAY?b.unhandledRejectionId_=n.global.setTimeout(function(){qa(b,c);n.Promise.handleRejection_.call(null,c)},n.Promise.UNHANDLED_REJECTION_DELAY):0==n.Promise.UNHANDLED_REJECTION_DELAY&&(b.hadUnhandledRejection_=!0,n.async.run(function(){b.hadUnhandledRejection_&&(qa(b,c),n.Promise.handleRejection_.call(null,c))}))};n.Promise.handleRejection_=n.async.throwException;
+n.Promise.setUnhandledRejectionHandler=function(b){n.Promise.handleRejection_=b};n.Promise.CancellationError=function(b){n.debug.Error.call(this,b)};n.inherits(n.Promise.CancellationError,n.debug.Error);n.Promise.CancellationError.prototype.name="cancel";n.Promise.Resolver_=function(b,c,d){this.promise=b;this.resolve=c;this.reject=d};n.Timer=function(b,c){n.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||n.Timer.defaultTimerObject;this.boundTick_=n.bind(this.tick_,this);this.last_=n.now()};n.inherits(n.Timer,n.events.EventTarget);n.Timer.MAX_TIMEOUT_=2147483647;n.Timer.INVALID_TIMEOUT_ID_=-1;n.Timer.prototype.enabled=!1;n.Timer.defaultTimerObject=n.global;n.Timer.intervalScale=.8;a=n.Timer.prototype;a.timer_=null;
+a.setInterval=function(b){this.interval_=b;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};
+a.tick_=function(){if(this.enabled){var b=n.now()-this.last_;0<b&&b<this.interval_*n.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(n.Timer.TICK),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now()))}};
+a.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now())};a.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};a.disposeInternal=function(){n.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};n.Timer.TICK="tick";
+n.Timer.callOnce=function(b,c,d){if(n.isFunction(b))d&&(b=n.bind(b,d));else if(b&&"function"==typeof b.handleEvent)b=n.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return Number(c)>n.Timer.MAX_TIMEOUT_?n.Timer.INVALID_TIMEOUT_ID_:n.Timer.defaultTimerObject.setTimeout(b,c||0)};n.Timer.clear=function(b){n.Timer.defaultTimerObject.clearTimeout(b)};
+n.Timer.promise=function(b,c){var d=null;return ka(new n.Promise(function(e,f){d=n.Timer.callOnce(function(){e(c)},b);d==n.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(b){n.Timer.clear(d);throw b;})};n.net.XhrIo=function(b){n.events.EventTarget.call(this);this.headers=new n.structs.Map;this.xmlHttpFactory_=b||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=n.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};n.inherits(n.net.XhrIo,n.events.EventTarget);
+n.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};n.net.XhrIo.prototype.logger_=n.log.getLogger("goog.net.XhrIo");n.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";n.net.XhrIo.CONTENT_TRANSFER_ENCODING="Content-Transfer-Encoding";n.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;n.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];n.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";n.net.XhrIo.XHR2_TIMEOUT_="timeout";
+n.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";n.net.XhrIo.sendInstances_=[];n.net.XhrIo.send=function(b,c,d,e,f,g,h){var l=new n.net.XhrIo;n.net.XhrIo.sendInstances_.push(l);c&&l.listen(n.net.EventType.COMPLETE,c);l.listenOnce(n.net.EventType.READY,l.cleanupSend_);g&&(l.timeoutInterval_=Math.max(0,g));h&&(l.withCredentials_=h);l.send(b,d,e,f);return l};n.net.XhrIo.cleanup=function(){for(var b=n.net.XhrIo.sendInstances_;b.length;)b.pop().dispose()};
+n.net.XhrIo.protectEntryPoints=function(b){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b.protectEntryPoint(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};n.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();n.array.remove(n.net.XhrIo.sendInstances_,this)};
+n.net.XhrIo.prototype.send=function(b,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+b);c=c?c.toUpperCase():"GET";this.lastUri_=b;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():n.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():n.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=n.bind(this.onReadyStateChange_,
+this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=n.bind(function(b){this.onProgressHandler_(b,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=n.bind(this.onProgressHandler_,this)));try{n.log.fine(this.logger_,V(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(b),!0),this.inOpen_=!1}catch(g){n.log.fine(this.logger_,V(this,"Error opening Xhr: "+g.message));ra(this,g);return}b=d||"";var f=this.headers.clone();e&&n.structs.forEach(e,function(b,c){f.set(c,
+b)});e=n.array.find(f.getKeys(),n.net.XhrIo.isContentTypeHeader_);d=n.global.FormData&&b instanceof n.global.FormData;!n.array.contains(n.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(n.net.XhrIo.CONTENT_TYPE_HEADER,n.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(b,c){this.xhr_.setRequestHeader(c,b)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);"withCredentials"in this.xhr_&&this.xhr_.withCredentials!==this.withCredentials_&&(this.xhr_.withCredentials=this.withCredentials_);
+try{sa(this),0<this.timeoutInterval_&&(this.useXhr2Timeout_=n.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),n.log.fine(this.logger_,V(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[n.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=n.bind(this.timeout_,this)):this.timeoutId_=n.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),n.log.fine(this.logger_,V(this,"Sending request")),
+this.inSend_=!0,this.xhr_.send(b),this.inSend_=!1}catch(g){n.log.fine(this.logger_,V(this,"Send error: "+g.message)),ra(this,g)}};n.net.XhrIo.shouldUseXhr2Timeout_=function(b){return n.userAgent.IE&&n.userAgent.isVersionOrHigher(9)&&n.isNumber(b[n.net.XhrIo.XHR2_TIMEOUT_])&&n.isDef(b[n.net.XhrIo.XHR2_ON_TIMEOUT_])};n.net.XhrIo.isContentTypeHeader_=function(b){return n.string.caseInsensitiveEquals(b)};
+n.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof n&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",n.log.fine(this.logger_,V(this,this.lastError_)),this.dispatchEvent(n.net.EventType.TIMEOUT),this.abort(n.net.ErrorCode.TIMEOUT))};var ra=function(b,c){b.active_=!1;b.xhr_&&(b.inAbort_=!0,b.xhr_.abort(),b.inAbort_=!1);b.lastError_=c;ta(b);W(b)},ta=function(b){b.errorDispatched_||(b.errorDispatched_=!0,b.dispatchEvent(n.net.EventType.COMPLETE),b.dispatchEvent(n.net.EventType.ERROR))};
+n.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(n.log.fine(this.logger_,V(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(n.net.EventType.COMPLETE),this.dispatchEvent(n.net.EventType.ABORT),W(this))};n.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),W(this,!0));n.net.XhrIo.superClass_.disposeInternal.call(this)};
+n.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)ua(this);else this.onReadyStateChangeEntryPoint_()};n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){ua(this)};
+var ua=function(b){if(b.active_&&"undefined"!=typeof n)if(b.xhrOptions_[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&X(b)==n.net.XmlHttp.ReadyState.COMPLETE&&2==Y(b))n.log.fine(b.logger_,V(b,"Local request error detected and ignored"));else if(b.inSend_&&X(b)==n.net.XmlHttp.ReadyState.COMPLETE)n.Timer.callOnce(b.onReadyStateChange_,0,b);else if(b.dispatchEvent(n.net.EventType.READY_STATE_CHANGE),Z(b)){n.log.fine(b.logger_,V(b,"Request complete"));b.active_=!1;try{if(b.isSuccess())b.dispatchEvent(n.net.EventType.COMPLETE),
+b.dispatchEvent(n.net.EventType.SUCCESS);else{try{var c=X(b)>n.net.XmlHttp.ReadyState.LOADED?b.xhr_.statusText:""}catch(d){n.log.fine(b.logger_,"Can not get status: "+d.message),c=""}b.lastError_=c+" ["+Y(b)+"]";ta(b)}}finally{W(b)}}};
+n.net.XhrIo.prototype.onProgressHandler_=function(b,c){n.asserts.assert(b.type===n.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(b,n.net.EventType.PROGRESS));this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(b,c?n.net.EventType.DOWNLOAD_PROGRESS:n.net.EventType.UPLOAD_PROGRESS))};n.net.XhrIo.buildProgressEvent_=function(b,c){return{type:c,lengthComputable:b.lengthComputable,loaded:b.loaded,total:b.total}};
+var W=function(b,c){if(b.xhr_){sa(b);var d=b.xhr_,e=b.xhrOptions_[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?n.nullFunction:null;b.xhr_=null;b.xhrOptions_=null;c||b.dispatchEvent(n.net.EventType.READY);try{d.onreadystatechange=e}catch(f){n.log.error(b.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},sa=function(b){b.xhr_&&b.useXhr2Timeout_&&(b.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=null);b.timeoutId_&&(n.Timer.clear(b.timeoutId_),b.timeoutId_=null)},Z=function(b){return X(b)==
+n.net.XmlHttp.ReadyState.COMPLETE};n.net.XhrIo.prototype.isSuccess=function(){var b=Y(this),c;if(!(c=n.net.HttpStatus.isSuccess(b))){if(b=0===b)b=n.uri.utils.getEffectiveScheme(String(this.lastUri_)),b=!n.net.XhrIo.HTTP_SCHEME_PATTERN.test(b);c=b}return c};var X=function(b){return b.xhr_?b.xhr_.readyState:n.net.XmlHttp.ReadyState.UNINITIALIZED},Y=function(b){try{return X(b)>n.net.XmlHttp.ReadyState.LOADED?b.xhr_.status:-1}catch(c){return-1}};
+n.net.XhrIo.prototype.getResponseHeader=function(b){if(this.xhr_&&Z(this))return b=this.xhr_.getResponseHeader(b),n.isNull(b)?void 0:b};n.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&Z(this)?this.xhr_.getAllResponseHeaders()||"":""};var V=function(b,c){return c+" ["+b.lastMethod_+" "+b.lastUri_+" "+Y(b)+"]"};n.debug.entryPointRegistry.register(function(b){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});n.craw.AppAuthenticator=function(b,c,d){this.appUrl_=b;this.authCompletedCallback_=c;this.authFailedCallback_=d||n.functions.NULL;this.uberTokenAttempts_=0};n.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";
+n.craw.AppAuthenticator.prototype.onAuthTokenReceived_=function(b){if(n.isDef(b)){var c=n.bind(this.onUberAuthResponse_,this),d="source="+chrome.runtime.getManifest().oauth2.client_id,e={Authorization:"Bearer "+b,"Content-Type":"application/x-www-form-urlencoded"},f=n.bind(function(){0===this.uberTokenAttempts_?(++this.uberTokenAttempts_,chrome.identity.removeCachedAuthToken({token:b},n.bind(this.authenticate,this))):this.authFailedCallback_()},this);n.net.XhrIo.send(n.craw.AppAuthenticator.UBERAUTH_URL_,
+function(){if(this.isSuccess()){try{var b=this.xhr_?this.xhr_.responseText:""}catch(h){n.log.fine(this.logger_,"Can not get responseText: "+h.message),b=""}c(b)}else f()},"POST",d,e)}else this.authFailedCallback_()};n.craw.AppAuthenticator.prototype.onUberAuthResponse_=function(b){var c=n.Uri.parse("https://accounts.google.com/MergeSession");N(c,"source","appsv2");N(c,"uberauth",b);N(c,"continue",this.appUrl_);this.authCompletedCallback_(c.toString())};
+n.craw.AppAuthenticator.prototype.authenticate=function(){chrome.identity.getAuthToken({interactive:!0},n.bind(this.onAuthTokenReceived_,this))};n.craw.WindowConfig=function(b,c){this.url_=b;this.useAuth_=c};n.craw.WindowConfig.prototype.getUrl=function(){return this.url_};n.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};n.craw.AppWindow=function(b){this.config_=b;this.authenticator_=new n.craw.AppAuthenticator(b.getUrl(),n.bind(this.navigateToUrl_,this),n.bind(this.showOfflineWarning,this));this.webview_=n.dom.getDocument().querySelector("webview");this.hasLaunched_=!1;this.loadingOverlay_=n.dom.getElement("loading_overlay");this.offlineOverlay_=n.dom.getElement("offline_overlay");this.customStatus_=null;this.delegate_=n.craw.AppWindowDelegate.createDefaultImpl(this);this.webview_.addEventListener("contentload",
+n.bind(this.onContentLoad_,this),!1);this.webview_.addEventListener("newwindow",n.bind(this.onNewWindow_,this),!1);this.delegate_.onWindowReady();this.pollOnlineStatus_()};n.craw.AppWindow.REQUEST_FILTER_URL_PATTERN_="https://*.google.com/*";n.craw.AppWindow.REQUEST_FILTER_TYPE_="main_frame";n.craw.AppWindow.QUERY_NOCACHE_PARAMETER_="nocache";n.craw.AppWindow.NETWORK_TEST_URLS_=["https://www.google.com/images/cleardot.gif","https://www.google.com/images/dot2.gif","https://www.google.com/images/x2.gif"];
+n.craw.AppWindow.prototype.navigateToUrl_=function(b){this.webview_.src=b;this.hasLaunched_=!0};n.craw.AppWindow.prototype.onContentLoad_=function(){};n.craw.AppWindow.prototype.onNewWindow_=function(){};var va=function(b){b.hasLaunched_=!1;b.config_.getUseAuth()?b.authenticator_.authenticate():b.navigateToUrl_(b.config_.getUrl())};a=n.craw.AppWindow.prototype;a.hideVisibleOverlays_=function(){this.loadingOverlay_.style.display="none";this.offlineOverlay_.style.display="none"};
+a.fadeInOfflineOverlay_=function(){this.offlineOverlay_.style.opacity="1"};a.showOfflineWarning=function(){n.dom.getElement("app_unavailable").innerText=this.delegate_.getAppUnavailableMessage();n.dom.getElement("connect_to_network").innerText=this.customStatus_||chrome.i18n.getMessage("craw_connect_to_network");this.offlineOverlay_.style.display="-webkit-flex";this.offlineOverlay_.style.pointerEvents="all";n.Timer.callOnce(n.bind(this.fadeInOfflineOverlay_,this),0)};
+a.setOnlineStatus_=function(b){n.Timer.callOnce(n.bind(this.pollOnlineStatus_,this),1E3);b?this.hasLaunched_?this.delegate_.finishedLaunch()&&(this.offlineOverlay_.style.opacity="0",this.offlineOverlay_.style.pointerEvents="none",this.loadingOverlay_.style.opacity="0",this.loadingOverlay_.style.pointerEvents="none",n.Timer.callOnce(n.bind(this.hideVisibleOverlays_,this),250)):va(this):this.showOfflineWarning()};
+a.pollOnlineStatus_=function(){if(this.customStatus_=this.delegate_.pollOnlineStatus())this.setOnlineStatus_(!1);else{var b=n.bind(this.setOnlineStatus_,this),c=new n.Uri(n.craw.AppWindow.NETWORK_TEST_URLS_[n.math.randomInt()]);N(c,n.craw.AppWindow.QUERY_NOCACHE_PARAMETER_,Date.now().toString());n.net.XhrIo.send(c.toString(),function(){b(this.isSuccess())})}};window.onload=function(){va(new n.craw.AppWindow(n.dom.getWindow().crawConfig_))};
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css
new file mode 100644
index 0000000000000000000000000000000000000000..9b101d52287c72c0fcae53ea1bbc2571fcb2fd9c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css
@@ -0,0 +1,115 @@
+html, body {
+  margin: 0;
+  overflow: hidden;
+}
+
+webview {
+  width: 100%;
+  height: 100%;
+  min-height: 100%;
+  position: absolute;
+}
+
+.craw_overlay {
+  position: absolute;
+
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+
+  background-color: white;
+
+  -webkit-transition: opacity 250ms linear;
+
+  display: -webkit-flex;
+  -webkit-flex-direction: column;
+  -webkit-flex: 1 0%;
+  -webkit-align-items: center;
+  -webkit-justify-content: center;
+
+  -webkit-app-region: drag;
+}
+
+.craw_overlay img {
+  margin: 16px;
+}
+
+#loading_overlay {
+  opacity: 1;
+}
+
+#offline_overlay {
+  opacity: 0;
+  display: none;
+}
+
+#offline_overlay > img {
+  -webkit-filter: saturate(0%);
+}
+
+#offline_overlay > span {
+  font-family: 'Open Sans', 'Deja Vu Sans', Arial, sans-serif;
+  font-size: 15px;
+  line-height: 21px;
+  color: #8d8d8d;
+  display: block;
+}
+
+#loading_splash {
+  width: 128px;
+  height: 128px;
+}
+
+#drag_overlay {
+  position: absolute;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  pointer-events: none;
+  -webkit-app-region: drag;
+  display: none;
+}
+
+#top_bar {
+  -webkit-app-region: no-drag;
+  top: 4px;
+  right: 4px;
+  height: 28px;
+  width: 160px;
+  position: absolute;
+  pointer-events: all;
+
+  -webkit-transition: opacity 250ms linear;
+  opacity: 1;
+
+  display: none;
+}
+
+#top_bar div {
+  position: absolute;
+  width: 24px;
+  height: 24px;
+  top: 0;
+  background: url('/images/topbar_floating_button.png');
+}
+
+#top_bar div:hover {
+  background: url('/images/topbar_floating_button_hover.png');
+}
+
+#top_bar div:active {
+  background: url('/images/topbar_floating_button_pressed.png');
+}
+
+#top_bar div > img {
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  position: absolute;
+}
+
+#close_button { right: 4px; }
+#maximize_button { right: 32px; }
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html
new file mode 100644
index 0000000000000000000000000000000000000000..0d67ae1bcdd41f7771d05b9e299a1ee1a78db2b3
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <link href="/css/craw_window.css" rel="stylesheet">
+    <script src="/craw_window.js"></script>
+  </head>
+  <body>
+    <webview></webview>
+    <div class="craw_overlay" id="loading_overlay">
+      <img src="/images/icon_128.png" />
+      <img src="/images/flapper.gif" />
+    </div>
+    <div class="craw_overlay" id="offline_overlay">
+      <img src="/images/icon_128.png" />
+      <span id="app_unavailable"></span>
+      <span id="connect_to_network"></span>
+    </div>
+    <div id="drag_overlay"></div>
+    <div id="top_bar">
+      <div id='close_button'>
+        <img src='/images/topbar_floating_button_close.png'/>
+      </div>
+      <div id='maximize_button'>
+        <img src='/images/topbar_floating_button_maximize.png'/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4471b6ba56026d87f37ca0c5367cca6069dc117a
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6a699b085de258c89ab2488651d07a8eff2059c
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2baa6e5f240be4d278689e41ee9307eef649ed2
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c02f849cf2c55caf550d5feecf73f93d5924dfe
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f29486e8827c5f297c17062a56eb8074bb61df1
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a01c12475294bd1e48f784cfc55cd0063a0f25c
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc22c25929d9adfefbc3d0228eba01236589915a
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fa7f2e6ec0a2019a5b8f96bb5010aa9c66d5bc3
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png differ
diff --git a/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..18438575914957a82f3dc4036931464ac1d0faf9
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json
@@ -0,0 +1,27 @@
+{
+   "app": {
+      "background": {
+         "scripts": [ "craw_background.js" ]
+      }
+   },
+   "default_locale": "en",
+   "description": "__MSG_APP_DESCRIPTION__",
+   "display_in_launcher": false,
+   "display_in_new_tab_page": false,
+   "icons": {
+      "128": "images/icon_128.png",
+      "16": "images/icon_16.png"
+   },
+   "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrKfMnLqViEyokd1wk57FxJtW2XXpGXzIHBzv9vQI/01UsuP0IV5/lj0wx7zJ/xcibUgDeIxobvv9XD+zO1MdjMWuqJFcKuSS4Suqkje6u+pMrTSGOSHq1bmBVh0kpToN8YoJs/P/yrRd7FEtAXTaFTGxQL4C385MeXSjaQfiRiQIDAQAB",
+   "manifest_version": 2,
+   "minimum_chrome_version": "29",
+   "name": "__MSG_APP_NAME__",
+   "oauth2": {
+      "auto_approve": true,
+      "client_id": "203784468217.apps.googleusercontent.com",
+      "scopes": [ "https://www.googleapis.com/auth/sierra", "https://www.googleapis.com/auth/sierrasandbox", "https://www.googleapis.com/auth/chromewebstore", "https://www.googleapis.com/auth/chromewebstore.readonly" ]
+   },
+   "permissions": [ "identity", "webview", "https://www.google.com/", "https://www.googleapis.com/*", "https://payments.google.com/payments/v4/js/integrator.js", "https://sandbox.google.com/payments/v4/js/integrator.js" ],
+   "update_url": "https://clients2.google.com/service/update2/crx",
+   "version": "1.0.0.4"
+}
diff --git a/skels/direction/.config/chromium/Default/Favicons b/skels/direction/.config/chromium/Default/Favicons
new file mode 100644
index 0000000000000000000000000000000000000000..4cf4dbd8187333a6cfebe42b0fc4bdee9c56589b
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Favicons differ
diff --git a/skels/direction/.config/chromium/Default/Favicons-journal b/skels/direction/.config/chromium/Default/Favicons-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/History b/skels/direction/.config/chromium/Default/History
new file mode 100644
index 0000000000000000000000000000000000000000..85df9987b1451ccb88e729e94fff796bc130dc9b
Binary files /dev/null and b/skels/direction/.config/chromium/Default/History differ
diff --git a/skels/direction/.config/chromium/Default/History Provider Cache b/skels/direction/.config/chromium/Default/History Provider Cache
new file mode 100644
index 0000000000000000000000000000000000000000..68a83b1645217eff1f7318df379c4b923ae41aa9
Binary files /dev/null and b/skels/direction/.config/chromium/Default/History Provider Cache differ
diff --git a/skels/direction/.config/chromium/Default/History-journal b/skels/direction/.config/chromium/Default/History-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..f3968491df4eb440c73c9a3435d61105e8446cae
Binary files /dev/null and b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOCK b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..587fbe3fba203e246540b05b334745ee20274ac4
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG
@@ -0,0 +1 @@
+2018/04/24-09:26:16.125 3134 Reusing MANIFEST /home/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001 b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..3ccb46a2f1a61881a6644043c21b21edbdb22526
Binary files /dev/null and b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/000003.log b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..1085e39e1e243e37867bdd1b407ff59d608a458c
Binary files /dev/null and b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/CURRENT b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/LOCK b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/LOG b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..54feed01f7ec484c2c127d25cdeecad92823c62e
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/LOG
@@ -0,0 +1 @@
+2018/04/24-09:26:53.923 3565 Reusing MANIFEST /home/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/MANIFEST-000001 b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..3ccb46a2f1a61881a6644043c21b21edbdb22526
Binary files /dev/null and b/skels/direction/.config/chromium/Default/IndexedDB/https_www.google.fr_0.indexeddb.leveldb/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/Last Session b/skels/direction/.config/chromium/Default/Last Session
new file mode 100644
index 0000000000000000000000000000000000000000..66003370dcc0d9d7094737e84a97075b34dbfa73
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Last Session differ
diff --git a/skels/direction/.config/chromium/Default/Last Tabs b/skels/direction/.config/chromium/Default/Last Tabs
new file mode 100644
index 0000000000000000000000000000000000000000..dbf1b96bddeefb91c0a03213f9b53df17985ae55
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Last Tabs differ
diff --git a/skels/direction/.config/chromium/Default/Login Data b/skels/direction/.config/chromium/Default/Login Data
new file mode 100644
index 0000000000000000000000000000000000000000..cf5d72d76863123a786c0492570b98c06b7dcf55
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Login Data differ
diff --git a/skels/direction/.config/chromium/Default/Login Data-journal b/skels/direction/.config/chromium/Default/Login Data-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Network Action Predictor b/skels/direction/.config/chromium/Default/Network Action Predictor
new file mode 100644
index 0000000000000000000000000000000000000000..3f26e71f8db082930ace8a66a50031457639fadd
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Network Action Predictor differ
diff --git a/skels/direction/.config/chromium/Default/Network Action Predictor-journal b/skels/direction/.config/chromium/Default/Network Action Predictor-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Network Persistent State b/skels/direction/.config/chromium/Default/Network Persistent State
new file mode 100644
index 0000000000000000000000000000000000000000..8bca1008c3a8ab066cf59681e33f626ad83b86d6
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Network Persistent State	
@@ -0,0 +1 @@
+{"SDCH":{"dictionaries":{},"version":2}}
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/Origin Bound Certs b/skels/direction/.config/chromium/Default/Origin Bound Certs
new file mode 100644
index 0000000000000000000000000000000000000000..adc829700cc70bcae084f93df0326ae7af2ce3ab
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Origin Bound Certs differ
diff --git a/skels/direction/.config/chromium/Default/Origin Bound Certs-journal b/skels/direction/.config/chromium/Default/Origin Bound Certs-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Preferences b/skels/direction/.config/chromium/Default/Preferences
new file mode 100644
index 0000000000000000000000000000000000000000..d54908930e948926c927dedb12041f6f4e9a7722
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Preferences
@@ -0,0 +1 @@
+{"account_id_migration_state":2,"account_tracker_service_last_update":"13169028372231336","browser":{"clear_lso_data_enabled":true,"has_seen_welcome_page":true,"last_known_google_url":"https://www.google.fr/","pepper_flash_settings_enabled":true,"window_placement":{"bottom":994,"docked":false,"left":0,"maximized":true,"right":1280,"top":0,"work_area_bottom":1024,"work_area_left":0,"work_area_right":1280,"work_area_top":0}},"countryid_at_install":18002,"data_reduction":{"daily_original_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","775707"],"daily_original_length_application":"306050","daily_original_length_unknown":"0","daily_original_length_via_data_reduction_proxy":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_original_length_via_data_reduction_proxy_application":"0","daily_original_length_via_data_reduction_proxy_unknown":"0","daily_original_length_via_data_reduction_proxy_video":"0","daily_original_length_video":"0","daily_original_length_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_original_length_with_data_reduction_proxy_enabled_application":"0","daily_original_length_with_data_reduction_proxy_enabled_unknown":"0","daily_original_length_with_data_reduction_proxy_enabled_video":"0","daily_received_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","775707"],"daily_received_length_application":"306050","daily_received_length_https_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_long_bypass_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_short_bypass_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_unknown":"0","daily_received_length_unknown_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_via_data_reduction_proxy":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_via_data_reduction_proxy_application":"0","daily_received_length_via_data_reduction_proxy_unknown":"0","daily_received_length_via_data_reduction_proxy_video":"0","daily_received_length_video":"0","daily_received_length_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_with_data_reduction_proxy_enabled_application":"0","daily_received_length_with_data_reduction_proxy_enabled_unknown":"0","daily_received_length_with_data_reduction_proxy_enabled_video":"0","last_update_date":"13168994400000000"},"data_reduction_lo_fi":{"load_images_requests_per_session":0,"load_images_snackbars_shown_per_session":0,"was_used_this_session":false},"default_apps_install_state":3,"dns_prefetching":{"host_referral_list":[2,["https://www.google.com/",["https://apis.google.com/",2.34,"https://ssl.gstatic.com/",3.0199999999999996,"https://www.google.com/",5.739999999999998,"https://www.gstatic.com/",2.34]],["https://www.google.fr/",["https://ssl.gstatic.com/",0.12765076040471043,"https://www.google.fr/",0.12765076040471043]]],"startup_list":[1,"https://www.google.fr/"]},"download":{"directory_upgrade":true},"extensions":{"alerts":{"initialized":true},"autoupdate":{"next_check":"13169032402821577"},"chrome_url_overrides":{"bookmarks":[{"active":true,"entry":"chrome-extension://eemcgdkfndhakfknompkggombfjjjeno/main.html"}]},"last_chrome_version":"57.0.2987.98","settings":{"ahfgeienlihckogmohjhadlkjgocpleb":{"active_permissions":{"api":["management","system.display","system.storage","webstorePrivate","system.cpu","system.memory","system.network"],"manifest_permissions":[]},"app_launcher_ordinal":"t","commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"install_time":"13169028372229442","location":5,"manifest":{"app":{"launch":{"web_url":"https://chrome.google.com/webstore"},"urls":["https://chrome.google.com/webstore"]},"description":"Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels pour Chromium.","icons":{"128":"webstore_icon_128.png","16":"webstore_icon_16.png"},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtl3tO0osjuzRsf6xtD2SKxPlTfuoy7AWoObysitBPvH5fE1NaAA1/2JkPWkVDhdLBWLaIBPYeXbzlHp3y4Vv/4XG+aN5qFE3z+1RU/NqkzVYHtIpVScf3DjTYtKVL66mzVGijSoAIwbFCC3LpGdaoe6Q1rSRDp76wR6jjFzsYwQIDAQAB","name":"Web Store","permissions":["webstorePrivate","management","system.cpu","system.display","system.memory","system.network","system.storage"],"version":"0.2"},"never_activated_since_loaded":true,"page_ordinal":"n","path":"/usr/lib/chromium/resources/web_store","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"bepbmhgboaologfdajaanbcjmnhjmhfn":{"disable_reasons":1,"state":0},"eemcgdkfndhakfknompkggombfjjjeno":{"active_permissions":{"api":["bookmarks","bookmarkManagerPrivate","metricsPrivate","systemPrivate","tabs"],"explicit_host":["chrome://favicon/*","chrome://resources/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13169028372228508","location":5,"manifest":{"chrome_url_overrides":{"bookmarks":"main.html"},"content_security_policy":"object-src 'none'; script-src chrome://resources 'self' blob: filesystem:","description":"Bookmark Manager","icons":{},"incognito":"split","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQcByy+eN9jzazWF/DPn7NW47sW7lgmpk6eKc0BQM18q8hvEM3zNm2n7HkJv/R6fU+X5mtqkDuKvq5skF6qqUF4oEyaleWDFhd1xFwV7JV+/DU7bZ00w2+6gzqsabkerFpoP33ZRIw7OviJenP0c0uWqDWF8EGSyMhB3txqhOtiQIDAQAB","manifest_version":2,"name":"Bookmark Manager","permissions":["bookmarks","bookmarkManagerPrivate","metricsPrivate","systemPrivate","tabs","chrome://favicon/","chrome://resources/"],"version":"0.1"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/bookmark_manager","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"kmendfapggjehodndflmmgagdbamhnfd":{"active_permissions":{"api":["cryptotokenPrivate","externally_connectable.all_urls","hid","tabs","u2fDevices","usb",{"usbDevices":[{"interfaceClass":-1,"interfaceId":-1,"productId":529,"vendorId":4176}]},"webConnectable"],"explicit_host":["http://*/*","https://*/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":["runtime.onConnectExternal","runtime.onMessageExternal"],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13169028372229926","location":5,"manifest":{"background":{"persistent":false,"scripts":["util.js","b64.js","sha256.js","timer.js","countdown.js","countdowntimer.js","devicestatuscodes.js","approvedorigins.js","errorcodes.js","webrequest.js","messagetypes.js","factoryregistry.js","closeable.js","requesthelper.js","enroller.js","requestqueue.js","signer.js","origincheck.js","textfetcher.js","appid.js","watchdog.js","logging.js","webrequestsender.js","window-timer.js","cryptotokenorigincheck.js","cryptotokenapprovedorigins.js","gnubbydevice.js","hidgnubbydevice.js","usbgnubbydevice.js","gnubbies.js","gnubby.js","gnubby-u2f.js","gnubbyfactory.js","singlesigner.js","multiplesigner.js","generichelper.js","inherits.js","individualattest.js","devicefactoryregistry.js","usbhelper.js","usbenrollhandler.js","usbsignhandler.js","usbgnubbyfactory.js","googlecorpindividualattest.js","cryptotokenbackground.js"]},"description":"CryptoToken Component Extension","externally_connectable":{"accepts_tls_channel_id":true,"ids":["fjajfjhkeibgmiggdfehjplbhmfkialk"],"matches":["\u003Call_urls>"]},"incognito":"split","key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq7zRobvA+AVlvNqkHSSVhh1sEWsHSqz4oR/XptkDe/Cz3+gW9ZGumZ20NCHjaac8j1iiesdigp8B1LJsd/2WWv2Dbnto4f8GrQ5MVphKyQ9WJHwejEHN2K4vzrTcwaXqv5BSTXwxlxS/mXCmXskTfryKTLuYrcHEWK8fCHb+0gvr8b/kvsi75A1aMmb6nUnFJvETmCkOCPNX5CHTdy634Ts/x0fLhRuPlahk63rdf7agxQv5viVjQFk+tbgv6aa9kdSd11Js/RZ9yZjrFgHOBWgP4jTBqud4+HUglrzu8qynFipyNRLCZsaxhm+NItTyNgesxLdxZcwOz56KD1Q4IQIDAQAB","manifest_version":2,"name":"CryptoTokenExtension","permissions":["hid","u2fDevices","usb","cryptotokenPrivate","externally_connectable.all_urls","tabs","https://*/*","http://*/*",{"usbDevices":[{"productId":529,"vendorId":4176}]}],"version":"0.9.46"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/cryptotoken","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"mfehgcgbbipciphmccgaenjidiccnmng":{"active_permissions":{"api":["cloudPrintPrivate"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"install_time":"13169028372229020","location":5,"manifest":{"app":{"launch":{"web_url":"https://www.google.com/cloudprint"},"urls":["https://www.google.com/cloudprint/enable_chrome_connector"]},"description":"Cloud Print","display_in_launcher":false,"icons":{},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqOhnwk4+HXVfGyaNsAQdU/js1Na56diW08oF1MhZiwzSnJsEaeuMN9od9q9N4ZdK3o1xXOSARrYdE+syV7Dl31nf6qz3A6K+D5NHe6sSB9yvYlIiN37jdWdrfxxE0pRYEVYZNTe3bzq3NkcYJlOdt1UPcpJB+isXpAGUKUvt7EQIDAQAB","name":"Cloud Print","permissions":["cloudPrintPrivate"],"version":"0.1"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/cloud_print","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"mhjfbmdgcfjbbpaeojofohoefgiehjai":{"active_permissions":{"api":["resourcesPrivate"],"explicit_host":["\u003Call_urls>","chrome://favicon/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13169028372230375","location":5,"manifest":{"content_security_policy":"script-src 'self' blob: filesystem: chrome://resources; object-src * blob: externalfile: file: filesystem: data:; plugin-types application/x-google-chrome-pdf","description":"","incognito":"split","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN6hM0rsDYGbzQPQfOygqlRtQgKUXMfnSjhIBL7LnReAVBEd7ZmKtyN2qmSasMl4HZpMhVe2rPWVVwBDl6iyNE/Kok6E6v6V3vCLGsOpQAuuNVye/3QxzIldzG/jQAdWZiyXReRVapOhZtLjGfywCvlWq7Sl/e3sbc0vWybSDI2QIDAQAB","manifest_version":2,"mime_types":["application/pdf"],"mime_types_handler":"index.html","name":"Chromium PDF Viewer","offline_enabled":true,"permissions":["\u003Call_urls>","resourcesPrivate"],"version":"1","web_accessible_resources":["*.js","*.html","*.css","*.png"]},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/pdf","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"nmmhkkegccagdldgiimedpiccmgmieda":{"ack_external":true,"active_permissions":{"api":["identity","webview"],"explicit_host":["https://payments.google.com/*","https://sandbox.google.com/*","https://www.google.com/*","https://www.googleapis.com/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":137,"events":["app.runtime.onLaunched","runtime.onConnectExternal"],"from_bookmark":false,"from_webstore":true,"granted_permissions":{"api":["identity","webview"],"explicit_host":["https://payments.google.com/*","https://sandbox.google.com/*","https://www.google.com/*","https://www.googleapis.com/*"],"manifest_permissions":[]},"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13169028374611044","lastpingday":"13169026800703268","location":10,"manifest":{"app":{"background":{"scripts":["craw_background.js"]}},"current_locale":"fr","default_locale":"en","description":"Paiements via le Chrome Web Store","display_in_launcher":false,"display_in_new_tab_page":false,"icons":{"128":"images/icon_128.png","16":"images/icon_16.png"},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrKfMnLqViEyokd1wk57FxJtW2XXpGXzIHBzv9vQI/01UsuP0IV5/lj0wx7zJ/xcibUgDeIxobvv9XD+zO1MdjMWuqJFcKuSS4Suqkje6u+pMrTSGOSHq1bmBVh0kpToN8YoJs/P/yrRd7FEtAXTaFTGxQL4C385MeXSjaQfiRiQIDAQAB","manifest_version":2,"minimum_chrome_version":"29","name":"Paiements via le Chrome Web Store","oauth2":{"auto_approve":true,"client_id":"203784468217.apps.googleusercontent.com","scopes":["https://www.googleapis.com/auth/sierra","https://www.googleapis.com/auth/sierrasandbox","https://www.googleapis.com/auth/chromewebstore","https://www.googleapis.com/auth/chromewebstore.readonly"]},"permissions":["identity","webview","https://www.google.com/","https://www.googleapis.com/*","https://payments.google.com/payments/v4/js/integrator.js","https://sandbox.google.com/payments/v4/js/integrator.js"],"update_url":"https://clients2.google.com/service/update2/crx","version":"1.0.0.4"},"never_activated_since_loaded":true,"path":"nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0","preferences":{},"regular_only_preferences":{},"running":false,"state":1,"was_installed_by_default":true,"was_installed_by_oem":false}}},"gcm":{"product_category_for_subtypes":"org.chromium.linux"},"http_original_content_length":"775707","http_received_content_length":"775707","invalidator":{"client_id":"wlW4rHNqtxQXsVWb+B2f8A=="},"language_model_counters":{"fr":1},"media":{"device_id_salt":"XEn3VhYrwgzqBuqOYNSNEg=="},"net":{"network_qualities":{",1":"4G"}},"pinned_tabs":[],"plugins":{"plugins_list":[]},"profile":{"avatar_bubble_tutorial_shown":2,"avatar_index":26,"content_settings":{"domain_to_origin_migration_status":1,"exceptions":{"app_banner":{},"auto_select_certificate":{},"automatic_downloads":{},"autoplay":{},"background_sync":{},"bluetooth_guard":{},"cookies":{},"durable_storage":{},"geolocation":{},"images":{},"important_site_info":{},"javascript":{},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"notifications":{},"plugins":{},"popups":{},"ppapi_broker":{},"prompt_no_decision_count":{},"protocol_handler":{},"site_engagement":{},"ssl_cert_decisions":{},"usb_chooser_data":{}},"pref_version":1},"created_by_version":"57.0.2987.98","exit_type":"Normal","exited_cleanly":true,"local_profile_id":8281695,"managed_user_id":"","name":"Personne 1"},"protection":{"macs":{"browser":{"show_home_button":"904452986128BBEE5A7B1FFB8F342100C3150E3D9FD76C4105DF33EB021E22FD"},"default_search_provider_data":{"template_url_data":"575D258E47F940C6887685ABA99A5839CBFE4BA30863349DFE0D0C375AAB8816"},"extensions":{"settings":{"ahfgeienlihckogmohjhadlkjgocpleb":"450A15F2BE8FB703C79F6187A184A27CAC7DBC8E6BE30A0E7955F6C8DDA452B4","bepbmhgboaologfdajaanbcjmnhjmhfn":"8A21763201BA02BE4B6B57D100F2D16A45163FAF614511683823AC03AC93A582","eemcgdkfndhakfknompkggombfjjjeno":"168DB7C242F096B20C60541D9B5C1D3834CD0F8601B1D1EAF228501CA4961C50","kmendfapggjehodndflmmgagdbamhnfd":"FC4870265F00F23292E1DEB6FE2CF5ECB9525E1EC5BDFFC054CF7DC69124D72F","mfehgcgbbipciphmccgaenjidiccnmng":"CDED4726B1C6AA8086A5FFEAB1428199F203E17AB3D3E52A05A9E47497AD64FA","mhjfbmdgcfjbbpaeojofohoefgiehjai":"2FE7B972C5D6503B170685C6977F36BC42DD241B27BBBEB43B39127237DAB9EA","nmmhkkegccagdldgiimedpiccmgmieda":"19DFA1C9857E18387C394CA97A272951DBAFF6CF72D8EE92CBDD13E7BD7C5AE8"}},"google":{"services":{"account_id":"E5B4CD7C5FA271A47D07D462465AFD63DBF6A8CDFAFEF4839D13F8F552131486","last_account_id":"6C67156FD15665D53CD24B5098D16B462BA8B8A0EFDD969A317C3235E973A4A3","last_username":"24FCEF9BF7DF12A2935BE143E58951E09DBAA1D3E0E24430C0FF93009F5D6AFD","username":"D26BCA1B2F99EDF1D42826D14541328D9E374F4559553FC3BB7E76405AC31AE2"}},"homepage":"B1E9FE8108A84F532486D13AAC43C0AFDA16D3DFC9EB2F743AEE11F89F2F163E","homepage_is_newtabpage":"3680F776D17E3C099431BAF5381FAB9BCC0C2C70FEA4C74D12324BC94A207119","pinned_tabs":"699F1AC92729A024B80605AFC3C63BFB2A35B70C4214581BBE108F851528E9E8","prefs":{"preference_reset_time":"95C909F3D0669D5931907B455F099C510E7770D9F0BA6FF13E4C76101B44F757"},"safebrowsing":{"incidents_sent":"569707D9A4676B72F48BE92B740BE3EF895419C8A646F1AE1BA70BD9C3B41845"},"search_provider_overrides":"1E1EBA3A4DC28A23BEFCF6ED5D71CE71E9814DD587A305F6B14F72E834AF75DD","session":{"restore_on_startup":"F9BD26F5D1AA6AB5258754888529CB2A82AE68D1703BCC2A97DEAEE5DDDA190E","startup_urls":"8BB8DBC1D7CA5C58F821C38254FB2B9C874F8EE9B9905B57DE48C731C6C91837"}}},"spellcheck":{"dictionaries":["fr"],"dictionary":""}}
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/QuotaManager b/skels/direction/.config/chromium/Default/QuotaManager
new file mode 100644
index 0000000000000000000000000000000000000000..550f853f7b574fef1219637aa137bc74ca9b2464
Binary files /dev/null and b/skels/direction/.config/chromium/Default/QuotaManager differ
diff --git a/skels/direction/.config/chromium/Default/QuotaManager-journal b/skels/direction/.config/chromium/Default/QuotaManager-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/README b/skels/direction/.config/chromium/Default/README
new file mode 100644
index 0000000000000000000000000000000000000000..545cc6279beb0bd80ec9035d7ea1eee587da8d74
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/README
@@ -0,0 +1 @@
+Chromium settings and storage represent user-selected preferences and information and MUST not be extracted, overwritten or modified except through Chromium defined APIs.
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/Secure Preferences b/skels/direction/.config/chromium/Default/Secure Preferences
new file mode 100644
index 0000000000000000000000000000000000000000..5fa475e9e9952486ce7590ef93d377424a89bf1c
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Secure Preferences	
@@ -0,0 +1 @@
+{"protection":{"super_mac":"B613679A0814D9EC772F95D778C35FC5FF1697C493715653C6C712144292C5AD"}}
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/ac8fc8821ce50334_0 b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/ac8fc8821ce50334_0
new file mode 100644
index 0000000000000000000000000000000000000000..bb727343f847089c9552f5a394fb723d8bf5f266
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/ac8fc8821ce50334_0 differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/fdf2cfeb8ad0eeac_0 b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/fdf2cfeb8ad0eeac_0
new file mode 100644
index 0000000000000000000000000000000000000000..a82d7a88424a6a4d8e1df826a4c14ac75080f9f2
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/fdf2cfeb8ad0eeac_0 differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index
new file mode 100644
index 0000000000000000000000000000000000000000..5ede15eb1eade1cad162d118dfe341e51f14152e
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index-dir/the-real-index b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index-dir/the-real-index
new file mode 100644
index 0000000000000000000000000000000000000000..a6f07eb418c4c2639879feef92ee3421b7e89102
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/3f2baba2-15f8-474b-a422-04af0dfc93e5/index-dir/the-real-index differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt
new file mode 100644
index 0000000000000000000000000000000000000000..98b342e0c19a790152f4bcfe5542ba91cbcb23c5
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt	
@@ -0,0 +1,3 @@
+
+@
+newtab-static-48rkas$3f2baba2-15f8-474b-a422-04af0dfc93e5��https://www.google.com/
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/000003.log b/skels/direction/.config/chromium/Default/Service Worker/Database/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..afe9f68bb3bed17d4bf408228f29e2c1b0c3311d
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/Database/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/CURRENT b/skels/direction/.config/chromium/Default/Service Worker/Database/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Service Worker/Database/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/LOCK b/skels/direction/.config/chromium/Default/Service Worker/Database/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/LOG b/skels/direction/.config/chromium/Default/Service Worker/Database/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..8a596cc0731e2a9d994ca5eaece4ab63b39cb9d0
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Service Worker/Database/LOG	
@@ -0,0 +1,3 @@
+2018/04/24-10:12:30.705 2253 Reusing MANIFEST /home/direction/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
+2018/04/24-10:12:30.712 2253 Recovering log #3
+2018/04/24-10:12:30.968 2253 Reusing old log /home/direction/.config/chromium/Default/Service Worker/Database/000003.log 
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/LOG.old b/skels/direction/.config/chromium/Default/Service Worker/Database/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..00fbd0b68e44c971dfed82665312c96e853e8ae5
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Service Worker/Database/LOG.old	
@@ -0,0 +1,3 @@
+2018/04/24-09:26:53.329 3569 Reusing MANIFEST /home/direction/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
+2018/04/24-09:26:53.329 3569 Recovering log #3
+2018/04/24-09:26:53.329 3569 Reusing old log /home/direction/.config/chromium/Default/Service Worker/Database/000003.log 
diff --git a/skels/direction/.config/chromium/Default/Service Worker/Database/MANIFEST-000001 b/skels/direction/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/Database/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0
new file mode 100644
index 0000000000000000000000000000000000000000..364ca2fa2a69bbc25702f1c5992e180227743ab0
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1
new file mode 100644
index 0000000000000000000000000000000000000000..3b7fefbcfee8433aef60b8c11d63d24545162ec5
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index
new file mode 100644
index 0000000000000000000000000000000000000000..5ede15eb1eade1cad162d118dfe341e51f14152e
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index differ
diff --git a/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index
new file mode 100644
index 0000000000000000000000000000000000000000..10e6f808bac4c770f48b3b69312e437e2f442b4c
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index differ
diff --git a/skels/direction/.config/chromium/Default/Session Storage/000003.log b/skels/direction/.config/chromium/Default/Session Storage/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..de93d7f20e569987c314931af464a1f39ec1cd7c
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Session Storage/000003.log differ
diff --git a/skels/direction/.config/chromium/Default/Session Storage/CURRENT b/skels/direction/.config/chromium/Default/Session Storage/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Session Storage/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Session Storage/LOCK b/skels/direction/.config/chromium/Default/Session Storage/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Session Storage/LOG b/skels/direction/.config/chromium/Default/Session Storage/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..97b9eba722ada5927b12dd6e5ef53ee407d59b0b
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Session Storage/LOG	
@@ -0,0 +1,3 @@
+2018/04/24-09:26:53.603 3570 Reusing MANIFEST /home/direction/.config/chromium/Default/Session Storage/MANIFEST-000001
+2018/04/24-09:26:53.603 3570 Recovering log #3
+2018/04/24-09:26:53.603 3570 Reusing old log /home/direction/.config/chromium/Default/Session Storage/000003.log 
diff --git a/skels/direction/.config/chromium/Default/Session Storage/LOG.old b/skels/direction/.config/chromium/Default/Session Storage/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..1f5baf6504f7b90058331f88a953a810fd54a2b6
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/Session Storage/LOG.old	
@@ -0,0 +1 @@
+2018/04/24-09:26:21.041 3138 Reusing MANIFEST /home/direction/.config/chromium/Default/Session Storage/MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/Session Storage/MANIFEST-000001 b/skels/direction/.config/chromium/Default/Session Storage/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Session Storage/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/Shortcuts b/skels/direction/.config/chromium/Default/Shortcuts
new file mode 100644
index 0000000000000000000000000000000000000000..50aea2f5679a9747085eef797b9a5ddce6419ffb
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Shortcuts differ
diff --git a/skels/direction/.config/chromium/Default/Shortcuts-journal b/skels/direction/.config/chromium/Default/Shortcuts-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/Top Sites b/skels/direction/.config/chromium/Default/Top Sites
new file mode 100644
index 0000000000000000000000000000000000000000..408e423273205019ba3f4fe8e65e4971166c61d8
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Top Sites differ
diff --git a/skels/direction/.config/chromium/Default/Top Sites-journal b/skels/direction/.config/chromium/Default/Top Sites-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/TransportSecurity b/skels/direction/.config/chromium/Default/TransportSecurity
new file mode 100644
index 0000000000000000000000000000000000000000..83ab4ca5683328be43e2feb36688591e00458a25
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/TransportSecurity
@@ -0,0 +1,20 @@
+{
+   "+2d9kUfMIx92ZVJdRjnRSxThvxovEZ0tCsn5RhkqYXo=": {
+      "dynamic_spki_hashes_expiry": 0.0,
+      "expiry": 1524558414.254087,
+      "mode": "force-https",
+      "pkp_include_subdomains": false,
+      "pkp_observed": 0.0,
+      "sts_include_subdomains": false,
+      "sts_observed": 1524554814.25409
+   },
+   "5EdUoB7YUY9zZV+2DkgVXgho8WUvp+D+6KpeUOhNQIM=": {
+      "dynamic_spki_hashes_expiry": 0.0,
+      "expiry": 1524641177.246212,
+      "mode": "force-https",
+      "pkp_include_subdomains": false,
+      "pkp_observed": 0.0,
+      "sts_include_subdomains": false,
+      "sts_observed": 1524554777.246214
+   }
+}
diff --git a/skels/direction/.config/chromium/Default/Visited Links b/skels/direction/.config/chromium/Default/Visited Links
new file mode 100644
index 0000000000000000000000000000000000000000..8004497f3d255d3d64bf30725f4ce5a323d1068f
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Visited Links differ
diff --git a/skels/direction/.config/chromium/Default/Web Data b/skels/direction/.config/chromium/Default/Web Data
new file mode 100644
index 0000000000000000000000000000000000000000..7326f37d384acc7a72b47f36e33f333db494bc83
Binary files /dev/null and b/skels/direction/.config/chromium/Default/Web Data differ
diff --git a/skels/direction/.config/chromium/Default/Web Data-journal b/skels/direction/.config/chromium/Default/Web Data-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOCK b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..240e59b47b47f4378111902c47a87176a2a37a71
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG
@@ -0,0 +1,3 @@
+2018/04/24-10:12:29.950 2173 Reusing MANIFEST /home/direction/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
+2018/04/24-10:12:29.950 2173 Recovering log #3
+2018/04/24-10:12:29.950 2173 Reusing old log /home/direction/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log 
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..57700118d7d831ebcea9a40c912ca631384c3588
--- /dev/null
+++ b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old
@@ -0,0 +1,3 @@
+2018/04/24-09:26:53.281 3570 Reusing MANIFEST /home/direction/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
+2018/04/24-09:26:53.281 3570 Recovering log #3
+2018/04/24-09:26:53.281 3570 Reusing old log /home/direction/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log 
diff --git a/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001 b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/direction/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001 differ
diff --git a/skels/direction/.config/chromium/Default/databases/Databases.db b/skels/direction/.config/chromium/Default/databases/Databases.db
new file mode 100644
index 0000000000000000000000000000000000000000..9bea56b394c580507c67562ab45db04dd0dbccc1
Binary files /dev/null and b/skels/direction/.config/chromium/Default/databases/Databases.db differ
diff --git a/skels/direction/.config/chromium/Default/databases/Databases.db-journal b/skels/direction/.config/chromium/Default/databases/Databases.db-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Default/previews_opt_out.db b/skels/direction/.config/chromium/Default/previews_opt_out.db
new file mode 100644
index 0000000000000000000000000000000000000000..d8a6a00e40623b0e88215a4964b1f243561f2e27
Binary files /dev/null and b/skels/direction/.config/chromium/Default/previews_opt_out.db differ
diff --git a/skels/direction/.config/chromium/Default/previews_opt_out.db-journal b/skels/direction/.config/chromium/Default/previews_opt_out.db-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/First Run b/skels/direction/.config/chromium/First Run
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Local State b/skels/direction/.config/chromium/Local State
new file mode 100644
index 0000000000000000000000000000000000000000..834b1b01b705debe1802b8e80ae3cb80c2858f6f
--- /dev/null
+++ b/skels/direction/.config/chromium/Local State	
@@ -0,0 +1 @@
+{"browser":{"last_redirect_origin":""},"easy_unlock":{"user_prefs":{"":{"easy_unlock.proximity_required":false}}},"gl_renderer_string":"Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)","gl_vendor_string":"VMware, Inc.","gl_version_string":"3.0 Mesa 10.3.2","hardware_acceleration_mode_previous":true,"policy":{"last_statistics_update":"13169028372210572"},"profile":{"info_cache":{"Default":{"active_time":1524554773.661969,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_26","background_apps":false,"gaia_id":"","is_ephemeral":false,"is_omitted_from_profile_list":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","name":"Personne 1","stats_bookmarks":0,"stats_browsing_history":0,"stats_passwords":0,"stats_settings":65,"user_name":""}},"last_active_profiles":[]},"rappor":{"cohort_seed":121,"secret":"ZpxsoNMNX+RDE52P5BjH4q/N+q1tyJdJLeN8xQ7PgCdIL2V+qHxbx1cw5nuEW4W5"},"show-first-run-bubble-option":0,"shutdown":{"num_processes":0,"num_processes_slow":0,"type":0},"startup_metric":{"last_startup_timestamp":"13169031146090000","last_startup_version":"57.0.2987.98","same_version_startup_count":3},"supervised_users":{"whitelists":{}},"uninstall_metrics":{"installation_date2":"1524554772","launch_count":"3"},"user_experience_metrics":{"low_entropy_source2":4497,"session_id":2,"stability":{"breakpad_registration_fail":3,"breakpad_registration_ok":0,"child_process_crash_count":0,"crash_count":0,"debugger_not_present":3,"debugger_present":0,"deferred_count":0,"discard_count":1,"execution_phase":700,"exited_cleanly":true,"extension_renderer_crash_count":0,"extension_renderer_failed_launch_count":0,"extension_renderer_launch_count":0,"incomplete_session_end_count":0,"last_timestamp_sec":"1524557602","launch_count":3,"launch_time_sec":"1524557549","page_load_count":0,"plugin_stats2":[{"crashes":0,"instances":0,"launches":1,"loading_errors":0,"name":"Shockwave Flash"}],"renderer_crash_count":0,"renderer_failed_launch_count":0,"renderer_hang_count":0,"renderer_launch_count":0,"session_end_completed":true,"stats_buildtime":"1488690000","stats_version":"57.0.2987.98-64-devel","version_mismatch_count":0}},"was":{"restarted":false}}
\ No newline at end of file
diff --git a/skels/direction/.config/chromium/Safe Browsing Channel IDs b/skels/direction/.config/chromium/Safe Browsing Channel IDs
new file mode 100644
index 0000000000000000000000000000000000000000..3c31c38d3659562fd65cb4a9f1f1c0e24b9779d0
Binary files /dev/null and b/skels/direction/.config/chromium/Safe Browsing Channel IDs differ
diff --git a/skels/direction/.config/chromium/Safe Browsing Channel IDs-journal b/skels/direction/.config/chromium/Safe Browsing Channel IDs-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/Safe Browsing Cookies b/skels/direction/.config/chromium/Safe Browsing Cookies
new file mode 100644
index 0000000000000000000000000000000000000000..51422ad34de72ea4603cef057e6ebaa991c5ddd3
Binary files /dev/null and b/skels/direction/.config/chromium/Safe Browsing Cookies differ
diff --git a/skels/direction/.config/chromium/Safe Browsing Cookies-journal b/skels/direction/.config/chromium/Safe Browsing Cookies-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.config/chromium/ShaderCache/GPUCache/data_0 b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_0
new file mode 100644
index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5
Binary files /dev/null and b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_0 differ
diff --git a/skels/direction/.config/chromium/ShaderCache/GPUCache/data_1 b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_1
new file mode 100644
index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc
Binary files /dev/null and b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_1 differ
diff --git a/skels/direction/.config/chromium/ShaderCache/GPUCache/data_2 b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_2
new file mode 100644
index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b
Binary files /dev/null and b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_2 differ
diff --git a/skels/direction/.config/chromium/ShaderCache/GPUCache/data_3 b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_3
new file mode 100644
index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10
Binary files /dev/null and b/skels/direction/.config/chromium/ShaderCache/GPUCache/data_3 differ
diff --git a/skels/direction/.config/chromium/ShaderCache/GPUCache/index b/skels/direction/.config/chromium/ShaderCache/GPUCache/index
new file mode 100644
index 0000000000000000000000000000000000000000..aaceb79be9c1745566e2bdbd87f3ff22564ce47a
Binary files /dev/null and b/skels/direction/.config/chromium/ShaderCache/GPUCache/index differ
diff --git a/skels/direction/.config/lxpanel/default/panels/panel b/skels/direction/.config/lxpanel/default/panels/panel
index 65c08834f5b3903adc76ce8a29b4559b50e85c7f..ba2dc48ef9d5bc5ca5678e6ac2250c496678815a 100644
--- a/skels/direction/.config/lxpanel/default/panels/panel
+++ b/skels/direction/.config/lxpanel/default/panels/panel
@@ -35,7 +35,7 @@ Plugin {
       id=menu://applications/Internet/exo-mail-reader.desktop
     }
     Button {
-      id=menu://applications/Internet/firefox-esr.desktop
+      id=menu://applications/Internet/exo-web-browser.desktop
     }
   }
 }
diff --git a/skels/direction/.config/lxsession/fluxbox/desktop.conf b/skels/direction/.config/lxsession/fluxbox/desktop.conf
new file mode 100644
index 0000000000000000000000000000000000000000..175a374443ea93a3e876b3f767eb5f5d7b5576ca
--- /dev/null
+++ b/skels/direction/.config/lxsession/fluxbox/desktop.conf
@@ -0,0 +1,9 @@
+[Mouse]
+AccFactor=20
+AccThreshold=10
+LeftHanded=0
+
+[Keyboard]
+Delay=500
+Interval=30
+Beep=1
diff --git a/skels/direction/.config/menus/xfce-applications.menu b/skels/direction/.config/menus/xfce-applications.menu
index 58441f3de168585e8c56dafb6f3ff0aae5bd7951..bb0f2056b7d0e11d7525c856d864c186aaf59514 100644
--- a/skels/direction/.config/menus/xfce-applications.menu
+++ b/skels/direction/.config/menus/xfce-applications.menu
@@ -57,6 +57,7 @@
 			<Filename>JB-policytool-jdk8.desktop</Filename>
 			<Filename>gpk-application.desktop</Filename>
 			<Filename>gpk-prefs.desktop</Filename>
+			<Filename>lxinput.desktop</Filename>
 			<Merge type="files" />
 		</Layout>
 	</Menu>
@@ -192,7 +193,6 @@
 			<Filename>activer-serveur.desktop</Filename>
 			<Filename>Appliplanet.desktop</Filename>
 			<Filename>Ardora.desktop</Filename>
-			<Filename>calculatice.desktop</Filename>
 			<Filename>DrGeo.desktop</Filename>
 			<Filename>jclic.desktop</Filename>
 			<Filename>jclicauthor.desktop</Filename>
@@ -246,6 +246,7 @@
 			<Filename>firefox-esr.desktop</Filename>
 			<Filename>JB-javaws-jdk8.desktop</Filename>
 			<Filename>thunderbird.desktop</Filename>
+			<Filename>chromium.desktop</Filename>
 			<Merge type="files" />
 		</Layout>
 	</Menu>
diff --git a/skels/direction/.config/pulse/cookie b/skels/direction/.config/pulse/cookie
new file mode 100644
index 0000000000000000000000000000000000000000..46efa30704b9692ffd6b44b196129f451307809b
Binary files /dev/null and b/skels/direction/.config/pulse/cookie differ
diff --git a/skels/direction/.config/rox.sourceforge.net/ROX-Filer/pb_1 b/skels/direction/.config/rox.sourceforge.net/ROX-Filer/pb_1
index 5c17e0be6c2c12bffb5572086d88f7db76222d7e..c06f46ac287e73606709507cc7fb765ac0917091 100644
--- a/skels/direction/.config/rox.sourceforge.net/ROX-Filer/pb_1
+++ b/skels/direction/.config/rox.sourceforge.net/ROX-Filer/pb_1
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <pinboard>
   <backdrop style="Stretched">/usr/share/backgrounds/chameau.png</backdrop>
-  <icon x="32" y="352" label="Documents" locked="true">/home/direction/.local/share/applications/pcmanfm.desktop</icon>
-  <icon x="32" y="256" label="thunderbird" locked="true">/usr/share/applications/thunderbird.desktop</icon>
-  <icon x="32" y="160" label="firefox" locked="true">/usr/share/applications/firefox-esr.desktop</icon>
+  <icon x="32" y="160" label="chromium" locked="true">/usr/share/applications/chromium.desktop</icon>
   <icon x="32" y="64" label="libreoffice" locked="true">/usr/share/applications/libreoffice-startcenter.desktop</icon>
+  <icon x="32" y="256" label="thunderbird" locked="true">/usr/share/applications/thunderbird.desktop</icon>
+  <icon x="32" y="352" label="Documents" locked="true">/home/direction/.local/share/applications/pcmanfm.desktop</icon>
 </pinboard>
diff --git a/skels/direction/.config/xfce4/helpers.rc b/skels/direction/.config/xfce4/helpers.rc
index 82a12644b3eb26060a677e54112177c202dc0d97..854caf5c0f2a7c587d9b88aec5688e0427e0d0b4 100644
--- a/skels/direction/.config/xfce4/helpers.rc
+++ b/skels/direction/.config/xfce4/helpers.rc
@@ -1,5 +1,5 @@
 FileManager=pcmanfm
-WebBrowser=firefox
+WebBrowser=chromium
 MailReader=thunderbird
 TerminalEmulator=roxterm
 
diff --git a/skels/direction/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0 b/skels/direction/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0
new file mode 100644
index 0000000000000000000000000000000000000000..8f82795092a4bba9d58f7e9f6a18c8fb38d44c42
--- /dev/null
+++ b/skels/direction/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0
@@ -0,0 +1,8 @@
+# This file allows processes on the machine with id 873a1ac305714102a8cb568aa277bfb7 using 
+# display :0 to find the D-Bus session bus with the below address.
+# If the DBUS_SESSION_BUS_ADDRESS environment variable is set, it will
+# be used rather than this file.
+# See "man dbus-launch" for more details.
+DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-MPDq4LQwbM,guid=d1b0d18507db3e0d09a0dda15adee55e
+DBUS_SESSION_BUS_PID=1805
+DBUS_SESSION_BUS_WINDOWID=4194305
diff --git a/skels/direction/.local/share/applications/firefox-esr.desktop b/skels/direction/.local/share/applications/firefox-esr.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..3e1b2bf453e0259c649dc53329d29deabcc86563
--- /dev/null
+++ b/skels/direction/.local/share/applications/firefox-esr.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Navigateur Web Firefox ESR
+GenericName=Navigateur Web
+Comment=Navigue sur Internet
+Icon=firefox-esr
+Exec=/usr/lib/firefox-esr/firefox-esr %u
+NoDisplay=true
+Categories=Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
+StartupWMClass=Firefox-esr
+StartupNotify=true
+Terminal=false
diff --git a/skels/direction/.local/share/applications/fskbsetting.desktop b/skels/direction/.local/share/applications/fskbsetting.desktop
index 3e4cb2b45a267173352e78f92a3d271e39715e19..6f70583c54edbd857f44f4f94f6ff7b25a4f91cd 100644
--- a/skels/direction/.local/share/applications/fskbsetting.desktop
+++ b/skels/direction/.local/share/applications/fskbsetting.desktop
@@ -6,7 +6,7 @@ GenericName=Clavier
 Comment=Configures keyboard options and layouts.
 Icon=preferences-desktop-keyboard
 Exec=fskbsetting
-NoDisplay=true
+NoDisplay=false
 Categories=DesktopSettings;GTK;Settings;
 StartupNotify=true
 Terminal=false
diff --git a/skels/direction/.local/share/applications/lxinput.desktop b/skels/direction/.local/share/applications/lxinput.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..836849e5352ae592117dcb8fd0d31171aab1d01d
--- /dev/null
+++ b/skels/direction/.local/share/applications/lxinput.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Clavier et souris
+Comment=Configure le clavier, la souris et d'autres périphériques d'entrée
+Icon=input-keyboard
+Exec=lxinput
+NoDisplay=false
+NotShowIn=GNOME;KDE
+Categories=GTK;HardwareSettings;Settings;X-LXDE-Settings;
+StartupNotify=true
+Terminal=false
diff --git a/skels/direction/.mozilla/firefox/console.log b/skels/direction/.mozilla/firefox/console.log
new file mode 100644
index 0000000000000000000000000000000000000000..9ae39f66795d96065c88240e4d80d19ae17fec04
--- /dev/null
+++ b/skels/direction/.mozilla/firefox/console.log
@@ -0,0 +1,549 @@
+
+*** Console log: 2018-04-24 09:24:09 ***
+[JavaScript Error: "uncaught exception: 2147500036"]
+1524554648819	addons.webextension.uBlock0@raymondhill.net	WARN	Loading extension 'uBlock0@raymondhill.net': Reading manifest: Error processing permissions.1: Unknown permission "privacy"
+[JavaScript Error: "command.suggested_key is null" {file: "chrome://browser/content/ext-commands.js" line: 79}]
+loadCommandsFromManifest@chrome://browser/content/ext-commands.js:79:11
+CommandList@chrome://browser/content/ext-commands.js:24:19
+@chrome://browser/content/ext-commands.js:222:30
+runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:71:14
+emit/promises<@resource://gre/modules/ExtensionUtils.jsm:384:55
+emit@resource://gre/modules/ExtensionUtils.jsm:383:20
+runManifest@resource://gre/modules/Extension.jsm:733:23
+startup/<@resource://gre/modules/Extension.jsm:813:14
+
+[JavaScript Error: "NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIIdleService.removeIdleObserver]" {file: "resource://app/components/nsBrowserGlue.js" line: 499}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Error: Invalid option requestBody" {file: "resource://gre/modules/WebRequest.jsm" line: 88}]
+[JavaScript Error: "TypeError: commandsMap.get(...) is undefined" {file: "chrome://browser/content/ext-commands.js" line: 252}]
+[JavaScript Error: "InvalidStateError" {file: "moz-extension://d0f65460-83d4-411f-b15a-fd817f7274e7/js/vapi-cachestorage.js" line: 122}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+AddonManagerInternal.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:2369:13
+this.AddonManager.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:3531:12
+BackgroundPage.prototype.build<@chrome://extensions/content/ext-backgroundPage.js:108:7
+TaskImpl_run@resource://gre/modules/Task.jsm:319:42
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "TypeError: AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+1524554649877	Toolkit.Telemetry	WARN	TelemetryEnvironment::registerChangeListener - already shutdown
+1524554649878	Toolkit.Telemetry	WARN	TelemetrySession::detachObservers - Failed to remove cycle-collector-begin: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIObserverService.removeObserver]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/TelemetrySession.jsm :: detachObservers :: line 1438"  data: no] Stack trace: detachObservers()@resource://gre/modules/TelemetrySession.jsm:1438 < uninstall()@resource://gre/modules/TelemetrySession.jsm:1774 < Impl.shutdownChromeProcess/cleanup()@resource://gre/modules/TelemetrySession.jsm:1958 < Impl.shutdownChromeProcess()@resource://gre/modules/TelemetrySession.jsm:1990 < this.TelemetrySession<.shutdown()@resource://gre/modules/TelemetrySession.jsm:613 < Impl._cleanupOnShutdown<()@resource://gre/modules/TelemetryController.jsm:778 < TaskImpl_run()@resource://gre/modules/Task.jsm:319 < Handler.prototype.process()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932 < this.PromiseWalker.walkerLoop()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813 < this.PromiseWalker.scheduleWalkerLoop/<()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747 < Spinner.prototype.observe()@resource://gre/modules/AsyncShutdown.jsm:550
+1524554649923	Toolkit.Telemetry	WARN	TelemetryStorage::_scanArchive - have seen this id before: 451ebd8d-5864-4266-bb34-5e77f9bb80b7, overwrite: false
+
+*** Console log: 2018-04-24 09:24:11 ***
+[JavaScript Error: "uncaught exception: 2147500036"]
+1524554650529	addons.webextension.uBlock0@raymondhill.net	WARN	Loading extension 'uBlock0@raymondhill.net': Reading manifest: Error processing permissions.1: Unknown permission "privacy"
+[JavaScript Error: "command.suggested_key is null" {file: "chrome://browser/content/ext-commands.js" line: 79}]
+loadCommandsFromManifest@chrome://browser/content/ext-commands.js:79:11
+CommandList@chrome://browser/content/ext-commands.js:24:19
+@chrome://browser/content/ext-commands.js:222:30
+runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:71:14
+emit/promises<@resource://gre/modules/ExtensionUtils.jsm:384:55
+emit@resource://gre/modules/ExtensionUtils.jsm:383:20
+runManifest@resource://gre/modules/Extension.jsm:733:23
+startup/<@resource://gre/modules/Extension.jsm:813:14
+
+[JavaScript Error: "NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIIdleService.removeIdleObserver]" {file: "resource://app/components/nsBrowserGlue.js" line: 499}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Error: Invalid option requestBody" {file: "resource://gre/modules/WebRequest.jsm" line: 88}]
+[JavaScript Error: "TypeError: commandsMap.get(...) is undefined" {file: "chrome://browser/content/ext-commands.js" line: 252}]
+[JavaScript Error: "InvalidStateError" {file: "moz-extension://d0f65460-83d4-411f-b15a-fd817f7274e7/js/vapi-cachestorage.js" line: 122}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+AddonManagerInternal.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:2369:13
+this.AddonManager.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:3531:12
+BackgroundPage.prototype.build<@chrome://extensions/content/ext-backgroundPage.js:108:7
+TaskImpl_run@resource://gre/modules/Task.jsm:319:42
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "TypeError: AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+1524554651060	Toolkit.Telemetry	WARN	TelemetryEnvironment::registerChangeListener - already shutdown
+1524554651061	Toolkit.Telemetry	WARN	TelemetrySession::detachObservers - Failed to remove cycle-collector-begin: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIObserverService.removeObserver]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/TelemetrySession.jsm :: detachObservers :: line 1438"  data: no] Stack trace: detachObservers()@resource://gre/modules/TelemetrySession.jsm:1438 < uninstall()@resource://gre/modules/TelemetrySession.jsm:1774 < Impl.shutdownChromeProcess/cleanup()@resource://gre/modules/TelemetrySession.jsm:1958 < Impl.shutdownChromeProcess()@resource://gre/modules/TelemetrySession.jsm:1990 < this.TelemetrySession<.shutdown()@resource://gre/modules/TelemetrySession.jsm:613 < Impl._cleanupOnShutdown<()@resource://gre/modules/TelemetryController.jsm:778 < TaskImpl_run()@resource://gre/modules/Task.jsm:319 < Handler.prototype.process()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932 < this.PromiseWalker.walkerLoop()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813 < this.PromiseWalker.scheduleWalkerLoop/<()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747 < Spinner.prototype.observe()@resource://gre/modules/AsyncShutdown.jsm:550
+1524554651096	Toolkit.Telemetry	WARN	TelemetryStorage::_scanArchive - have seen this id before: 536d9554-0350-4900-9674-6128473dce06, overwrite: false
+
+*** Console log: 2018-04-24 09:25:21 ***
+[JavaScript Error: "uncaught exception: 2147500036"]
+1524554720379	addons.webextension.uBlock0@raymondhill.net	WARN	Loading extension 'uBlock0@raymondhill.net': Reading manifest: Error processing permissions.1: Unknown permission "privacy"
+[JavaScript Error: "command.suggested_key is null" {file: "chrome://browser/content/ext-commands.js" line: 79}]
+loadCommandsFromManifest@chrome://browser/content/ext-commands.js:79:11
+CommandList@chrome://browser/content/ext-commands.js:24:19
+@chrome://browser/content/ext-commands.js:222:30
+runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:71:14
+emit/promises<@resource://gre/modules/ExtensionUtils.jsm:384:55
+emit@resource://gre/modules/ExtensionUtils.jsm:383:20
+runManifest@resource://gre/modules/Extension.jsm:733:23
+startup/<@resource://gre/modules/Extension.jsm:813:14
+
+[JavaScript Error: "NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIIdleService.removeIdleObserver]" {file: "resource://app/components/nsBrowserGlue.js" line: 499}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+WebRequestEventManager/register@chrome://extensions/content/ext-webRequest.js:65:20
+addListener@resource://gre/modules/ExtensionUtils.jsm:711:53
+api/<.addListener@resource://gre/modules/ExtensionUtils.jsm:738:50
+addListener@resource://gre/modules/ExtensionParent.jsm:524:71
+receiveMessage@resource://gre/modules/ExtensionParent.jsm:407:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Error: Invalid option requestBody" {file: "resource://gre/modules/WebRequest.jsm" line: 88}]
+[JavaScript Error: "TypeError: commandsMap.get(...) is undefined" {file: "chrome://browser/content/ext-commands.js" line: 252}]
+[JavaScript Error: "InvalidStateError" {file: "moz-extension://d0f65460-83d4-411f-b15a-fd817f7274e7/js/vapi-cachestorage.js" line: 122}]
+[JavaScript Error: "Invalid match pattern: 'ws://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Invalid match pattern: 'wss://*/*'" {file: "resource://gre/modules/MatchPattern.jsm" line: 52}]
+SingleMatchPattern@resource://gre/modules/MatchPattern.jsm:52:7
+this.MatchPattern/this.matchers<@resource://gre/modules/MatchPattern.jsm:111:34
+this.MatchPattern@resource://gre/modules/MatchPattern.jsm:111:21
+addContentPolicy@resource://gre/modules/WebRequestContent.js:51:21
+receiveMessage@resource://gre/modules/WebRequestContent.js:59:9
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+AddonManagerInternal.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:2369:13
+this.AddonManager.getAddonByInstanceID@resource://gre/modules/AddonManager.jsm:3531:12
+BackgroundPage.prototype.build<@chrome://extensions/content/ext-backgroundPage.js:108:7
+TaskImpl_run@resource://gre/modules/Task.jsm:319:42
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "TypeError: AddonManagerInternal._getProviderByName(...) is undefined" {file: "resource://gre/modules/AddonManager.jsm" line: 2369}]
+[JavaScript Error: "Phase "profile-before-change" is finished, it is too late to register completion condition "ExtensionStorage: Finish writing extension data"" {file: "resource://gre/modules/AsyncShutdown.jsm" line: 692}]
+Barrier/this.client.addBlocker@resource://gre/modules/AsyncShutdown.jsm:692:15
+Spinner.prototype.addBlocker@resource://gre/modules/AsyncShutdown.jsm:503:5
+getPhase/phase<.addBlocker@resource://gre/modules/AsyncShutdown.jsm:440:7
+write@resource://gre/modules/ExtensionStorage.jsm:123:5
+set/<@resource://gre/modules/ExtensionStorage.jsm:143:14
+Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932:23
+this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813:7
+this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+[JavaScript Error: "Unchecked lastError value: Error: An unexpected error occurred" {file: "resource://gre/modules/ExtensionCommon.jsm" line: 265}]
+withLastError@resource://gre/modules/ExtensionCommon.jsm:265:9
+wrapPromise/<@resource://gre/modules/ExtensionCommon.jsm:316:11
+Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:550:9
+
+1524554720968	Toolkit.Telemetry	WARN	TelemetryEnvironment::registerChangeListener - already shutdown
+1524554720969	Toolkit.Telemetry	WARN	TelemetrySession::detachObservers - Failed to remove cycle-collector-begin: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIObserverService.removeObserver]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: resource://gre/modules/TelemetrySession.jsm :: detachObservers :: line 1438"  data: no] Stack trace: detachObservers()@resource://gre/modules/TelemetrySession.jsm:1438 < uninstall()@resource://gre/modules/TelemetrySession.jsm:1774 < Impl.shutdownChromeProcess/cleanup()@resource://gre/modules/TelemetrySession.jsm:1958 < Impl.shutdownChromeProcess()@resource://gre/modules/TelemetrySession.jsm:1990 < this.TelemetrySession<.shutdown()@resource://gre/modules/TelemetrySession.jsm:613 < Impl._cleanupOnShutdown<()@resource://gre/modules/TelemetryController.jsm:778 < TaskImpl_run()@resource://gre/modules/Task.jsm:319 < Handler.prototype.process()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:932 < this.PromiseWalker.walkerLoop()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:813 < this.PromiseWalker.scheduleWalkerLoop/<()@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747 < Spinner.prototype.observe()@resource://gre/modules/AsyncShutdown.jsm:550
+1524554720999	Toolkit.Telemetry	WARN	TelemetryStorage::_scanArchive - have seen this id before: 18453353-9c2c-4496-a85f-e91aaf104d5e, overwrite: false
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/browser-extension-data/uBlock0@raymondhill.net/storage.js b/skels/direction/.mozilla/firefox/gzylh1ps.default/browser-extension-data/uBlock0@raymondhill.net/storage.js
index 0a4740dd81fd401430b5803948a2fb6464cb0ce1..059e86f00b9b07c693b11d7a0a7e5ac732874579 100644
--- a/skels/direction/.mozilla/firefox/gzylh1ps.default/browser-extension-data/uBlock0@raymondhill.net/storage.js
+++ b/skels/direction/.mozilla/firefox/gzylh1ps.default/browser-extension-data/uBlock0@raymondhill.net/storage.js
@@ -1 +1 @@
-{"selectedFilterLists":["user-filters","assets.json","public_suffix_list.dat","ublock-resources","ublock-filters","ublock-badware","ublock-privacy","ublock-abuse","ublock-unbreak","easylist","easyprivacy","malware-0","malware-1","plowe-0"],"remoteBlacklists":{"assets/user/filters.txt":{"off":false},"assets.json":{"off":false},"assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat":{"off":false},"assets/ublock/resources.txt":{"off":false},"assets/ublock/filters.txt":{"off":false},"assets/ublock/badware.txt":{"off":false},"assets/ublock/privacy.txt":{"off":false},"ublock-abuse":{"off":false},"assets/ublock/unbreak.txt":{"off":false},"assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt":{"off":false},"assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt":{"off":false},"assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt":{"off":false},"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains":{"off":false},"assets/thirdparties/pgl.yoyo.org/as/serverlist":{"off":false},"assets/ublock/experimental.txt":{"off":true}},"compiledMagic":"vrgorlgelgws","selfieMagic":"vrgorlgelgws","version":"1.14.24","availableFilterLists":{"user-filters":{"group":"default","title":"Mes filtres","off":false,"entryCount":0,"entryUsedCount":0},"ublock-filters":{"content":"filters","group":"default","title":"uBlock filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt","assets/ublock/filters.txt"],"supportURL":"https://github.com/uBlockOrigin/uAssets/issues","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":3336,"entryUsedCount":3333},"ublock-badware":{"content":"filters","group":"default","title":"uBlock filters – Badware risks","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt","assets/ublock/badware.txt"],"supportURL":"https://github.com/gorhill/uBlock/wiki/Badware-risks","instructionURL":"https://github.com/gorhill/uBlock/wiki/Badware-risks","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":7,"entryUsedCount":7},"ublock-experimental":{"content":"filters","group":"default","title":"uBlock filters – Experimental","off":true,"contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/experimental.txt","assets/ublock/experimental.txt"],"supportURL":"https://github.com/gorhill/uBlock/wiki/Experimental-filters","instructionURL":"https://github.com/gorhill/uBlock/wiki/Experimental-filters","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"ublock-privacy":{"content":"filters","group":"default","title":"uBlock filters – Privacy","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt","assets/ublock/privacy.txt"],"hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":65,"entryUsedCount":65},"ublock-abuse":{"content":"filters","group":"default","title":"uBlock filters – Resource abuse","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt","assets/ublock/resource-abuse.txt"],"hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":166,"entryUsedCount":112},"ublock-unbreak":{"content":"filters","group":"default","title":"uBlock filters – Unbreak","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt","assets/ublock/unbreak.txt"],"hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":251,"entryUsedCount":250},"awrl-0":{"content":"filters","group":"ads","off":true,"title":"Adblock Warning Removal List","contentURL":["https://easylist-downloads.adblockplus.org/antiadblockfilters.txt"],"supportURL":"https://forums.lanik.us/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"adguard-generic":{"content":"filters","group":"ads","off":true,"title":"Adguard Base Filters","contentURL":["https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"adguard-mobile":{"content":"filters","group":"ads","off":true,"title":"Adguard Mobile Filters","ua":"mobile","contentURL":["https://filters.adtidy.org/extension/ublock/filters/11.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"easylist":{"content":"filters","group":"ads","title":"EasyList","contentURL":["https://easylist.to/easylist/easylist.txt","https://secure.fanboy.co.nz/easylist.txt","https://easylist-downloads.adblockplus.org/easylist.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/thirdparties/easylist-downloads.adblockplus.org/easylist.txt","assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt"],"supportURL":"https://forums.lanik.us/","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":75459,"entryUsedCount":75272},"adguard-spyware":{"content":"filters","group":"privacy","off":true,"title":"Adguard Spyware Filters","contentURL":["https://filters.adtidy.org/extension/ublock/filters/3.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"easyprivacy":{"content":"filters","group":"privacy","title":"EasyPrivacy","contentURL":["https://easylist.to/easylist/easyprivacy.txt","https://secure.fanboy.co.nz/easyprivacy.txt","https://easylist-downloads.adblockplus.org/easyprivacy.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt","assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt"],"supportURL":"https://forums.lanik.us/","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":13671,"entryUsedCount":13671},"fanboy-enhanced":{"content":"filters","group":"privacy","off":true,"title":"Fanboy’s Enhanced Tracking List","contentURL":["https://www.fanboy.co.nz/enhancedstats.txt"],"supportURL":"https://github.com/ryanbr/fanboy-adblock/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"disconnect-malvertising":{"content":"filters","group":"malware","off":true,"title":"Malvertising filter list by Disconnect","contentURL":["https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt"],"hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"malware-0":{"content":"filters","group":"malware","title":"Malware Domain List","contentURL":["https://www.malwaredomainlist.com/hostslist/hosts.txt","assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt"],"hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":1152,"entryUsedCount":1152},"malware-1":{"content":"filters","group":"malware","title":"Malware domains","contentURL":["https://mirror.cedia.org.ec/malwaredomains/justdomains","https://mirror1.malwaredomains.com/files/justdomains","assets/thirdparties/mirror1.malwaredomains.com/files/justdomains.txt","assets/thirdparties/mirror1.malwaredomains.com/files/justdomains"],"supportURL":"https://www.malwaredomains.com/","hasLocalURL":true,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true,"off":false,"entryCount":15826,"entryUsedCount":15798},"disconnect-malware":{"content":"filters","group":"malware","off":true,"title":"Malware filter list by Disconnect","contentURL":["https://s3.amazonaws.com/lists.disconnect.me/simple_malware.txt"],"hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"spam404-0":{"content":"filters","group":"malware","off":true,"title":"Spam404","contentURL":["https://raw.githubusercontent.com/Dawsey21/Lists/master/adblock-list.txt"],"supportURL":"http://www.spam404.com/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"adguard-annoyance":{"content":"filters","group":"social","off":true,"title":"Adguard’s Annoyance List","contentURL":["https://filters.adtidy.org/extension/ublock/filters/14.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"fanboy-thirdparty_social":{"content":"filters","group":"social","off":true,"title":"Fanboy’s Anti-Thirdparty Social (see warning inside list)","contentURL":["https://fanboy.co.nz/fanboy-antifacebook.txt"],"supportURL":"https://github.com/ryanbr/fanboy-adblock/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"fanboy-annoyance":{"content":"filters","group":"social","off":true,"title":"Fanboy’s Annoyance List","contentURL":["https://easylist.to/easylist/fanboy-annoyance.txt","https://fanboy.co.nz/fanboy-annoyance.txt","https://easylist-downloads.adblockplus.org/fanboy-annoyance.txt"],"supportURL":"https://forums.lanik.us/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"fanboy-cookiemonster":{"content":"filters","group":"social","off":true,"title":"Fanboy’s Cookiemonster List","contentURL":["https://secure.fanboy.co.nz/fanboy-cookiemonster.txt"],"supportURL":"https://github.com/ryanbr/fanboy-adblock/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"fanboy-social":{"content":"filters","group":"social","off":true,"title":"Fanboy’s Social Blocking List","contentURL":["https://easylist.to/easylist/fanboy-social.txt","https://fanboy.co.nz/fanboy-social.txt","https://easylist-downloads.adblockplus.org/fanboy-social.txt"],"supportURL":"https://forums.lanik.us/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"dpollock-0":{"content":"filters","group":"multipurpose","updateAfter":11,"off":true,"title":"Dan Pollock’s hosts file","contentURL":["http://someonewhocares.org/hosts/hosts"],"supportURL":"http://someonewhocares.org/hosts/","hasLocalURL":false,"hasRemoteURL":true,"writeTime":0,"obsolete":true},"hphosts":{"content":"filters","group":"multipurpose","updateAfter":11,"off":true,"title":"hpHosts’ Ad and tracking servers","contentURL":["https://hosts-file.net/.%5Cad_servers.txt","http://hosts-file.net/.%5Cad_servers.txt"],"supportURL":"https://hosts-file.net/","hasLocalURL":false,"hasRemoteURL":true,"writeTime":0,"obsolete":true},"mvps-0":{"content":"filters","group":"multipurpose","updateAfter":11,"off":true,"title":"MVPS HOSTS","contentURL":["http://winhelp2002.mvps.org/hosts.txt"],"supportURL":"http://winhelp2002.mvps.org/","hasLocalURL":false,"hasRemoteURL":true,"writeTime":0,"obsolete":true},"plowe-0":{"content":"filters","group":"multipurpose","updateAfter":13,"title":"Peter Lowe’s Ad and tracking server list","contentURL":["https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext","assets/thirdparties/pgl.yoyo.org/as/serverlist.txt","assets/thirdparties/pgl.yoyo.org/as/serverlist"],"supportURL":"https://pgl.yoyo.org/adservers/","hasLocalURL":true,"hasRemoteURL":true,"writeTime":0,"obsolete":true,"off":false,"entryCount":2470,"entryUsedCount":2433},"ara-0":{"content":"filters","group":"regions","off":true,"title":"ara: Liste AR","lang":"ar","contentURL":["https://easylist-downloads.adblockplus.org/Liste_AR.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=98","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"BGR-0":{"content":"filters","group":"regions","off":true,"title":"BGR: Bulgarian Adblock list","lang":"bg","contentURL":["https://stanev.org/abp/adblock_bg.txt"],"supportURL":"https://stanev.org/abp/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"CHN-0":{"content":"filters","group":"regions","off":true,"title":"CHN: EasyList China (中文)","lang":"zh","contentURL":["https://easylist-downloads.adblockplus.org/easylistchina.txt"],"supportURL":"http://abpchina.org/forum/forum.php","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"CHN-1":{"content":"filters","group":"regions","off":true,"title":"CHN: CJX's EasyList Lite","lang":"zh","contentURL":["https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt"],"supportURL":"https://github.com/cjx82630/cjxlist","instructionURL":"http://abpchina.org/forum/forum.php?mod=viewthread&tid=29667","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"CZE-0":{"content":"filters","group":"regions","off":true,"title":"CZE, SVK: EasyList Czech and Slovak","lang":"cs sk","contentURL":["https://raw.githubusercontent.com/tomasko126/easylistczechandslovak/master/filters_ublock.txt"],"supportURL":"https://github.com/tomasko126/easylistczechandslovak","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"DEU-0":{"content":"filters","group":"regions","off":true,"title":"DEU: EasyList Germany","lang":"de","contentURL":["https://easylist.to/easylistgermany/easylistgermany.txt","https://easylist-downloads.adblockplus.org/easylistgermany.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=90","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"DNK-0":{"content":"filters","group":"regions","off":true,"title":"DNK: Schacks Adblock Plus liste","lang":"da","contentURL":["https://adblock.dk/block.csv"],"supportURL":"https://henrik.schack.dk/adblock/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"EST-0":{"content":"filters","group":"regions","off":true,"title":"EST: Eesti saitidele kohandatud filter","lang":"et","contentURL":["https://adblock.ee/list.php"],"supportURL":"https://adblock.ee/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"FIN-0":{"content":"filters","group":"regions","off":true,"title":"FIN: Finnish Addition to Easylist","lang":"fi","contentURL":["https://adb.juvander.net/Finland_adb.txt"],"supportURL":"https://www.juvander.fi/AdblockFinland","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"FRA-0":{"content":"filters","group":"regions","off":true,"title":"FRA: EasyList Liste FR","lang":"ar fr","contentURL":["https://easylist-downloads.adblockplus.org/liste_fr.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=91","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"GRC-0":{"content":"filters","group":"regions","off":true,"title":"GRC: Greek AdBlock Filter","lang":"el","contentURL":["https://www.void.gr/kargig/void-gr-filters.txt"],"supportURL":"https://github.com/kargig/greek-adblockplus-filter","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"HUN-0":{"content":"filters","group":"regions","off":true,"title":"HUN: hufilter","lang":"hu","contentURL":["https://raw.githubusercontent.com/szpeter80/hufilter/master/hufilter.txt"],"supportURL":"https://github.com/szpeter80/hufilter","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"IDN-0":{"content":"filters","group":"regions","off":true,"title":"IDN: ABPindo","lang":"id","contentURL":["https://raw.githubusercontent.com/ABPindo/indonesianadblockrules/master/subscriptions/abpindo.txt","https://raw.githubusercontent.com/heradhis/indonesianadblockrules/master/subscriptions/abpindo.txt"],"supportURL":"https://github.com/ABPindo/indonesianadblockrules","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"IRN-0":{"content":"filters","group":"regions","off":true,"title":"IRN: Adblock-Iran","lang":"fa","contentURL":["https://raw.githubusercontent.com/farrokhi/adblock-iran/master/filter.txt"],"supportURL":"https://github.com/farrokhi/adblock-iran","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"ISL-0":{"content":"filters","group":"regions","off":true,"title":"ISL: Icelandic ABP List","lang":"is","contentURL":["https://adblock.gardar.net/is.abp.txt"],"supportURL":"https://adblock.gardar.net/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"ISR-0":{"content":"filters","group":"regions","off":true,"title":"ISR: EasyList Hebrew","lang":"he","contentURL":["https://raw.githubusercontent.com/easylist/EasyListHebrew/master/EasyListHebrew.txt"],"supportURL":"https://github.com/easylist/EasyListHebrew","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"ITA-0":{"content":"filters","group":"regions","off":true,"title":"ITA: EasyList Italy","lang":"it","contentURL":["https://easylist-downloads.adblockplus.org/easylistitaly.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=96","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"ITA-1":{"content":"filters","group":"regions","off":true,"title":"ITA: ABP X Files","contentURL":["https://raw.githubusercontent.com/gioxx/xfiles/master/filtri.txt"],"supportURL":"https://xfiles.noads.it/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"JPN-0":{"content":"filters","group":"regions","off":true,"title":"JPN: ABP Japanese filters (日本用フィルタ)","lang":"ja","contentURL":["https://raw.githubusercontent.com/k2jp/abp-japanese-filters/master/abpjf.txt"],"supportURL":"https://github.com/k2jp/abp-japanese-filters/wiki/Support_Policy","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"JPN-1":{"content":"filters","group":"regions","off":true,"title":"JPN: Adguard Japan Filter","lang":"ja","contentURL":["https://filters.adtidy.org/extension/ublock/filters/7.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"KOR-0":{"content":"filters","group":"regions","off":true,"title":"KOR: Korean Adblock List","lang":"ko","contentURL":["https://raw.githubusercontent.com/gfmaster/adblock-korea-contrib/master/filter.txt"],"supportURL":"https://github.com/gfmaster/adblock-korea-contrib","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"KOR-1":{"content":"filters","group":"regions","off":true,"title":"KOR: YousList","lang":"ko","contentURL":["https://raw.githubusercontent.com/yous/YousList/master/youslist.txt"],"supportURL":"https://github.com/yous/YousList","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"LTU-0":{"content":"filters","group":"regions","off":true,"title":"LTU: Adblock Plus Lithuania","lang":"lt","contentURL":["http://margevicius.lt/easylistlithuania.txt"],"supportURL":"http://margevicius.lt/easylist_lithuania/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"LVA-0":{"content":"filters","group":"regions","off":true,"title":"LVA: Latvian List","lang":"lv","contentURL":["https://notabug.org/latvian-list/adblock-latvian/raw/master/lists/latvian-list.txt"],"supportURL":"https://notabug.org/latvian-list/adblock-latvian","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"NLD-0":{"content":"filters","group":"regions","off":true,"title":"NLD: EasyList Dutch","lang":"nl","contentURL":["https://easylist-downloads.adblockplus.org/easylistdutch.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=100","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"POL-0":{"content":"filters","group":"regions","off":true,"title":"POL: polskie filtry do Adblocka i uBlocka","lang":"pl","contentURL":["https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt"],"supportURL":"https://github.com/MajkiIT/polish-ads-filter/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"POL-1":{"content":"filters","group":"regions","off":true,"title":"POL: polskie filtry do uBlocka uzupelnienie","lang":"pl","contentURL":["https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock_ublock.txt"],"supportURL":"https://github.com/MajkiIT/polish-ads-filter/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"RUS-0":{"content":"filters","group":"regions","off":true,"title":"RUS: RU AdList","lang":"be ru uk","contentURL":["https://easylist-downloads.adblockplus.org/advblock+cssfixes.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=102","instructionURL":"https://forums.lanik.us/viewtopic.php?f=102&t=22512","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"RUS-2":{"content":"filters","group":"regions","off":true,"title":"RUS: Adguard Russian Filter","lang":"be ru uk","contentURL":["https://filters.adtidy.org/extension/ublock/filters/1.txt"],"supportURL":"https://forum.adguard.com/forumdisplay.php?69-%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%8B-Adguard","instructionURL":"https://kb.adguard.com/ru/general/adguard-ad-filters#russian","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"spa-0":{"content":"filters","group":"regions","off":true,"title":"spa: EasyList Spanish","lang":"es","contentURL":["https://easylist-downloads.adblockplus.org/easylistspanish.txt"],"supportURL":"https://forums.lanik.us/viewforum.php?f=103","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"spa-1":{"content":"filters","group":"regions","off":true,"title":"spa, por: Adguard Spanish/Portuguese","lang":"es pt","contentURL":["https://filters.adtidy.org/extension/ublock/filters/9.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"SVN-0":{"content":"filters","group":"regions","off":true,"title":"SVN: Slovenian List","lang":"sl","contentURL":["https://raw.githubusercontent.com/betterwebleon/slovenian-list/master/filters.txt"],"supportURL":"https://github.com/betterwebleon/slovenian-list","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"SWE-0":{"content":"filters","group":"regions","off":true,"title":"SWE: Fanboy's Swedish","lang":"sv","contentURL":["https://www.fanboy.co.nz/fanboy-swedish.txt"],"supportURL":"https://github.com/ryanbr/fanboy-adblock/issues","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"TUR-0":{"content":"filters","group":"regions","off":true,"title":"TUR: Adguard Turkish Filter","lang":"tr","contentURL":["https://filters.adtidy.org/extension/ublock/filters/13.txt"],"supportURL":"https://github.com/AdguardTeam/AdguardFilters#adguard-filters","instructionURL":"https://kb.adguard.com/en/general/adguard-ad-filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true},"VIE-1":{"content":"filters","group":"regions","off":true,"title":"VIE: ABPVN List","lang":"vi","contentURL":["https://raw.githubusercontent.com/abpvn/abpvn/master/filter/abpvn.txt"],"supportURL":"http://abpvn.com/","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"writeTime":0,"obsolete":true}}}
\ No newline at end of file
+{"selectedFilterLists":["https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext","https://mirror.cedia.org.ec/malwaredomains/justdomains","https://www.malwaredomainlist.com/hostslist/hosts.txt","https://easylist.to/easylist/easyprivacy.txt","https://easylist.to/easylist/easylist.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt","https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt","user-filters","assets.json","public_suffix_list.dat","ublock-resources","ublock-filters","ublock-badware","ublock-privacy","ublock-abuse","ublock-unbreak","easylist","easyprivacy","malware-0","malware-1","plowe-0"],"remoteBlacklists":{"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext":{"off":false},"https://mirror.cedia.org.ec/malwaredomains/justdomains":{"off":false},"https://www.malwaredomainlist.com/hostslist/hosts.txt":{"off":false},"https://easylist.to/easylist/easyprivacy.txt":{"off":false},"https://easylist.to/easylist/easylist.txt":{"off":false},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt":{"off":false},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt":{"off":false},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt":{"off":false},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt":{"off":false},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt":{"off":false},"assets/user/filters.txt":{"off":false},"assets.json":{"off":false},"assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat":{"off":false},"assets/ublock/resources.txt":{"off":false},"assets/ublock/filters.txt":{"off":false},"assets/ublock/badware.txt":{"off":false},"assets/ublock/privacy.txt":{"off":false},"ublock-abuse":{"off":false},"assets/ublock/unbreak.txt":{"off":false},"assets/thirdparties/easylist-downloads.adblockplus.org/easylist.txt":{"off":false},"assets/thirdparties/easylist-downloads.adblockplus.org/easyprivacy.txt":{"off":false},"assets/thirdparties/www.malwaredomainlist.com/hostslist/hosts.txt":{"off":false},"assets/thirdparties/mirror1.malwaredomains.com/files/justdomains":{"off":false},"assets/thirdparties/pgl.yoyo.org/as/serverlist":{"off":false},"assets/ublock/experimental.txt":{"off":true}},"compiledMagic":"vrgorlgelgws","selfieMagic":"vrgorlgelgws","version":"1.14.24","availableFilterLists":{"user-filters":{"group":"default","title":"Mes filtres","off":false,"entryCount":0,"entryUsedCount":0},"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext":{"content":"filters","contentURL":["https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext"],"external":true,"group":"custom","submitter":"user","title":"Peter Lowe’s Ad and tracking server list","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720743,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://mirror.cedia.org.ec/malwaredomains/justdomains":{"content":"filters","contentURL":["https://mirror.cedia.org.ec/malwaredomains/justdomains"],"external":true,"group":"custom","submitter":"user","title":"Malware domains","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://www.malwaredomainlist.com/hostslist/hosts.txt":{"content":"filters","contentURL":["https://www.malwaredomainlist.com/hostslist/hosts.txt"],"external":true,"group":"custom","submitter":"user","title":"Malware Domain List","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://easylist.to/easylist/easyprivacy.txt":{"content":"filters","contentURL":["https://easylist.to/easylist/easyprivacy.txt"],"external":true,"group":"custom","submitter":"user","title":"EasyPrivacy","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://easylist.to/easylist/easylist.txt":{"content":"filters","contentURL":["https://easylist.to/easylist/easylist.txt"],"external":true,"group":"custom","submitter":"user","title":"EasyList","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt":{"content":"filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt"],"external":true,"group":"custom","submitter":"user","title":"uBlock filters – Unbreak","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt":{"content":"filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt"],"external":true,"group":"custom","submitter":"user","title":"uBlock filters – Resource abuse","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt":{"content":"filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt"],"external":true,"group":"custom","submitter":"user","title":"uBlock filters – Privacy","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt":{"content":"filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt"],"external":true,"group":"custom","submitter":"user","title":"uBlock filters – Badware risks","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0},"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt":{"content":"filters","contentURL":["https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt"],"external":true,"group":"custom","submitter":"user","title":"uBlock filters","hasLocalURL":false,"hasRemoteURL":true,"updateAfter":5,"submitTime":1524554720744,"writeTime":0,"obsolete":true,"off":false,"entryCount":0,"entryUsedCount":0}},"externalLists":"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt\nhttps://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt\nhttps://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt\nhttps://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt\nhttps://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt\nhttps://easylist.to/easylist/easylist.txt\nhttps://easylist.to/easylist/easyprivacy.txt\nhttps://www.malwaredomainlist.com/hostslist/hosts.txt\nhttps://mirror.cedia.org.ec/malwaredomains/justdomains\nhttps://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext"}
\ No newline at end of file
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/cookies.sqlite b/skels/direction/.mozilla/firefox/gzylh1ps.default/cookies.sqlite
index 57b9d55991eaa17ee956b5b8499340b7040b0580..04253573d3985c9522387c6b19ed7c4dc382738d 100644
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/cookies.sqlite and b/skels/direction/.mozilla/firefox/gzylh1ps.default/cookies.sqlite differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890092368.23cd4d51-cd4c-4c2a-bbc9-21adca62212b.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890092368.23cd4d51-cd4c-4c2a-bbc9-21adca62212b.main.jsonlz4
deleted file mode 100644
index c0ad6827b4c90984afefe106c7545627e7989f1f..0000000000000000000000000000000000000000
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890092368.23cd4d51-cd4c-4c2a-bbc9-21adca62212b.main.jsonlz4 and /dev/null differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890501966.84f0e85e-8d5c-4322-acc7-c5dfcfd34179.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890501966.84f0e85e-8d5c-4322-acc7-c5dfcfd34179.main.jsonlz4
deleted file mode 100644
index ce3351a3629aa020a3f91ab1a1ff416e488ecc22..0000000000000000000000000000000000000000
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516890501966.84f0e85e-8d5c-4322-acc7-c5dfcfd34179.main.jsonlz4 and /dev/null differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213130906.41be5e12-6740-48bf-95d6-f932ead4567d.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213130906.41be5e12-6740-48bf-95d6-f932ead4567d.main.jsonlz4
deleted file mode 100644
index 368e1cf10797ec02534bfd124fd2b4eb77b05647..0000000000000000000000000000000000000000
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213130906.41be5e12-6740-48bf-95d6-f932ead4567d.main.jsonlz4 and /dev/null differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213353997.5dcf034e-7709-4654-b9c4-303337b30261.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213353997.5dcf034e-7709-4654-b9c4-303337b30261.main.jsonlz4
deleted file mode 100644
index 91eccd54119127c986f28318b0c413446ab19d9c..0000000000000000000000000000000000000000
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213353997.5dcf034e-7709-4654-b9c4-303337b30261.main.jsonlz4 and /dev/null differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213531407.27dd018d-c008-4fed-820c-663953ab523c.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213531407.27dd018d-c008-4fed-820c-663953ab523c.main.jsonlz4
deleted file mode 100644
index 624368f72f53c90ac911ce14469bdbb4abffa37a..0000000000000000000000000000000000000000
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517213531407.27dd018d-c008-4fed-820c-663953ab523c.main.jsonlz4 and /dev/null differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554649884.451ebd8d-5864-4266-bb34-5e77f9bb80b7.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554649884.451ebd8d-5864-4266-bb34-5e77f9bb80b7.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..5cfab5ce57ba066ad9b4ee1c2abd11478a3e4e27
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554649884.451ebd8d-5864-4266-bb34-5e77f9bb80b7.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554651072.536d9554-0350-4900-9674-6128473dce06.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554651072.536d9554-0350-4900-9674-6128473dce06.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..322e91e6251a09d68a3367101d5d52558211b178
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554651072.536d9554-0350-4900-9674-6128473dce06.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554660286.13cab64e-c172-4656-82d3-655ab388a73f.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554660286.13cab64e-c172-4656-82d3-655ab388a73f.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..803b54e3f0ccacb0d4e6fdbb663fad155e00aa12
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554660286.13cab64e-c172-4656-82d3-655ab388a73f.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554720976.18453353-9c2c-4496-a85f-e91aaf104d5e.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554720976.18453353-9c2c-4496-a85f-e91aaf104d5e.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..d91565893e43dae9dcb132cd45944db792db8a57
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554720976.18453353-9c2c-4496-a85f-e91aaf104d5e.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554727217.390eb54b-59db-4a5c-9875-1dfa2088b2ca.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554727217.390eb54b-59db-4a5c-9875-1dfa2088b2ca.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..c0449a175de0405300bb5260d347504c3ed0da00
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554727217.390eb54b-59db-4a5c-9875-1dfa2088b2ca.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554747443.d2e78928-ae27-44cd-9e58-f9e7a50d2bbc.main.jsonlz4 b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554747443.d2e78928-ae27-44cd-9e58-f9e7a50d2bbc.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..7a6b8c5a5af71f23843413f6a099791a32f93162
Binary files /dev/null and b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524554747443.d2e78928-ae27-44cd-9e58-f9e7a50d2bbc.main.jsonlz4 differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
index d4b5b0c4415bcf096863547395395e28c55059eb..a6386570b008a3341df2bad6f34950012df0a7d0 100644
--- a/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
+++ b/skels/direction/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
@@ -1 +1 @@
-{"sessionId":"3a1d63c3-b3fe-4190-8997-c1c353fb435d","subsessionId":"42f00309-b8f8-4222-ba5a-98de37c61731","profileSubsessionCounter":44}
\ No newline at end of file
+{"sessionId":"b1704784-7591-4ba5-ad2d-70b1427dc0df","subsessionId":"609bc5d3-758a-488f-a0bb-e95eee35de83","profileSubsessionCounter":50}
\ No newline at end of file
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite b/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite
index edea4801ee196ad93dfab6637d6821a605f9289c..b65c5e1a5f40e3b56284ef48a4c467eff723a02d 100644
Binary files a/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite and b/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite differ
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite-journal b/skels/direction/.mozilla/firefox/gzylh1ps.default/places.sqlite-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/prefs.js b/skels/direction/.mozilla/firefox/gzylh1ps.default/prefs.js
index f5aa1af15dacac3cfa436f31f564dee3c2397e5f..d702b7a2a55338bf5b6fa7f3625bb96cf9a3ad51 100644
--- a/skels/direction/.mozilla/firefox/gzylh1ps.default/prefs.js
+++ b/skels/direction/.mozilla/firefox/gzylh1ps.default/prefs.js
@@ -48,8 +48,8 @@ user_pref("browser.search.region", "FR");
 user_pref("browser.search.useDBForOrder", true);
 user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20151216080806");
 user_pref("browser.shell.mostRecentDateSetAsDefault", "1516890178");
-user_pref("browser.slowStartup.averageTime", 1024);
-user_pref("browser.slowStartup.samples", 1);
+user_pref("browser.slowStartup.averageTime", 1466);
+user_pref("browser.slowStartup.samples", 4);
 user_pref("browser.startup.homepage", "http://www.google.fr/");
 user_pref("browser.startup.homepage_override.buildID", "20171114221957");
 user_pref("browser.startup.homepage_override.mstone", "52.5.0");
@@ -65,12 +65,10 @@ user_pref("datareporting.policy.dataSubmissionPolicyNotifiedTime", "146850993855
 user_pref("datareporting.policy.firstRunTime", "1468509877752");
 user_pref("datareporting.sessions.current.activeTicks", 1);
 user_pref("datareporting.sessions.current.clean", true);
-user_pref("datareporting.sessions.current.firstPaint", 1133);
-user_pref("datareporting.sessions.current.main", 11);
-user_pref("datareporting.sessions.current.sessionRestored", 1040);
-user_pref("datareporting.sessions.current.startTime", "1517213523739");
-user_pref("datareporting.sessions.current.totalTime", 7);
-user_pref("datareporting.sessions.currentIndex", 41);
+user_pref("datareporting.sessions.current.main", 21);
+user_pref("datareporting.sessions.current.startTime", "1524554742816");
+user_pref("datareporting.sessions.current.totalTime", 4);
+user_pref("datareporting.sessions.currentIndex", 47);
 user_pref("datareporting.sessions.previous.0", "{\"s\":1468509874699,\"a\":5,\"t\":29,\"c\":true,\"m\":31,\"fp\":1705,\"sr\":5849}");
 user_pref("datareporting.sessions.previous.1", "{\"s\":1468509925700,\"a\":5,\"t\":31,\"c\":true,\"m\":20,\"fp\":2950,\"sr\":2857}");
 user_pref("datareporting.sessions.previous.10", "{\"s\":1468778004353,\"a\":1,\"t\":4,\"c\":true,\"m\":20,\"fp\":-1,\"sr\":-1}");
@@ -107,6 +105,12 @@ user_pref("datareporting.sessions.previous.38", "{\"s\":1516890177013,\"a\":15,\
 user_pref("datareporting.sessions.previous.39", "{\"s\":1517213051951,\"a\":14,\"t\":78,\"c\":true,\"m\":529,\"fp\":6395,\"sr\":6221}");
 user_pref("datareporting.sessions.previous.4", "{\"s\":1468510903879,\"a\":11,\"t\":57,\"c\":true,\"m\":50,\"fp\":3768,\"sr\":3569}");
 user_pref("datareporting.sessions.previous.40", "{\"s\":1517213131360,\"a\":42,\"t\":222,\"c\":true,\"m\":20,\"fp\":2674,\"sr\":2621}");
+user_pref("datareporting.sessions.previous.41", "{\"s\":1517213523739,\"a\":1,\"t\":7,\"c\":true,\"m\":11,\"fp\":1133,\"sr\":1040}");
+user_pref("datareporting.sessions.previous.42", "{\"s\":1524554645658,\"a\":0,\"t\":3,\"c\":true,\"m\":492,\"fp\":-1,\"sr\":-1}");
+user_pref("datareporting.sessions.previous.43", "{\"s\":1524554646763,\"a\":0,\"t\":3,\"c\":true,\"m\":7,\"fp\":-1,\"sr\":-1}");
+user_pref("datareporting.sessions.previous.44", "{\"s\":1524554649980,\"a\":2,\"t\":10,\"c\":true,\"m\":10,\"fp\":2839,\"sr\":2761}");
+user_pref("datareporting.sessions.previous.45", "{\"s\":1524554719863,\"a\":0,\"t\":0,\"c\":true,\"m\":7,\"fp\":-1,\"sr\":-1}");
+user_pref("datareporting.sessions.previous.46", "{\"s\":1524554721068,\"a\":1,\"t\":5,\"c\":true,\"m\":11,\"fp\":1180,\"sr\":1110}");
 user_pref("datareporting.sessions.previous.5", "{\"s\":1468510962071,\"a\":3,\"t\":15,\"c\":true,\"m\":12,\"fp\":2710,\"sr\":2638}");
 user_pref("datareporting.sessions.previous.6", "{\"s\":1468524116671,\"a\":2,\"t\":13,\"c\":true,\"m\":20,\"fp\":3552,\"sr\":3430}");
 user_pref("datareporting.sessions.previous.7", "{\"s\":1468661085822,\"a\":1,\"t\":14,\"c\":true,\"m\":810,\"fp\":-1,\"sr\":9450}");
@@ -218,7 +222,7 @@ user_pref("services.sync.tabs.lastSyncLocal", "0");
 user_pref("signon.importedFromSqlite", true);
 user_pref("storage.vacuum.last.index", 0);
 user_pref("storage.vacuum.last.places.sqlite", 1469019179);
-user_pref("toolkit.startup.last_success", 1517213523);
+user_pref("toolkit.startup.last_success", 1524554742);
 user_pref("toolkit.telemetry.cachedClientID", "f4232d95-9b73-4c5f-9def-346b27a474ec");
 user_pref("toolkit.telemetry.previousBuildID", "20171114221957");
 user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
diff --git a/skels/direction/.mozilla/firefox/gzylh1ps.default/xulstore.json b/skels/direction/.mozilla/firefox/gzylh1ps.default/xulstore.json
index 9a2a71ff0b425d72c24af16692ed3633e7085787..c1685a47ae84285328779d80c6db6ab88961a64c 100644
--- a/skels/direction/.mozilla/firefox/gzylh1ps.default/xulstore.json
+++ b/skels/direction/.mozilla/firefox/gzylh1ps.default/xulstore.json
@@ -1 +1 @@
-{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small","abp-iconposition":"hidden,nav-bar,"},"main-window":{"width":"728","height":"530","screenX":"53","screenY":"0","sizemode":"maximized"},"sidebar-box":{"src":"chrome://browser/content/history/history-panel.xul","sidebarcommand":"","width":""},"PersonalToolbar":{"collapsed":"false"},"sidebar-title":{"value":""}},"chrome://browser/content/preferences/connection.xul":{"ConnectionsDialog":{"screenX":"0","screenY":"0"}},"chrome://browser/content/bookmarks/bookmarksPanel.xul":{"place:folder=UNFILED_BOOKMARKS&queryType=1":{"open":"true"}},"chrome://browser/content/places/places.xul":{"placesContentTags":{"ordinal":"3"},"placesContentUrl":{"ordinal":"5"},"placesContentDate":{"ordinal":"7","sortDirection":"descending"},"placesContentVisitCount":{"ordinal":"9"},"placesContentKeyword":{"ordinal":"11"},"placesContentDescription":{"ordinal":"13"},"placesContentDateAdded":{"ordinal":"15"},"placesContentLastModified":{"ordinal":"17"},"places":{"screenX":"53","screenY":"0","width":"730","height":"500","sizemode":"normal"},"place:folder=BOOKMARKS_MENU&excludeItems=1&expandQueries=0":{"open":"true"},"place:folder=TOOLBAR&excludeItems=1&expandQueries=0":{"open":"true"}},"about:preferences#applications":{"handlersView":{"lastSelectedType":"mailto"}},"chrome://browser/content/history/history-panel.xul":{"place:beginTime=1456790400000000&endTime=1458000000000000&sort=1":{"open":"true"}},"chrome://mozapps/content/downloads/unknownContentType.xul":{"unknownContentType":{"screenX":"413","screenY":"324"}}}
\ No newline at end of file
+{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small","abp-iconposition":"hidden,nav-bar,"},"main-window":{"width":"728","height":"530","screenX":"53","screenY":"0","sizemode":"maximized"},"sidebar-box":{"src":"chrome://browser/content/history/history-panel.xul"},"PersonalToolbar":{"collapsed":"false"},"sidebar-title":{"value":""}},"chrome://browser/content/preferences/connection.xul":{"ConnectionsDialog":{"screenX":"0","screenY":"0"}},"chrome://browser/content/bookmarks/bookmarksPanel.xul":{"place:folder=UNFILED_BOOKMARKS&queryType=1":{"open":"true"}},"chrome://browser/content/places/places.xul":{"placesContentTags":{"ordinal":"3"},"placesContentUrl":{"ordinal":"5"},"placesContentDate":{"ordinal":"7","sortDirection":"descending"},"placesContentVisitCount":{"ordinal":"9"},"placesContentKeyword":{"ordinal":"11"},"placesContentDescription":{"ordinal":"13"},"placesContentDateAdded":{"ordinal":"15"},"placesContentLastModified":{"ordinal":"17"},"places":{"screenX":"53","screenY":"0","width":"730","height":"500","sizemode":"normal"},"place:folder=BOOKMARKS_MENU&excludeItems=1&expandQueries=0":{"open":"true"},"place:folder=TOOLBAR&excludeItems=1&expandQueries=0":{"open":"true"}},"about:preferences#applications":{"handlersView":{"lastSelectedType":"mailto"}},"chrome://browser/content/history/history-panel.xul":{"place:beginTime=1456790400000000&endTime=1458000000000000&sort=1":{"open":"true"}},"chrome://mozapps/content/downloads/unknownContentType.xul":{"unknownContentType":{"screenX":"413","screenY":"324"}}}
\ No newline at end of file
diff --git a/skels/direction/.pki/nssdb/cert9.db b/skels/direction/.pki/nssdb/cert9.db
new file mode 100644
index 0000000000000000000000000000000000000000..a3d50bb3591516055db5f1321027c25677e36338
Binary files /dev/null and b/skels/direction/.pki/nssdb/cert9.db differ
diff --git a/skels/direction/.pki/nssdb/key4.db b/skels/direction/.pki/nssdb/key4.db
new file mode 100644
index 0000000000000000000000000000000000000000..fdbbcea76f098f9971e22f1ea47e4ad9dd117d9d
Binary files /dev/null and b/skels/direction/.pki/nssdb/key4.db differ
diff --git a/skels/direction/.pki/nssdb/pkcs11.txt b/skels/direction/.pki/nssdb/pkcs11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..57dbe4e4e70c36cb26c5e904626b1e23fc4dddfe
--- /dev/null
+++ b/skels/direction/.pki/nssdb/pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='sql:/home/direction/.pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags=optimizeSpace updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
diff --git a/skels/direction/.profile b/skels/direction/.profile
index 20aa21acf461f1686d2b8387b7af19df4f1c284f..24afb23e5c478cc1676bbc9c857d23f516117733 100644
--- a/skels/direction/.profile
+++ b/skels/direction/.profile
@@ -20,6 +20,6 @@ fi
 if [ -d "$HOME/bin" ] ; then
     PATH="$HOME/bin:$PATH"
 fi
-export ="slis:3128"
-export ="slis:3128"
-export ="slis:3128"
+export HTTP_PROXY="slis:3128"
+export FTP_PROXY="slis:3128"
+export HTPS_PROXY="slis:3128"
diff --git a/skels/direction/.profilee b/skels/direction/.profilee
new file mode 100644
index 0000000000000000000000000000000000000000..c9db4591825bd7a918df686ff04aeb3a87d3bda0
--- /dev/null
+++ b/skels/direction/.profilee
@@ -0,0 +1,22 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+	. "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi
diff --git a/skels/prof/.Xauthority b/skels/prof/.Xauthority
index 95374ac664974ad4ca482601678abca011d72cd5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
Binary files a/skels/prof/.Xauthority and b/skels/prof/.Xauthority differ
diff --git a/skels/prof/.config/chromium/Default/Cookies b/skels/prof/.config/chromium/Default/Cookies
new file mode 100644
index 0000000000000000000000000000000000000000..664337cd5d50ca878344cf53e3a61ef0fa685fe1
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Cookies differ
diff --git a/skels/prof/.config/chromium/Default/Cookies-journal b/skels/prof/.config/chromium/Default/Cookies-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Current Session b/skels/prof/.config/chromium/Default/Current Session
new file mode 100644
index 0000000000000000000000000000000000000000..b79695037a4cef54b4d01e222d9ee5ca2c38d5c9
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Current Session differ
diff --git a/skels/prof/.config/chromium/Default/Current Tabs b/skels/prof/.config/chromium/Default/Current Tabs
new file mode 100644
index 0000000000000000000000000000000000000000..d9f587b1d8e8b79dd95e46fc38b56b6d94d04450
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Current Tabs differ
diff --git a/skels/prof/.config/chromium/Default/Extension Rules/000003.log b/skels/prof/.config/chromium/Default/Extension Rules/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..4acb4c8d5c47996e9884098a6890c39122102268
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extension Rules/000003.log differ
diff --git a/skels/prof/.config/chromium/Default/Extension Rules/CURRENT b/skels/prof/.config/chromium/Default/Extension Rules/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extension Rules/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/Extension Rules/LOCK b/skels/prof/.config/chromium/Default/Extension Rules/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Extension Rules/LOG b/skels/prof/.config/chromium/Default/Extension Rules/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..b4c0568974568c7334184b20deceb2bd2dc52210
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extension Rules/LOG	
@@ -0,0 +1 @@
+2018/04/24-09:20:53.839 1873 Reusing MANIFEST /home/prof/.config/chromium/Default/Extension Rules/MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/Extension Rules/MANIFEST-000001 b/skels/prof/.config/chromium/Default/Extension Rules/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extension Rules/MANIFEST-000001 differ
diff --git a/skels/prof/.config/chromium/Default/Extension State/000003.log b/skels/prof/.config/chromium/Default/Extension State/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..8b15e65a47188a39c075320171f5a0daa558a8b3
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extension State/000003.log differ
diff --git a/skels/prof/.config/chromium/Default/Extension State/CURRENT b/skels/prof/.config/chromium/Default/Extension State/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extension State/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/Extension State/LOCK b/skels/prof/.config/chromium/Default/Extension State/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Extension State/LOG b/skels/prof/.config/chromium/Default/Extension State/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..9e031b442a2efd36c0e3f445aca24b5dfface8e2
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extension State/LOG	
@@ -0,0 +1,3 @@
+2018/04/24-09:22:29.879 2107 Reusing MANIFEST /home/prof/.config/chromium/Default/Extension State/MANIFEST-000001
+2018/04/24-09:22:29.879 2107 Recovering log #3
+2018/04/24-09:22:29.879 2107 Reusing old log /home/prof/.config/chromium/Default/Extension State/000003.log 
diff --git a/skels/prof/.config/chromium/Default/Extension State/LOG.old b/skels/prof/.config/chromium/Default/Extension State/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..50d892e2157b03c15ad8c4a9139a3443c52bbf87
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extension State/LOG.old	
@@ -0,0 +1,3 @@
+2018/04/24-09:21:09.407 1995 Reusing MANIFEST /home/prof/.config/chromium/Default/Extension State/MANIFEST-000001
+2018/04/24-09:21:09.408 1995 Recovering log #3
+2018/04/24-09:21:09.408 1995 Reusing old log /home/prof/.config/chromium/Default/Extension State/000003.log 
diff --git a/skels/prof/.config/chromium/Default/Extension State/MANIFEST-000001 b/skels/prof/.config/chromium/Default/Extension State/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extension State/MANIFEST-000001 differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..9de36c3ba4cb003fb8a0e2f3edc724c906b789cc
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/bg/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Плащания в уеб магазина на Chrome"
+   },
+   "app_name": {
+      "message": "Плащания в уеб магазина на Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Понастоящем няма достъп до приложението."
+   },
+   "craw_connect_to_network": {
+      "message": "Моля, свържете се с мрежа."
+   },
+   "iap_unavailable": {
+      "message": "Понастоящем няма достъп до вградената система за плащания."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Транзакцията не можа да бъде завършена. Моля, опитайте отново по-късно."
+   },
+   "please_sign_in": {
+      "message": "Моля, влезте в Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a43156d9b3b813fd6ce5edd0590d7d79841ee1c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ca/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagaments de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagaments de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Ara mateix aquesta aplicació no està disponible."
+   },
+   "craw_connect_to_network": {
+      "message": "Connecteu-vos a una xarxa."
+   },
+   "iap_unavailable": {
+      "message": "La funció Pagaments a l'aplicació no està disponible actualment."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No s'ha pogut completar la transacció. Torneu-ho a provar més tard."
+   },
+   "please_sign_in": {
+      "message": "Inicieu la sessió a Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1edead852f6a4a5995df93024cef9e078372a80f
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/cs/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "app_name": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikace v současné době není dostupná."
+   },
+   "craw_connect_to_network": {
+      "message": "Připojte se prosím k síti."
+   },
+   "iap_unavailable": {
+      "message": "Platby v aplikaci aktuálně nejsou k dispozici."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakci nebylo možné dokončit. Zkuste to znovu později."
+   },
+   "please_sign_in": {
+      "message": "Přihlaste se do Chromu."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..36c035fdcd301865b7040b01300ac81b417b1378
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/da/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalinger i Chrome Webshop"
+   },
+   "app_name": {
+      "message": "Betalinger i Chrome Webshop"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen er ikke tilgængelig i øjeblikket."
+   },
+   "craw_connect_to_network": {
+      "message": "Opret forbindelse til et netværk."
+   },
+   "iap_unavailable": {
+      "message": "Betaling i appen er ikke tilgængelig i øjeblikket."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaktionen kunne ikke gennemføres. Prøv igen senere."
+   },
+   "please_sign_in": {
+      "message": "Log ind på Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..56800bfb93e28bd5dd05d8a6cd06cea6d3c6197b
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/de/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store-Zahlungen"
+   },
+   "app_name": {
+      "message": "Chrome Web Store-Zahlungen"
+   },
+   "craw_app_unavailable": {
+      "message": "Die App ist momentan nicht verfügbar."
+   },
+   "craw_connect_to_network": {
+      "message": "Bitte stellen Sie eine Verbindung zu einem Netzwerk her."
+   },
+   "iap_unavailable": {
+      "message": "In-App-Zahlungen sind momentan nicht möglich."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Die Transaktion konnte nicht abgeschlossen werden. Bitte versuchen Sie es später erneut."
+   },
+   "please_sign_in": {
+      "message": "Bitte melden Sie sich in Chrome an."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..28562c8f31018e34c05633f41cfc1725726ddc51
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/el/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Πληρωμές στο Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Πληρωμές στο Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Η εφαρμογή προς το παρόν δεν είναι διαθέσιμη."
+   },
+   "craw_connect_to_network": {
+      "message": "Συνδεθείτε σε ένα δίκτυο."
+   },
+   "iap_unavailable": {
+      "message": "Οι πληρωμές εντός εφαρμογών δεν είναι αυτήν τη στιγμή διαθέσιμες."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Δεν ήταν δυνατή η ολοκλήρωση της συναλλαγής. Δοκιμάστε ξανά αργότερα."
+   },
+   "please_sign_in": {
+      "message": "Συνδεθείτε στο Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..f2e23563e061ac563933059b47a5d7e2d688597a
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store Payments"
+   },
+   "app_name": {
+      "message": "Chrome Web Store Payments"
+   },
+   "craw_app_unavailable": {
+      "message": "App currently unavailable."
+   },
+   "craw_connect_to_network": {
+      "message": "Please connect to a network."
+   },
+   "iap_unavailable": {
+      "message": "In-App Payments is currently unavailable."
+   },
+   "jwt_retrieve_failed": {
+      "message": "The transaction could not be completed. Please try again later."
+   },
+   "please_sign_in": {
+      "message": "Please sign into Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..f2e23563e061ac563933059b47a5d7e2d688597a
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/en_GB/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Store Payments"
+   },
+   "app_name": {
+      "message": "Chrome Web Store Payments"
+   },
+   "craw_app_unavailable": {
+      "message": "App currently unavailable."
+   },
+   "craw_connect_to_network": {
+      "message": "Please connect to a network."
+   },
+   "iap_unavailable": {
+      "message": "In-App Payments is currently unavailable."
+   },
+   "jwt_retrieve_failed": {
+      "message": "The transaction could not be completed. Please try again later."
+   },
+   "please_sign_in": {
+      "message": "Please sign into Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..1f400374089b58da37135d7b362072635547f9e4
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Esta aplicación no está disponible en este momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conéctate a una red."
+   },
+   "iap_unavailable": {
+      "message": "Los pagos en la aplicación no están disponibles en este momento."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No se ha podido completar la transacción. Vuelve a intentarlo más tarde."
+   },
+   "please_sign_in": {
+      "message": "Inicia sesión en Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..3a0d9c34fc670c18c958d780a9a9643b2b4a1717
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/es_419/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Sistema de pagos de Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Esta aplicación no está disponible en este momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conéctate a una red."
+   },
+   "iap_unavailable": {
+      "message": "En este momento, Pagos En-Apps no está disponible."
+   },
+   "jwt_retrieve_failed": {
+      "message": "No se pudo completar la transacción. Vuelve a intentarlo más tarde."
+   },
+   "please_sign_in": {
+      "message": "Accede a Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..01828481a0d86200bd39ed0294c36dac69a8ac01
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/et/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome'i veebipoe maksed"
+   },
+   "app_name": {
+      "message": "Chrome'i veebipoe maksed"
+   },
+   "craw_app_unavailable": {
+      "message": "Rakendus pole praegu saadaval."
+   },
+   "craw_connect_to_network": {
+      "message": "Looge ühendus võrguga."
+   },
+   "iap_unavailable": {
+      "message": "Rakendusesisesed maksed ei ole praegu saadaval."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tehingut ei saa lõpule viia. Proovige hiljem uuesti."
+   },
+   "please_sign_in": {
+      "message": "Logige Chrome'i sisse."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..5066e15184ed5511cfc1ec866e527869bf4fbfbd
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Storen maksut"
+   },
+   "app_name": {
+      "message": "Chrome Web Storen maksut"
+   },
+   "craw_app_unavailable": {
+      "message": "Sovellus ei ole tällä hetkellä käytettävissä."
+   },
+   "craw_connect_to_network": {
+      "message": "Muodosta verkkoyhteys."
+   },
+   "iap_unavailable": {
+      "message": "Sovelluksen sisäiset maksut eivät ole tällä hetkellä käytettävissä."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tapahtumaa ei voi suorittaa loppuun. Yritä myöhemmin uudelleen."
+   },
+   "please_sign_in": {
+      "message": "Kirjaudu sisään Chromeen."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..6737fbffdd34ba91ef96af4509635bdd507addce
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fil/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Mga Pagbabayad sa Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Mga Pagbabayad sa Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Kasalukuyang hindi available ang app."
+   },
+   "craw_connect_to_network": {
+      "message": "Mangyaring kumonekta sa isang network."
+   },
+   "iap_unavailable": {
+      "message": "Kasalukuyang hindi available ang Mga Pagbabayad na In-App."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Hindi makumpleto ang transaksyon. Pakisubukang muli sa ibang pagkakataon."
+   },
+   "please_sign_in": {
+      "message": "Mangyaring mag-sign in sa Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..a7fe884a8f51321064f3cec660e47b4daf461183
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/fr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Paiements via le Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Paiements via le Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Application indisponible pour le moment."
+   },
+   "craw_connect_to_network": {
+      "message": "Veuillez vous connecter à un réseau."
+   },
+   "iap_unavailable": {
+      "message": "Les paiements via l'application ne sont pas disponibles pour le moment."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Impossible de finaliser la transaction. Veuillez réessayer plus tard."
+   },
+   "please_sign_in": {
+      "message": "Veuillez vous connecter à Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..7d4b96342737e6bb3e13ef9ec4c5f9ccabc243d7
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome वेब स्टोर भुगतान"
+   },
+   "app_name": {
+      "message": "Chrome वेब स्टोर भुगतान"
+   },
+   "craw_app_unavailable": {
+      "message": "ऐप्स  वर्तमान में अनुपलब्ध."
+   },
+   "craw_connect_to_network": {
+      "message": "कृपया नेटवर्क से कनेक्ट करें."
+   },
+   "iap_unavailable": {
+      "message": "इन-ऐप भुगतान अभी उपलब्ध नहीं है."
+   },
+   "jwt_retrieve_failed": {
+      "message": "लेन-देन पूर्ण नहीं किया जा सका. कृपया बाद में पुन: प्रयास करें."
+   },
+   "please_sign_in": {
+      "message": "कृपया Chrome में प्रवेश करें."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..d611193d261a6153d885d67e38d6173ebdedcedf
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plaćanja u web-trgovini Chrome"
+   },
+   "app_name": {
+      "message": "Plaćanja u web-trgovini Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacija trenutačno nije dostupna."
+   },
+   "craw_connect_to_network": {
+      "message": "Povežite se s mrežom."
+   },
+   "iap_unavailable": {
+      "message": "Plaćanje u aplikaciji trenutačno nije dostupno."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakcija nije dovršena. Pokušajte ponovo kasnije."
+   },
+   "please_sign_in": {
+      "message": "Prijavite se na Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..de75062a88124552384e235a91e0c50517deeb52
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/hu/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Internetes áruház Fizetési rendszere"
+   },
+   "app_name": {
+      "message": "Chrome Internetes áruház Fizetési rendszere"
+   },
+   "craw_app_unavailable": {
+      "message": "Az alkalmazás jelenleg nem érhető el."
+   },
+   "craw_connect_to_network": {
+      "message": "Kérjük, csatlakozzon egy hálózathoz."
+   },
+   "iap_unavailable": {
+      "message": "Az alkalmazáson belüli fizetés jelenleg nem érhető el."
+   },
+   "jwt_retrieve_failed": {
+      "message": "A tranzakciót nem sikerült befejezni. Próbálja újra később."
+   },
+   "please_sign_in": {
+      "message": "Jelentkezzen be a Chrome-ba."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb844461483348ed8f90ee6a3432c6ae7ad335b5
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/id/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pembayaran Chrome Webstore"
+   },
+   "app_name": {
+      "message": "Pembayaran Chrome Webstore"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikasi tidak tersedia saat ini."
+   },
+   "craw_connect_to_network": {
+      "message": "Sambungkan ke jaringan."
+   },
+   "iap_unavailable": {
+      "message": "Pembayaran Dalam Aplikasi saat ini tidak tersedia."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaksi tidak dapat diselesaikan. Coba lagi nanti."
+   },
+   "please_sign_in": {
+      "message": "Harap masuk ke Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..240a9a157e85059d2b478406191d088784b1ec6d
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/it/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamenti Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamenti Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "App al momento non disponibile."
+   },
+   "craw_connect_to_network": {
+      "message": "Collegati a una rete."
+   },
+   "iap_unavailable": {
+      "message": "La funzione Pagamenti In-App non è al momento disponibile."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Impossibile completare la transazione. Riprova più tardi."
+   },
+   "please_sign_in": {
+      "message": "Accedi a Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..82ebf868bda6fb90e296ced2e391ec2890a8d92c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ja/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome ウェブストア決済"
+   },
+   "app_name": {
+      "message": "Chrome ウェブストア決済"
+   },
+   "craw_app_unavailable": {
+      "message": "アプリは現在ご利用いただけません。"
+   },
+   "craw_connect_to_network": {
+      "message": "ネットワークに接続してください。"
+   },
+   "iap_unavailable": {
+      "message": "アプリ内ペイメントは現在ご利用いただけません。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "トランザクションを完了できませんでした。しばらくしてからもう一度お試しください。"
+   },
+   "please_sign_in": {
+      "message": "Chrome にログインしてください。"
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..d06e48a0ccbf782b85637b92fcd53d4b6576b4f7
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ko/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 웹 스토어 결제"
+   },
+   "app_name": {
+      "message": "Chrome 웹 스토어 결제"
+   },
+   "craw_app_unavailable": {
+      "message": "현재 앱을 사용할 수 없습니다."
+   },
+   "craw_connect_to_network": {
+      "message": "네트워크에 연결하세요."
+   },
+   "iap_unavailable": {
+      "message": "현재 인앱 결제를 사용할 수 없습니다."
+   },
+   "jwt_retrieve_failed": {
+      "message": "거래를 완료하지 못했습니다. 나중에 다시 시도해 주세요."
+   },
+   "please_sign_in": {
+      "message": "Chrome에 로그인하세요."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..a3e4a5a42e243cf93a5b1f812ceb164b618f0e3c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lt/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "„Chrome“ internetinės parduotuvės mokėjimo sistema"
+   },
+   "app_name": {
+      "message": "„Chrome“ internetinės parduotuvės mokėjimo sistema"
+   },
+   "craw_app_unavailable": {
+      "message": "Programa šiuo metu negalima."
+   },
+   "craw_connect_to_network": {
+      "message": "Prisijunkite prie tinklo."
+   },
+   "iap_unavailable": {
+      "message": "Mokėjimai programoje šiuo metu negalimi."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Nepavyko užbaigti operacijos. Vėliau bandykite dar kartą."
+   },
+   "please_sign_in": {
+      "message": "Prisijunkite prie „Chrome“."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..7ba5d18b3b3d2fc1830b005a8b6864f1c29ef939
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/lv/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome interneta veikala maksājumu sistēma"
+   },
+   "app_name": {
+      "message": "Chrome interneta veikala maksājumu sistēma"
+   },
+   "craw_app_unavailable": {
+      "message": "Lietotne pagaidām nav pieejama."
+   },
+   "craw_connect_to_network": {
+      "message": "Lūdzu, izveidojiet savienojumu ar tīklu."
+   },
+   "iap_unavailable": {
+      "message": "Maksājumi lietotnēs pašlaik nav pieejami."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakciju nevarēja pabeigt. Lūdzu, vēlāk mēģiniet vēlreiz."
+   },
+   "please_sign_in": {
+      "message": "Lūdzu, pierakstieties pārlūkā Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..9b76605fc88cfd6f9a77ea4dac22d4ed651866d5
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nb/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Nettmarked-betalinger"
+   },
+   "app_name": {
+      "message": "Chrome Nettmarked-betalinger"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen er utilgjengelig for øyeblikket."
+   },
+   "craw_connect_to_network": {
+      "message": "Du må koble til et nettverk."
+   },
+   "iap_unavailable": {
+      "message": "Betaling i app er ikke tilgjengelig for øyeblikket."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaksjonen kunne ikke fullføres. Prøv på nytt senere."
+   },
+   "please_sign_in": {
+      "message": "Du må logge på Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..52b358311fe98422471b934aff6936e5a13b3d1f
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/nl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalingen via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Betalingen via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "App momenteel niet beschikbaar."
+   },
+   "craw_connect_to_network": {
+      "message": "Maak verbinding met een netwerk."
+   },
+   "iap_unavailable": {
+      "message": "In-app-betalingen is momenteel niet beschikbaar."
+   },
+   "jwt_retrieve_failed": {
+      "message": "De transactie kan niet worden voltooid. Probeer het later opnieuw."
+   },
+   "please_sign_in": {
+      "message": "Log in bij Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..26925d56e2ab8ca8ba0b31bce5febd167806b918
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Płatności w sklepie Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Płatności w sklepie Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacja jest obecnie niedostępna."
+   },
+   "craw_connect_to_network": {
+      "message": "Połącz się z siecią."
+   },
+   "iap_unavailable": {
+      "message": "Płatności w ramach aplikacji są teraz niedostępne."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Nie udało się zrealizować transakcji. Spróbuj ponownie później."
+   },
+   "please_sign_in": {
+      "message": "Zaloguj się w Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d4688f4802ffdb5924e67482bf57c8f1eef2330
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_BR/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamentos da Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamentos da Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplicativo indisponível no momento."
+   },
+   "craw_connect_to_network": {
+      "message": "Conecte-se a uma rede."
+   },
+   "iap_unavailable": {
+      "message": "No momento, os Pagamentos no aplicativo não estão disponíveis."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Não foi possível concluir a transação. Tente novamente mais tarde."
+   },
+   "please_sign_in": {
+      "message": "Faça login no Google Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..23eff218ce50ae5a2e3f957d3c580f86506c1c01
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/pt_PT/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Pagamentos via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Pagamentos via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplicação atualmente indisponível."
+   },
+   "craw_connect_to_network": {
+      "message": "Ligue-se a uma rede."
+   },
+   "iap_unavailable": {
+      "message": "Os Pagamentos na Aplicação estão atualmente indisponíveis."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Não foi possível concluir a transação. Tente novamente mais tarde."
+   },
+   "please_sign_in": {
+      "message": "Inicie sessão no Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..56afab377644b03781b253aefb4967c6b3f5eb16
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ro/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plăți prin Magazinul web Chrome"
+   },
+   "app_name": {
+      "message": "Plăți prin Magazinul web Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "În prezent, aplicația nu este disponibilă."
+   },
+   "craw_connect_to_network": {
+      "message": "Conectează-te la o rețea."
+   },
+   "iap_unavailable": {
+      "message": "Plățile în aplicație nu sunt disponibile momentan."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Tranzacția nu s-a putut finaliza. Încearcă din nou mai târziu."
+   },
+   "please_sign_in": {
+      "message": "Conectează-te la Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c8d4ac6461b760149c64e8eaf449ce5721f634d
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/ru/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Платежная система Интернет-магазина Chrome"
+   },
+   "app_name": {
+      "message": "Платежная система Интернет-магазина Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Приложение недоступно."
+   },
+   "craw_connect_to_network": {
+      "message": "Подключитесь к сети."
+   },
+   "iap_unavailable": {
+      "message": "Платежи через приложения недоступны."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Произошла ошибка. Повторите попытку позже."
+   },
+   "please_sign_in": {
+      "message": "Войдите в Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..95ab01c9ddcd507ac6f9504f75b833a3e597e6ca
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sk/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "app_name": {
+      "message": "Platby Internetového obchodu Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikácia momentálne nie je dostupná."
+   },
+   "craw_connect_to_network": {
+      "message": "Pripojte sa k sieti."
+   },
+   "iap_unavailable": {
+      "message": "Platby v aplikácii momentálne nie sú k dispozícii."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakciu nebolo možné dokončiť. Skúste to znova neskôr."
+   },
+   "please_sign_in": {
+      "message": "Prihláste sa do prehliadača Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..23095d66f81830140f03874fdcaa177774a047c1
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sl/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Plačila v spletni trgovini Chrome"
+   },
+   "app_name": {
+      "message": "Plačila v spletni trgovini Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Aplikacija trenutno ni na voljo."
+   },
+   "craw_connect_to_network": {
+      "message": "Povežite se z omrežjem."
+   },
+   "iap_unavailable": {
+      "message": "Plačila v aplikacijah trenutno niso na voljo."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transakcije ni bilo mogoče dokončati. Poskusite znova pozneje."
+   },
+   "please_sign_in": {
+      "message": "Prijavite se v Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..12f925e3915d152fefeee93401c50f3825341d1a
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Плаћања у Chrome веб-продавници"
+   },
+   "app_name": {
+      "message": "Плаћања у Chrome веб-продавници"
+   },
+   "craw_app_unavailable": {
+      "message": "Апликација је тренутно недоступна."
+   },
+   "craw_connect_to_network": {
+      "message": "Повежите са мрежом."
+   },
+   "iap_unavailable": {
+      "message": "Плаћања у апликацији су тренутно недоступна."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Није могуће довршити трансакцију. Пробајте поново касније."
+   },
+   "please_sign_in": {
+      "message": "Пријавите се у Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..ef90fdb2f933602dec8f5e3536ea38e088409457
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/sv/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Betalning via Chrome Web Store"
+   },
+   "app_name": {
+      "message": "Betalning via Chrome Web Store"
+   },
+   "craw_app_unavailable": {
+      "message": "Appen är inte tillgänglig för tillfället."
+   },
+   "craw_connect_to_network": {
+      "message": "Anslut till ett nätverk."
+   },
+   "iap_unavailable": {
+      "message": "Betalning i appen är inte tillgängligt för närvarande."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Transaktionen kunde inte slutföras. Försök igen senare."
+   },
+   "please_sign_in": {
+      "message": "Logga in i Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..783b943e36e2dffc8007447d7802457592baaf0c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/th/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "ระบบชำระเงินของ Chrome เว็บสโตร์"
+   },
+   "app_name": {
+      "message": "ระบบชำระเงินของ Chrome เว็บสโตร์"
+   },
+   "craw_app_unavailable": {
+      "message": "ไม่สามารถใช้งานแอปได้ในขณะนี้"
+   },
+   "craw_connect_to_network": {
+      "message": "โปรดเชื่อมต่อกับเครือข่าย"
+   },
+   "iap_unavailable": {
+      "message": "ระบบชำระเงินในแอปพลิเคชันไม่พร้อมใช้งานในขณะนี้"
+   },
+   "jwt_retrieve_failed": {
+      "message": "ไม่สามารถดำเนินการธุรกรรมให้เสร็จสิ้นได้ โปรดลองอีกครั้งในภายหลัง"
+   },
+   "please_sign_in": {
+      "message": "โปรดลงชื่อเข้าใช้ Chrome"
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..843f865773adea2f5a193ee9d1d63aa31a7e5e69
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/tr/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome Web Mağazası Ödemeleri"
+   },
+   "app_name": {
+      "message": "Chrome Web Mağazası Ödemeleri"
+   },
+   "craw_app_unavailable": {
+      "message": "Uygulama şu anda kullanılamıyor."
+   },
+   "craw_connect_to_network": {
+      "message": "Lütfen bir ağa bağlanın."
+   },
+   "iap_unavailable": {
+      "message": "Uygulama İçi Ödemeler şu anda kullanılamaz."
+   },
+   "jwt_retrieve_failed": {
+      "message": "İşlem tamamlanamadı. Lütfen daha sonra tekrar deneyin."
+   },
+   "please_sign_in": {
+      "message": "Lütfen Chrome'da oturum açın."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..54f6334d4576e77ddfd2a0f8ce76d6dbdc568f22
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/uk/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Платежі Веб-магазину Chrome"
+   },
+   "app_name": {
+      "message": "Платежі Веб-магазину Chrome"
+   },
+   "craw_app_unavailable": {
+      "message": "Програма тимчасово недоступна."
+   },
+   "craw_connect_to_network": {
+      "message": "Під’єднайтеся до мережі."
+   },
+   "iap_unavailable": {
+      "message": "Платежі через програму зараз не доступні."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Не вдалося завершити трансакцію. Повторіть спробу пізніше."
+   },
+   "please_sign_in": {
+      "message": "Увійдіть у Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..88a7162893880ab016012c46cb3f758d3ba549ff
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/vi/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Thanh toán trên cửa hàng Chrome trực tuyến"
+   },
+   "app_name": {
+      "message": "Thanh toán trên cửa hàng Chrome trực tuyến"
+   },
+   "craw_app_unavailable": {
+      "message": "Ứng dụng hiện không khả dụng."
+   },
+   "craw_connect_to_network": {
+      "message": "Vui lòng kết nối với mạng."
+   },
+   "iap_unavailable": {
+      "message": "Thanh toán trong ứng dụng hiện không khả dụng."
+   },
+   "jwt_retrieve_failed": {
+      "message": "Không thể hoàn tất giao dịch. Vui lòng thử lại sau."
+   },
+   "please_sign_in": {
+      "message": "Vui lòng đăng nhập vào Chrome."
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..15967df3fbb7df189f4192ffbfdac054d878386f
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_CN/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 网上应用店付款系统"
+   },
+   "app_name": {
+      "message": "Chrome 网上应用店付款系统"
+   },
+   "craw_app_unavailable": {
+      "message": "应用目前无法使用。"
+   },
+   "craw_connect_to_network": {
+      "message": "请连接到网络。"
+   },
+   "iap_unavailable": {
+      "message": "目前无法使用应用内付款。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "交易无法完成,请稍后重试。"
+   },
+   "please_sign_in": {
+      "message": "请登录 Chrome。"
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json
new file mode 100644
index 0000000000000000000000000000000000000000..79977059c179b944caf193ae7355f7adb78fbcfa
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_locales/zh_TW/messages.json
@@ -0,0 +1,23 @@
+{
+   "app_description": {
+      "message": "Chrome 線上應用程式商店付款系統"
+   },
+   "app_name": {
+      "message": "Chrome 線上應用程式商店付款系統"
+   },
+   "craw_app_unavailable": {
+      "message": "目前無法使用這個應用程式。"
+   },
+   "craw_connect_to_network": {
+      "message": "請連上網路。"
+   },
+   "iap_unavailable": {
+      "message": "目前無法使用應用程式內付款功能。"
+   },
+   "jwt_retrieve_failed": {
+      "message": "無法完成這項交易,請稍後再試。"
+   },
+   "please_sign_in": {
+      "message": "請登入 Chrome。"
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..ac2eff175ab9129af48fb33981d2789cc5c0ebd7
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/_metadata/verified_contents.json
@@ -0,0 +1 @@
+[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJfbG9jYWxlcy9iZy9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoicHRiSXN4Z3hMRjB4Ti1zSmxvRUlGQ08wYzJmUndRdXd5dnNiSkhqNEdoNCJ9LHsicGF0aCI6Il9sb2NhbGVzL2NhL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJDWnpSVXZMYTRkeWgycmJZU3VnaWxGUGpfVzVhdGhGa2VIU0UzVEZFcTE0In0seyJwYXRoIjoiX2xvY2FsZXMvY3MvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlpHeGJEalczVDZvZ2Z4MTduck9waFA5cTVPRC00bWQ2ZnM1TGZfbGVKclUifSx7InBhdGgiOiJfbG9jYWxlcy9kYS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiaUFURVRmQjVObFhDbm5KWUhZNzRwM3E5T2R3azlNQ2E0d184NG1fcW5aOCJ9LHsicGF0aCI6Il9sb2NhbGVzL2RlL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJTVG5yLUVDMnZlSF9obnp2MWhNZV91M0Zxem1kLXRyd3ZKamhEMDhkSGNNIn0seyJwYXRoIjoiX2xvY2FsZXMvZWwvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlFnS2JWaDdNamJ4VUFHR3NZeklfenZnSm05M0Z1ekY2aHRSQ2FMVHNpY00ifSx7InBhdGgiOiJfbG9jYWxlcy9lbi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiWlgtSlNLYUJVM21KUkQzYnNpMUtqdFN0SnFKd1dVZWgzRDl5WFJFRzZadyJ9LHsicGF0aCI6Il9sb2NhbGVzL2VuX0dCL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJaWC1KU0thQlUzbUpSRDNic2kxS2p0U3RKcUp3V1VlaDNEOXlYUkVHNlp3In0seyJwYXRoIjoiX2xvY2FsZXMvZXMvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlpnYnlkbEZ2MVNRcnJHSE5iemtjQXg1cHg2aVNoN0J2M3JXMlpXVklTZ0EifSx7InBhdGgiOiJfbG9jYWxlcy9lc180MTkvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlppNlJNT1NiOEZqYzVhOXlpUG9wQjU4cEVMZllmWHNKNWM3MkFVQnJjUE0ifSx7InBhdGgiOiJfbG9jYWxlcy9ldC9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiaTVSUHp4bUVTcE9JaHowODdyNFBPWElZMXA3MXdkbXdPa0lST3FPOE9RVSJ9LHsicGF0aCI6Il9sb2NhbGVzL2ZpL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJlSjVZYU9POEVieHJtTS1kYXRMTWJJZldwMEdENmY5amtvSWJDVlI3NnNjIn0seyJwYXRoIjoiX2xvY2FsZXMvZmlsL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJhcWgwTHBpV2liazRsbzZqTm81cU5ERWlPM2tSbFZ3dk1DMzI0MVJlWGd3In0seyJwYXRoIjoiX2xvY2FsZXMvZnIvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6InJRM0VUd0dLdlRtWWs5ZHpsQm9xR1Q5VGNIQVJzNF9NMklTaGlLM3FqUmcifSx7InBhdGgiOiJfbG9jYWxlcy9oaS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiTmI2akV6UEJTNkFJVHB4T01MMDZoQXBic21rSGxuYzZ5dkljaGNFSXVlYyJ9LHsicGF0aCI6Il9sb2NhbGVzL2hyL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiI2VXZVa1IxSS1NYm9XMGVMa0NSMzJBbDVkTUpfYldNSF9ySjlOWFJsLU9ZIn0seyJwYXRoIjoiX2xvY2FsZXMvaHUvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IjBxZjNGZkM1amtWVHRpc3pRcjZpWVBDdzVTYnA1VmEyVUcwaERBcFZocWcifSx7InBhdGgiOiJfbG9jYWxlcy9pZC9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoid1liMlpGb25LYUF0VjhqeThScmlDT0MtTGZmMURlWTlWejBVV2VLbU5vTSJ9LHsicGF0aCI6Il9sb2NhbGVzL2l0L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJEVjRsMTVJZGQ1TUM3SVFMdWdtb2ZhblBLZng4eU11Mkd1YW1FVlpLWjRvIn0seyJwYXRoIjoiX2xvY2FsZXMvamEvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6Ii1PX3RHdW9qaWp6RWpQeUlNWkhGTm54VkIxeElpQUVUWC1ncXJHd2Y5YzQifSx7InBhdGgiOiJfbG9jYWxlcy9rby9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoieVBJMDhxejNnalR1a0ZWNkdTaFVWVXFTOTdtOGVER01FSExmd1hmQ1ZCWSJ9LHsicGF0aCI6Il9sb2NhbGVzL2x0L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJ5Q010WVBEOU53N1Eyc2ZQSWxGTVRYcHpJdWZhOFNZd0ltZGx4T1RjSVJVIn0seyJwYXRoIjoiX2xvY2FsZXMvbHYvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IkZ4d0tmTTVpSEpYOGZ6NTBIdU1zLXlHS0U3aUMzUWJRc1FlemlBcThvUFUifSx7InBhdGgiOiJfbG9jYWxlcy9uYi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoidHFPWjVYdGpzdzE3SzBFQi1LMUVWMXpEUlBGVWxTOFNaQnN4YWIxOUhmVSJ9LHsicGF0aCI6Il9sb2NhbGVzL25sL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJPYWYxa0czZzg3RmsxQ2wwM2s5WDFPNHRpZGI3RUNpVWVaQXFYZDBaWGgwIn0seyJwYXRoIjoiX2xvY2FsZXMvcGwvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IkxlX0NLdUF6dTB4SzBVRzJ5aXJyNzV1QjczT0lzcTdrQTJmVUdCUW5IaDAifSx7InBhdGgiOiJfbG9jYWxlcy9wdF9CUi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiSm1BekkyN1lHcllSX2wzRmF3NU1IZ1g4S1VSQjdPRFJVQWQzbmhlYm5FcyJ9LHsicGF0aCI6Il9sb2NhbGVzL3B0X1BUL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiIwZnFXOFVLNGJyQk1ISGFYV1l2Z0Rncnd5cVI1WmJYZjVqbWNNRWg4Z3pvIn0seyJwYXRoIjoiX2xvY2FsZXMvcm8vbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IjhCS2IxY2JURDFEZ0hUY0JjSEhsOFN2Z1h6MWY2VXFJWVRHUW1jOE5hcHcifSx7InBhdGgiOiJfbG9jYWxlcy9ydS9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiLVVwc2ZRc25KenRXN255c2NyLWpMdjh6S3haWHQ4bnlEbFl4bEhtc1NEVSJ9LHsicGF0aCI6Il9sb2NhbGVzL3NrL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJNR2Z4MEJoSXloZnpZdjBnaEsxdGVNVmJ4dzk5S3duX2tiSFdKSDhXel9RIn0seyJwYXRoIjoiX2xvY2FsZXMvc2wvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6InFKa0RrX284RHptTHBpT2pfejZZVmQ0UG11Y1V3d04zbTJrMDBNZkZwRkEifSx7InBhdGgiOiJfbG9jYWxlcy9zci9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiU1V0cktfcUMyZDVWN0FILWxlc0ZMejgzd1FCNFZwelhWdnNtLWhQdjZvcyJ9LHsicGF0aCI6Il9sb2NhbGVzL3N2L21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJoeEI5T2R4dk9TSVBVNEt2VTViWUhTNm9ESEM4MllBVUVjOFpzTGRsQzhRIn0seyJwYXRoIjoiX2xvY2FsZXMvdGgvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IldxR3JETnpHeUJwcVlORy1EdmdOUFI1Y3VlZWtxUk1rU0U0NTliVVpCY28ifSx7InBhdGgiOiJfbG9jYWxlcy90ci9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiM2RPcS16NUJDRkQ0M3VGRXlhVzlDVjREeDU3WkttSlYyTHZoV1JlWFZnbyJ9LHsicGF0aCI6Il9sb2NhbGVzL3VrL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJxNzR1THpQMXI2WTFIM2VlOFJlaDM1cWdEWGFJN3RpRm9SRFBIT2lEbXI4In0seyJwYXRoIjoiX2xvY2FsZXMvdmkvbWVzc2FnZXMuanNvbiIsInJvb3RfaGFzaCI6IlRhc1VrQ2JzQjJxMEVxRlZQRmZ6cENYaU5jaHc4TndVVHo4SXphcjVING8ifSx7InBhdGgiOiJfbG9jYWxlcy96aF9DTi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoieVc3TVlNczBqbGotUGhHYW91NnpUNm5SZkdiNy02S3hxYjJnR2p5OEJZUSJ9LHsicGF0aCI6Il9sb2NhbGVzL3poX1RXL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiJqdnZNWkQtRUZvNFEwbk1DRGJOTEM3TTlMejZUNHJkMkxUc0ZNaHJPODQ4In0seyJwYXRoIjoiY3Jhd19iYWNrZ3JvdW5kLmpzIiwicm9vdF9oYXNoIjoibkszaUoxVzFsZE42Yy1kR3VkUE1Xalc5SXhmbDNUTXRKQTVSRXJBS0d3YyJ9LHsicGF0aCI6ImNyYXdfd2luZG93LmpzIiwicm9vdF9oYXNoIjoiNjE2TlJOY3NGdkpxX1ctMVFnSWZrVFVyUWluMVB5Zm1ZQktoRFJmZGh2WSJ9LHsicGF0aCI6ImNzcy9jcmF3X3dpbmRvdy5jc3MiLCJyb290X2hhc2giOiJFTi05TFppVkMzbnVFdmE0NDRoYXEtTVZRd1NONVdyVV9BcGVOTkRaMU93In0seyJwYXRoIjoiaHRtbC9jcmF3X3dpbmRvdy5odG1sIiwicm9vdF9oYXNoIjoidTRkQ1lWNU0yWmF1WFFJQTVFT3VhbThMUnpKVjhEcl8yNC0wWmcza1ZVMCJ9LHsicGF0aCI6ImltYWdlcy9mbGFwcGVyLmdpZiIsInJvb3RfaGFzaCI6IjNmeDZSYVNhWGVzUWdxM0t0Y0pCa1I0dGFTTU9VLTRvNnI1bnVfNmRKNmsifSx7InBhdGgiOiJpbWFnZXMvaWNvbl8xMjgucG5nIiwicm9vdF9oYXNoIjoiVHhmdnZaZEtRZGlNczJWbnFyYV9SWVpYbm5oNER3Q3hnbVoyZ1o0VXZfUSJ9LHsicGF0aCI6ImltYWdlcy9pY29uXzE2LnBuZyIsInJvb3RfaGFzaCI6IkNrdlFqYlpDTDQ1NmlpR084NXdibWFXbWRmRW1sX0pyNkktYV9DNGZrM2cifSx7InBhdGgiOiJpbWFnZXMvdG9wYmFyX2Zsb2F0aW5nX2J1dHRvbi5wbmciLCJyb290X2hhc2giOiIxZmtqVGNOdWZfcUY4MXNqV2FUNEluYjRPVjc2ZHVSVk5RZnFtUXNuX0d3In0seyJwYXRoIjoiaW1hZ2VzL3RvcGJhcl9mbG9hdGluZ19idXR0b25fY2xvc2UucG5nIiwicm9vdF9oYXNoIjoiRXhnWHpaTVJ3RDN5TFhhZDBxMV9vdWJwVlloanFKOS1YaFpYUWtBeHFUYyJ9LHsicGF0aCI6ImltYWdlcy90b3BiYXJfZmxvYXRpbmdfYnV0dG9uX2hvdmVyLnBuZyIsInJvb3RfaGFzaCI6ImNodDZxcHBDcFVvMG1JRmhXaExqb21tRHJLU09Gel9TOW01bXFnMXlWelUifSx7InBhdGgiOiJpbWFnZXMvdG9wYmFyX2Zsb2F0aW5nX2J1dHRvbl9tYXhpbWl6ZS5wbmciLCJyb290X2hhc2giOiJyNlRxbEV5OTdJVkRKQzVpZnZSdFdfMDNadHlzWms1LVVNM3U4ck5TZEF3In0seyJwYXRoIjoiaW1hZ2VzL3RvcGJhcl9mbG9hdGluZ19idXR0b25fcHJlc3NlZC5wbmciLCJyb290X2hhc2giOiJYQkRPQlluckVWWUE5M09CRXd0d3JndDdOMUpoVFliVXlKNkZkbGlxSWlzIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6Ikk2SkJHQkktQnQ2ajM0OVo3MThiSmNYU2JzRkloWEFDa0RRcGdtbEVKR3MifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJubW1oa2tlZ2NjYWdkbGRnaWltZWRwaWNjbWdtaWVkYSIsIml0ZW1fdmVyc2lvbiI6IjEuMC4wLjQiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"EqigqdJJ5wZnD4rGyMmVoj4rUoWjlbK87RTX_xw5FC_T7uPbTbTvhXZ258TeXjWAXloponbwxrAUzFrK9kuIt4Wrjmmm30A7sSci5Lj90CxaUdr1xdMaKjXyyiMwDLNjcNFts3j_6QxTQsJ8PWVR53_OOPQHpzteWR0o9rTYQ7c"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"CKbZOOHnzUCTZJsgy1FuLkhQvnMVunE-Gx4-QIxa9qlrQm2vpI8jhmEAB0R2DsMLoG7YUiWN4B7syECn40yAOdTniqD9YgIrbnohv36uBfsSKKpgIqxNxd3mc4BQxPOEE69Ff5pGdNYy6jbnXY0zG1QB-RItwud-qCYm9NEqtK_DS79oyB_TfCodOtajEzhTbpDxXrQ-QBpHjAlktPj51ZFG9r6Ob07gDUplPDGfu7mwKbbLAt2PptQ5V7170MoUcbVin_2EfS3vk1qGZc76hj-isEKM-V6kmN_-_rZaDCoIKSEzZMHN5kG0y2SKryAitBNLTT5TTGDc5tt7OCGStQ"}]}}]
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js
new file mode 100644
index 0000000000000000000000000000000000000000..d256305d3b145522184207fdb44d7dd1e7acd8b9
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_background.js
@@ -0,0 +1,380 @@
+var b,l=l||{};l.scope={};l.findInternal=function(a,c,d){a instanceof String&&(a=String(a));for(var e=a.length,f=0;f<e;f++){var g=a[f];if(c.call(d,g,f,a))return{i:f,v:g}}return{i:-1,v:void 0}};l.ASSUME_ES5=!1;l.ASSUME_NO_NATIVE_MAP=!1;l.ASSUME_NO_NATIVE_SET=!1;l.defineProperty=l.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,c,d){a!=Array.prototype&&a!=Object.prototype&&(a[c]=d.value)};
+l.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};l.global=l.getGlobal(this);l.polyfill=function(a,c){if(c){var d=l.global;a=a.split(".");for(var e=0;e<a.length-1;e++){var f=a[e];f in d||(d[f]={});d=d[f]}a=a[a.length-1];e=d[a];c=c(e);c!=e&&null!=c&&l.defineProperty(d,a,{configurable:!0,writable:!0,value:c})}};
+l.checkStringArgs=function(a,c,d){if(null==a)throw new TypeError("The 'this' value for String.prototype."+d+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+d+" must not be a regular expression");return a+""};var n=n||{};n.global=this;n.isDef=function(a){return void 0!==a};n.isString=function(a){return"string"==typeof a};n.isBoolean=function(a){return"boolean"==typeof a};n.isNumber=function(a){return"number"==typeof a};
+n.exportPath_=function(a,c,d){a=a.split(".");d=d||n.global;a[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&n.isDef(c)?d[e]=c:d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}};n.define=function(a,c){n.exportPath_(a,c)};n.DEBUG=!0;n.LOCALE="en";n.TRUSTED_SITE=!0;n.STRICT_MODE_COMPATIBLE=!1;n.DISALLOW_TEST_ONLY_CODE=!n.DEBUG;n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
+n.provide=function(a){if(n.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");n.constructNamespace_(a)};n.constructNamespace_=function(a,c){n.exportPath_(a,c)};n.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+n.module=function(a){if(!n.isString(a)||!a||-1==a.search(n.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!n.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(n.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+n.moduleLoaderState_.moduleName=a};n.module.get=function(){return null};n.module.getInternal_=function(){return null};n.moduleLoaderState_=null;n.isInModuleLoader_=function(){return null!=n.moduleLoaderState_};n.module.declareLegacyNamespace=function(){n.moduleLoaderState_.declareLegacyNamespace=!0};n.setTestOnly=function(a){if(n.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};n.forwardDeclare=function(){};
+n.getObjectByName=function(a){a=a.split(".");for(var c=n.global,d=0;d<a.length;d++)if(c=c[a[d]],!n.isDefAndNotNull(c))return null;return c};n.globalize=function(a,c){c=c||n.global;for(var d in a)c[d]=a[d]};n.addDependency=function(a,c,d,e){if(n.DEPENDENCIES_ENABLED){var f=n.getLoader_();f&&f.addDependency(a,c,d,e)}};n.useStrictRequires=!1;n.ENABLE_DEBUG_LOADER=!0;n.logToConsole_=function(a){n.global.console&&n.global.console.error(a)};n.require=function(a){n.ENABLE_DEBUG_LOADER&&n.debugLoader_&&n.getLoader_().earlyProcessLoad(a)};
+n.basePath="";n.nullFunction=function(){};n.abstractMethod=function(){throw Error("unimplemented abstract method");};n.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;n.DEBUG&&(n.instantiatedSingletons_[n.instantiatedSingletons_.length]=a);return a.instance_=new a}};n.instantiatedSingletons_=[];n.LOAD_MODULE_USING_EVAL=!0;n.SEAL_MODULE_EXPORTS=n.DEBUG;n.loadedModules_={};n.DEPENDENCIES_ENABLED=!1;n.TRANSPILE="detect";n.TRANSPILER="transpile.js";
+n.DEBUG_LOADER="";n.hasBadLetScoping=null;n.useSafari10Workaround=function(){if(null==n.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){a=!1}n.hasBadLetScoping=a}return n.hasBadLetScoping};n.workaroundSafari10EvalBug=function(a){return"(function(){"+a+"\n;})();\n"};
+n.loadModule=function(a){var c=n.moduleLoaderState_;try{n.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1};if(n.isFunction(a))var d=a.call(void 0,{});else if(n.isString(a))n.useSafari10Workaround()&&(a=n.workaroundSafari10EvalBug(a)),d=n.loadModuleFromSource_.call(void 0,a);else throw Error("Invalid module definition");var e=n.moduleLoaderState_.moduleName;if(n.isString(e)&&e)n.moduleLoaderState_.declareLegacyNamespace?n.constructNamespace_(e,d):n.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==
+typeof d&&null!=d&&Object.seal(d),n.loadedModules_[e]=d;else throw Error('Invalid module name "'+e+'"');}finally{n.moduleLoaderState_=c}};n.loadModuleFromSource_=function(a){eval(a);return{}};n.normalizePath_=function(a){a=a.split("/");for(var c=0;c<a.length;)"."==a[c]?a.splice(c,1):c&&".."==a[c]&&a[c-1]&&".."!=a[c-1]?a.splice(--c,2):c++;return a.join("/")};
+n.loadFileSync_=function(a){if(n.global.CLOSURE_LOAD_FILE_SYNC)return n.global.CLOSURE_LOAD_FILE_SYNC(a);try{var c=new n.global.XMLHttpRequest;c.open("get",a,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
+n.transpile_=function(a,c){var d=n.global.$jscomp;d||(n.global.$jscomp=d={});var e=d.transpile;if(!e){var f=n.basePath+n.TRANSPILER,g=n.loadFileSync_(f);if(g){(function(){eval(g+"\n//# sourceURL="+f)}).call(n.global);if(n.global.$gwtExport&&n.global.$gwtExport.$jscomp&&!n.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(n.global.$gwtExport));n.global.$jscomp.transpile=n.global.$gwtExport.$jscomp.transpile;
+d=n.global.$jscomp;e=d.transpile}}if(!e){var h=" requires transpilation but no transpiler was found.";h+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';e=d.transpile=function(a,c){n.logToConsole_(c+h);return a}}return e(a,c)};
+n.typeOf=function(a){var c=typeof a;if("object"==c)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return c;var d=Object.prototype.toString.call(a);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
+else if("function"==c&&"undefined"==typeof a.call)return"object";return c};n.isNull=function(a){return null===a};n.isDefAndNotNull=function(a){return null!=a};n.isArray=function(a){return"array"==n.typeOf(a)};n.isArrayLike=function(a){var c=n.typeOf(a);return"array"==c||"object"==c&&"number"==typeof a.length};n.isDateLike=function(a){return n.isObject(a)&&"function"==typeof a.getFullYear};n.isFunction=function(a){return"function"==n.typeOf(a)};
+n.isObject=function(a){var c=typeof a;return"object"==c&&null!=a||"function"==c};n.getUid=function(a){return a[n.UID_PROPERTY_]||(a[n.UID_PROPERTY_]=++n.uidCounter_)};n.hasUid=function(a){return!!a[n.UID_PROPERTY_]};n.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(n.UID_PROPERTY_);try{delete a[n.UID_PROPERTY_]}catch(c){}};n.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);n.uidCounter_=0;n.getHashCode=n.getUid;n.removeHashCode=n.removeUid;
+n.cloneObject=function(a){var c=n.typeOf(a);if("object"==c||"array"==c){if("function"===typeof a.clone)return a.clone();c="array"==c?[]:{};for(var d in a)c[d]=n.cloneObject(a[d]);return c}return a};n.bindNative_=function(a,c,d){return a.call.apply(a.bind,arguments)};
+n.bindJs_=function(a,c,d){if(!a)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return a.apply(c,d)}}return function(){return a.apply(c,arguments)}};n.bind=function(a,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?n.bind=n.bindNative_:n.bind=n.bindJs_;return n.bind.apply(null,arguments)};
+n.partial=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return a.apply(this,c)}};n.mixin=function(a,c){for(var d in c)a[d]=c[d]};n.now=n.TRUSTED_SITE&&Date.now||function(){return+new Date};
+n.globalEval=function(a){if(n.global.execScript)n.global.execScript(a,"JavaScript");else if(n.global.eval){if(null==n.evalWorksForGlobals_){try{n.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof n.global._evalTest_){try{delete n.global._evalTest_}catch(e){}n.evalWorksForGlobals_=!0}else n.evalWorksForGlobals_=!1}if(n.evalWorksForGlobals_)n.global.eval(a);else{var c=n.global.document,d=c.createElement("SCRIPT");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(a));
+c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};n.evalWorksForGlobals_=null;
+n.getCssName=function(a,c){if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var d=function(a){return n.cssNameMapping_[a]||a},e=function(a){a=a.split("-");for(var c=[],e=0;e<a.length;e++)c.push(d(a[e]));return c.join("-")};e=n.cssNameMapping_?"BY_WHOLE"==n.cssNameMappingStyle_?d:e:function(a){return a};a=c?a+"-"+e(c):e(a);return n.global.CLOSURE_CSS_NAME_MAP_FN?n.global.CLOSURE_CSS_NAME_MAP_FN(a):a};
+n.setCssNameMapping=function(a,c){n.cssNameMapping_=a;n.cssNameMappingStyle_=c};n.getMsg=function(a,c){c&&(a=a.replace(/\{\$([^}]+)}/g,function(a,e){return null!=c&&e in c?c[e]:a}));return a};n.getMsgWithFallback=function(a){return a};n.exportSymbol=function(a,c,d){n.exportPath_(a,c,d)};n.exportProperty=function(a,c,d){a[c]=d};
+n.inherits=function(a,c){function d(){}d.prototype=c.prototype;a.superClass_=c.prototype;a.prototype=new d;a.prototype.constructor=a;a.base=function(a,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(a,e)}};
+n.base=function(a,c,d){var e=arguments.callee.caller;if(n.STRICT_MODE_COMPATIBLE||n.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(a,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=
+a.constructor;h;h=h.superClass_&&h.superClass_.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(a,f);if(a[c]===e)return a.constructor.prototype[c].apply(a,f);throw Error("goog.base called from a method of one name to a method of a different name");};n.scope=function(a){if(n.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");a.call(n.global)};
+n.defineClass=function(a,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=n.defineClass.createSealingConstructor_(d,a);a&&n.inherits(d,a);delete c.constructor;delete c.statics;n.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):n.defineClass.applyProperties_(d,e));return d};n.defineClass.SEAL_CLASS_INSTANCES=n.DEBUG;
+n.defineClass.createSealingConstructor_=function(a,c){if(!n.defineClass.SEAL_CLASS_INSTANCES)return a;var d=!n.defineClass.isUnsealable_(c),e=function(){var c=a.apply(this,arguments)||this;c[n.UID_PROPERTY_]=c[n.UID_PROPERTY_];this.constructor===e&&d&&Object.seal instanceof Function&&Object.seal(c);return c};return e};n.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};n.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+n.defineClass.applyProperties_=function(a,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d]);for(var e=0;e<n.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=n.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])};n.tagUnsealableClass=function(){};n.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
+if(n.DEPENDENCIES_ENABLED){n.inHtmlDocument_=function(){var a=n.global.document;return null!=a&&"write"in a};n.findBasePath_=function(){if(n.isDef(n.global.CLOSURE_BASE_PATH)&&n.isString(n.global.CLOSURE_BASE_PATH))n.basePath=n.global.CLOSURE_BASE_PATH;else if(n.inHtmlDocument_()){var a=n.global.document,c=a.currentScript;a=c?[c]:a.getElementsByTagName("SCRIPT");for(c=a.length-1;0<=c;--c){var d=a[c].src,e=d.lastIndexOf("?");e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){n.basePath=d.substr(0,e-
+7);break}}}};n.findBasePath_();n.Transpiler=function(){this.requiresTranspilation_=null};n.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,c){e?d[a]=!0:c()?d[a]=!1:e=d[a]=!0}function c(a){try{return!!eval(a)}catch(h){return!1}}var d={es3:!1},e=!1,f=n.global.navigator&&n.global.navigator.userAgent?n.global.navigator.userAgent:"";a("es5",function(){return c("[1,].length==1")});a("es6",function(){var a=f.match(/Edge\/(\d+)(\.\d)*/i);return a&&15>Number(a[1])?!1:c('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});
+a("es6-impl",function(){return!0});a("es7",function(){return c("2 ** 2 == 4")});a("es8",function(){return c("async () => 1, true")});a("es_next",function(){return c("({...rest} = {}), true")});return d};n.Transpiler.prototype.needsTranspile=function(a){if("always"==n.TRANSPILE)return!0;if("never"==n.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a];throw Error("Unknown language mode: "+
+a);};n.Transpiler.prototype.transpile=function(a,c){return n.transpile_(a,c)};n.transpiler_=new n.Transpiler;n.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.lastNonModuleScriptIndex_=0};n.DebugLoader.IS_OLD_IE_=!(n.global.atob||!n.global.document||!n.global.document.all);b=n.DebugLoader.prototype;b.earlyProcessLoad=function(a){n.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(a)};b.load=function(a){var c=this.getPathFromDeps_(a);
+if(c){var d=[],e={},f=this.dependencies_,g=this,h=function(a){if(!(a in f.written||a in f.visited)){f.visited[a]=!0;if(a in f.requires)for(var c in f.requires[a])if(!g.isProvided(c))if(c in f.nameToPath)h(f.nameToPath[c]);else throw Error("Undefined nameToPath for "+c);a in e||(e[a]=!0,d.push(a))}};h(c);for(a=0;a<d.length;a++)c=d[a],this.dependencies_.written[c]=!0;for(a=0;a<d.length;a++)if(c=d[a]){var k=f.loadFlags[c]||{},m=this.getTranspiler().needsTranspile(k.lang||"es3");"goog"==k.module||m?this.importProcessedScript_(n.basePath+
+c,"goog"==k.module,m):this.importScript_(n.basePath+c)}else throw Error("Undefined script input");}else if(a="goog.require could not find: "+a,this.logToConsole(a),n.useStrictRequires)throw Error(a);};b.addDependency=function(a,c,d,e){var f;a=a.replace(/\\/g,"/");var g=this.dependencies_;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.nameToPath[f]=a,g.loadFlags[a]=e;for(e=0;c=d[e];e++)a in g.requires||(g.requires[a]={}),g.requires[a][c]=!0};b.importScript_=function(a,c){(n.global.CLOSURE_IMPORT_SCRIPT||
+n.bind(this.writeScriptTag_,this))(a,c)&&(this.dependencies_.written[a]=!0)};b.importProcessedScript_=function(a,c,d){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+a+'", '+c+", "+d+");")};b.maybeProcessDeferredDep_=function(a){this.isDeferredModule_(a)&&this.allDepsAreAvailable_(a)&&this.maybeProcessDeferredPath_(n.basePath+this.getPathFromDeps_(a))};b.isDeferredModule_=function(a){var c=(a=this.getPathFromDeps_(a))&&this.dependencies_.loadFlags[a]||{},d=c.lang||"es3";return a&&("goog"==
+c.module||this.getTranspiler().needsTranspile(d))?n.basePath+a in this.dependencies_.deferred:!1};b.allDepsAreAvailable_=function(a){if((a=this.getPathFromDeps_(a))&&a in this.dependencies_.requires)for(var c in this.dependencies_.requires[a])if(!this.isProvided(c)&&!this.isDeferredModule_(c))return!1;return!0};b.maybeProcessDeferredPath_=function(a){if(a in this.dependencies_.deferred){var c=this.dependencies_.deferred[a];delete this.dependencies_.deferred[a];n.globalEval(c)}};b.writeScriptSrcNode_=
+function(a){n.global.document.write('<script type="text/javascript" src="'+a+'">\x3c/script>')};b.appendScriptSrcNode_=function(a){var c=n.global.document,d=c.createElement("script");d.type="text/javascript";d.src=a;d.defer=!1;d.async=!1;c.head.appendChild(d)};b.writeScriptTag_=function(a,c){if(this.inHtmlDocument()){var d=n.global.document;if(!n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==d.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');
+}void 0===c?n.DebugLoader.IS_OLD_IE_?(c=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",d.write('<script type="text/javascript" src="'+a+'"'+c+">\x3c/script>")):n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?this.appendScriptSrcNode_(a):this.writeScriptSrcNode_(a):d.write('<script type="text/javascript">'+this.protectScriptTag_(c)+"\x3c/script>");return!0}return!1};b.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")};b.getPathFromDeps_=
+function(a){return a in this.dependencies_.nameToPath?this.dependencies_.nameToPath[a]:null};b.getTranspiler=function(){return n.transpiler_};b.isProvided=function(a){return n.isProvided_(a)};b.inHtmlDocument=function(){return n.inHtmlDocument_()};b.logToConsole=function(a){n.logToConsole_(a)};n.debugLoader_=null;n.registerDebugLoader=function(){var a=q;if(n.debugLoader_)throw Error("Debug loader already registered!");if(!(a instanceof n.DebugLoader))throw Error("Not a goog.DebugLoader.");n.debugLoader_=
+a};n.getLoader_=function(){if(!n.debugLoader_&&n.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");n.debugLoader_||(n.debugLoader_=new n.DebugLoader);return n.debugLoader_};var q;n.DEBUG_LOADER&&(q=new n.DebugLoader,q.importScript_(n.basePath+n.DEBUG_LOADER));n.global.CLOSURE_NO_DEPS||(q=q||new n.DebugLoader,n.DEBUG_LOADER||n.registerDebugLoader(),q.importScript_(n.basePath+"deps.js"))};n.craw={};n.craw.AppBackgroundDelegate=function(){};n.craw.AppBackgroundDelegate.impl_=n.craw.AppBackgroundDelegate;n.craw.AppBackgroundDelegate.setImpl=function(){n.craw.AppBackgroundDelegate.impl_=u.BackgroundDelegate};n.craw.AppBackgroundDelegate.createImpl=function(){return new n.craw.AppBackgroundDelegate.impl_};n.craw.AppBackgroundDelegate.prototype.getWindowBounds=function(){};n.craw.WindowConfig=function(a,c){this.url_=a;this.useAuth_=c};n.craw.WindowConfig.prototype.getUrl=function(){return this.url_};n.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};var u={Errors:{}};u.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};u.Errors.getErrorResponse=function(a){return{request:{},response:{errorType:a}}};n.debug={};n.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,n.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a))};n.inherits(n.debug.Error,Error);n.debug.Error.prototype.name="CustomError";n.dom={};n.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};n.asserts={};n.asserts.ENABLE_ASSERTS=n.DEBUG;n.asserts.AssertionError=function(a,c){n.debug.Error.call(this,n.asserts.subs_(a,c))};n.inherits(n.asserts.AssertionError,n.debug.Error);n.asserts.AssertionError.prototype.name="AssertionError";n.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};n.asserts.errorHandler_=n.asserts.DEFAULT_ERROR_HANDLER;n.asserts.subs_=function(a,c){a=a.split("%s");for(var d="",e=a.length-1,f=0;f<e;f++)d+=a[f]+(f<c.length?c[f]:"%s");return d+a[e]};
+n.asserts.doAssertFailure_=function(a,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else a&&(f+=": "+a,g=c);a=new n.asserts.AssertionError(""+f,g||[]);n.asserts.errorHandler_(a)};n.asserts.setErrorHandler=function(a){n.asserts.ENABLE_ASSERTS&&(n.asserts.errorHandler_=a)};n.asserts.assert=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!a&&n.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.fail=function(a,c){n.asserts.ENABLE_ASSERTS&&n.asserts.errorHandler_(new n.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};n.asserts.assertNumber=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isNumber(a)&&n.asserts.doAssertFailure_("Expected number but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertString=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isString(a)&&n.asserts.doAssertFailure_("Expected string but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};n.asserts.assertFunction=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isFunction(a)&&n.asserts.doAssertFailure_("Expected function but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertObject=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isObject(a)&&n.asserts.doAssertFailure_("Expected object but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};n.asserts.assertArray=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isArray(a)&&n.asserts.doAssertFailure_("Expected array but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertBoolean=function(a,c,d){n.asserts.ENABLE_ASSERTS&&!n.isBoolean(a)&&n.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};n.asserts.assertElement=function(a,c,d){!n.asserts.ENABLE_ASSERTS||n.isObject(a)&&a.nodeType==n.dom.NodeType.ELEMENT||n.asserts.doAssertFailure_("Expected Element but got %s: %s.",[n.typeOf(a),a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertInstanceof=function(a,c,d,e){!n.asserts.ENABLE_ASSERTS||a instanceof c||n.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[n.asserts.getType_(c),n.asserts.getType_(a)],d,Array.prototype.slice.call(arguments,3));return a};n.asserts.assertFinite=function(a,c,d){!n.asserts.ENABLE_ASSERTS||"number"==typeof a&&isFinite(a)||n.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[a],c,Array.prototype.slice.call(arguments,2));return a};
+n.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)n.asserts.fail(a+" should not be enumerable in Object.prototype.")};n.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};n.array={};n.NATIVE_ARRAY_PROTOTYPES=n.TRUSTED_SITE;n.array.ASSUME_NATIVE_FUNCTIONS=!1;n.array.peek=function(a){return a[a.length-1]};n.array.last=n.array.peek;
+n.array.indexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,c,d)}:function(a,c,d){d=null==d?0:0>d?Math.max(0,a.length+d):d;if(n.isString(a))return n.isString(c)&&1==c.length?a.indexOf(c,d):-1;for(;d<a.length;d++)if(d in a&&a[d]===c)return d;return-1};
+n.array.lastIndexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,c,null==d?a.length-1:d)}:function(a,c,d){d=null==d?a.length-1:d;0>d&&(d=Math.max(0,a.length+d));if(n.isString(a))return n.isString(c)&&1==c.length?a.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in a&&a[d]===c)return d;return-1};
+n.array.forEach=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,c,d){n.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)g in f&&c.call(d,f[g],g,a)};n.array.forEachRight=function(a,c){var d=a.length,e=n.isString(a)?a.split(""):a;for(--d;0<=d;--d)d in e&&c.call(void 0,e[d],d,a)};
+n.array.filter=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=[],g=0,h=n.isString(a)?a.split(""):a,k=0;k<e;k++)if(k in h){var m=h[k];c.call(d,m,k,a)&&(f[g++]=m)}return f};
+n.array.map=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.map.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=Array(e),g=n.isString(a)?a.split(""):a,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,a));return f};
+n.array.reduce=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,c,d,e){n.asserts.assert(null!=a.length);e&&(c=n.bind(c,e));return Array.prototype.reduce.call(a,c,d)}:function(a,c,d,e){var f=d;n.array.forEach(a,function(d,h){f=c.call(e,f,d,h,a)});return f};
+n.array.reduceRight=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,c,d,e){n.asserts.assert(null!=a.length);n.asserts.assert(null!=c);e&&(c=n.bind(c,e));return Array.prototype.reduceRight.call(a,c,d)}:function(a,c,d,e){var f=d;n.array.forEachRight(a,function(d,h){f=c.call(e,f,d,h,a)});return f};
+n.array.some=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.some.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return!0;return!1};
+n.array.every=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,c,d){n.asserts.assert(null!=a.length);return Array.prototype.every.call(a,c,d)}:function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,a))return!1;return!0};n.array.count=function(a,c,d){var e=0;n.array.forEach(a,function(a,g,h){c.call(d,a,g,h)&&++e},d);return e};
+n.array.find=function(a,c,d){c=n.array.findIndex(a,c,d);return 0>c?null:n.isString(a)?a.charAt(c):a[c]};n.array.findIndex=function(a,c,d){for(var e=a.length,f=n.isString(a)?a.split(""):a,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,a))return g;return-1};n.array.findRight=function(a,c,d){c=n.array.findIndexRight(a,c,d);return 0>c?null:n.isString(a)?a.charAt(c):a[c]};
+n.array.findIndexRight=function(a,c,d){var e=a.length,f=n.isString(a)?a.split(""):a;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,a))return e;return-1};n.array.contains=function(a,c){return 0<=n.array.indexOf(a,c)};n.array.isEmpty=function(a){return 0==a.length};n.array.clear=function(a){if(!n.isArray(a))for(var c=a.length-1;0<=c;c--)delete a[c];a.length=0};n.array.insert=function(a,c){n.array.contains(a,c)||a.push(c)};n.array.insertAt=function(a,c,d){n.array.splice(a,d,0,c)};
+n.array.insertArrayAt=function(a,c,d){n.partial(n.array.splice,a,d,0).apply(null,c)};n.array.insertBefore=function(a,c,d){var e;2==arguments.length||0>(e=n.array.indexOf(a,d))?a.push(c):n.array.insertAt(a,c,e)};n.array.remove=function(a,c){c=n.array.indexOf(a,c);var d;(d=0<=c)&&n.array.removeAt(a,c);return d};n.array.removeLast=function(a,c){c=n.array.lastIndexOf(a,c);return 0<=c?(n.array.removeAt(a,c),!0):!1};
+n.array.removeAt=function(a,c){n.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,c,1).length};n.array.removeIf=function(a,c,d){c=n.array.findIndex(a,c,d);return 0<=c?(n.array.removeAt(a,c),!0):!1};n.array.removeAllIf=function(a,c,d){var e=0;n.array.forEachRight(a,function(f,g){c.call(d,f,g,a)&&n.array.removeAt(a,g)&&e++});return e};n.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};n.array.join=function(a){return Array.prototype.concat.apply([],arguments)};
+n.array.toArray=function(a){var c=a.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=a[e];return d}return[]};n.array.clone=n.array.toArray;n.array.extend=function(a,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(n.isArrayLike(e)){var f=a.length||0,g=e.length||0;a.length=f+g;for(var h=0;h<g;h++)a[f+h]=e[h]}else a.push(e)}};n.array.splice=function(a,c,d,e){n.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,n.array.slice(arguments,1))};
+n.array.slice=function(a,c,d){n.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,c):Array.prototype.slice.call(a,c,d)};n.array.removeDuplicates=function(a,c){c=c||a;for(var d={},e=0,f=0;f<a.length;){var g=a[f++];var h=g;h=n.isObject(h)?"o"+n.getUid(h):(typeof h).charAt(0)+h;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};n.array.binarySearch=function(a,c,d){return n.array.binarySearch_(a,d||n.array.defaultCompare,!1,c)};
+n.array.binarySelect=function(a,c,d){return n.array.binarySearch_(a,c,!0,void 0,d)};n.array.binarySearch_=function(a,c,d,e,f){for(var g=0,h=a.length,k;g<h;){var m=g+h>>1;var p=d?c.call(f,a[m],m,a):c(e,a[m]);0<p?g=m+1:(h=m,k=!p)}return k?g:~g};n.array.sort=function(a,c){a.sort(c||n.array.defaultCompare)};
+n.array.stableSort=function(a,c){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]={index:e,value:a[e]};var f=c||n.array.defaultCompare;n.array.sort(d,function(a,c){return f(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value};n.array.sortByKey=function(a,c,d){var e=d||n.array.defaultCompare;n.array.sort(a,function(a,d){return e(c(a),c(d))})};n.array.sortObjectsByKey=function(a,c,d){n.array.sortByKey(a,function(a){return a[c]},d)};
+n.array.isSorted=function(a){for(var c=n.array.defaultCompare,d=1;d<a.length;d++)if(0<c(a[d-1],a[d]))return!1;return!0};n.array.equals=function(a,c,d){if(!n.isArrayLike(a)||!n.isArrayLike(c)||a.length!=c.length)return!1;var e=a.length;d=d||n.array.defaultCompareEquality;for(var f=0;f<e;f++)if(!d(a[f],c[f]))return!1;return!0};
+n.array.compare3=function(a,c,d){d=d||n.array.defaultCompare;for(var e=Math.min(a.length,c.length),f=0;f<e;f++){var g=d(a[f],c[f]);if(0!=g)return g}return n.array.defaultCompare(a.length,c.length)};n.array.defaultCompare=function(a,c){return a>c?1:a<c?-1:0};n.array.inverseDefaultCompare=function(a,c){return-n.array.defaultCompare(a,c)};n.array.defaultCompareEquality=function(a,c){return a===c};
+n.array.binaryInsert=function(a,c,d){d=n.array.binarySearch(a,c,d);return 0>d?(n.array.insertAt(a,c,-(d+1)),!0):!1};n.array.binaryRemove=function(a,c,d){c=n.array.binarySearch(a,c,d);return 0<=c?n.array.removeAt(a,c):!1};n.array.bucket=function(a,c,d){for(var e={},f=0;f<a.length;f++){var g=a[f],h=c.call(d,g,f,a);n.isDef(h)&&(e[h]||(e[h]=[])).push(g)}return e};n.array.toObject=function(a,c,d){var e={};n.array.forEach(a,function(f,g){e[c.call(d,f,g,a)]=f});return e};
+n.array.range=function(a,c,d){var e=[],f=0,g=a;d=d||1;void 0!==c&&(f=a,g=c);if(0>d*(g-f))return[];if(0<d)for(a=f;a<g;a+=d)e.push(a);else for(a=f;a>g;a+=d)e.push(a);return e};n.array.repeat=function(a,c){for(var d=[],e=0;e<c;e++)d[e]=a;return d};n.array.flatten=function(a){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(n.isArray(e))for(var f=0;f<e.length;f+=8192){var g=n.array.slice(e,f,f+8192);g=n.array.flatten.apply(null,g);for(var h=0;h<g.length;h++)c.push(g[h])}else c.push(e)}return c};
+n.array.rotate=function(a,c){n.asserts.assert(null!=a.length);a.length&&(c%=a.length,0<c?Array.prototype.unshift.apply(a,a.splice(-c,c)):0>c&&Array.prototype.push.apply(a,a.splice(0,-c)));return a};n.array.moveItem=function(a,c,d){n.asserts.assert(0<=c&&c<a.length);n.asserts.assert(0<=d&&d<a.length);c=Array.prototype.splice.call(a,c,1);Array.prototype.splice.call(a,d,0,c[0])};
+n.array.zip=function(a){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};n.array.shuffle=function(a,c){c=c||Math.random;for(var d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};n.array.copyByIndex=function(a,c){var d=[];n.array.forEach(c,function(c){d.push(a[c])});return d};
+n.array.concatMap=function(a,c,d){return n.array.concat.apply([],n.array.map(a,c,d))};n.debug.errorcontext={};n.debug.errorcontext.addErrorContext=function(a,c,d){a[n.debug.errorcontext.CONTEXT_KEY_]||(a[n.debug.errorcontext.CONTEXT_KEY_]={});a[n.debug.errorcontext.CONTEXT_KEY_][c]=d};n.debug.errorcontext.getErrorContext=function(a){return a[n.debug.errorcontext.CONTEXT_KEY_]||{}};n.debug.errorcontext.CONTEXT_KEY_="__closure__error__context__984382";n.string={};n.string.DETECT_DOUBLE_ESCAPING=!1;n.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;n.string.Unicode={NBSP:"\u00a0"};n.string.startsWith=function(a,c){return 0==a.lastIndexOf(c,0)};n.string.endsWith=function(a,c){var d=a.length-c.length;return 0<=d&&a.indexOf(c,d)==d};n.string.caseInsensitiveStartsWith=function(a,c){return 0==n.string.caseInsensitiveCompare(c,a.substr(0,c.length))};
+n.string.caseInsensitiveEndsWith=function(a,c){return 0==n.string.caseInsensitiveCompare(c,a.substr(a.length-c.length,c.length))};n.string.caseInsensitiveEquals=function(a){return n.net.XhrIo.CONTENT_TYPE_HEADER.toLowerCase()==a.toLowerCase()};n.string.subs=function(a,c){for(var d=a.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};
+n.string.collapseWhitespace=function(a){return a.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};n.string.isEmptyOrWhitespace=function(a){return/^[\s\xa0]*$/.test(a)};n.string.isEmptyString=function(a){return 0==a.length};n.string.isEmpty=n.string.isEmptyOrWhitespace;n.string.isEmptyOrWhitespaceSafe=function(a){return n.string.isEmptyOrWhitespace(n.string.makeSafe(a))};n.string.isEmptySafe=n.string.isEmptyOrWhitespaceSafe;n.string.isBreakingWhitespace=function(a){return!/[^\t\n\r ]/.test(a)};
+n.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};n.string.isNumeric=function(a){return!/[^0-9]/.test(a)};n.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};n.string.isSpace=function(a){return" "==a};n.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\u0080"<=a&&"\ufffd">=a};n.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};n.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};
+n.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};n.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};n.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};n.string.trim=n.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]};n.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};
+n.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};n.string.caseInsensitiveCompare=function(a,c){a=String(a).toLowerCase();c=String(c).toLowerCase();return a<c?-1:a==c?0:1};
+n.string.numberAwareCompare_=function(a,c,d){if(a==c)return 0;if(!a)return-1;if(!c)return 1;for(var e=a.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var k=f[h];if(d!=k)return a=parseInt(d,10),!isNaN(a)&&(c=parseInt(k,10),!isNaN(c)&&a-c)?a-c:d<k?-1:1}return e.length!=f.length?e.length-f.length:a<c?-1:1};n.string.intAwareCompare=function(a,c){return n.string.numberAwareCompare_(a,c,/\d+|\D+/g)};
+n.string.floatAwareCompare=function(a,c){return n.string.numberAwareCompare_(a,c,/\d+|\.\d+|\D+/g)};n.string.numerateCompare=n.string.floatAwareCompare;n.string.urlEncode=function(a){return encodeURIComponent(String(a))};n.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};n.string.newLineToBr=function(a,c){return a.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
+n.string.htmlEscape=function(a){if(!n.string.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(n.string.AMP_RE_,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(n.string.LT_RE_,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(n.string.GT_RE_,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(n.string.QUOT_RE_,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(n.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(n.string.NULL_RE_,"&#0;"));n.string.DETECT_DOUBLE_ESCAPING&&-1!=a.indexOf("e")&&(a=a.replace(n.string.E_RE_,
+"&#101;"));return a};n.string.AMP_RE_=/&/g;n.string.LT_RE_=/</g;n.string.GT_RE_=/>/g;n.string.QUOT_RE_=/"/g;n.string.SINGLE_QUOTE_RE_=/'/g;n.string.NULL_RE_=/\x00/g;n.string.E_RE_=/e/g;n.string.ALL_RE_=n.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;n.string.unescapeEntities=function(a){return n.string.contains(a,"&")?!n.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in n.global?n.string.unescapeEntitiesUsingDom_(a):n.string.unescapePureXmlEntities_(a):a};
+n.string.unescapeEntitiesWithDocument=function(a,c){return n.string.contains(a,"&")?n.string.unescapeEntitiesUsingDom_(a,c):a};
+n.string.unescapeEntitiesUsingDom_=function(a,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):n.global.document.createElement("div");return a.replace(n.string.HTML_ENTITY_PATTERN_,function(a,c){var f=d[a];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=a+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[a]=f})};
+n.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?a:String.fromCharCode(d)}})};n.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;n.string.whitespaceEscape=function(a,c){return n.string.newLineToBr(a.replace(/  /g," &#160;"),c)};n.string.preserveSpaces=function(a){return a.replace(/(^|[\n ]) /g,"$1"+n.string.Unicode.NBSP)};
+n.string.stripQuotes=function(a,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(a.charAt(0)==f&&a.charAt(a.length-1)==f)return a.substring(1,a.length-1)}return a};n.string.truncate=function(a,c,d){d&&(a=n.string.unescapeEntities(a));a.length>c&&(a=a.substring(0,c-3)+"...");d&&(a=n.string.htmlEscape(a));return a};
+n.string.truncateMiddle=function(a,c,d,e){d&&(a=n.string.unescapeEntities(a));e&&a.length>c?(e>c&&(e=c),a=a.substring(0,c-e)+"..."+a.substring(a.length-e)):a.length>c&&(e=Math.floor(c/2),a=a.substring(0,e+c%2)+"..."+a.substring(a.length-e));d&&(a=n.string.htmlEscape(a));return a};n.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};n.string.jsEscapeCache_={"'":"\\'"};
+n.string.quote=function(a){a=String(a);for(var c=['"'],d=0;d<a.length;d++){var e=a.charAt(d),f=e.charCodeAt(0);c[d+1]=n.string.specialEscapeChars_[e]||(31<f&&127>f?e:n.string.escapeChar(e))}c.push('"');return c.join("")};n.string.escapeString=function(a){for(var c=[],d=0;d<a.length;d++)c[d]=n.string.escapeChar(a.charAt(d));return c.join("")};
+n.string.escapeChar=function(a){if(a in n.string.jsEscapeCache_)return n.string.jsEscapeCache_[a];if(a in n.string.specialEscapeChars_)return n.string.jsEscapeCache_[a]=n.string.specialEscapeChars_[a];var c=a.charCodeAt(0);if(31<c&&127>c)var d=a;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return n.string.jsEscapeCache_[a]=d};n.string.contains=function(a,c){return-1!=a.indexOf(c)};
+n.string.caseInsensitiveContains=function(){return n.string.contains(n.labs.userAgent.util.getUserAgent().toLowerCase(),"webkit")};n.string.countOf=function(a,c){return a&&c?a.split(c).length-1:0};n.string.removeAt=function(a){return a};n.string.remove=function(a,c){return a.replace(c,"")};n.string.removeAll=function(a,c){c=new RegExp(n.string.regExpEscape(c),"g");return a.replace(c,"")};
+n.string.replaceAll=function(a,c,d){c=new RegExp(n.string.regExpEscape(c),"g");return a.replace(c,d.replace(/\$/g,"$$$$"))};n.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};n.string.repeat=String.prototype.repeat?function(a,c){return a.repeat(c)}:function(a,c){return Array(c+1).join(a)};
+n.string.padNumber=function(a,c,d){a=n.isDef(d)?a.toFixed(d):String(a);d=a.indexOf(".");-1==d&&(d=a.length);return n.string.repeat("0",Math.max(0,c-d))+a};n.string.makeSafe=function(a){return null==a?"":String(a)};n.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};n.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^n.now()).toString(36)};
+n.string.compareVersions=function(a,c){var d=0;a=n.string.trim(String(a)).split(".");c=n.string.trim(String(c)).split(".");for(var e=Math.max(a.length,c.length),f=0;0==d&&f<e;f++){var g=a[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=n.string.compareElements_(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||n.string.compareElements_(0==g[2].length,0==h[2].length)||n.string.compareElements_(g[2],
+h[2]);g=g[3];h=h[3]}while(0==d)}return d};n.string.compareElements_=function(a,c){return a<c?-1:a>c?1:0};n.string.hashCode=function(a){for(var c=0,d=0;d<a.length;++d)c=31*c+a.charCodeAt(d)>>>0;return c};n.string.uniqueStringCounter_=2147483648*Math.random()|0;n.string.createUniqueString=function(){return"goog_"+n.string.uniqueStringCounter_++};n.string.toNumber=function(a){var c=Number(a);return 0==c&&n.string.isEmptyOrWhitespace(a)?NaN:c};n.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};
+n.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};n.string.toCamelCase=function(a){return String(a).replace(/\-([a-z])/g,function(a,d){return d.toUpperCase()})};n.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};n.string.toTitleCase=function(a,c){c=n.isString(c)?n.string.regExpEscape(c):"\\s";return a.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(a,c,f){return c+f.toUpperCase()})};
+n.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};n.string.parseInt=function(a){isFinite(a)&&(a=String(a));return n.isString(a)?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};n.string.splitLimit=function(a,c,d){a=a.split(c);for(var e=[];0<d&&a.length;)e.push(a.shift()),d--;a.length&&e.push(a.join(c));return e};
+n.string.lastComponent=function(a,c){if(c)"string"==typeof c&&(c=[c]);else return a;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=a.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?a:a.slice(d+1)};
+n.string.editDistance=function(a,c){var d=[],e=[];if(a==c)return 0;if(!a.length||!c.length)return Math.max(a.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<a.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(a[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};n.labs={};n.labs.userAgent={};n.labs.userAgent.util={};n.labs.userAgent.util.getNativeUserAgentString_=function(){var a=n.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};n.labs.userAgent.util.getNavigator_=function(){return n.global.navigator};n.labs.userAgent.util.userAgent_=n.labs.userAgent.util.getNativeUserAgentString_();n.labs.userAgent.util.setUserAgent=function(a){n.labs.userAgent.util.userAgent_=a||n.labs.userAgent.util.getNativeUserAgentString_()};
+n.labs.userAgent.util.getUserAgent=function(){return n.labs.userAgent.util.userAgent_};n.labs.userAgent.util.matchUserAgent=function(a){return n.string.contains(n.labs.userAgent.util.getUserAgent(),a)};n.labs.userAgent.util.matchUserAgentIgnoreCase=function(){return n.string.caseInsensitiveContains()};n.labs.userAgent.util.extractVersionTuples=function(a){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(a);)d.push([e[1],e[2],e[3]||void 0]);return d};n.object={};n.object.is=function(a,c){return a===c?0!==a||1/a===1/c:a!==a&&c!==c};n.object.forEach=function(a,c,d){for(var e in a)c.call(d,a[e],e,a)};n.object.filter=function(a,c,d){var e={},f;for(f in a)c.call(d,a[f],f,a)&&(e[f]=a[f]);return e};n.object.map=function(a,c,d){var e={},f;for(f in a)e[f]=c.call(d,a[f],f,a);return e};n.object.some=function(a,c,d){for(var e in a)if(c.call(d,a[e],e,a))return!0;return!1};n.object.every=function(a,c,d){for(var e in a)if(!c.call(d,a[e],e,a))return!1;return!0};
+n.object.getCount=function(a){var c=0,d;for(d in a)c++;return c};n.object.getAnyKey=function(a){for(var c in a)return c};n.object.getAnyValue=function(a){for(var c in a)return a[c]};n.object.contains=function(a,c){return n.object.containsValue(a,c)};n.object.getValues=function(a){var c=[],d=0,e;for(e in a)c[d++]=a[e];return c};n.object.getKeys=function(a){var c=[],d=0,e;for(e in a)c[d++]=e;return c};
+n.object.getValueByKeys=function(a,c){var d=n.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==a)return;a=a[e[d]]}return a};n.object.containsKey=function(a,c){return null!==a&&c in a};n.object.containsValue=function(a,c){for(var d in a)if(a[d]==c)return!0;return!1};n.object.findKey=function(a,c,d){for(var e in a)if(c.call(d,a[e],e,a))return e};n.object.findValue=function(a,c,d){return(c=n.object.findKey(a,c,d))&&a[c]};n.object.isEmpty=function(a){for(var c in a)return!1;return!0};
+n.object.clear=function(a){for(var c in a)delete a[c]};n.object.remove=function(a,c){var d;(d=c in a)&&delete a[c];return d};n.object.add=function(a,c,d){if(null!==a&&c in a)throw Error('The object already contains the key "'+c+'"');n.object.set(a,c,d)};n.object.get=function(a,c,d){return null!==a&&c in a?a[c]:d};n.object.set=function(a,c,d){a[c]=d};n.object.setIfUndefined=function(a,c,d){return c in a?a[c]:a[c]=d};
+n.object.setWithReturnValueIfNotSet=function(a,c,d){if(c in a)return a[c];d=d();return a[c]=d};n.object.equals=function(a,c){for(var d in a)if(!(d in c)||a[d]!==c[d])return!1;for(d in c)if(!(d in a))return!1;return!0};n.object.clone=function(a){var c={},d;for(d in a)c[d]=a[d];return c};n.object.unsafeClone=function(a){var c=n.typeOf(a);if("object"==c||"array"==c){if(n.isFunction(a.clone))return a.clone();c="array"==c?[]:{};for(var d in a)c[d]=n.object.unsafeClone(a[d]);return c}return a};
+n.object.transpose=function(a){var c={},d;for(d in a)c[a[d]]=d;return c};n.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");n.object.extend=function(a,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)a[d]=e[d];for(var g=0;g<n.object.PROTOTYPE_FIELDS_.length;g++)d=n.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(a[d]=e[d])}};
+n.object.create=function(a){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};n.object.createSet=function(a){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};
+n.object.createImmutableView=function(a){var c=a;Object.isFrozen&&!Object.isFrozen(a)&&(c=Object.create(a),Object.freeze(c));return c};n.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};
+n.object.getAllPropertyNames=function(a,c,d){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return n.object.getKeys(a);for(var e={};a&&(a!==Object.prototype||c)&&(a!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(a),g=0;g<f.length;g++)e[f[g]]=!0;a=Object.getPrototypeOf(a)}return n.object.getKeys(e)};n.labs.userAgent.browser={};n.labs.userAgent.browser.matchOpera_=function(){return n.labs.userAgent.util.matchUserAgent("Opera")};n.labs.userAgent.browser.matchIE_=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.browser.matchEdge_=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.browser.matchFirefox_=function(){return n.labs.userAgent.util.matchUserAgent("Firefox")};
+n.labs.userAgent.browser.matchSafari_=function(){return n.labs.userAgent.util.matchUserAgent("Safari")&&!(n.labs.userAgent.browser.matchChrome_()||n.labs.userAgent.browser.matchCoast_()||n.labs.userAgent.browser.matchOpera_()||n.labs.userAgent.browser.matchEdge_()||n.labs.userAgent.browser.isSilk()||n.labs.userAgent.util.matchUserAgent("Android"))};n.labs.userAgent.browser.matchCoast_=function(){return n.labs.userAgent.util.matchUserAgent("Coast")};
+n.labs.userAgent.browser.matchIosWebview_=function(){return(n.labs.userAgent.util.matchUserAgent("iPad")||n.labs.userAgent.util.matchUserAgent("iPhone"))&&!n.labs.userAgent.browser.matchSafari_()&&!n.labs.userAgent.browser.matchChrome_()&&!n.labs.userAgent.browser.matchCoast_()&&n.labs.userAgent.util.matchUserAgent("AppleWebKit")};n.labs.userAgent.browser.matchChrome_=function(){return(n.labs.userAgent.util.matchUserAgent("Chrome")||n.labs.userAgent.util.matchUserAgent("CriOS"))&&!n.labs.userAgent.browser.matchEdge_()};
+n.labs.userAgent.browser.matchAndroidBrowser_=function(){return n.labs.userAgent.util.matchUserAgent("Android")&&!(n.labs.userAgent.browser.isChrome()||n.labs.userAgent.browser.isFirefox()||n.labs.userAgent.browser.isOpera()||n.labs.userAgent.browser.isSilk())};n.labs.userAgent.browser.isOpera=n.labs.userAgent.browser.matchOpera_;n.labs.userAgent.browser.isIE=n.labs.userAgent.browser.matchIE_;n.labs.userAgent.browser.isEdge=n.labs.userAgent.browser.matchEdge_;n.labs.userAgent.browser.isFirefox=n.labs.userAgent.browser.matchFirefox_;
+n.labs.userAgent.browser.isSafari=n.labs.userAgent.browser.matchSafari_;n.labs.userAgent.browser.isCoast=n.labs.userAgent.browser.matchCoast_;n.labs.userAgent.browser.isIosWebview=n.labs.userAgent.browser.matchIosWebview_;n.labs.userAgent.browser.isChrome=n.labs.userAgent.browser.matchChrome_;n.labs.userAgent.browser.isAndroidBrowser=n.labs.userAgent.browser.matchAndroidBrowser_;n.labs.userAgent.browser.isSilk=function(){return n.labs.userAgent.util.matchUserAgent("Silk")};
+n.labs.userAgent.browser.getVersion=function(){function a(a){a=n.array.find(a,e);return d[a]||""}var c=n.labs.userAgent.util.getUserAgent();if(n.labs.userAgent.browser.isIE())return n.labs.userAgent.browser.getIEVersion_(c);c=n.labs.userAgent.util.extractVersionTuples(c);var d={};n.array.forEach(c,function(a){d[a[0]]=a[1]});var e=n.partial(n.object.containsKey,d);return n.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):n.labs.userAgent.browser.isEdge()?a(["Edge"]):n.labs.userAgent.browser.isChrome()?
+a(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};n.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.browser.getVersion(),a)};
+n.labs.userAgent.browser.getIEVersion_=function(a){var c=/rv: *([\d\.]*)/.exec(a);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(a);if(d&&d[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==d[1])if(a&&a[1])switch(a[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};n.labs.userAgent.engine={};n.labs.userAgent.engine.isPresto=function(){return n.labs.userAgent.util.matchUserAgent("Presto")};n.labs.userAgent.engine.isTrident=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.engine.isEdge=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.engine.isWebKit=function(){return n.labs.userAgent.util.matchUserAgentIgnoreCase()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.isGecko=function(){return n.labs.userAgent.util.matchUserAgent("Gecko")&&!n.labs.userAgent.engine.isWebKit()&&!n.labs.userAgent.engine.isTrident()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.getVersion=function(){var a=n.labs.userAgent.util.getUserAgent();if(a){a=n.labs.userAgent.util.extractVersionTuples(a);var c=n.labs.userAgent.engine.getEngineTuple_(a);if(c)return"Gecko"==c[0]?n.labs.userAgent.engine.getVersionForKey_(a):c[1];a=a[0];var d;if(a&&(d=a[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
+n.labs.userAgent.engine.getEngineTuple_=function(a){if(!n.labs.userAgent.engine.isEdge())return a[1];for(var c=0;c<a.length;c++){var d=a[c];if("Edge"==d[0])return d}};n.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.engine.getVersion(),a)};n.labs.userAgent.engine.getVersionForKey_=function(a){return(a=n.array.find(a,function(a){return"Firefox"==a[0]}))&&a[1]||""};n.labs.userAgent.platform={};n.labs.userAgent.platform.isAndroid=function(){return n.labs.userAgent.util.matchUserAgent("Android")};n.labs.userAgent.platform.isIpod=function(){return n.labs.userAgent.util.matchUserAgent("iPod")};n.labs.userAgent.platform.isIphone=function(){return n.labs.userAgent.util.matchUserAgent("iPhone")&&!n.labs.userAgent.util.matchUserAgent("iPod")&&!n.labs.userAgent.util.matchUserAgent("iPad")};n.labs.userAgent.platform.isIpad=function(){return n.labs.userAgent.util.matchUserAgent("iPad")};
+n.labs.userAgent.platform.isIos=function(){return n.labs.userAgent.platform.isIphone()||n.labs.userAgent.platform.isIpad()||n.labs.userAgent.platform.isIpod()};n.labs.userAgent.platform.isMacintosh=function(){return n.labs.userAgent.util.matchUserAgent("Macintosh")};n.labs.userAgent.platform.isLinux=function(){return n.labs.userAgent.util.matchUserAgent("Linux")};n.labs.userAgent.platform.isWindows=function(){return n.labs.userAgent.util.matchUserAgent("Windows")};
+n.labs.userAgent.platform.isChromeOS=function(){return n.labs.userAgent.util.matchUserAgent("CrOS")};n.labs.userAgent.platform.isChromecast=function(){return n.labs.userAgent.util.matchUserAgent("CrKey")};
+n.labs.userAgent.platform.getVersion=function(){var a=n.labs.userAgent.util.getUserAgent(),c="";n.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(a=c.exec(a))?a[1]:"0.0"):n.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(a=c.exec(a))&&a[1].replace(/_/g,".")):n.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(a=c.exec(a))?a[1].replace(/_/g,"."):"10"):n.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(a=c.exec(a))&&
+a[1]):n.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(a=c.exec(a))&&a[1]);return c||""};n.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=n.string.compareVersions(n.labs.userAgent.platform.getVersion(),a)};n.reflect={};n.reflect.object=function(a,c){return c};n.reflect.objectProperty=function(a){return a};n.reflect.sinkValue=function(a){n.reflect.sinkValue[" "](a);return a};n.reflect.sinkValue[" "]=n.nullFunction;n.reflect.canAccessProperty=function(a){try{return n.reflect.sinkValue(a.nodeName),!0}catch(c){}return!1};n.reflect.cache=function(a,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(a,e)?a[e]:a[e]=d(c)};n.userAgent={};n.userAgent.ASSUME_IE=!1;n.userAgent.ASSUME_EDGE=!1;n.userAgent.ASSUME_GECKO=!1;n.userAgent.ASSUME_WEBKIT=!1;n.userAgent.ASSUME_MOBILE_WEBKIT=!1;n.userAgent.ASSUME_OPERA=!1;n.userAgent.ASSUME_ANY_VERSION=!1;n.userAgent.BROWSER_KNOWN_=n.userAgent.ASSUME_IE||n.userAgent.ASSUME_EDGE||n.userAgent.ASSUME_GECKO||n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_OPERA;n.userAgent.getUserAgentString=function(){return n.labs.userAgent.util.getUserAgent()};
+n.userAgent.getNavigatorTyped=function(){return n.global.navigator||null};n.userAgent.getNavigator=function(){return n.userAgent.getNavigatorTyped()};n.userAgent.OPERA=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_OPERA:n.labs.userAgent.browser.isOpera();n.userAgent.IE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_IE:n.labs.userAgent.browser.isIE();n.userAgent.EDGE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_EDGE:n.labs.userAgent.engine.isEdge();n.userAgent.EDGE_OR_IE=n.userAgent.EDGE||n.userAgent.IE;
+n.userAgent.GECKO=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_GECKO:n.labs.userAgent.engine.isGecko();n.userAgent.WEBKIT=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_MOBILE_WEBKIT:n.labs.userAgent.engine.isWebKit();n.userAgent.isMobile_=function(){return n.userAgent.WEBKIT&&n.labs.userAgent.util.matchUserAgent("Mobile")};n.userAgent.MOBILE=n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.isMobile_();n.userAgent.SAFARI=n.userAgent.WEBKIT;
+n.userAgent.determinePlatform_=function(){var a=n.userAgent.getNavigatorTyped();return a&&a.platform||""};n.userAgent.PLATFORM=n.userAgent.determinePlatform_();n.userAgent.ASSUME_MAC=!1;n.userAgent.ASSUME_WINDOWS=!1;n.userAgent.ASSUME_LINUX=!1;n.userAgent.ASSUME_X11=!1;n.userAgent.ASSUME_ANDROID=!1;n.userAgent.ASSUME_IPHONE=!1;n.userAgent.ASSUME_IPAD=!1;n.userAgent.ASSUME_IPOD=!1;
+n.userAgent.PLATFORM_KNOWN_=n.userAgent.ASSUME_MAC||n.userAgent.ASSUME_WINDOWS||n.userAgent.ASSUME_LINUX||n.userAgent.ASSUME_X11||n.userAgent.ASSUME_ANDROID||n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD;n.userAgent.MAC=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_MAC:n.labs.userAgent.platform.isMacintosh();n.userAgent.WINDOWS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_WINDOWS:n.labs.userAgent.platform.isWindows();
+n.userAgent.isLegacyLinux_=function(){return n.labs.userAgent.platform.isLinux()||n.labs.userAgent.platform.isChromeOS()};n.userAgent.LINUX=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_LINUX:n.userAgent.isLegacyLinux_();n.userAgent.isX11_=function(){var a=n.userAgent.getNavigatorTyped();return!!a&&n.string.contains(a.appVersion||"","X11")};n.userAgent.X11=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_X11:n.userAgent.isX11_();
+n.userAgent.ANDROID=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_ANDROID:n.labs.userAgent.platform.isAndroid();n.userAgent.IPHONE=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE:n.labs.userAgent.platform.isIphone();n.userAgent.IPAD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPAD:n.labs.userAgent.platform.isIpad();n.userAgent.IPOD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIpod();
+n.userAgent.IOS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIos();n.userAgent.determineVersion_=function(){var a="",c=n.userAgent.getVersionRegexResult_();c&&(a=c?c[1]:"");return n.userAgent.IE&&(c=n.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(a))?String(c):a};
+n.userAgent.getVersionRegexResult_=function(){var a=n.userAgent.getUserAgentString();if(n.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(a);if(n.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(a);if(n.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(n.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(a);if(n.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(a)};n.userAgent.getDocumentMode_=function(){var a=n.global.document;return a?a.documentMode:void 0};n.userAgent.VERSION=n.userAgent.determineVersion_();
+n.userAgent.compare=function(a,c){return n.string.compareVersions(a,c)};n.userAgent.isVersionOrHigherCache_={};n.userAgent.isVersionOrHigher=function(a){return n.userAgent.ASSUME_ANY_VERSION||n.reflect.cache(n.userAgent.isVersionOrHigherCache_,a,function(){return 0<=n.string.compareVersions(n.userAgent.VERSION,a)})};n.userAgent.isVersion=n.userAgent.isVersionOrHigher;n.userAgent.isDocumentModeOrHigher=function(a){return Number(n.userAgent.DOCUMENT_MODE)>=a};n.userAgent.isDocumentMode=n.userAgent.isDocumentModeOrHigher;
+var v;var w=n.global.document;v=w&&n.userAgent.IE?n.userAgent.getDocumentMode_()||("CSS1Compat"==w.compatMode?parseInt(n.userAgent.VERSION,10):5):void 0;n.userAgent.DOCUMENT_MODE=v;n.debug.LOGGING_ENABLED=n.DEBUG;n.debug.FORCE_SLOPPY_STACKS=!1;n.debug.catchErrors=function(a,c,d){d=d||n.global;var e=d.onerror,f=!!c;n.userAgent.WEBKIT&&!n.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(c,d,k,m,p){e&&e(c,d,k,m,p);a({message:c,fileName:d,line:k,lineNumber:k,col:m,error:p});return f}};
+n.debug.expose=function(a,c){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var d=[],e;for(e in a)if(c||!n.isFunction(a[e])){var f=e+" = ";try{f+=a[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
+n.debug.deepExpose=function(a,c){var d=[],e=[],f={},g=function(a,k){var h=k+"  ";try{if(n.isDef(a))if(n.isNull(a))d.push("NULL");else if(n.isString(a))d.push('"'+a.replace(/\n/g,"\n"+k)+'"');else if(n.isFunction(a))d.push(String(a).replace(/\n/g,"\n"+k));else if(n.isObject(a)){n.hasUid(a)||e.push(a);var p=n.getUid(a);if(f[p])d.push("*** reference loop detected (id="+p+") ***");else{f[p]=!0;d.push("{");for(var r in a)if(c||!n.isFunction(a[r]))d.push("\n"),d.push(h),d.push(r+" = "),g(a[r],h);d.push("\n"+
+k+"}");delete f[p]}}else d.push(a);else d.push("undefined")}catch(N){d.push("*** "+N+" ***")}};g(a,"");for(a=0;a<e.length;a++)n.removeUid(e[a]);return d.join("")};n.debug.exposeArray=function(a){for(var c=[],d=0;d<a.length;d++)n.isArray(a[d])?c.push(n.debug.exposeArray(a[d])):c.push(a[d]);return"[ "+c.join(", ")+" ]"};
+n.debug.normalizeErrorObject=function(a){var c=n.getObjectByName("window.location.href");if(n.isString(a))return{message:a,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d=!1;try{var e=a.lineNumber||a.line||"Not available"}catch(g){e="Not available",d=!0}try{var f=a.fileName||a.filename||a.sourceURL||n.global.$googDebugFname||c}catch(g){f="Not available",d=!0}return!d&&a.lineNumber&&a.fileName&&a.stack&&a.message&&a.name?a:{message:a.message||"Not available",
+name:a.name||"UnknownError",lineNumber:e,fileName:f,stack:a.stack||"Not available"}};n.debug.enhanceError=function(a,c){a instanceof Error||(a=Error(a),Error.captureStackTrace&&Error.captureStackTrace(a,n.debug.enhanceError));a.stack||(a.stack=n.debug.getStacktrace(n.debug.enhanceError));if(c){for(var d=0;a["message"+d];)++d;a["message"+d]=String(c)}return a};
+n.debug.enhanceErrorWithContext=function(a,c){a=n.debug.enhanceError(a);if(c)for(var d in c)n.debug.errorcontext.addErrorContext(a,d,c[d]);return a};
+n.debug.getStacktraceSimple=function(a){if(!n.debug.FORCE_SLOPPY_STACKS){var c=n.debug.getNativeStackTrace_(n.debug.getStacktraceSimple);if(c)return c}c=[];for(var d=arguments.callee.caller,e=0;d&&(!a||e<a);){c.push(n.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=n.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}a&&e>=a?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
+n.debug.MAX_STACK_DEPTH=50;n.debug.getNativeStackTrace_=function(a){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,a),String(c.stack);try{throw c;}catch(d){c=d}return(a=c.stack)?String(a):null};n.debug.getStacktrace=function(a){var c;n.debug.FORCE_SLOPPY_STACKS||(c=n.debug.getNativeStackTrace_(a||n.debug.getStacktrace));c||(c=n.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return c};
+n.debug.getStacktraceHelper_=function(a,c){var d=[];if(n.array.contains(c,a))d.push("[...circular reference...]");else if(a&&c.length<n.debug.MAX_STACK_DEPTH){d.push(n.debug.getFunctionName(a)+"(");for(var e=a.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=n.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
+g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(a);d.push(")\n");try{d.push(n.debug.getStacktraceHelper_(a.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else a?d.push("[...long stack...]"):d.push("[end]");return d.join("")};n.debug.setFunctionResolver=function(a){n.debug.fnNameResolver_=a};
+n.debug.getFunctionName=function(a){if(n.debug.fnNameCache_[a])return n.debug.fnNameCache_[a];if(n.debug.fnNameResolver_){var c=n.debug.fnNameResolver_(a);if(c)return n.debug.fnNameCache_[a]=c}a=String(a);n.debug.fnNameCache_[a]||(c=/function ([^\(]+)/.exec(a),n.debug.fnNameCache_[a]=c?c[1]:"[Anonymous]");return n.debug.fnNameCache_[a]};n.debug.makeWhitespaceVisible=function(a){return a.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};
+n.debug.runtimeType=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};n.debug.fnNameCache_={};n.debug.freezeInternal_=n.DEBUG&&Object.freeze||function(a){return a};n.debug.freeze=function(a){return n.debug.freezeInternal_(a)};n.debug.entryPointRegistry={};n.debug.EntryPointMonitor=function(){};n.debug.entryPointRegistry.refList_=[];n.debug.entryPointRegistry.monitors_=[];n.debug.entryPointRegistry.monitorsMayExist_=!1;n.debug.entryPointRegistry.register=function(a){n.debug.entryPointRegistry.refList_[n.debug.entryPointRegistry.refList_.length]=a;if(n.debug.entryPointRegistry.monitorsMayExist_)for(var c=n.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)a(n.bind(c[d].wrap,c[d]))};
+n.debug.entryPointRegistry.monitorAll=function(a){n.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=n.bind(a.wrap,a),d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](c);n.debug.entryPointRegistry.monitors_.push(a)};
+n.debug.entryPointRegistry.unmonitorAllIfPossible=function(a){var c=n.debug.entryPointRegistry.monitors_;n.asserts.assert(a==c[c.length-1],"Only the most recent monitor can be unwrapped.");a=n.bind(a.unwrap,a);for(var d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](a);c.length--};n.disposable={};n.disposable.IDisposable=function(){};n.Disposable=function(){n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&(n.Disposable.instances_[n.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};n.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};n.Disposable.MONITORING_MODE=0;n.Disposable.INCLUDE_STACK_ON_CREATION=!0;n.Disposable.instances_={};
+n.Disposable.getUndisposedObjects=function(){var a=[],c;for(c in n.Disposable.instances_)n.Disposable.instances_.hasOwnProperty(c)&&a.push(n.Disposable.instances_[Number(c)]);return a};n.Disposable.clearUndisposedObjects=function(){n.Disposable.instances_={}};n.Disposable.prototype.disposed_=!1;n.Disposable.prototype.isDisposed=function(){return this.disposed_};
+n.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF)){var a=n.getUid(this);if(n.Disposable.MONITORING_MODE==n.Disposable.MonitoringMode.PERMANENT&&!n.Disposable.instances_.hasOwnProperty(a))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");if(n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&this.onDisposeCallbacks_&&
+0<this.onDisposeCallbacks_.length)throw Error(this+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete n.Disposable.instances_[a]}};n.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};n.Disposable.isDisposed=function(){return!1};n.dispose=function(a){a&&"function"==typeof a.dispose&&a.dispose()};
+n.disposeAll=function(a){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];n.isArrayLike(e)?n.disposeAll.apply(null,e):n.dispose(e)}};n.events={};l.scope.purify=function(a){return a()};
+n.events.BrowserFeature={HAS_W3C_BUTTON:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!n.userAgent.WEBKIT||n.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9b")||n.userAgent.IE&&n.userAgent.isVersionOrHigher("8")||n.userAgent.OPERA&&
+n.userAgent.isVersionOrHigher("9.5")||n.userAgent.WEBKIT&&n.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:n.userAgent.GECKO&&!n.userAgent.isVersionOrHigher("8")||n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in n.global||!!(n.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!n.global.navigator||!n.global.navigator.maxTouchPoints&&!n.global.navigator.msMaxTouchPoints),POINTER_EVENTS:"PointerEvent"in n.global,
+MSPOINTER_EVENTS:"MSPointerEvent"in n.global&&!(!n.global.navigator||!n.global.navigator.msPointerEnabled),PASSIVE_EVENTS:(0,l.scope.purify)(function(){if(!n.global.addEventListener||!Object.defineProperty)return!1;var a=!1,c=Object.defineProperty({},"passive",{get:function(){a=!0}});n.global.addEventListener("test",n.nullFunction,c);n.global.removeEventListener("test",n.nullFunction,c);return a})};n.events.EventId=function(a){this.id=a};n.events.EventId.prototype.toString=function(){return this.id};n.events.Event=function(a,c){this.type=a instanceof n.events.EventId?String(a):a;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};n.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};n.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};n.events.Event.stopPropagation=function(a){a.stopPropagation()};n.events.Event.preventDefault=function(a){a.preventDefault()};n.events.getVendorPrefixedName_=function(a){return n.userAgent.WEBKIT?"webkit"+a:n.userAgent.OPERA?"o"+a.toLowerCase():a.toLowerCase()};
+n.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:"focusin",FOCUSOUT:"focusout",CHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",
+INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICECHANGE:"devicechange",DEVICEMOTION:"devicemotion",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",
+LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",VOLUMECHANGE:"volumechange",
+WAITING:"waiting",SOURCEOPEN:"sourceopen",SOURCEENDED:"sourceended",SOURCECLOSED:"sourceclosed",ABORT:"abort",UPDATE:"update",UPDATESTART:"updatestart",UPDATEEND:"updateend",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",INSTALL:"install",ACTIVATE:"activate",FETCH:"fetch",FOREIGNFETCH:"foreignfetch",
+MESSAGEERROR:"messageerror",STATECHANGE:"statechange",UPDATEFOUND:"updatefound",CONTROLLERCHANGE:"controllerchange",ANIMATIONSTART:n.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:n.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:n.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:n.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",
+POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",
+MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:n.userAgent.IE?"textinput":"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",BEFOREINPUT:"beforeinput",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",
+SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint",BEFOREINSTALLPROMPT:"beforeinstallprompt",
+APPINSTALLED:"appinstalled"};n.events.getPointerFallbackEventName_=function(a,c,d){return n.events.BrowserFeature.POINTER_EVENTS?a:n.events.BrowserFeature.MSPOINTER_EVENTS?c:d};
+n.events.PointerFallbackEventType={POINTERDOWN:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERDOWN,n.events.EventType.MSPOINTERDOWN,n.events.EventType.MOUSEDOWN),POINTERUP:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERUP,n.events.EventType.MSPOINTERUP,n.events.EventType.MOUSEUP),POINTERCANCEL:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERCANCEL,n.events.EventType.MSPOINTERCANCEL,"mousecancel"),POINTERMOVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERMOVE,
+n.events.EventType.MSPOINTERMOVE,n.events.EventType.MOUSEMOVE),POINTEROVER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROVER,n.events.EventType.MSPOINTEROVER,n.events.EventType.MOUSEOVER),POINTEROUT:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROUT,n.events.EventType.MSPOINTEROUT,n.events.EventType.MOUSEOUT),POINTERENTER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERENTER,n.events.EventType.MSPOINTERENTER,n.events.EventType.MOUSEENTER),POINTERLEAVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERLEAVE,
+n.events.EventType.MSPOINTERLEAVE,n.events.EventType.MOUSELEAVE)};n.events.BrowserEvent=function(a,c){n.events.Event.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.event_=null;if(a){var d=this.type=a.type,e=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=
+c;(c=a.relatedTarget)?n.userAgent.GECKO&&(n.reflect.canAccessProperty(c)||(c=null)):d==n.events.EventType.MOUSEOVER?c=a.fromElement:d==n.events.EventType.MOUSEOUT&&(c=a.toElement);this.relatedTarget=c;n.isNull(e)?(this.offsetX=n.userAgent.WEBKIT||void 0!==a.offsetX?a.offsetX:a.layerX,this.offsetY=n.userAgent.WEBKIT||void 0!==a.offsetY?a.offsetY:a.layerY,this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||
+0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.key=a.key||"";this.charCode=a.charCode||("keypress"==d?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=n.events.BrowserEvent.getPointerType_(a);this.state=a.state;this.event_=a;a.defaultPrevented&&
+this.preventDefault()}};n.inherits(n.events.BrowserEvent,n.events.Event);n.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};n.events.BrowserEvent.PointerType={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"};n.events.BrowserEvent.IEButtonMap=n.debug.freeze([1,4,2]);n.events.BrowserEvent.IE_BUTTON_MAP=n.events.BrowserEvent.IEButtonMap;n.events.BrowserEvent.IE_POINTER_TYPE_MAP=n.debug.freeze({2:n.events.BrowserEvent.PointerType.TOUCH,3:n.events.BrowserEvent.PointerType.PEN,4:n.events.BrowserEvent.PointerType.MOUSE});
+n.events.BrowserEvent.prototype.stopPropagation=function(){n.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
+n.events.BrowserEvent.prototype.preventDefault=function(){n.events.BrowserEvent.superClass_.preventDefault.call(this);var a=this.event_;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,n.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(c){}};n.events.BrowserEvent.getPointerType_=function(a){return n.isString(a.pointerType)?a.pointerType:n.events.BrowserEvent.IE_POINTER_TYPE_MAP[a.pointerType]||""};n.events.Listenable=function(){};n.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);n.events.Listenable.addImplementation=function(a){a.prototype[n.events.Listenable.IMPLEMENTED_BY_PROP]=!0};n.events.Listenable.isImplementedBy=function(a){return!(!a||!a[n.events.Listenable.IMPLEMENTED_BY_PROP])};n.events.ListenableKey=function(){};n.events.ListenableKey.counter_=0;n.events.ListenableKey.reserveKey=function(){return++n.events.ListenableKey.counter_};n.events.Listener=function(a,c,d,e,f){this.listener=a;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=n.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};n.events.Listener.ENABLE_MONITORING=!1;var x=function(a){a.removed=!0;a.listener=null;a.proxy=null;a.src=null;a.handler=null};n.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};n.events.ListenerMap.prototype.add=function(a,c,d,e,f){var g=a.toString();a=this.listeners[g];a||(a=this.listeners[g]=[],this.typeCount_++);var h=n.events.ListenerMap.findListenerIndex_(a,c,e,f);-1<h?(c=a[h],d||(c.callOnce=!1)):(c=new n.events.Listener(c,this.src,g,!!e,f),c.callOnce=d,a.push(c));return c};
+n.events.ListenerMap.prototype.remove=function(a,c,d,e){a=a.toString();if(!(a in this.listeners))return!1;var f=this.listeners[a];c=n.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(x(f[c]),n.array.removeAt(f,c),0==f.length&&(delete this.listeners[a],this.typeCount_--),!0):!1};var y=function(a,c){var d=c.type;if(!(d in a.listeners))return!1;var e=n.array.remove(a.listeners[d],c);e&&(x(c),0==a.listeners[d].length&&(delete a.listeners[d],a.typeCount_--));return e};
+n.events.ListenerMap.prototype.removeAll=function(a){a=a&&a.toString();var c=0,d;for(d in this.listeners)if(!a||d==a){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,x(e[f]);delete this.listeners[d];this.typeCount_--}return c};n.events.ListenerMap.prototype.getListeners=function(a,c){a=this.listeners[a.toString()];var d=[];if(a)for(var e=0;e<a.length;++e){var f=a[e];f.capture==c&&d.push(f)}return d};
+n.events.ListenerMap.prototype.getListener=function(a,c,d,e){a=this.listeners[a.toString()];var f=-1;a&&(f=n.events.ListenerMap.findListenerIndex_(a,c,d,e));return-1<f?a[f]:null};n.events.ListenerMap.prototype.hasListener=function(a,c){var d=n.isDef(a),e=d?a.toString():"",f=n.isDef(c);return n.object.some(this.listeners,function(a){for(var g=0;g<a.length;++g)if(!(d&&a[g].type!=e||f&&a[g].capture!=c))return!0;return!1})};
+n.events.ListenerMap.findListenerIndex_=function(a,c,d,e){for(var f=0;f<a.length;++f){var g=a[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};n.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);n.events.onString_="on";n.events.onStringMap_={};n.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};n.events.CAPTURE_SIMULATION_MODE=2;n.events.listenerCountEstimate_=0;
+n.events.listen=function(a,c,d,e,f){if(e&&e.once)return n.events.listenOnce(a,c,d,e,f);if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listen(a,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(a)?a.listen(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(a,c,d,!1,e,f)};
+n.events.listen_=function(a,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=n.isObject(f)?!!f.capture:!!f;if(h&&!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_FAIL)return n.asserts.fail("Can not register capture listener in IE8-."),null;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var k=n.events.getListenerMap_(a);k||(a[n.events.LISTENER_MAP_PROP_]=k=new n.events.ListenerMap(a));
+d=k.add(c,d,e,h,g);if(d.proxy)return d;e=n.events.getProxy();d.proxy=e;e.src=a;e.listener=d;if(a.addEventListener)n.events.BrowserFeature.PASSIVE_EVENTS||(f=h),void 0===f&&(f=!1),a.addEventListener(c.toString(),e,f);else if(a.attachEvent)a.attachEvent(n.events.getOnString_(c.toString()),e);else if(a.addListener&&a.removeListener)n.asserts.assert("change"===c,"MediaQueryList only has a change event"),a.addListener(e);else throw Error("addEventListener and attachEvent are unavailable.");n.events.listenerCountEstimate_++;
+return d};n.events.getProxy=function(){var a=n.events.handleBrowserEvent_,c=n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return a.call(c.src,c.listener,d)}:function(d){d=a.call(c.src,c.listener,d);if(!d)return d};return c};
+n.events.listenOnce=function(a,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listenOnce(a,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(a)?a.listenOnce(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(a,c,d,!0,e,f)};n.events.listenWithWrapper=function(a,c,d,e,f){c.listen(a,d,e,f)};
+n.events.unlisten=function(a,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.unlisten(a,c[g],d,e,f);return null}e=n.isObject(e)?!!e.capture:!!e;d=n.events.wrapListener(d);if(n.events.Listenable.isImplementedBy(a))return a.unlisten(c,d,e,f);if(!a)return!1;if(a=n.events.getListenerMap_(a))if(c=a.getListener(c,d,e,f))return n.events.unlistenByKey(c);return!1};
+n.events.unlistenByKey=function(a){if(n.isNumber(a)||!a||a.removed)return!1;var c=a.src;if(n.events.Listenable.isImplementedBy(c))return c.unlistenByKey(a);var d=a.type,e=a.proxy;c.removeEventListener?c.removeEventListener(d,e,a.capture):c.detachEvent?c.detachEvent(n.events.getOnString_(d),e):c.addListener&&c.removeListener&&c.removeListener(e);n.events.listenerCountEstimate_--;(d=n.events.getListenerMap_(c))?(y(d,a),0==d.typeCount_&&(d.src=null,c[n.events.LISTENER_MAP_PROP_]=null)):x(a);return!0};
+n.events.unlistenWithWrapper=function(a,c,d,e,f){c.unlisten(a,d,e,f)};n.events.removeAll=function(a,c){if(!a)return 0;if(n.events.Listenable.isImplementedBy(a))return a.eventTargetListeners_?a.eventTargetListeners_.removeAll(c):0;a=n.events.getListenerMap_(a);if(!a)return 0;var d=0;c=c&&c.toString();for(var e in a.listeners)if(!c||e==c)for(var f=a.listeners[e].concat(),g=0;g<f.length;++g)n.events.unlistenByKey(f[g])&&++d;return d};
+n.events.getListeners=function(a,c){return n.events.Listenable.isImplementedBy(a)?a.getListeners(c,void 0):a?(a=n.events.getListenerMap_(a))?a.getListeners(c,void 0):[]:[]};n.events.getListener=function(a,c,d,e){d=n.events.wrapListener(d);e=!!e;return n.events.Listenable.isImplementedBy(a)?a.getListener(c,d,e,void 0):a?(a=n.events.getListenerMap_(a))?a.getListener(c,d,e,void 0):null:null};
+n.events.hasListener=function(a,c,d){if(n.events.Listenable.isImplementedBy(a))return a.hasListener(c,d);a=n.events.getListenerMap_(a);return!!a&&a.hasListener(c,d)};n.events.expose=function(a){var c=[],d;for(d in a)a[d]&&a[d].id?c.push(d+" = "+a[d]+" ("+a[d].id+")"):c.push(d+" = "+a[d]);return c.join("\n")};n.events.getOnString_=function(a){return a in n.events.onStringMap_?n.events.onStringMap_[a]:n.events.onStringMap_[a]=n.events.onString_+a};
+n.events.fireListeners=function(a,c,d){return n.events.Listenable.isImplementedBy(a)?a.fireListeners(c,d,void 0):n.events.fireListeners_(a,c,d,void 0)};n.events.fireListeners_=function(a,c,d,e){var f=!0;if(a=n.events.getListenerMap_(a))if(c=a.listeners[c.toString()])for(c=c.concat(),a=0;a<c.length;a++){var g=c[a];g&&g.capture==d&&!g.removed&&(g=n.events.fireListener(g,e),f=f&&!1!==g)}return f};
+n.events.fireListener=function(a,c){var d=a.listener,e=a.handler||a.src;a.callOnce&&n.events.unlistenByKey(a);return d.call(e,c)};n.events.getTotalListenerCount=function(){return n.events.listenerCountEstimate_};n.events.dispatchEvent=function(a,c){n.asserts.assert(n.events.Listenable.isImplementedBy(a),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return a.dispatchEvent(c)};n.events.protectBrowserEventEntryPoint=function(a){n.events.handleBrowserEvent_=a.protectEntryPoint(n.events.handleBrowserEvent_)};
+n.events.handleBrowserEvent_=function(a,c){if(a.removed)return!0;if(!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||n.getObjectByName("window.event");c=new n.events.BrowserEvent(d,this);var e=!0;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.ON){if(!n.events.isMarkedIeEvent_(d)){n.events.markIeEvent_(d);d=[];for(var f=c.currentTarget;f;f=f.parentNode)d.push(f);a=a.type;for(f=d.length-1;!c.propagationStopped_&&0<=f;f--){c.currentTarget=d[f];var g=n.events.fireListeners_(d[f],
+a,!0,c);e=e&&g}for(f=0;!c.propagationStopped_&&f<d.length;f++)c.currentTarget=d[f],g=n.events.fireListeners_(d[f],a,!1,c),e=e&&g}}else e=n.events.fireListener(a,c);return e}return n.events.fireListener(a,new n.events.BrowserEvent(c,this))};n.events.markIeEvent_=function(a){var c=!1;if(0==a.keyCode)try{a.keyCode=-1;return}catch(d){c=!0}if(c||void 0==a.returnValue)a.returnValue=!0};n.events.isMarkedIeEvent_=function(a){return 0>a.keyCode||void 0!=a.returnValue};n.events.uniqueIdCounter_=0;
+n.events.getUniqueId=function(a){return a+"_"+n.events.uniqueIdCounter_++};n.events.getListenerMap_=function(a){a=a[n.events.LISTENER_MAP_PROP_];return a instanceof n.events.ListenerMap?a:null};n.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
+n.events.wrapListener=function(a){n.asserts.assert(a,"Listener can not be null.");if(n.isFunction(a))return a;n.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[n.events.LISTENER_WRAPPER_PROP_]||(a[n.events.LISTENER_WRAPPER_PROP_]=function(c){return a.handleEvent(c)});return a[n.events.LISTENER_WRAPPER_PROP_]};n.debug.entryPointRegistry.register(function(a){n.events.handleBrowserEvent_=a(n.events.handleBrowserEvent_)});n.events.EventTarget=function(){n.Disposable.call(this);this.eventTargetListeners_=new n.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};n.inherits(n.events.EventTarget,n.Disposable);n.events.Listenable.addImplementation(n.events.EventTarget);n.events.EventTarget.MAX_ANCESTORS_=1E3;b=n.events.EventTarget.prototype;b.addEventListener=function(a,c,d,e){n.events.listen(this,a,c,d,e)};b.removeEventListener=function(a,c,d,e){n.events.unlisten(this,a,c,d,e)};
+b.dispatchEvent=function(a){z(this);var c=this.parentEventTarget_;if(c){var d=[];for(var e=1;c;c=c.parentEventTarget_)d.push(c),n.asserts.assert(++e<n.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return n.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,a,d)};b.disposeInternal=function(){n.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
+b.listen=function(a,c,d,e){z(this);return this.eventTargetListeners_.add(String(a),c,!1,d,e)};b.listenOnce=function(a,c,d,e){return this.eventTargetListeners_.add(String(a),c,!0,d,e)};b.unlisten=function(a,c,d,e){return this.eventTargetListeners_.remove(String(a),c,d,e)};b.unlistenByKey=function(a){return y(this.eventTargetListeners_,a)};
+b.fireListeners=function(a,c,d){a=this.eventTargetListeners_.listeners[String(a)];if(!a)return!0;a=a.concat();for(var e=!0,f=0;f<a.length;++f){var g=a[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,k=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(k,d)&&e}}return e&&0!=d.returnValue_};b.getListeners=function(a,c){return this.eventTargetListeners_.getListeners(String(a),c)};b.getListener=function(a,c,d,e){return this.eventTargetListeners_.getListener(String(a),c,d,e)};
+b.hasListener=function(a,c){return this.eventTargetListeners_.hasListener(n.isDef(a)?String(a):void 0,c)};var z=function(a){n.asserts.assert(a.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
+n.events.EventTarget.dispatchEventInternal_=function(a,c,d){var e=c.type||c;if(n.isString(c))c=new n.events.Event(c,a);else if(c instanceof n.events.Event)c.target=c.target||a;else{var f=c;c=new n.events.Event(e,a);n.object.extend(c,f)}f=!0;if(d)for(var g=d.length-1;!c.propagationStopped_&&0<=g;g--){var h=c.currentTarget=d[g];f=h.fireListeners(e,!0,c)&&f}c.propagationStopped_||(h=c.currentTarget=a,f=h.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=h.fireListeners(e,!1,c)&&f));if(d)for(g=0;!c.propagationStopped_&&
+g<d.length;g++)h=c.currentTarget=d[g],f=h.fireListeners(e,!1,c)&&f;return f};n.functions={};n.functions.constant=function(a){return function(){return a}};n.functions.FALSE=n.functions.constant(!1);n.functions.TRUE=n.functions.constant(!0);n.functions.NULL=n.functions.constant(null);n.functions.identity=function(a){return a};n.functions.error=function(a){return function(){throw Error(a);}};n.functions.fail=function(){};n.functions.lock=function(a,c){c=c||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,c))}};n.functions.nth=function(a){return function(){return arguments[a]}};
+n.functions.partialRight=function(a,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return a.apply(this,c)}};n.functions.withReturnValue=function(a,c){return n.functions.sequence(a,n.functions.constant(c))};n.functions.equalTo=function(a,c){return function(d){return c?a==d:a===d}};
+n.functions.compose=function(a,c){var d=arguments,e=d.length;return function(){var a;e&&(a=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)a=d[c].call(this,a);return a}};n.functions.sequence=function(a){var c=arguments,d=c.length;return function(){for(var a,f=0;f<d;f++)a=c[f].apply(this,arguments);return a}};n.functions.and=function(a){var c=arguments,d=c.length;return function(){for(var a=0;a<d;a++)if(!c[a].apply(this,arguments))return!1;return!0}};
+n.functions.or=function(a){var c=arguments,d=c.length;return function(){for(var a=0;a<d;a++)if(c[a].apply(this,arguments))return!0;return!1}};n.functions.not=function(a){return function(){return!a.apply(this,arguments)}};n.functions.create=function(a,c){var d=function(){};d.prototype=a.prototype;d=new d;a.apply(d,Array.prototype.slice.call(arguments,1));return d};n.functions.CACHE_RETURN_VALUE=!0;
+n.functions.cacheReturnValue=function(a){var c=!1,d;return function(){if(!n.functions.CACHE_RETURN_VALUE)return a();c||(d=a(),c=!0);return d}};n.functions.once=function(a){var c=a;return function(){if(c){var a=c;c=null;a()}}};n.functions.debounce=function(a,c,d){var e=0;return function(f){n.global.clearTimeout(e);var g=arguments;e=n.global.setTimeout(function(){a.apply(d,g)},c)}};
+n.functions.throttle=function(a,c,d){var e=0,f=!1,g=[],h=function(){e=0;f&&(f=!1,k())},k=function(){e=n.global.setTimeout(h,c);a.apply(d,g)};return function(a){g=arguments;e?f=!0:k()}};n.functions.rateLimit=function(a,c,d){var e=0,f=function(){e=0};return function(g){e||(e=n.global.setTimeout(f,c),a.apply(d,arguments))}};n.math={};n.math.randomInt=function(a){return Math.floor(Math.random()*a)};n.math.uniformRandom=function(a,c){return a+Math.random()*(c-a)};n.math.clamp=function(a,c,d){return Math.min(Math.max(a,c),d)};n.math.modulo=function(a,c){a%=c;return 0>a*c?a+c:a};n.math.lerp=function(a,c,d){return a+d*(c-a)};n.math.nearlyEquals=function(a,c,d){return Math.abs(a-c)<=(d||1E-6)};n.math.standardAngle=function(a){return n.math.modulo(a,360)};n.math.standardAngleInRadians=function(a){return n.math.modulo(a,2*Math.PI)};
+n.math.toRadians=function(a){return a*Math.PI/180};n.math.toDegrees=function(a){return 180*a/Math.PI};n.math.angleDx=function(a,c){return c*Math.cos(n.math.toRadians(a))};n.math.angleDy=function(a,c){return c*Math.sin(n.math.toRadians(a))};n.math.angle=function(a,c,d,e){return n.math.standardAngle(n.math.toDegrees(Math.atan2(e-c,d-a)))};n.math.angleDifference=function(a,c){a=n.math.standardAngle(c)-n.math.standardAngle(a);180<a?a-=360:-180>=a&&(a=360+a);return a};
+n.math.sign=function(a){return 0<a?1:0>a?-1:a};n.math.longestCommonSubsequence=function(a,c,d,e){d=d||function(a,c){return a==c};e=e||function(c){return a[c]};for(var f=a.length,g=c.length,h=[],k=0;k<f+1;k++)h[k]=[],h[k][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(k=1;k<=f;k++)for(m=1;m<=g;m++)d(a[k-1],c[m-1])?h[k][m]=h[k-1][m-1]+1:h[k][m]=Math.max(h[k-1][m],h[k][m-1]);var p=[];k=f;for(m=g;0<k&&0<m;)d(a[k-1],c[m-1])?(p.unshift(e(k-1,m-1)),k--,m--):h[k-1][m]>h[k][m-1]?k--:m--;return p};
+n.math.sum=function(a){return n.array.reduce(arguments,function(a,d){return a+d},0)};n.math.average=function(a){return n.math.sum.apply(null,arguments)/arguments.length};n.math.sampleVariance=function(a){var c=arguments.length;if(2>c)return 0;var d=n.math.average.apply(null,arguments);return n.math.sum.apply(null,n.array.map(arguments,function(a){return Math.pow(a-d,2)}))/(c-1)};n.math.standardDeviation=function(a){return Math.sqrt(n.math.sampleVariance.apply(null,arguments))};
+n.math.isInt=function(a){return isFinite(a)&&0==a%1};n.math.isFiniteNumber=function(a){return isFinite(a)};n.math.isNegativeZero=function(a){return 0==a&&0>1/a};n.math.log10Floor=function(a){if(0<a){var c=Math.round(Math.log(a)*Math.LOG10E);return c-(parseFloat("1e"+c)>a?1:0)}return 0==a?-Infinity:NaN};n.math.safeFloor=function(a,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.floor(a+(c||2E-15))};n.math.safeCeil=function(a,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.ceil(a-(c||2E-15))};n.iter={};n.iter.StopIteration="StopIteration"in n.global?n.global.StopIteration:{message:"StopIteration",stack:""};n.iter.Iterator=function(){};n.iter.Iterator.prototype.next=function(){throw n.iter.StopIteration;};n.iter.Iterator.prototype.__iterator__=function(){return this};
+n.iter.toIterator=function(a){if(a instanceof n.iter.Iterator)return a;if("function"==typeof a.__iterator__)return a.__iterator__(!1);if(n.isArrayLike(a)){var c=0,d=new n.iter.Iterator;d.next=function(){for(;;){if(c>=a.length)throw n.iter.StopIteration;if(c in a)return a[c++];c++}};return d}throw Error("Not implemented");};
+n.iter.forEach=function(a,c,d){if(n.isArrayLike(a))try{n.array.forEach(a,c,d)}catch(e){if(e!==n.iter.StopIteration)throw e;}else{a=n.iter.toIterator(a);try{for(;;)c.call(d,a.next(),void 0,a)}catch(e){if(e!==n.iter.StopIteration)throw e;}}};n.iter.filter=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){for(;;){var a=e.next();if(c.call(d,a,void 0,e))return a}};return a};n.iter.filterFalse=function(a,c,d){return n.iter.filter(a,n.functions.not(c),d)};
+n.iter.range=function(a,c,d){var e=0,f=a,g=d||1;1<arguments.length&&(e=a,f=+c);if(0==g)throw Error("Range step argument must not be zero");var h=new n.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw n.iter.StopIteration;var a=e;e+=g;return a};return h};n.iter.join=function(a,c){return n.iter.toArray(a).join(c)};n.iter.map=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=e.next();return c.call(d,a,void 0,e)};return a};
+n.iter.reduce=function(a,c,d,e){var f=d;n.iter.forEach(a,function(a){f=c.call(e,f,a)});return f};n.iter.some=function(a,c,d){a=n.iter.toIterator(a);try{for(;;)if(c.call(d,a.next(),void 0,a))return!0}catch(e){if(e!==n.iter.StopIteration)throw e;}return!1};n.iter.every=function(a,c,d){a=n.iter.toIterator(a);try{for(;;)if(!c.call(d,a.next(),void 0,a))return!1}catch(e){if(e!==n.iter.StopIteration)throw e;}return!0};n.iter.chain=function(a){return n.iter.chainFromIterable(arguments)};
+n.iter.chainFromIterable=function(a){var c=n.iter.toIterator(a);a=new n.iter.Iterator;var d=null;a.next=function(){for(;;){if(null==d){var a=c.next();d=n.iter.toIterator(a)}try{return d.next()}catch(f){if(f!==n.iter.StopIteration)throw f;d=null}}};return a};n.iter.dropWhile=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;var f=!0;a.next=function(){for(;;){var a=e.next();if(!f||!c.call(d,a,void 0,e))return f=!1,a}};return a};
+n.iter.takeWhile=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=e.next();if(c.call(d,a,void 0,e))return a;throw n.iter.StopIteration;};return a};n.iter.toArray=function(a){if(n.isArrayLike(a))return n.array.toArray(a);a=n.iter.toIterator(a);var c=[];n.iter.forEach(a,function(a){c.push(a)});return c};n.iter.equals=function(a,c,d){a=n.iter.zipLongest({},a,c);var e=d||n.array.defaultCompareEquality;return n.iter.every(a,function(a){return e(a[0],a[1])})};
+n.iter.nextOrValue=function(a){try{n.iter.toIterator(a).next()}catch(c){if(c!=n.iter.StopIteration)throw c;}};
+n.iter.product=function(a){if(n.array.some(arguments,function(a){return!a.length})||!arguments.length)return new n.iter.Iterator;var c=new n.iter.Iterator,d=arguments,e=n.array.repeat(0,d.length);c.next=function(){if(e){for(var a=n.array.map(e,function(a,c){return d[c][a]}),c=e.length-1;0<=c;c--){n.asserts.assert(e);if(e[c]<d[c].length-1){e[c]++;break}if(0==c){e=null;break}e[c]=0}return a}throw n.iter.StopIteration;};return c};
+n.iter.cycle=function(a){var c=n.iter.toIterator(a),d=[],e=0;a=new n.iter.Iterator;var f=!1;a.next=function(){var a=null;if(!f)try{return a=c.next(),d.push(a),a}catch(h){if(h!=n.iter.StopIteration||n.array.isEmpty(d))throw h;f=!0}a=d[e];e=(e+1)%d.length;return a};return a};n.iter.count=function(a,c){var d=a||0,e=n.isDef(c)?c:1;a=new n.iter.Iterator;a.next=function(){var a=d;d+=e;return a};return a};n.iter.repeat=function(a){var c=new n.iter.Iterator;c.next=n.functions.constant(a);return c};
+n.iter.accumulate=function(a){var c=n.iter.toIterator(a),d=0;a=new n.iter.Iterator;a.next=function(){return d+=c.next()};return a};n.iter.zip=function(a){var c=arguments,d=new n.iter.Iterator;if(0<c.length){var e=n.array.map(c,n.iter.toIterator);d.next=function(){return n.array.map(e,function(a){return a.next()})}}return d};
+n.iter.zipLongest=function(a,c){var d=n.array.slice(arguments,1),e=new n.iter.Iterator;if(0<d.length){var f=n.array.map(d,n.iter.toIterator);e.next=function(){var c=!1,d=n.array.map(f,function(d){try{var e=d.next();c=!0}catch(p){if(p!==n.iter.StopIteration)throw p;e=a}return e});if(!c)throw n.iter.StopIteration;return d}}return e};n.iter.compress=function(a,c){var d=n.iter.toIterator(c);return n.iter.filter(a,function(){return!!d.next()})};
+n.iter.GroupByIterator_=function(a,c){this.iterator=n.iter.toIterator(a);this.keyFunc=c||n.functions.identity};n.inherits(n.iter.GroupByIterator_,n.iter.Iterator);
+n.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var a=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==n.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[a,d]};
+n.iter.groupBy=function(a,c){return new n.iter.GroupByIterator_(a,c)};n.iter.starMap=function(a,c,d){var e=n.iter.toIterator(a);a=new n.iter.Iterator;a.next=function(){var a=n.iter.toArray(e.next());return c.apply(d,n.array.concat(a,void 0,e))};return a};
+n.iter.tee=function(a,c){var d=n.iter.toIterator(a),e=n.array.map(n.array.range(n.isNumber(c)?c:2),function(){return[]}),f=function(){var a=d.next();n.array.forEach(e,function(c){c.push(a)})};return n.array.map(e,function(a){var c=new n.iter.Iterator;c.next=function(){n.array.isEmpty(a)&&f();n.asserts.assert(!n.array.isEmpty(a));return a.shift()};return c})};n.iter.enumerate=function(a,c){return n.iter.zip(n.iter.count(c),a)};
+n.iter.limit=function(a,c){n.asserts.assert(n.math.isInt(c)&&0<=c);var d=n.iter.toIterator(a);a=new n.iter.Iterator;var e=c;a.next=function(){if(0<e--)return d.next();throw n.iter.StopIteration;};return a};n.iter.consume=function(a,c){n.asserts.assert(n.math.isInt(c)&&0<=c);for(a=n.iter.toIterator(a);0<c--;)n.iter.nextOrValue(a);return a};
+n.iter.slice=function(a,c,d){n.asserts.assert(n.math.isInt(c)&&0<=c);a=n.iter.consume(a,c);n.isNumber(d)&&(n.asserts.assert(n.math.isInt(d)&&d>=c),a=n.iter.limit(a,d-c));return a};n.iter.hasDuplicates_=function(a){var c=[];n.array.removeDuplicates(a,c);return a.length!=c.length};n.iter.permutations=function(a,c){a=n.iter.toArray(a);c=n.array.repeat(a,n.isNumber(c)?c:a.length);c=n.iter.product.apply(void 0,c);return n.iter.filter(c,function(a){return!n.iter.hasDuplicates_(a)})};
+n.iter.combinations=function(a,c){function d(a){return e[a]}var e=n.iter.toArray(a);a=n.iter.range(e.length);c=n.iter.permutations(a,c);var f=n.iter.filter(c,function(a){return n.array.isSorted(a)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};
+n.iter.combinationsWithReplacement=function(a,c){function d(a){return e[a]}var e=n.iter.toArray(a);a=n.array.range(e.length);c=n.array.repeat(a,c);c=n.iter.product.apply(void 0,c);var f=n.iter.filter(c,function(a){return n.array.isSorted(a)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};n.structs={};n.structs.Map=function(a,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else a&&this.addAll(a)};b=n.structs.Map.prototype;b.getCount=function(){return this.count_};b.getValues=function(){A(this);for(var a=[],c=0;c<this.keys_.length;c++)a.push(this.map_[this.keys_[c]]);return a};b.getKeys=function(){A(this);return this.keys_.concat()};
+b.containsKey=function(a){return n.structs.Map.hasKey_(this.map_,a)};b.containsValue=function(a){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(n.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==a)return!0}return!1};b.equals=function(a,c){if(this===a)return!0;if(this.count_!=a.getCount())return!1;c=c||n.structs.Map.defaultEquals;A(this);for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),a.get(d)))return!1;return!0};n.structs.Map.defaultEquals=function(a,c){return a===c};
+n.structs.Map.prototype.isEmpty=function(){return 0==this.count_};n.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};n.structs.Map.prototype.remove=function(a){return n.structs.Map.hasKey_(this.map_,a)?(delete this.map_[a],this.count_--,this.version_++,this.keys_.length>2*this.count_&&A(this),!0):!1};
+var A=function(a){if(a.count_!=a.keys_.length){for(var c=0,d=0;c<a.keys_.length;){var e=a.keys_[c];n.structs.Map.hasKey_(a.map_,e)&&(a.keys_[d++]=e);c++}a.keys_.length=d}if(a.count_!=a.keys_.length){var f={};for(d=c=0;c<a.keys_.length;)e=a.keys_[c],n.structs.Map.hasKey_(f,e)||(a.keys_[d++]=e,f[e]=1),c++;a.keys_.length=d}};b=n.structs.Map.prototype;b.get=function(a,c){return n.structs.Map.hasKey_(this.map_,a)?this.map_[a]:c};
+b.set=function(a,c){n.structs.Map.hasKey_(this.map_,a)||(this.count_++,this.keys_.push(a),this.version_++);this.map_[a]=c};b.addAll=function(a){if(a instanceof n.structs.Map)for(var c=a.getKeys(),d=0;d<c.length;d++)this.set(c[d],a.get(c[d]));else for(c in a)this.set(c,a[c])};b.forEach=function(a,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);a.call(c,g,f,this)}};b.clone=function(){return new n.structs.Map(this)};
+b.transpose=function(){for(var a=new n.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];a.set(this.map_[d],d)}return a};b.toObject=function(){A(this);for(var a={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];a[d]=this.map_[d]}return a};
+b.__iterator__=function(a){A(this);var c=0,d=this.version_,e=this,f=new n.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw n.iter.StopIteration;var f=e.keys_[c++];return a?f:e.map_[f]};return f};n.structs.Map.hasKey_=function(a,c){return Object.prototype.hasOwnProperty.call(a,c)};n.structs.LinkedMap=function(a){this.maxCount_=a||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new n.structs.Map;this.head_=new n.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var C=function(a,c){(c=a.map_.get(c))&&a.cache_&&(c.remove(),B(a,c));return c};b=n.structs.LinkedMap.prototype;b.get=function(a,c){return(a=C(this,a))?a.value:c};b.set=function(a,c){var d=C(this,a);d?d.value=c:(d=new n.structs.LinkedMap.Node_(a,c),this.map_.set(a,d),B(this,d))};
+b.peek=function(){return this.head_.next.value};b.shift=function(){return D(this,this.head_.next)};b.pop=function(){return D(this,this.head_.prev)};b.remove=function(a){return(a=this.map_.get(a))?(this.removeNode(a),!0):!1};b.removeNode=function(a){a.remove();this.map_.remove(a.key)};b.getCount=function(){return this.map_.getCount()};b.isEmpty=function(){return this.map_.isEmpty()};b.getKeys=function(){return this.map(function(a,c){return c})};b.getValues=function(){return this.map(function(a){return a})};
+b.contains=function(a){return this.some(function(c){return c==a})};b.containsKey=function(a){return this.map_.containsKey(a)};b.clear=function(){E(this,0)};b.forEach=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)a.call(c,d.value,d.key,this)};b.map=function(a,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(a.call(c,e.value,e.key,this));return d};b.some=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(a.call(c,d.value,d.key,this))return!0;return!1};
+b.every=function(a,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!a.call(c,d.value,d.key,this))return!1;return!0};
+var B=function(a,c){a.cache_?(c.next=a.head_.next,c.prev=a.head_,a.head_.next=c,c.next.prev=c):(c.prev=a.head_.prev,c.next=a.head_,a.head_.prev=c,c.prev.next=c);null!=a.maxCount_&&E(a,a.maxCount_)},E=function(a,c){for(;a.getCount()>c;){var d=a.cache_?a.head_.prev:a.head_.next;a.removeNode(d);a.evictionCallback_&&a.evictionCallback_(d.key,d.value)}},D=function(a,c){a.head_!=c&&a.removeNode(c);return c.value};n.structs.LinkedMap.Node_=function(a,c){this.key=a;this.value=c};
+n.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};u.LicensesCache=function(a,c){n.events.EventTarget.call(this);this.timeout_=a||36E5;this.cache_=new n.structs.LinkedMap(c||100)};n.inherits(u.LicensesCache,n.events.EventTarget);u.LicensesCache.Entry=function(a){this.timeStamp_=n.now();this.licenses_=a};u.LicensesCache.prototype.get=function(a){a=this.cache_.get(a);var c;if(c=a)c=this.timeout_,c=n.now()-a.timeStamp_<=c;return c?a.licenses_:null};u.LicensesCache.prototype.remove=function(a){this.cache_.remove(a)};n.structs.getCount=function(a){return a.getCount&&"function"==typeof a.getCount?a.getCount():n.isArrayLike(a)||n.isString(a)?a.length:n.object.getCount(a)};n.structs.getValues=function(a){if(a.getValues&&"function"==typeof a.getValues)return a.getValues();if(n.isString(a))return a.split("");if(n.isArrayLike(a)){for(var c=[],d=a.length,e=0;e<d;e++)c.push(a[e]);return c}return n.object.getValues(a)};
+n.structs.getKeys=function(a){if(a.getKeys&&"function"==typeof a.getKeys)return a.getKeys();if(!a.getValues||"function"!=typeof a.getValues){if(n.isArrayLike(a)||n.isString(a)){var c=[];a=a.length;for(var d=0;d<a;d++)c.push(d);return c}return n.object.getKeys(a)}};
+n.structs.contains=function(a,c){return a.contains&&"function"==typeof a.contains?a.contains(c):a.containsValue&&"function"==typeof a.containsValue?a.containsValue(c):n.isArrayLike(a)||n.isString(a)?n.array.contains(a,c):n.object.containsValue(a,c)};n.structs.isEmpty=function(a){return a.isEmpty&&"function"==typeof a.isEmpty?a.isEmpty():n.isArrayLike(a)||n.isString(a)?n.array.isEmpty(a):n.object.isEmpty(a)};
+n.structs.clear=function(a){a.clear&&"function"==typeof a.clear?a.clear():n.isArrayLike(a)?n.array.clear(a):n.object.clear(a)};n.structs.forEach=function(a,c,d){if(a.forEach&&"function"==typeof a.forEach)a.forEach(c,d);else if(n.isArrayLike(a)||n.isString(a))n.array.forEach(a,c,d);else for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],a)};
+n.structs.filter=function(a,c,d){if("function"==typeof a.filter)return a.filter(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.filter(a,c,d);var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length;if(e){var h={};for(var k=0;k<g;k++)c.call(d,f[k],e[k],a)&&(h[e[k]]=f[k])}else for(h=[],k=0;k<g;k++)c.call(d,f[k],void 0,a)&&h.push(f[k]);return h};
+n.structs.map=function(a,c,d){if("function"==typeof a.map)return a.map(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.map(a,c,d);var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length;if(e){var h={};for(var k=0;k<g;k++)h[e[k]]=c.call(d,f[k],e[k],a)}else for(h=[],k=0;k<g;k++)h[k]=c.call(d,f[k],void 0,a);return h};
+n.structs.some=function(a,c,d){if("function"==typeof a.some)return a.some(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.some(a,c,d);for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],a))return!0;return!1};
+n.structs.every=function(a,c,d){if("function"==typeof a.every)return a.every(c,d);if(n.isArrayLike(a)||n.isString(a))return n.array.every(a,c,d);for(var e=n.structs.getKeys(a),f=n.structs.getValues(a),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],a))return!1;return!0};n.uri={};n.uri.utils={};n.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};n.uri.utils.buildFromEncodedParts=function(a,c,d,e,f,g,h){var k="";a&&(k+=a+":");d&&(k+="//",c&&(k+=c+"@"),k+=d,e&&(k+=":"+e));f&&(k+=f);g&&(k+="?"+g);h&&(k+="#"+h);return k};n.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;n.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
+n.uri.utils.split=function(a){return a.match(n.uri.utils.splitRe_)};n.uri.utils.decodeIfPossible_=function(a,c){return a?c?decodeURI(a):decodeURIComponent(a):a};n.uri.utils.getComponentByIndex_=function(a,c){return n.uri.utils.split(c)[a]||null};n.uri.utils.getScheme=function(a){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.SCHEME,a)};
+n.uri.utils.getEffectiveScheme=function(a){a=n.uri.utils.getScheme(a);!a&&n.global.self&&n.global.self.location&&(a=n.global.self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};n.uri.utils.getUserInfoEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.USER_INFO,void 0)};n.uri.utils.getUserInfo=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getUserInfoEncoded())};
+n.uri.utils.getDomainEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.DOMAIN,void 0)};n.uri.utils.getDomain=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getDomainEncoded(),!0)};n.uri.utils.getPort=function(){return Number(n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PORT,void 0))||null};n.uri.utils.getPathEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PATH,void 0)};
+n.uri.utils.getPath=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getPathEncoded(),!0)};n.uri.utils.getQueryData=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.QUERY_DATA,void 0)};n.uri.utils.getFragmentEncoded=function(){var a=(void 0).indexOf("#");return 0>a?null:(void 0).substr(a+1)};n.uri.utils.setFragmentEncoded=function(a,c){return n.uri.utils.removeFragment(a)+(c?"#"+c:"")};n.uri.utils.getFragment=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getFragmentEncoded())};
+n.uri.utils.getHost=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(a[n.uri.utils.ComponentIndex.SCHEME],a[n.uri.utils.ComponentIndex.USER_INFO],a[n.uri.utils.ComponentIndex.DOMAIN],a[n.uri.utils.ComponentIndex.PORT])};n.uri.utils.getOrigin=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(a[n.uri.utils.ComponentIndex.SCHEME],null,a[n.uri.utils.ComponentIndex.DOMAIN],a[n.uri.utils.ComponentIndex.PORT])};
+n.uri.utils.getPathAndAfter=function(a){a=n.uri.utils.split(a);return n.uri.utils.buildFromEncodedParts(null,null,null,null,a[n.uri.utils.ComponentIndex.PATH],a[n.uri.utils.ComponentIndex.QUERY_DATA],a[n.uri.utils.ComponentIndex.FRAGMENT])};n.uri.utils.removeFragment=function(a){var c=a.indexOf("#");return 0>c?a:a.substr(0,c)};
+n.uri.utils.haveSameDomain=function(a,c){a=n.uri.utils.split(a);c=n.uri.utils.split(c);return a[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&a[n.uri.utils.ComponentIndex.SCHEME]==c[n.uri.utils.ComponentIndex.SCHEME]&&a[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.uri.utils.assertNoFragmentsOrQueries_=function(a){n.asserts.assert(0>a.indexOf("#")&&0>a.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",a)};
+n.uri.utils.parseQueryData=function(a,c){if(a){a=a.split("&");for(var d=0;d<a.length;d++){var e=a[d].indexOf("="),f=null;if(0<=e){var g=a[d].substring(0,e);f=a[d].substring(e+1)}else g=a[d];c(g,f?n.string.urlDecode(f):"")}}};n.uri.utils.splitQueryData_=function(a){var c=a.indexOf("#");0>c&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);return[a.substr(0,d),e,a.substr(c)]};n.uri.utils.joinQueryData_=function(a){return a[0]+(a[1]?"?"+a[1]:"")+a[2]};
+n.uri.utils.appendQueryData_=function(a,c){return c?a?a+"&"+c:c:a};n.uri.utils.appendQueryDataToUri_=function(a,c){if(!c)return a;a=n.uri.utils.splitQueryData_(a);a[1]=n.uri.utils.appendQueryData_(a[1],c);return n.uri.utils.joinQueryData_(a)};n.uri.utils.appendKeyValuePairs_=function(a,c,d){n.asserts.assertString(a);if(n.isArray(c)){n.asserts.assertArray(c);for(var e=0;e<c.length;e++)n.uri.utils.appendKeyValuePairs_(a,String(c[e]),d)}else null!=c&&d.push(a+(""===c?"":"="+n.string.urlEncode(c)))};
+n.uri.utils.buildQueryData=function(a,c){n.asserts.assert(0==Math.max(a.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var d=[];for(c=c||0;c<a.length;c+=2)n.uri.utils.appendKeyValuePairs_(a[c],a[c+1],d);return d.join("&")};n.uri.utils.buildQueryDataFromMap=function(a){var c=[],d;for(d in a)n.uri.utils.appendKeyValuePairs_(d,a[d],c);return c.join("&")};
+n.uri.utils.appendParams=function(a,c){var d=2==arguments.length?n.uri.utils.buildQueryData(arguments[1],0):n.uri.utils.buildQueryData(arguments,1);return n.uri.utils.appendQueryDataToUri_(a,d)};n.uri.utils.appendParamsFromMap=function(a,c){c=n.uri.utils.buildQueryDataFromMap(c);return n.uri.utils.appendQueryDataToUri_(a,c)};n.uri.utils.appendParam=function(a,c,d){d=n.isDefAndNotNull(d)?"="+n.string.urlEncode(d):"";return n.uri.utils.appendQueryDataToUri_(a,c+d)};
+n.uri.utils.findParam_=function(a,c,d,e){for(var f=d.length;0<=(c=a.indexOf(d,c))&&c<e;){var g=a.charCodeAt(c-1);if(g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.QUESTION)if(g=a.charCodeAt(c+f),!g||g==n.uri.utils.CharCode_.EQUAL||g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};n.uri.utils.hashOrEndRe_=/#|$/;n.uri.utils.hasParam=function(a,c){return 0<=n.uri.utils.findParam_(a,0,c,a.search(n.uri.utils.hashOrEndRe_))};
+n.uri.utils.getParamValue=function(a,c){var d=a.search(n.uri.utils.hashOrEndRe_),e=n.uri.utils.findParam_(a,0,c,d);if(0>e)return null;var f=a.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return n.string.urlDecode(a.substr(e,f-e))};n.uri.utils.getParamValues=function(a,c){for(var d=a.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(a,e,c,d));){e=a.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(n.string.urlDecode(a.substr(f,e-f)))}return g};
+n.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;n.uri.utils.removeParam=function(a,c){for(var d=a.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(a,e,c,d));)g.push(a.substring(e,f)),e=Math.min(a.indexOf("&",f)+1||d,d);g.push(a.substr(e));return g.join("").replace(n.uri.utils.trailingQueryPunctuationRe_,"$1")};
+n.uri.utils.setParam=function(a){var c=n.uri.utils.StandardQueryParam.RANDOM,d=n.string.getRandomString();return n.uri.utils.appendParam(n.uri.utils.removeParam(a,c),c,d)};n.uri.utils.setParamsFromMap=function(a,c){a=n.uri.utils.splitQueryData_(a);var d=a[1],e=[];d&&n.array.forEach(d.split("&"),function(a){var d=a.indexOf("=");c.hasOwnProperty(0<=d?a.substr(0,d):a)||e.push(a)});a[1]=n.uri.utils.appendQueryData_(e.join("&"),n.uri.utils.buildQueryDataFromMap(c));return n.uri.utils.joinQueryData_(a)};
+n.uri.utils.appendPath=function(a,c){n.uri.utils.assertNoFragmentsOrQueries_(a);n.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));n.string.startsWith(c,"/")&&(c=c.substr(1));return n.string.buildString(a,"/",c)};n.uri.utils.setPath=function(a,c){n.string.startsWith(c,"/");n.uri.utils.split(a)};n.uri.utils.StandardQueryParam={RANDOM:"zx"};n.uri.utils.makeUnique=function(a){return n.uri.utils.setParam(a)};n.Uri=function(a,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;a instanceof n.Uri?(this.ignoreCase_=n.isDef(c)?c:a.ignoreCase_,F(this,a.getScheme()),G(this,a.getUserInfo()),H(this,a.getDomain()),I(this,a.getPort()),this.setPath(a.getPath()),J(this,a.getQueryData().clone()),K(this,a.getFragment())):a&&(d=n.uri.utils.split(String(a)))?(this.ignoreCase_=!!c,F(this,d[n.uri.utils.ComponentIndex.SCHEME]||"",!0),G(this,
+d[n.uri.utils.ComponentIndex.USER_INFO]||"",!0),H(this,d[n.uri.utils.ComponentIndex.DOMAIN]||"",!0),I(this,d[n.uri.utils.ComponentIndex.PORT]),this.setPath(d[n.uri.utils.ComponentIndex.PATH]||"",!0),J(this,d[n.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),K(this,d[n.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new n.Uri.QueryData(null,this.ignoreCase_))};n.Uri.preserveParameterTypesCompatibilityFlag=!1;n.Uri.RANDOM_PARAM=n.uri.utils.StandardQueryParam.RANDOM;
+n.Uri.prototype.toString=function(){var a=[],c=this.getScheme();c&&a.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)a.push("//"),(c=this.getUserInfo())&&a.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),a.push(n.Uri.removeDoubleEncoding_(n.string.urlEncode(d))),d=this.getPort(),null!=d&&a.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&a.push("/"),a.push(n.Uri.encodeSpecialChars_(d,
+"/"==d.charAt(0)?n.Uri.reDisallowedInAbsolutePath_:n.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&a.push("?",d);(d=this.getFragment())&&a.push("#",n.Uri.encodeSpecialChars_(d,n.Uri.reDisallowedInFragment_));return a.join("")};
+n.Uri.prototype.resolve=function(a){var c=this.clone(),d=!!a.scheme_;d?F(c,a.getScheme()):d=!!a.userInfo_;d?G(c,a.getUserInfo()):d=!!a.domain_;d?H(c,a.getDomain()):d=null!=a.port_;var e=a.getPath();if(d)I(c,a.getPort());else if(d=!!a.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=n.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==a.queryData_.toString();d?J(c,a.getQueryData().clone()):d=!!a.fragment_;d&&
+K(c,a.getFragment());return c};n.Uri.prototype.clone=function(){return new n.Uri(this)};n.Uri.prototype.getScheme=function(){return this.scheme_};var F=function(a,c,d){L(a);a.scheme_=d?n.Uri.decodeOrEmpty_(c,!0):c;a.scheme_&&(a.scheme_=a.scheme_.replace(/:$/,""))};n.Uri.prototype.getUserInfo=function(){return this.userInfo_};var G=function(a,c,d){L(a);a.userInfo_=d?n.Uri.decodeOrEmpty_(c):c};n.Uri.prototype.getDomain=function(){return this.domain_};
+var H=function(a,c,d){L(a);a.domain_=d?n.Uri.decodeOrEmpty_(c,!0):c};n.Uri.prototype.getPort=function(){return this.port_};var I=function(a,c){L(a);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);a.port_=c}else a.port_=null};n.Uri.prototype.getPath=function(){return this.path_};n.Uri.prototype.setPath=function(a,c){L(this);this.path_=c?n.Uri.decodeOrEmpty_(a,!0):a};
+var J=function(a,c,d){L(a);c instanceof n.Uri.QueryData?(a.queryData_=c,a.queryData_.setIgnoreCase(a.ignoreCase_)):(d||(c=n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInQuery_)),a.queryData_=new n.Uri.QueryData(c,a.ignoreCase_))};n.Uri.prototype.getQueryData=function(){return this.queryData_};n.Uri.prototype.getFragment=function(){return this.fragment_};var K=function(a,c,d){L(a);a.fragment_=d?n.Uri.decodeOrEmpty_(c):c};
+n.Uri.prototype.makeUnique=function(){L(this);var a=n.Uri.RANDOM_PARAM,c=n.string.getRandomString();L(this);this.queryData_.set(a,c);return this};n.Uri.prototype.removeParameter=function(a){L(this);this.queryData_.remove(a);return this};var L=function(a){if(a.isReadOnly_)throw Error("Tried to modify a read-only Uri");};n.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a)};
+n.Uri.parse=function(a,c){return a instanceof n.Uri?a.clone():new n.Uri(a,c)};n.Uri.create=function(a,c,d,e,f,g,h,k){k=new n.Uri(null,k);a&&F(k,a);c&&G(k,c);d&&H(k,d);e&&I(k,e);f&&k.setPath(f);g&&J(k,g);h&&K(k,h);return k};n.Uri.resolve=function(a,c){a instanceof n.Uri||(a=n.Uri.parse(a));c instanceof n.Uri||(c=n.Uri.parse(c));return a.resolve(c)};
+n.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(n.string.contains(a,"./")||n.string.contains(a,"/.")){var c=n.string.startsWith(a,"/");a=a.split("/");for(var d=[],e=0;e<a.length;){var f=a[e++];"."==f?c&&e==a.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==a.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return a};n.Uri.decodeOrEmpty_=function(a,c){return a?c?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""};
+n.Uri.encodeSpecialChars_=function(a,c,d){return n.isString(a)?(a=encodeURI(a).replace(c,n.Uri.encodeChar_),d&&(a=n.Uri.removeDoubleEncoding_(a)),a):null};n.Uri.encodeChar_=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)};n.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};n.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;n.Uri.reDisallowedInRelativePath_=/[#\?:]/g;n.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
+n.Uri.reDisallowedInQuery_=/[#\?@]/g;n.Uri.reDisallowedInFragment_=/#/g;n.Uri.haveSameDomain=function(a,c){a=n.uri.utils.split(a);c=n.uri.utils.split(c);return a[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&a[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.Uri.QueryData=function(a,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c};
+var M=function(a){a.keyMap_||(a.keyMap_=new n.structs.Map,a.count_=0,a.encodedQuery_&&n.uri.utils.parseQueryData(a.encodedQuery_,function(c,d){a.add(n.string.urlDecode(c),d)}))};n.Uri.QueryData.createFromMap=function(a,c,d){c=n.structs.getKeys(a);if("undefined"==typeof c)throw Error("Keys are undefined");d=new n.Uri.QueryData(null,d);a=n.structs.getValues(a);for(var e=0;e<c.length;e++){var f=c[e],g=a[e];n.isArray(g)?aa(d,f,g):d.add(f,g)}return d};
+n.Uri.QueryData.createFromKeysValues=function(a,c,d,e){if(a.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new n.Uri.QueryData(null,e);for(e=0;e<a.length;e++)d.add(a[e],c[e]);return d};b=n.Uri.QueryData.prototype;b.getCount=function(){M(this);return this.count_};b.add=function(a,c){M(this);this.encodedQuery_=null;a=P(this,a);var d=this.keyMap_.get(a);d||this.keyMap_.set(a,d=[]);d.push(c);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+b.remove=function(a){M(this);a=P(this,a);return this.keyMap_.containsKey(a)?(this.encodedQuery_=null,this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length,this.keyMap_.remove(a)):!1};b.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};b.isEmpty=function(){M(this);return 0==this.count_};b.containsKey=function(a){M(this);a=P(this,a);return this.keyMap_.containsKey(a)};b.containsValue=function(a){var c=this.getValues();return n.array.contains(c,a)};
+b.forEach=function(a,c){M(this);this.keyMap_.forEach(function(d,e){n.array.forEach(d,function(d){a.call(c,d,e,this)},this)},this)};b.getKeys=function(){M(this);for(var a=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=a[e],g=0;g<f.length;g++)d.push(c[e]);return d};
+b.getValues=function(a){M(this);var c=[];if(n.isString(a))this.containsKey(a)&&(c=n.array.concat(c,this.keyMap_.get(P(this,a))));else{a=this.keyMap_.getValues();for(var d=0;d<a.length;d++)c=n.array.concat(c,a[d])}return c};b.set=function(a,c){M(this);this.encodedQuery_=null;a=P(this,a);this.containsKey(a)&&(this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(a).length);this.keyMap_.set(a,[c]);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+b.get=function(a,c){a=a?this.getValues(a):[];return n.Uri.preserveParameterTypesCompatibilityFlag?0<a.length?a[0]:c:0<a.length?String(a[0]):c};var aa=function(a,c,d){a.remove(c);0<d.length&&(a.encodedQuery_=null,a.keyMap_.set(P(a,c),n.array.clone(d)),a.count_=n.asserts.assertNumber(a.count_)+d.length)};
+n.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var a=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++){var e=c[d],f=n.string.urlEncode(e);e=this.getValues(e);for(var g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+n.string.urlEncode(e[g]));a.push(h)}}return this.encodedQuery_=a.join("&")};
+n.Uri.QueryData.prototype.clone=function(){var a=new n.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;this.keyMap_&&(a.keyMap_=this.keyMap_.clone(),a.count_=this.count_);return a};var P=function(a,c){c=String(c);a.ignoreCase_&&(c=c.toLowerCase());return c};n.Uri.QueryData.prototype.setIgnoreCase=function(a){a&&!this.ignoreCase_&&(M(this),this.encodedQuery_=null,this.keyMap_.forEach(function(a,d){var c=d.toLowerCase();d!=c&&(this.remove(d),aa(this,c,a))},this));this.ignoreCase_=a};
+n.Uri.QueryData.prototype.extend=function(a){for(var c=0;c<arguments.length;c++)n.structs.forEach(arguments[c],function(a,c){this.add(c,a)},this)};u.WebStoreService=function(){this.baseUrl_=u.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+u.WebStoreService.WEB_STORE_REQUEST_PATH_};u.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};u.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
+var Q=function(a,c,d,e,f,g,h,k,m,p,r,N){var sa=d?d:"",ta=k||"application/x-www-form-urlencoded",O=r||null,ba=N||null,ca=function(a,c){if(c&&200==a){a=null;try{a=JSON.parse(c)}catch(Ca){g(u.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}O&&ba&&(console.log("Updating the licenses cache for appId: "+O),ba.cache_.set(O,new u.LicensesCache.Entry(a)));f(a)}else g(u.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)};r=function(r){if(r){var t=new XMLHttpRequest;t.open(e,c);t.setRequestHeader("Authorization","Bearer "+
+r);t.setRequestHeader("Content-Type",ta);t.onreadystatechange=function(){4==t.readyState&&(401==t.status&&r?chrome.identity.removeCachedAuthToken({token:r},function(){h?Q(a,e,d,e,f,g,!1,k,m,p):(console.log(t),ca(t.status,t.responseText))}):(console.log(t),ca(t.status,t.responseText)))};t.send(sa)}else g(u.Errors.ErrorTypes.TOKEN_MISSING_ERROR)};p?r(p):chrome.identity.getAuthToken({interactive:m||!1},r)},R=function(a,c){c=c.parameters||{};if("env"in c){switch(c.env){case "prod":a.baseUrl_=u.WebStoreService.Environment.PROD;
+break;default:a.baseUrl_=u.WebStoreService.Environment.SANDBOX}a.baseUrlAndPath_=a.baseUrl_+u.WebStoreService.WEB_STORE_REQUEST_PATH_}};u.WebStoreService.prototype.onFailure_=function(a,c,d){a(u.Errors.getErrorResponse(d||c))};
+var da=function(a,c,d,e,f,g){var h=new n.Uri.QueryData;h.add("projection",f.projection?f.projection:"THIN");var k=new n.Uri(a.baseUrlAndPath_+"/items/"+c+"/payments");J(k,h);e=n.bind(a.onFailure_,a,e,u.Errors.ErrorTypes.GET_PURCHASES_ERROR);console.log("Making a request to apiary to retrieve licenses for appId: "+c);Q(a,k.toString(),null,"GET",d,e,!0,void 0,f.interactive,void 0,c,g)},ea=function(a,c,d,e,f,g){c=a.baseUrlAndPath_+"/items/"+c+"/skus/"+d;f=n.bind(a.onFailure_,a,f,u.Errors.ErrorTypes.CONSUME_PURCHASE_ERROR);
+console.log("Sending consume call to apiary.");Q(a,c,null,"DELETE",e,f,!0,void 0,g)},fa=function(a,c,d,e,f,g){var h=new n.Uri.QueryData;h.add("hl",g.hl?g.hl:window.navigator.language);g.gl&&h.add("gl",g.gl);h.add("projection",g.projection?g.projection:"THIN");c=a.baseUrlAndPath_+"/items/"+c+"/skus";f&&(c=c+"/"+f);f=new n.Uri(c);J(f,h);e=n.bind(a.onFailure_,a,e,u.Errors.ErrorTypes.GET_SKU_DETAILS_ERROR);Q(a,f.toString(),null,"GET",d,e,!0,void 0,g.interactive)};u.BackgroundDelegate=function(){this.licensesCache_=new u.LicensesCache;chrome.runtime.onConnectExternal.addListener(n.bind(this.onConnect_,this))};n.inherits(u.BackgroundDelegate,n.craw.AppBackgroundDelegate);n.craw.AppBackgroundDelegate.setImpl();u.BackgroundDelegate.Methods_={BUY:"buy",CONSUME_PURCHASE:"consumePurchase",GET_PURCHASES:"getPurchases",GET_SKU_DETAILS:"getSkuDetails"};u.BackgroundDelegate.METHOD_NAME_="method";
+u.BackgroundDelegate.prototype.getWindowBounds=function(){return{width:435,height:345}};
+var ha=function(a,c,d,e,f){chrome.identity.getAuthToken({interactive:!1},function(g){chrome.app.window.create("/html/craw_window.html",{bounds:a.getWindowBounds(),frame:"chrome",hidden:!1},function(a){d.onDisconnect.addListener(function(){a.close()});var h=a.contentWindow;h.crawConfig_=new n.craw.WindowConfig("https://www.google.com/intl/en-US/chrome/blank.html",!1);h.iapJwt_=e;h.sku_=f;var m=c.parameters;m||(m={});m.userSessionIndex=0;m.fullscreen=!0;m.oauthToken=g;m.propertyId="ChromeIAP";m.applicationId=
+d.sender.id;h.iapParams_=m;a.onClosed.addListener(function(){var a=h.purchase_result,c={};a&&"checkoutOrderId"in a?(c.response={orderId:a.checkoutOrderId},(a=h.payment_data)&&(c.response.paymentData=a),(a=h.signature)&&(c.response.signature=a),console.log("Clearing licenses cache value after payment for appId: "+d.sender.id),this.licensesCache_.remove(d.sender.id)):c=u.Errors.getErrorResponse(u.Errors.ErrorTypes.PURCHASE_CANCELED);d.postMessage(c);d.disconnect()}.bind(this))}.bind(this))}.bind(a))},
+ia=function(a,c,d,e,f){var g=function(a){e({response:{details:a}})},h=a.licensesCache_.get(d);h?(console.log("Retrieving licenses cache value for appId: "+d),g(h)):(h=c.parameters||{},R(f,c),da(f,d,g,e,h,a.licensesCache_))},ja=function(a,c,d,e){var f=a.parameters||{};R(e,a);fa(e,c,function(a){d({response:{details:a}})},d,a.sku,f)},ka=function(a,c,d,e,f){a=function(a){console.log("Clearing licenses cache value after payment for appId: "+d);this.licensesCache_.remove(d);e({response:{details:a}})}.bind(a);
+var g=c.parameters||{};R(f,c);ea(f,d,c.sku,a,e,g.interactive)};
+u.BackgroundDelegate.prototype.onConnect_=function(a){var c=function(c){a.postMessage(c);a.disconnect()},d=new u.WebStoreService;a.onMessage.addListener(n.bind(function(e){!e.sku&&u.BackgroundDelegate.Methods_.GET_SKU_DETAILS!=e[u.BackgroundDelegate.METHOD_NAME_]&&u.BackgroundDelegate.Methods_.GET_PURCHASES!=e[u.BackgroundDelegate.METHOD_NAME_]&&u.BackgroundDelegate.Methods_.CONSUME_PURCHASE!=e[u.BackgroundDelegate.METHOD_NAME_]||"prod"==(e.parameters||{}).env?u.BackgroundDelegate.Methods_.GET_PURCHASES==
+e[u.BackgroundDelegate.METHOD_NAME_]?ia(this,e,a.sender.id,c,d):u.BackgroundDelegate.Methods_.GET_SKU_DETAILS==e[u.BackgroundDelegate.METHOD_NAME_]?ja(e,a.sender.id,c,d):u.BackgroundDelegate.Methods_.CONSUME_PURCHASE==e[u.BackgroundDelegate.METHOD_NAME_]?ka(this,e,a.sender.id,c,d):ha(this,e,a,e.jwt,e.sku):c(u.Errors.getErrorResponse(u.Errors.ErrorTypes.ENV_NOT_SUPPORTED_ERROR))},this))};n.async={};n.async.FreeList=function(a,c,d){this.limit_=d;this.create_=a;this.reset_=c;this.occupants_=0;this.head_=null};n.async.FreeList.prototype.get=function(){if(0<this.occupants_){this.occupants_--;var a=this.head_;this.head_=a.next;a.next=null}else a=this.create_();return a};n.async.FreeList.prototype.put=function(a){this.reset_(a);this.occupants_<this.limit_&&(this.occupants_++,a.next=this.head_,this.head_=a)};n.dom.HtmlElement=function(){};n.dom.TagName=function(a){this.tagName_=a};n.dom.TagName.prototype.toString=function(){return this.tagName_};n.dom.TagName.A=new n.dom.TagName("A");n.dom.TagName.ABBR=new n.dom.TagName("ABBR");n.dom.TagName.ACRONYM=new n.dom.TagName("ACRONYM");n.dom.TagName.ADDRESS=new n.dom.TagName("ADDRESS");n.dom.TagName.APPLET=new n.dom.TagName("APPLET");n.dom.TagName.AREA=new n.dom.TagName("AREA");n.dom.TagName.ARTICLE=new n.dom.TagName("ARTICLE");n.dom.TagName.ASIDE=new n.dom.TagName("ASIDE");
+n.dom.TagName.AUDIO=new n.dom.TagName("AUDIO");n.dom.TagName.B=new n.dom.TagName("B");n.dom.TagName.BASE=new n.dom.TagName("BASE");n.dom.TagName.BASEFONT=new n.dom.TagName("BASEFONT");n.dom.TagName.BDI=new n.dom.TagName("BDI");n.dom.TagName.BDO=new n.dom.TagName("BDO");n.dom.TagName.BIG=new n.dom.TagName("BIG");n.dom.TagName.BLOCKQUOTE=new n.dom.TagName("BLOCKQUOTE");n.dom.TagName.BODY=new n.dom.TagName("BODY");n.dom.TagName.BR=new n.dom.TagName("BR");n.dom.TagName.BUTTON=new n.dom.TagName("BUTTON");
+n.dom.TagName.CANVAS=new n.dom.TagName("CANVAS");n.dom.TagName.CAPTION=new n.dom.TagName("CAPTION");n.dom.TagName.CENTER=new n.dom.TagName("CENTER");n.dom.TagName.CITE=new n.dom.TagName("CITE");n.dom.TagName.CODE=new n.dom.TagName("CODE");n.dom.TagName.COL=new n.dom.TagName("COL");n.dom.TagName.COLGROUP=new n.dom.TagName("COLGROUP");n.dom.TagName.COMMAND=new n.dom.TagName("COMMAND");n.dom.TagName.DATA=new n.dom.TagName("DATA");n.dom.TagName.DATALIST=new n.dom.TagName("DATALIST");
+n.dom.TagName.DD=new n.dom.TagName("DD");n.dom.TagName.DEL=new n.dom.TagName("DEL");n.dom.TagName.DETAILS=new n.dom.TagName("DETAILS");n.dom.TagName.DFN=new n.dom.TagName("DFN");n.dom.TagName.DIALOG=new n.dom.TagName("DIALOG");n.dom.TagName.DIR=new n.dom.TagName("DIR");n.dom.TagName.DIV=new n.dom.TagName("DIV");n.dom.TagName.DL=new n.dom.TagName("DL");n.dom.TagName.DT=new n.dom.TagName("DT");n.dom.TagName.EM=new n.dom.TagName("EM");n.dom.TagName.EMBED=new n.dom.TagName("EMBED");
+n.dom.TagName.FIELDSET=new n.dom.TagName("FIELDSET");n.dom.TagName.FIGCAPTION=new n.dom.TagName("FIGCAPTION");n.dom.TagName.FIGURE=new n.dom.TagName("FIGURE");n.dom.TagName.FONT=new n.dom.TagName("FONT");n.dom.TagName.FOOTER=new n.dom.TagName("FOOTER");n.dom.TagName.FORM=new n.dom.TagName("FORM");n.dom.TagName.FRAME=new n.dom.TagName("FRAME");n.dom.TagName.FRAMESET=new n.dom.TagName("FRAMESET");n.dom.TagName.H1=new n.dom.TagName("H1");n.dom.TagName.H2=new n.dom.TagName("H2");n.dom.TagName.H3=new n.dom.TagName("H3");
+n.dom.TagName.H4=new n.dom.TagName("H4");n.dom.TagName.H5=new n.dom.TagName("H5");n.dom.TagName.H6=new n.dom.TagName("H6");n.dom.TagName.HEAD=new n.dom.TagName("HEAD");n.dom.TagName.HEADER=new n.dom.TagName("HEADER");n.dom.TagName.HGROUP=new n.dom.TagName("HGROUP");n.dom.TagName.HR=new n.dom.TagName("HR");n.dom.TagName.HTML=new n.dom.TagName("HTML");n.dom.TagName.I=new n.dom.TagName("I");n.dom.TagName.IFRAME=new n.dom.TagName("IFRAME");n.dom.TagName.IMG=new n.dom.TagName("IMG");
+n.dom.TagName.INPUT=new n.dom.TagName("INPUT");n.dom.TagName.INS=new n.dom.TagName("INS");n.dom.TagName.ISINDEX=new n.dom.TagName("ISINDEX");n.dom.TagName.KBD=new n.dom.TagName("KBD");n.dom.TagName.KEYGEN=new n.dom.TagName("KEYGEN");n.dom.TagName.LABEL=new n.dom.TagName("LABEL");n.dom.TagName.LEGEND=new n.dom.TagName("LEGEND");n.dom.TagName.LI=new n.dom.TagName("LI");n.dom.TagName.LINK=new n.dom.TagName("LINK");n.dom.TagName.MAIN=new n.dom.TagName("MAIN");n.dom.TagName.MAP=new n.dom.TagName("MAP");
+n.dom.TagName.MARK=new n.dom.TagName("MARK");n.dom.TagName.MATH=new n.dom.TagName("MATH");n.dom.TagName.MENU=new n.dom.TagName("MENU");n.dom.TagName.MENUITEM=new n.dom.TagName("MENUITEM");n.dom.TagName.META=new n.dom.TagName("META");n.dom.TagName.METER=new n.dom.TagName("METER");n.dom.TagName.NAV=new n.dom.TagName("NAV");n.dom.TagName.NOFRAMES=new n.dom.TagName("NOFRAMES");n.dom.TagName.NOSCRIPT=new n.dom.TagName("NOSCRIPT");n.dom.TagName.OBJECT=new n.dom.TagName("OBJECT");n.dom.TagName.OL=new n.dom.TagName("OL");
+n.dom.TagName.OPTGROUP=new n.dom.TagName("OPTGROUP");n.dom.TagName.OPTION=new n.dom.TagName("OPTION");n.dom.TagName.OUTPUT=new n.dom.TagName("OUTPUT");n.dom.TagName.P=new n.dom.TagName("P");n.dom.TagName.PARAM=new n.dom.TagName("PARAM");n.dom.TagName.PICTURE=new n.dom.TagName("PICTURE");n.dom.TagName.PRE=new n.dom.TagName("PRE");n.dom.TagName.PROGRESS=new n.dom.TagName("PROGRESS");n.dom.TagName.Q=new n.dom.TagName("Q");n.dom.TagName.RP=new n.dom.TagName("RP");n.dom.TagName.RT=new n.dom.TagName("RT");
+n.dom.TagName.RTC=new n.dom.TagName("RTC");n.dom.TagName.RUBY=new n.dom.TagName("RUBY");n.dom.TagName.S=new n.dom.TagName("S");n.dom.TagName.SAMP=new n.dom.TagName("SAMP");n.dom.TagName.SCRIPT=new n.dom.TagName("SCRIPT");n.dom.TagName.SECTION=new n.dom.TagName("SECTION");n.dom.TagName.SELECT=new n.dom.TagName("SELECT");n.dom.TagName.SMALL=new n.dom.TagName("SMALL");n.dom.TagName.SOURCE=new n.dom.TagName("SOURCE");n.dom.TagName.SPAN=new n.dom.TagName("SPAN");n.dom.TagName.STRIKE=new n.dom.TagName("STRIKE");
+n.dom.TagName.STRONG=new n.dom.TagName("STRONG");n.dom.TagName.STYLE=new n.dom.TagName("STYLE");n.dom.TagName.SUB=new n.dom.TagName("SUB");n.dom.TagName.SUMMARY=new n.dom.TagName("SUMMARY");n.dom.TagName.SUP=new n.dom.TagName("SUP");n.dom.TagName.SVG=new n.dom.TagName("SVG");n.dom.TagName.TABLE=new n.dom.TagName("TABLE");n.dom.TagName.TBODY=new n.dom.TagName("TBODY");n.dom.TagName.TD=new n.dom.TagName("TD");n.dom.TagName.TEMPLATE=new n.dom.TagName("TEMPLATE");n.dom.TagName.TEXTAREA=new n.dom.TagName("TEXTAREA");
+n.dom.TagName.TFOOT=new n.dom.TagName("TFOOT");n.dom.TagName.TH=new n.dom.TagName("TH");n.dom.TagName.THEAD=new n.dom.TagName("THEAD");n.dom.TagName.TIME=new n.dom.TagName("TIME");n.dom.TagName.TITLE=new n.dom.TagName("TITLE");n.dom.TagName.TR=new n.dom.TagName("TR");n.dom.TagName.TRACK=new n.dom.TagName("TRACK");n.dom.TagName.TT=new n.dom.TagName("TT");n.dom.TagName.U=new n.dom.TagName("U");n.dom.TagName.UL=new n.dom.TagName("UL");n.dom.TagName.VAR=new n.dom.TagName("VAR");n.dom.TagName.VIDEO=new n.dom.TagName("VIDEO");
+n.dom.TagName.WBR=new n.dom.TagName("WBR");n.async.throwException=function(a){n.global.setTimeout(function(){throw a;},0)};n.async.nextTick=function(a,c,d){var e=a;c&&(e=n.bind(a,c));e=n.async.nextTick.wrapCallback_(e);n.isFunction(n.global.setImmediate)&&(d||n.async.nextTick.useSetImmediate_())?n.global.setImmediate(e):(n.async.nextTick.setImmediate_||(n.async.nextTick.setImmediate_=n.async.nextTick.getSetImmediateEmulator_()),n.async.nextTick.setImmediate_(e))};
+n.async.nextTick.useSetImmediate_=function(){return n.global.Window&&n.global.Window.prototype&&!n.labs.userAgent.browser.isEdge()&&n.global.Window.prototype.setImmediate==n.global.setImmediate?!1:!0};
+n.async.nextTick.getSetImmediateEmulator_=function(){var a=n.global.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!n.labs.userAgent.engine.isPresto()&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var c=a.contentWindow;a=c.document;a.open();a.write("");a.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+"//"+
+c.location.host;a=n.bind(function(a){if(("*"==e||a.origin==e)&&a.data==d)this.port1.onmessage()},this);c.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof a&&!n.labs.userAgent.browser.isIE()){var c=new a,d={},e=d;c.port1.onmessage=function(){if(n.isDef(d.next)){d=d.next;var a=d.cb;d.cb=null;a()}};return function(a){e.next={cb:a};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
+document.createElement("SCRIPT")?function(a){var c=document.createElement("SCRIPT");c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;a();a=null};document.documentElement.appendChild(c)}:function(a){n.global.setTimeout(a,0)}};n.async.nextTick.wrapCallback_=n.functions.identity;n.debug.entryPointRegistry.register(function(a){n.async.nextTick.wrapCallback_=a});n.async.WorkQueue=function(){this.workTail_=this.workHead_=null};n.async.WorkQueue.DEFAULT_MAX_UNUSED=100;n.async.WorkQueue.freelist_=new n.async.FreeList(function(){return new n.async.WorkItem},function(a){a.reset()},n.async.WorkQueue.DEFAULT_MAX_UNUSED);n.async.WorkQueue.prototype.add=function(a,c){var d=n.async.WorkQueue.freelist_.get();d.set(a,c);this.workTail_?this.workTail_.next=d:(n.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
+n.async.WorkQueue.prototype.remove=function(){var a=null;this.workHead_&&(a=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),a.next=null);return a};n.async.WorkItem=function(){this.next=this.scope=this.fn=null};n.async.WorkItem.prototype.set=function(a,c){this.fn=a;this.scope=c;this.next=null};n.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};n.async.run=function(a,c){n.async.run.schedule_||n.async.run.initializeRunner_();n.async.run.workQueueScheduled_||(n.async.run.schedule_(),n.async.run.workQueueScheduled_=!0);n.async.run.workQueue_.add(a,c)};n.async.run.initializeRunner_=function(){if(-1!=String(n.global.Promise).indexOf("[native code]")){var a=n.global.Promise.resolve(void 0);n.async.run.schedule_=function(){a.then(n.async.run.processWorkQueue)}}else n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue)}};
+n.async.run.forceNextTick=function(a){n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue);a&&a(n.async.run.processWorkQueue)}};n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue;n.DEBUG&&(n.async.run.resetQueue=function(){n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue});
+n.async.run.processWorkQueue=function(){for(var a;a=n.async.run.workQueue_.remove();){try{a.fn.call(a.scope)}catch(c){n.async.throwException(c)}n.async.WorkQueue.freelist_.put(a)}n.async.run.workQueueScheduled_=!1};n.debug.LogRecord=function(a,c,d,e,f){this.reset(a,c,d,e,f)};n.debug.LogRecord.prototype.exception_=null;n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;n.debug.LogRecord.nextSequenceNumber_=0;n.debug.LogRecord.prototype.reset=function(a,c,d,e,f){n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||n.debug.LogRecord.nextSequenceNumber_++);e||n.now();this.level_=a;this.msg_=c;delete this.exception_};n.debug.LogRecord.prototype.setLevel=function(a){this.level_=a};
+n.debug.LogRecord.prototype.getMessage=function(){return this.msg_};n.debug.LogBuffer=function(){n.asserts.assert(n.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};n.debug.LogBuffer.getInstance=function(){n.debug.LogBuffer.instance_||(n.debug.LogBuffer.instance_=new n.debug.LogBuffer);return n.debug.LogBuffer.instance_};n.debug.LogBuffer.CAPACITY=0;n.debug.LogBuffer.isBufferingEnabled=function(){return 0<n.debug.LogBuffer.CAPACITY};
+n.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(n.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};n.debug.Logger=function(a){this.name_=a;this.handlers_=this.children_=this.level_=this.parent_=null};n.debug.Logger.ROOT_LOGGER_NAME="";n.debug.Logger.ENABLE_HIERARCHY=!0;n.debug.Logger.ENABLE_PROFILER_LOGGING=!1;n.debug.Logger.ENABLE_HIERARCHY||(n.debug.Logger.rootHandlers_=[]);n.debug.Logger.Level=function(a,c){this.name=a;this.value=c};n.debug.Logger.Level.prototype.toString=function(){return this.name};n.debug.Logger.Level.OFF=new n.debug.Logger.Level("OFF",Infinity);
+n.debug.Logger.Level.SHOUT=new n.debug.Logger.Level("SHOUT",1200);n.debug.Logger.Level.SEVERE=new n.debug.Logger.Level("SEVERE",1E3);n.debug.Logger.Level.WARNING=new n.debug.Logger.Level("WARNING",900);n.debug.Logger.Level.INFO=new n.debug.Logger.Level("INFO",800);n.debug.Logger.Level.CONFIG=new n.debug.Logger.Level("CONFIG",700);n.debug.Logger.Level.FINE=new n.debug.Logger.Level("FINE",500);n.debug.Logger.Level.FINER=new n.debug.Logger.Level("FINER",400);
+n.debug.Logger.Level.FINEST=new n.debug.Logger.Level("FINEST",300);n.debug.Logger.Level.ALL=new n.debug.Logger.Level("ALL",0);n.debug.Logger.Level.PREDEFINED_LEVELS=[n.debug.Logger.Level.OFF,n.debug.Logger.Level.SHOUT,n.debug.Logger.Level.SEVERE,n.debug.Logger.Level.WARNING,n.debug.Logger.Level.INFO,n.debug.Logger.Level.CONFIG,n.debug.Logger.Level.FINE,n.debug.Logger.Level.FINER,n.debug.Logger.Level.FINEST,n.debug.Logger.Level.ALL];n.debug.Logger.Level.predefinedLevelsCache_=null;
+n.debug.Logger.Level.createPredefinedLevelsCache_=function(){n.debug.Logger.Level.predefinedLevelsCache_={};for(var a=0,c;c=n.debug.Logger.Level.PREDEFINED_LEVELS[a];a++)n.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,n.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};n.debug.Logger.Level.getPredefinedLevel=function(a){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();return n.debug.Logger.Level.predefinedLevelsCache_[a]||null};
+n.debug.Logger.Level.getPredefinedLevelByValue=function(a){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();if(a in n.debug.Logger.Level.predefinedLevelsCache_)return n.debug.Logger.Level.predefinedLevelsCache_[a];for(var c=0;c<n.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=n.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=a)return d}return null};n.debug.Logger.getLogger=function(a){return n.debug.LogManager.getLogger(a)};
+n.debug.Logger.logToProfilers=function(a){if(n.debug.Logger.ENABLE_PROFILER_LOGGING){var c=n.global.msWriteProfilerMark;c?c(a):(c=n.global.console)&&c.timeStamp&&c.timeStamp(a)}};b=n.debug.Logger.prototype;b.getName=function(){return this.name_};
+b.addHandler=function(a){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(a)):(n.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootHandlers_.push(a)))};b.removeHandler=function(a){if(n.debug.LOGGING_ENABLED){var c=n.debug.Logger.ENABLE_HIERARCHY?this.handlers_:n.debug.Logger.rootHandlers_;return!!c&&n.array.remove(c,a)}return!1};
+b.getParent=function(){return this.parent_};b.getChildren=function(){this.children_||(this.children_={});return this.children_};b.setLevel=function(a){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?this.level_=a:(n.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootLevel_=a))};
+var la=function(a){if(!n.debug.LOGGING_ENABLED)return n.debug.Logger.Level.OFF;if(!n.debug.Logger.ENABLE_HIERARCHY)return n.debug.Logger.rootLevel_;if(a.level_)return a.level_;if(a.parent_)return la(a.parent_);n.asserts.fail("Root logger has no level set.");return null};
+n.debug.Logger.prototype.log=function(a,c,d){if(n.debug.LOGGING_ENABLED&&n.debug.LOGGING_ENABLED&&a.value>=la(this).value){n.isFunction(c)&&(c=c());if(n.debug.LogBuffer.isBufferingEnabled()){var e=n.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%n.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(a,c,f),a=e):(e.isFull_=g==n.debug.LogBuffer.CAPACITY-1,a=e.buffer_[g]=new n.debug.LogRecord(a,c,f))}else a=new n.debug.LogRecord(a,String(c),this.name_);d&&(a.exception_=
+d);n.debug.Logger.ENABLE_PROFILER_LOGGING&&n.debug.Logger.logToProfilers("log:"+a.getMessage());if(n.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){f=d;e=a;if(f.handlers_)for(g=0;c=f.handlers_[g];g++)c(e);d=d.getParent()}else for(d=0;c=n.debug.Logger.rootHandlers_[d++];)c(a)}};n.debug.Logger.prototype.warning=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.WARNING,a,c)};n.debug.Logger.prototype.info=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.INFO,a,c)};
+n.debug.Logger.prototype.fine=function(a,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.FINE,a,c)};n.debug.LogManager={};n.debug.LogManager.loggers_={};n.debug.LogManager.rootLogger_=null;n.debug.LogManager.initialize=function(){n.debug.LogManager.rootLogger_||(n.debug.LogManager.rootLogger_=new n.debug.Logger(n.debug.Logger.ROOT_LOGGER_NAME),n.debug.LogManager.loggers_[n.debug.Logger.ROOT_LOGGER_NAME]=n.debug.LogManager.rootLogger_,n.debug.LogManager.rootLogger_.setLevel(n.debug.Logger.Level.CONFIG))};
+n.debug.LogManager.getLoggers=function(){return n.debug.LogManager.loggers_};n.debug.LogManager.getRoot=function(){n.debug.LogManager.initialize();return n.debug.LogManager.rootLogger_};n.debug.LogManager.getLogger=function(a){n.debug.LogManager.initialize();return n.debug.LogManager.loggers_[a]||n.debug.LogManager.createLogger_(a)};
+n.debug.LogManager.createFunctionForCatchErrors=function(a){return function(c){var d=a||n.debug.LogManager.getRoot();n.debug.LOGGING_ENABLED&&d.log(n.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
+n.debug.LogManager.createLogger_=function(a){var c=new n.debug.Logger(a);if(n.debug.Logger.ENABLE_HIERARCHY){var d=a.lastIndexOf("."),e=a.substr(d+1);d=n.debug.LogManager.getLogger(a.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return n.debug.LogManager.loggers_[a]=c};n.json={};n.json.USE_NATIVE_JSON=!1;n.json.TRY_NATIVE_JSON=!1;n.json.isValid=function(a){return/^\s*$/.test(a)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};n.json.errorLogger_=n.nullFunction;n.json.setErrorLogger=function(a){n.json.errorLogger_=a};
+n.json.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(a){if(n.json.TRY_NATIVE_JSON)try{return n.global.JSON.parse(a)}catch(e){var c=e}a=String(a);if(n.json.isValid(a))try{var d=eval("("+a+")");c&&n.json.errorLogger_("Invalid JSON: "+a,c);return d}catch(e){}throw Error("Invalid JSON string: "+a);};n.json.serialize=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(a,c){return(new n.json.Serializer(c)).serialize(a)};n.json.Serializer=function(a){this.replacer_=a};
+n.json.Serializer.prototype.serialize=function(a){var c=[];S(this,a,c);return c.join("")};
+var S=function(a,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(n.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],S(a,a.replacer_?a.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),ma(e,d),d.push(":"),S(a,a.replacer_?a.replacer_.call(c,e,f):
+f,d),g=","));d.push("}");return}}switch(typeof c){case "string":ma(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};n.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
+n.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;var ma=function(a,c){c.push('"',a.replace(n.json.Serializer.charsToReplace_,function(a){var c=n.json.Serializer.charToJsonCharCache_[a];c||(c="\\u"+(a.charCodeAt(0)|65536).toString(16).substr(1),n.json.Serializer.charToJsonCharCache_[a]=c);return c}),'"')};n.json.hybrid={};n.json.hybrid.stringify=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(a){if(n.global.JSON)try{return n.global.JSON.stringify(a)}catch(c){}return n.json.serialize(a)};n.json.hybrid.parse_=function(a){var c=n.json.parse;if(n.global.JSON)try{var d=n.global.JSON.parse(a);n.asserts.assert("object"==typeof d);return d}catch(e){}return c(a)};n.json.hybrid.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(a){return n.json.hybrid.parse_(a)};n.log={};n.log.ENABLED=n.debug.LOGGING_ENABLED;n.log.ROOT_LOGGER_NAME=n.debug.Logger.ROOT_LOGGER_NAME;n.log.Logger=n.debug.Logger;n.log.Level=n.debug.Logger.Level;n.log.LogRecord=n.debug.LogRecord;n.log.getLogger=function(a){return n.log.ENABLED?n.debug.LogManager.getLogger(a):null};n.log.addHandler=function(a){n.log.ENABLED&&a&&a.addHandler(void 0)};n.log.removeHandler=function(a){return n.log.ENABLED&&a?a.removeHandler(void 0):!1};n.log.log=function(a,c,d,e){n.log.ENABLED&&a&&a.log(c,d,e)};
+n.log.error=function(a,c,d){n.log.ENABLED&&a&&n.debug.LOGGING_ENABLED&&a.log(n.debug.Logger.Level.SEVERE,c,d)};n.log.warning=function(a,c){n.log.ENABLED&&a&&a.warning(c,void 0)};n.log.info=function(a,c,d){n.log.ENABLED&&a&&a.info(c,d)};n.log.fine=function(a,c){n.log.ENABLED&&a&&a.fine(c,void 0)};n.net={};n.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
+n.net.ErrorCode.getDebugMessage=function(a){switch(a){case n.net.ErrorCode.NO_ERROR:return"No Error";case n.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case n.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case n.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case n.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case n.net.ErrorCode.EXCEPTION:return"An exception occurred";case n.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
+case n.net.ErrorCode.ABORT:return"Request was aborted";case n.net.ErrorCode.TIMEOUT:return"Request timed out";case n.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};n.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};n.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
+PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
+n.net.HttpStatus.isSuccess=function(a){switch(a){case n.net.HttpStatus.OK:case n.net.HttpStatus.CREATED:case n.net.HttpStatus.ACCEPTED:case n.net.HttpStatus.NO_CONTENT:case n.net.HttpStatus.PARTIAL_CONTENT:case n.net.HttpStatus.NOT_MODIFIED:case n.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};n.net.XhrLike=function(){};b=n.net.XhrLike.prototype;b.open=function(){};b.send=function(){};b.abort=function(){};b.setRequestHeader=function(){};b.getResponseHeader=function(){};b.getAllResponseHeaders=function(){};n.net.XmlHttpFactory=function(){};n.net.XmlHttpFactory.prototype.cachedOptions_=null;n.net.XmlHttpFactory.prototype.getOptions=function(){var a;(a=this.cachedOptions_)||(a={},na(this)&&(a[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,a[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),a=this.cachedOptions_=a);return a};n.net.WrapperXmlHttpFactory=function(a,c){this.xhrFactory_=a;this.optionsFactory_=c};n.inherits(n.net.WrapperXmlHttpFactory,n.net.XmlHttpFactory);n.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};n.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};n.net.XmlHttp=function(){return n.net.XmlHttp.factory_.createInstance()};n.net.XmlHttp.ASSUME_NATIVE_XHR=!1;n.net.XmlHttpDefines={};n.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;n.net.XmlHttp.getOptions=function(){return n.net.XmlHttp.factory_.getOptions()};n.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};n.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
+n.net.XmlHttp.setFactory=function(a,c){n.net.XmlHttp.setGlobalFactory(new n.net.WrapperXmlHttpFactory(n.asserts.assert(a),n.asserts.assert(c)))};n.net.XmlHttp.setGlobalFactory=function(a){n.net.XmlHttp.factory_=a};n.net.DefaultXmlHttpFactory=function(){};n.inherits(n.net.DefaultXmlHttpFactory,n.net.XmlHttpFactory);n.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var a=na(this);return a?new ActiveXObject(a):new XMLHttpRequest};
+var na=function(a){if(n.net.XmlHttp.ASSUME_NATIVE_XHR||n.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!a.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),a.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return a.ieProgId_};n.net.XmlHttp.setGlobalFactory(new n.net.DefaultXmlHttpFactory);n.promise={};n.promise.Resolver=function(){};n.Thenable=function(){};n.Thenable.prototype.then=function(){};n.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";n.Thenable.addImplementation=function(a){a.prototype.then=a.prototype.then;a.prototype[n.Thenable.IMPLEMENTED_BY_PROP]=!0};n.Thenable.isImplementedBy=function(a){if(!a)return!1;try{return!!a[n.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};n.Promise=function(a,c){this.state_=n.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<n.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==n.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);n.Promise.LONG_STACK_TRACES&&(this.stack_=[],T(this,Error("created")),this.currentStep_=0);if(a!=n.nullFunction)try{var d=this;a.call(c,function(a){U(d,n.Promise.State_.FULFILLED,a)},function(a){if(n.DEBUG&&
+!(a instanceof n.Promise.CancellationError))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(f){}U(d,n.Promise.State_.REJECTED,a)})}catch(e){U(this,n.Promise.State_.REJECTED,e)}};n.Promise.LONG_STACK_TRACES=!1;n.Promise.UNHANDLED_REJECTION_DELAY=0;n.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};n.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
+n.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};n.Promise.DEFAULT_MAX_UNUSED=100;n.Promise.freelist_=new n.async.FreeList(function(){return new n.Promise.CallbackEntry_},function(a){a.reset()},n.Promise.DEFAULT_MAX_UNUSED);n.Promise.getCallbackEntry_=function(a,c,d){var e=n.Promise.freelist_.get();e.onFulfilled=a;e.onRejected=c;e.context=d;return e};n.Promise.returnEntry_=function(a){n.Promise.freelist_.put(a)};
+n.Promise.resolve=function(a){if(a instanceof n.Promise)return a;var c=new n.Promise(n.nullFunction);U(c,n.Promise.State_.FULFILLED,a);return c};n.Promise.reject=function(a){return new n.Promise(function(c,d){d(a)})};n.Promise.resolveThen_=function(a,c,d){n.Promise.maybeThen_(a,c,d,null)||n.async.run(n.partial(c,a))};n.Promise.race=function(a){return new n.Promise(function(c,d){a.length||c(void 0);for(var e=0,f;e<a.length;e++)f=a[e],n.Promise.resolveThen_(f,c,d)})};
+n.Promise.all=function(a){return new n.Promise(function(c,d){var e=a.length,f=[];if(e)for(var g=function(a,d){e--;f[a]=d;0==e&&c(f)},h=function(a){d(a)},k=0,m;k<a.length;k++)m=a[k],n.Promise.resolveThen_(m,n.partial(g,k),h);else c(f)})};
+n.Promise.allSettled=function(a){return new n.Promise(function(c){var d=a.length,e=[];if(d)for(var f=function(a,f,g){d--;e[a]=f?{fulfilled:!0,value:g}:{fulfilled:!1,reason:g};0==d&&c(e)},g=0,h;g<a.length;g++)h=a[g],n.Promise.resolveThen_(h,n.partial(f,g,!0),n.partial(f,g,!1));else c(e)})};
+n.Promise.firstFulfilled=function(a){return new n.Promise(function(c,d){var e=a.length,f=[];if(e)for(var g=function(a){c(a)},h=function(a,c){e--;f[a]=c;0==e&&d(f)},k=0,m;k<a.length;k++)m=a[k],n.Promise.resolveThen_(m,g,n.partial(h,k));else c(void 0)})};n.Promise.withResolver=function(){var a,c,d=new n.Promise(function(d,f){a=d;c=f});return new n.Promise.Resolver_(d,a,c)};
+n.Promise.prototype.then=function(a,c,d){null!=a&&n.asserts.assertFunction(a,"opt_onFulfilled should be a function.");null!=c&&n.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");n.Promise.LONG_STACK_TRACES&&T(this,Error("then"));return oa(this,n.isFunction(a)?a:null,n.isFunction(c)?c:null,d)};n.Thenable.addImplementation(n.Promise);
+var pa=function(a,c){n.Promise.LONG_STACK_TRACES&&T(a,Error("thenCatch"));return oa(a,null,c,void 0)};n.Promise.prototype.cancel=function(a){this.state_==n.Promise.State_.PENDING&&n.async.run(function(){var c=new n.Promise.CancellationError(a);qa(this,c)},this)};
+var qa=function(a,c){if(a.state_==n.Promise.State_.PENDING)if(a.parent_){var d=a.parent_;if(d.callbackEntries_){for(var e=0,f=null,g=null,h=d.callbackEntries_;h&&(h.always||(e++,h.child==a&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.state_==n.Promise.State_.PENDING&&1==e?qa(d,c):(g?(e=g,n.asserts.assert(d.callbackEntries_),n.asserts.assert(null!=e),e.next==d.callbackEntriesTail_&&(d.callbackEntriesTail_=e),e.next=e.next.next):ra(d),ua(d,f,n.Promise.State_.REJECTED,c)))}a.parent_=null}else U(a,n.Promise.State_.REJECTED,
+c)},wa=function(a,c){a.callbackEntries_||a.state_!=n.Promise.State_.FULFILLED&&a.state_!=n.Promise.State_.REJECTED||va(a);n.asserts.assert(null!=c.onFulfilled);a.callbackEntriesTail_?a.callbackEntriesTail_.next=c:a.callbackEntries_=c;a.callbackEntriesTail_=c},oa=function(a,c,d,e){var f=n.Promise.getCallbackEntry_(null,null,null);f.child=new n.Promise(function(a,h){f.onFulfilled=c?function(d){try{var f=c.call(e,d);a(f)}catch(p){h(p)}}:a;f.onRejected=d?function(c){try{var f=d.call(e,c);!n.isDef(f)&&
+c instanceof n.Promise.CancellationError?h(c):a(f)}catch(p){h(p)}}:h});f.child.parent_=a;wa(a,f);return f.child};n.Promise.prototype.unblockAndFulfill_=function(a){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.FULFILLED,a)};n.Promise.prototype.unblockAndReject_=function(a){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.REJECTED,a)};
+var U=function(a,c,d){a.state_==n.Promise.State_.PENDING&&(a===d&&(c=n.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),a.state_=n.Promise.State_.BLOCKED,n.Promise.maybeThen_(d,a.unblockAndFulfill_,a.unblockAndReject_,a)||(a.result_=d,a.state_=c,a.parent_=null,va(a),c!=n.Promise.State_.REJECTED||d instanceof n.Promise.CancellationError||n.Promise.addUnhandledRejection_(a,d)))};
+n.Promise.maybeThen_=function(a,c,d,e){if(a instanceof n.Promise)return null!=c&&n.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&n.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),n.Promise.LONG_STACK_TRACES&&T(a,Error("then")),wa(a,n.Promise.getCallbackEntry_(c||n.nullFunction,d||null,e)),!0;if(n.Thenable.isImplementedBy(a))return a.then(c,d,e),!0;if(n.isObject(a))try{var f=a.then;if(n.isFunction(f))return n.Promise.tryThen_(a,
+f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};n.Promise.tryThen_=function(a,c,d,e,f){var g=!1,h=function(a){g||(g=!0,d.call(f,a))},k=function(a){g||(g=!0,e.call(f,a))};try{c.call(a,h,k)}catch(m){k(m)}};var va=function(a){a.executing_||(a.executing_=!0,n.async.run(a.executeCallbacks_,a))},ra=function(a){var c=null;a.callbackEntries_&&(c=a.callbackEntries_,a.callbackEntries_=c.next,c.next=null);a.callbackEntries_||(a.callbackEntriesTail_=null);null!=c&&n.asserts.assert(null!=c.onFulfilled);return c};
+n.Promise.prototype.executeCallbacks_=function(){for(var a;a=ra(this);)n.Promise.LONG_STACK_TRACES&&this.currentStep_++,ua(this,a,this.state_,this.result_);this.executing_=!1};
+var ua=function(a,c,d,e){if(d==n.Promise.State_.REJECTED&&c.onRejected&&!c.always)if(0<n.Promise.UNHANDLED_REJECTION_DELAY)for(;a&&a.unhandledRejectionId_;a=a.parent_)n.global.clearTimeout(a.unhandledRejectionId_),a.unhandledRejectionId_=0;else if(0==n.Promise.UNHANDLED_REJECTION_DELAY)for(;a&&a.hadUnhandledRejection_;a=a.parent_)a.hadUnhandledRejection_=!1;if(c.child)c.child.parent_=null,n.Promise.invokeCallback_(c,d,e);else try{c.always?c.onFulfilled.call(c.context):n.Promise.invokeCallback_(c,
+d,e)}catch(f){n.Promise.handleRejection_.call(null,f)}n.Promise.returnEntry_(c)};n.Promise.invokeCallback_=function(a,c,d){c==n.Promise.State_.FULFILLED?a.onFulfilled.call(a.context,d):a.onRejected&&a.onRejected.call(a.context,d)};
+var T=function(a,c){if(n.Promise.LONG_STACK_TRACES&&n.isString(c.stack)){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");a.stack_.push(c+d)}},xa=function(a,c){if(n.Promise.LONG_STACK_TRACES&&c&&n.isString(c.stack)&&a.stack_.length){for(var d=["Promise trace:"],e=a;e;e=e.parent_){for(var f=a.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==n.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
+n.Promise.addUnhandledRejection_=function(a,c){0<n.Promise.UNHANDLED_REJECTION_DELAY?a.unhandledRejectionId_=n.global.setTimeout(function(){xa(a,c);n.Promise.handleRejection_.call(null,c)},n.Promise.UNHANDLED_REJECTION_DELAY):0==n.Promise.UNHANDLED_REJECTION_DELAY&&(a.hadUnhandledRejection_=!0,n.async.run(function(){a.hadUnhandledRejection_&&(xa(a,c),n.Promise.handleRejection_.call(null,c))}))};n.Promise.handleRejection_=n.async.throwException;
+n.Promise.setUnhandledRejectionHandler=function(a){n.Promise.handleRejection_=a};n.Promise.CancellationError=function(a){n.debug.Error.call(this,a)};n.inherits(n.Promise.CancellationError,n.debug.Error);n.Promise.CancellationError.prototype.name="cancel";n.Promise.Resolver_=function(a,c,d){this.promise=a;this.resolve=c;this.reject=d};n.Timer=function(a,c){n.events.EventTarget.call(this);this.interval_=a||1;this.timerObject_=c||n.Timer.defaultTimerObject;this.boundTick_=n.bind(this.tick_,this);this.last_=n.now()};n.inherits(n.Timer,n.events.EventTarget);n.Timer.MAX_TIMEOUT_=2147483647;n.Timer.INVALID_TIMEOUT_ID_=-1;n.Timer.prototype.enabled=!1;n.Timer.defaultTimerObject=n.global;n.Timer.intervalScale=.8;b=n.Timer.prototype;b.timer_=null;
+b.setInterval=function(a){this.interval_=a;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};
+b.tick_=function(){if(this.enabled){var a=n.now()-this.last_;0<a&&a<this.interval_*n.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-a):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(n.Timer.TICK),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now()))}};
+b.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now())};b.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};b.disposeInternal=function(){n.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};n.Timer.TICK="tick";
+n.Timer.callOnce=function(a,c,d){if(n.isFunction(a))d&&(a=n.bind(a,d));else if(a&&"function"==typeof a.handleEvent)a=n.bind(a.handleEvent,a);else throw Error("Invalid listener argument");return Number(c)>n.Timer.MAX_TIMEOUT_?n.Timer.INVALID_TIMEOUT_ID_:n.Timer.defaultTimerObject.setTimeout(a,c||0)};n.Timer.clear=function(a){n.Timer.defaultTimerObject.clearTimeout(a)};
+n.Timer.promise=function(a,c){var d=null;return pa(new n.Promise(function(e,f){d=n.Timer.callOnce(function(){e(c)},a);d==n.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(a){n.Timer.clear(d);throw a;})};n.net.XhrIo=function(a){n.events.EventTarget.call(this);this.headers=new n.structs.Map;this.xmlHttpFactory_=a||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=n.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};n.inherits(n.net.XhrIo,n.events.EventTarget);
+n.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};n.net.XhrIo.prototype.logger_=n.log.getLogger("goog.net.XhrIo");n.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";n.net.XhrIo.CONTENT_TRANSFER_ENCODING="Content-Transfer-Encoding";n.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;n.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];n.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";n.net.XhrIo.XHR2_TIMEOUT_="timeout";
+n.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";n.net.XhrIo.sendInstances_=[];n.net.XhrIo.send=function(a,c,d,e,f,g,h){var k=new n.net.XhrIo;n.net.XhrIo.sendInstances_.push(k);c&&k.listen(n.net.EventType.COMPLETE,c);k.listenOnce(n.net.EventType.READY,k.cleanupSend_);g&&(k.timeoutInterval_=Math.max(0,g));h&&(k.withCredentials_=h);k.send(a,d,e,f);return k};n.net.XhrIo.cleanup=function(){for(var a=n.net.XhrIo.sendInstances_;a.length;)a.pop().dispose()};
+n.net.XhrIo.protectEntryPoints=function(a){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=a.protectEntryPoint(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};n.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();n.array.remove(n.net.XhrIo.sendInstances_,this)};
+n.net.XhrIo.prototype.send=function(a,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+a);c=c?c.toUpperCase():"GET";this.lastUri_=a;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():n.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():n.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=n.bind(this.onReadyStateChange_,
+this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=n.bind(function(a){this.onProgressHandler_(a,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=n.bind(this.onProgressHandler_,this)));try{n.log.fine(this.logger_,V(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(a),!0),this.inOpen_=!1}catch(g){n.log.fine(this.logger_,V(this,"Error opening Xhr: "+g.message));ya(this,g);return}a=d||"";var f=this.headers.clone();e&&n.structs.forEach(e,function(a,c){f.set(c,
+a)});e=n.array.find(f.getKeys(),n.net.XhrIo.isContentTypeHeader_);d=n.global.FormData&&a instanceof n.global.FormData;!n.array.contains(n.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(n.net.XhrIo.CONTENT_TYPE_HEADER,n.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(a,c){this.xhr_.setRequestHeader(c,a)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);"withCredentials"in this.xhr_&&this.xhr_.withCredentials!==this.withCredentials_&&(this.xhr_.withCredentials=this.withCredentials_);
+try{za(this),0<this.timeoutInterval_&&(this.useXhr2Timeout_=n.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),n.log.fine(this.logger_,V(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[n.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=n.bind(this.timeout_,this)):this.timeoutId_=n.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),n.log.fine(this.logger_,V(this,"Sending request")),
+this.inSend_=!0,this.xhr_.send(a),this.inSend_=!1}catch(g){n.log.fine(this.logger_,V(this,"Send error: "+g.message)),ya(this,g)}};n.net.XhrIo.shouldUseXhr2Timeout_=function(a){return n.userAgent.IE&&n.userAgent.isVersionOrHigher(9)&&n.isNumber(a[n.net.XhrIo.XHR2_TIMEOUT_])&&n.isDef(a[n.net.XhrIo.XHR2_ON_TIMEOUT_])};n.net.XhrIo.isContentTypeHeader_=function(a){return n.string.caseInsensitiveEquals(a)};
+n.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof n&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",n.log.fine(this.logger_,V(this,this.lastError_)),this.dispatchEvent(n.net.EventType.TIMEOUT),this.abort(n.net.ErrorCode.TIMEOUT))};var ya=function(a,c){a.active_=!1;a.xhr_&&(a.inAbort_=!0,a.xhr_.abort(),a.inAbort_=!1);a.lastError_=c;Aa(a);W(a)},Aa=function(a){a.errorDispatched_||(a.errorDispatched_=!0,a.dispatchEvent(n.net.EventType.COMPLETE),a.dispatchEvent(n.net.EventType.ERROR))};
+n.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(n.log.fine(this.logger_,V(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(n.net.EventType.COMPLETE),this.dispatchEvent(n.net.EventType.ABORT),W(this))};n.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),W(this,!0));n.net.XhrIo.superClass_.disposeInternal.call(this)};
+n.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)Ba(this);else this.onReadyStateChangeEntryPoint_()};n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){Ba(this)};
+var Ba=function(a){if(a.active_&&"undefined"!=typeof n)if(a.xhrOptions_[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&X(a)==n.net.XmlHttp.ReadyState.COMPLETE&&2==Y(a))n.log.fine(a.logger_,V(a,"Local request error detected and ignored"));else if(a.inSend_&&X(a)==n.net.XmlHttp.ReadyState.COMPLETE)n.Timer.callOnce(a.onReadyStateChange_,0,a);else if(a.dispatchEvent(n.net.EventType.READY_STATE_CHANGE),Z(a)){n.log.fine(a.logger_,V(a,"Request complete"));a.active_=!1;try{if(a.isSuccess())a.dispatchEvent(n.net.EventType.COMPLETE),
+a.dispatchEvent(n.net.EventType.SUCCESS);else{try{var c=X(a)>n.net.XmlHttp.ReadyState.LOADED?a.xhr_.statusText:""}catch(d){n.log.fine(a.logger_,"Can not get status: "+d.message),c=""}a.lastError_=c+" ["+Y(a)+"]";Aa(a)}}finally{W(a)}}};
+n.net.XhrIo.prototype.onProgressHandler_=function(a,c){n.asserts.assert(a.type===n.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(a,n.net.EventType.PROGRESS));this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(a,c?n.net.EventType.DOWNLOAD_PROGRESS:n.net.EventType.UPLOAD_PROGRESS))};n.net.XhrIo.buildProgressEvent_=function(a,c){return{type:c,lengthComputable:a.lengthComputable,loaded:a.loaded,total:a.total}};
+var W=function(a,c){if(a.xhr_){za(a);var d=a.xhr_,e=a.xhrOptions_[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?n.nullFunction:null;a.xhr_=null;a.xhrOptions_=null;c||a.dispatchEvent(n.net.EventType.READY);try{d.onreadystatechange=e}catch(f){n.log.error(a.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},za=function(a){a.xhr_&&a.useXhr2Timeout_&&(a.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=null);a.timeoutId_&&(n.Timer.clear(a.timeoutId_),a.timeoutId_=null)},Z=function(a){return X(a)==
+n.net.XmlHttp.ReadyState.COMPLETE};n.net.XhrIo.prototype.isSuccess=function(){var a=Y(this),c;if(!(c=n.net.HttpStatus.isSuccess(a))){if(a=0===a)a=n.uri.utils.getEffectiveScheme(String(this.lastUri_)),a=!n.net.XhrIo.HTTP_SCHEME_PATTERN.test(a);c=a}return c};var X=function(a){return a.xhr_?a.xhr_.readyState:n.net.XmlHttp.ReadyState.UNINITIALIZED},Y=function(a){try{return X(a)>n.net.XmlHttp.ReadyState.LOADED?a.xhr_.status:-1}catch(c){return-1}};
+n.net.XhrIo.prototype.getResponseHeader=function(a){if(this.xhr_&&Z(this))return a=this.xhr_.getResponseHeader(a),n.isNull(a)?void 0:a};n.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&Z(this)?this.xhr_.getAllResponseHeaders()||"":""};var V=function(a,c){return c+" ["+a.lastMethod_+" "+a.lastUri_+" "+Y(a)+"]"};n.debug.entryPointRegistry.register(function(a){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=a(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});n.craw.AppAuthenticator=function(){};n.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";n.craw.AppBackground=function(){this.delegate_=n.craw.AppBackgroundDelegate.createImpl();chrome.app.runtime.onLaunched.addListener(n.bind(this.launchWindow_,this,null))};n.craw.AppBackground.prototype.launchWindow_=function(a){null!==a&&chrome.app.window.create("/html/craw_window.html",{id:"",bounds:this.delegate_.getWindowBounds(),frame:"chrome",hidden:!1},function(c){c.contentWindow.crawConfig_=new n.craw.WindowConfig(a,!0)})};window.onload=function(){new n.craw.AppBackground};
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js
new file mode 100644
index 0000000000000000000000000000000000000000..c02e8cf2ae0a12ceca7b10575452db8980274514
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/craw_window.js
@@ -0,0 +1,534 @@
+var a,k=k||{};k.scope={};k.findInternal=function(b,c,d){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var g=b[f];if(c.call(d,g,f,b))return{i:f,v:g}}return{i:-1,v:void 0}};k.ASSUME_ES5=!1;k.ASSUME_NO_NATIVE_MAP=!1;k.ASSUME_NO_NATIVE_SET=!1;k.defineProperty=k.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,c,d){b!=Array.prototype&&b!=Object.prototype&&(b[c]=d.value)};
+k.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};k.global=k.getGlobal(this);k.polyfill=function(b,c){if(c){var d=k.global;b=b.split(".");for(var e=0;e<b.length-1;e++){var f=b[e];f in d||(d[f]={});d=d[f]}b=b[b.length-1];e=d[b];c=c(e);c!=e&&null!=c&&k.defineProperty(d,b,{configurable:!0,writable:!0,value:c})}};
+k.checkStringArgs=function(b,c,d){if(null==b)throw new TypeError("The 'this' value for String.prototype."+d+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+d+" must not be a regular expression");return b+""};var n=n||{};n.global=this;n.isDef=function(b){return void 0!==b};n.isString=function(b){return"string"==typeof b};n.isBoolean=function(b){return"boolean"==typeof b};n.isNumber=function(b){return"number"==typeof b};
+n.exportPath_=function(b,c,d){b=b.split(".");d=d||n.global;b[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)!b.length&&n.isDef(c)?d[e]=c:d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}};n.define=function(b,c){n.exportPath_(b,c)};n.DEBUG=!0;n.LOCALE="en";n.TRUSTED_SITE=!0;n.STRICT_MODE_COMPATIBLE=!1;n.DISALLOW_TEST_ONLY_CODE=!n.DEBUG;n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
+n.provide=function(b){if(n.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");n.constructNamespace_(b)};n.constructNamespace_=function(b,c){n.exportPath_(b,c)};n.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
+n.module=function(b){if(!n.isString(b)||!b||-1==b.search(n.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!n.isInModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(n.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
+n.moduleLoaderState_.moduleName=b};n.module.get=function(){return null};n.module.getInternal_=function(){return null};n.moduleLoaderState_=null;n.isInModuleLoader_=function(){return null!=n.moduleLoaderState_};n.module.declareLegacyNamespace=function(){n.moduleLoaderState_.declareLegacyNamespace=!0};n.setTestOnly=function(b){if(n.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};n.forwardDeclare=function(){};
+n.getObjectByName=function(b){b=b.split(".");for(var c=n.global,d=0;d<b.length;d++)if(c=c[b[d]],!n.isDefAndNotNull(c))return null;return c};n.globalize=function(b,c){c=c||n.global;for(var d in b)c[d]=b[d]};n.addDependency=function(b,c,d,e){if(n.DEPENDENCIES_ENABLED){var f=n.getLoader_();f&&f.addDependency(b,c,d,e)}};n.useStrictRequires=!1;n.ENABLE_DEBUG_LOADER=!0;n.logToConsole_=function(b){n.global.console&&n.global.console.error(b)};n.require=function(b){n.ENABLE_DEBUG_LOADER&&n.debugLoader_&&n.getLoader_().earlyProcessLoad(b)};
+n.basePath="";n.nullFunction=function(){};n.abstractMethod=function(){throw Error("unimplemented abstract method");};n.addSingletonGetter=function(b){b.instance_=void 0;b.getInstance=function(){if(b.instance_)return b.instance_;n.DEBUG&&(n.instantiatedSingletons_[n.instantiatedSingletons_.length]=b);return b.instance_=new b}};n.instantiatedSingletons_=[];n.LOAD_MODULE_USING_EVAL=!0;n.SEAL_MODULE_EXPORTS=n.DEBUG;n.loadedModules_={};n.DEPENDENCIES_ENABLED=!1;n.TRANSPILE="detect";n.TRANSPILER="transpile.js";
+n.DEBUG_LOADER="";n.hasBadLetScoping=null;n.useSafari10Workaround=function(){if(null==n.hasBadLetScoping){try{var b=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){b=!1}n.hasBadLetScoping=b}return n.hasBadLetScoping};n.workaroundSafari10EvalBug=function(b){return"(function(){"+b+"\n;})();\n"};
+n.loadModule=function(b){var c=n.moduleLoaderState_;try{n.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1};if(n.isFunction(b))var d=b.call(void 0,{});else if(n.isString(b))n.useSafari10Workaround()&&(b=n.workaroundSafari10EvalBug(b)),d=n.loadModuleFromSource_.call(void 0,b);else throw Error("Invalid module definition");var e=n.moduleLoaderState_.moduleName;if(n.isString(e)&&e)n.moduleLoaderState_.declareLegacyNamespace?n.constructNamespace_(e,d):n.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==
+typeof d&&null!=d&&Object.seal(d),n.loadedModules_[e]=d;else throw Error('Invalid module name "'+e+'"');}finally{n.moduleLoaderState_=c}};n.loadModuleFromSource_=function(b){eval(b);return{}};n.normalizePath_=function(b){b=b.split("/");for(var c=0;c<b.length;)"."==b[c]?b.splice(c,1):c&&".."==b[c]&&b[c-1]&&".."!=b[c-1]?b.splice(--c,2):c++;return b.join("/")};
+n.loadFileSync_=function(b){if(n.global.CLOSURE_LOAD_FILE_SYNC)return n.global.CLOSURE_LOAD_FILE_SYNC(b);try{var c=new n.global.XMLHttpRequest;c.open("get",b,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
+n.transpile_=function(b,c){var d=n.global.$jscomp;d||(n.global.$jscomp=d={});var e=d.transpile;if(!e){var f=n.basePath+n.TRANSPILER,g=n.loadFileSync_(f);if(g){(function(){eval(g+"\n//# sourceURL="+f)}).call(n.global);if(n.global.$gwtExport&&n.global.$gwtExport.$jscomp&&!n.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(n.global.$gwtExport));n.global.$jscomp.transpile=n.global.$gwtExport.$jscomp.transpile;
+d=n.global.$jscomp;e=d.transpile}}if(!e){var h=" requires transpilation but no transpiler was found.";h+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';e=d.transpile=function(b,c){n.logToConsole_(c+h);return b}}return e(b,c)};
+n.typeOf=function(b){var c=typeof b;if("object"==c)if(b){if(b instanceof Array)return"array";if(b instanceof Object)return c;var d=Object.prototype.toString.call(b);if("[object Window]"==d)return"object";if("[object Array]"==d||"number"==typeof b.length&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return"array";if("[object Function]"==d||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return"function"}else return"null";
+else if("function"==c&&"undefined"==typeof b.call)return"object";return c};n.isNull=function(b){return null===b};n.isDefAndNotNull=function(b){return null!=b};n.isArray=function(b){return"array"==n.typeOf(b)};n.isArrayLike=function(b){var c=n.typeOf(b);return"array"==c||"object"==c&&"number"==typeof b.length};n.isDateLike=function(b){return n.isObject(b)&&"function"==typeof b.getFullYear};n.isFunction=function(b){return"function"==n.typeOf(b)};
+n.isObject=function(b){var c=typeof b;return"object"==c&&null!=b||"function"==c};n.getUid=function(b){return b[n.UID_PROPERTY_]||(b[n.UID_PROPERTY_]=++n.uidCounter_)};n.hasUid=function(b){return!!b[n.UID_PROPERTY_]};n.removeUid=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(n.UID_PROPERTY_);try{delete b[n.UID_PROPERTY_]}catch(c){}};n.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);n.uidCounter_=0;n.getHashCode=n.getUid;n.removeHashCode=n.removeUid;
+n.cloneObject=function(b){var c=n.typeOf(b);if("object"==c||"array"==c){if("function"===typeof b.clone)return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=n.cloneObject(b[d]);return c}return b};n.bindNative_=function(b,c,d){return b.call.apply(b.bind,arguments)};
+n.bindJs_=function(b,c,d){if(!b)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return b.apply(c,d)}}return function(){return b.apply(c,arguments)}};n.bind=function(b,c,d){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?n.bind=n.bindNative_:n.bind=n.bindJs_;return n.bind.apply(null,arguments)};
+n.partial=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return b.apply(this,c)}};n.mixin=function(b,c){for(var d in c)b[d]=c[d]};n.now=n.TRUSTED_SITE&&Date.now||function(){return+new Date};
+n.globalEval=function(b){if(n.global.execScript)n.global.execScript(b,"JavaScript");else if(n.global.eval){if(null==n.evalWorksForGlobals_){try{n.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof n.global._evalTest_){try{delete n.global._evalTest_}catch(e){}n.evalWorksForGlobals_=!0}else n.evalWorksForGlobals_=!1}if(n.evalWorksForGlobals_)n.global.eval(b);else{var c=n.global.document,d=c.createElement("SCRIPT");d.type="text/javascript";d.defer=!1;d.appendChild(c.createTextNode(b));
+c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};n.evalWorksForGlobals_=null;
+n.getCssName=function(b,c){if("."==String(b).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+b);var d=function(b){return n.cssNameMapping_[b]||b},e=function(b){b=b.split("-");for(var c=[],e=0;e<b.length;e++)c.push(d(b[e]));return c.join("-")};e=n.cssNameMapping_?"BY_WHOLE"==n.cssNameMappingStyle_?d:e:function(b){return b};b=c?b+"-"+e(c):e(b);return n.global.CLOSURE_CSS_NAME_MAP_FN?n.global.CLOSURE_CSS_NAME_MAP_FN(b):b};
+n.setCssNameMapping=function(b,c){n.cssNameMapping_=b;n.cssNameMappingStyle_=c};n.getMsg=function(b,c){c&&(b=b.replace(/\{\$([^}]+)}/g,function(b,e){return null!=c&&e in c?c[e]:b}));return b};n.getMsgWithFallback=function(b){return b};n.exportSymbol=function(b,c,d){n.exportPath_(b,c,d)};n.exportProperty=function(b,c,d){b[c]=d};
+n.inherits=function(b,c){function d(){}d.prototype=c.prototype;b.superClass_=c.prototype;b.prototype=new d;b.prototype.constructor=b;b.base=function(b,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(b,e)}};
+n.base=function(b,c,d){var e=arguments.callee.caller;if(n.STRICT_MODE_COMPATIBLE||n.DEBUG&&!e)throw Error("arguments.caller not defined.  goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.superClass_){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.superClass_.constructor.apply(b,f)}f=Array(arguments.length-2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=
+b.constructor;h;h=h.superClass_&&h.superClass_.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(b,f);if(b[c]===e)return b.constructor.prototype[c].apply(b,f);throw Error("goog.base called from a method of one name to a method of a different name");};n.scope=function(b){if(n.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");b.call(n.global)};
+n.defineClass=function(b,c){var d=c.constructor,e=c.statics;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=n.defineClass.createSealingConstructor_(d,b);b&&n.inherits(d,b);delete c.constructor;delete c.statics;n.defineClass.applyProperties_(d.prototype,c);null!=e&&(e instanceof Function?e(d):n.defineClass.applyProperties_(d,e));return d};n.defineClass.SEAL_CLASS_INSTANCES=n.DEBUG;
+n.defineClass.createSealingConstructor_=function(b,c){if(!n.defineClass.SEAL_CLASS_INSTANCES)return b;var d=!n.defineClass.isUnsealable_(c),e=function(){var c=b.apply(this,arguments)||this;c[n.UID_PROPERTY_]=c[n.UID_PROPERTY_];this.constructor===e&&d&&Object.seal instanceof Function&&Object.seal(c);return c};return e};n.defineClass.isUnsealable_=function(b){return b&&b.prototype&&b.prototype[n.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};n.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
+n.defineClass.applyProperties_=function(b,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d]);for(var e=0;e<n.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;e++)d=n.defineClass.OBJECT_PROTOTYPE_FIELDS_[e],Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d])};n.tagUnsealableClass=function(){};n.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";
+if(n.DEPENDENCIES_ENABLED){n.inHtmlDocument_=function(){var b=n.global.document;return null!=b&&"write"in b};n.findBasePath_=function(){if(n.isDef(n.global.CLOSURE_BASE_PATH)&&n.isString(n.global.CLOSURE_BASE_PATH))n.basePath=n.global.CLOSURE_BASE_PATH;else if(n.inHtmlDocument_()){var b=n.global.document,c=b.currentScript;b=c?[c]:b.getElementsByTagName("SCRIPT");for(c=b.length-1;0<=c;--c){var d=b[c].src,e=d.lastIndexOf("?");e=-1==e?d.length:e;if("base.js"==d.substr(e-7,7)){n.basePath=d.substr(0,e-
+7);break}}}};n.findBasePath_();n.Transpiler=function(){this.requiresTranspilation_=null};n.Transpiler.prototype.createRequiresTranspilation_=function(){function b(b,c){e?d[b]=!0:c()?d[b]=!1:e=d[b]=!0}function c(b){try{return!!eval(b)}catch(h){return!1}}var d={es3:!1},e=!1,f=n.global.navigator&&n.global.navigator.userAgent?n.global.navigator.userAgent:"";b("es5",function(){return c("[1,].length==1")});b("es6",function(){var b=f.match(/Edge\/(\d+)(\.\d)*/i);return b&&15>Number(b[1])?!1:c('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});
+b("es6-impl",function(){return!0});b("es7",function(){return c("2 ** 2 == 4")});b("es8",function(){return c("async () => 1, true")});b("es_next",function(){return c("({...rest} = {}), true")});return d};n.Transpiler.prototype.needsTranspile=function(b){if("always"==n.TRANSPILE)return!0;if("never"==n.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(b in this.requiresTranspilation_)return this.requiresTranspilation_[b];throw Error("Unknown language mode: "+
+b);};n.Transpiler.prototype.transpile=function(b,c){return n.transpile_(b,c)};n.transpiler_=new n.Transpiler;n.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}};this.lastNonModuleScriptIndex_=0};n.DebugLoader.IS_OLD_IE_=!(n.global.atob||!n.global.document||!n.global.document.all);a=n.DebugLoader.prototype;a.earlyProcessLoad=function(b){n.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(b)};a.load=function(b){var c=this.getPathFromDeps_(b);
+if(c){var d=[],e={},f=this.dependencies_,g=this,h=function(b){if(!(b in f.written||b in f.visited)){f.visited[b]=!0;if(b in f.requires)for(var c in f.requires[b])if(!g.isProvided(c))if(c in f.nameToPath)h(f.nameToPath[c]);else throw Error("Undefined nameToPath for "+c);b in e||(e[b]=!0,d.push(b))}};h(c);for(b=0;b<d.length;b++)c=d[b],this.dependencies_.written[c]=!0;for(b=0;b<d.length;b++)if(c=d[b]){var l=f.loadFlags[c]||{},m=this.getTranspiler().needsTranspile(l.lang||"es3");"goog"==l.module||m?this.importProcessedScript_(n.basePath+
+c,"goog"==l.module,m):this.importScript_(n.basePath+c)}else throw Error("Undefined script input");}else if(b="goog.require could not find: "+b,this.logToConsole(b),n.useStrictRequires)throw Error(b);};a.addDependency=function(b,c,d,e){var f;b=b.replace(/\\/g,"/");var g=this.dependencies_;e&&"boolean"!==typeof e||(e=e?{module:"goog"}:{});for(var h=0;f=c[h];h++)g.nameToPath[f]=b,g.loadFlags[b]=e;for(e=0;c=d[e];e++)b in g.requires||(g.requires[b]={}),g.requires[b][c]=!0};a.importScript_=function(b,c){(n.global.CLOSURE_IMPORT_SCRIPT||
+n.bind(this.writeScriptTag_,this))(b,c)&&(this.dependencies_.written[b]=!0)};a.importProcessedScript_=function(b,c,d){this.importScript_("",'goog.debugLoader_.retrieveAndExec_("'+b+'", '+c+", "+d+");")};a.maybeProcessDeferredDep_=function(b){this.isDeferredModule_(b)&&this.allDepsAreAvailable_(b)&&this.maybeProcessDeferredPath_(n.basePath+this.getPathFromDeps_(b))};a.isDeferredModule_=function(b){var c=(b=this.getPathFromDeps_(b))&&this.dependencies_.loadFlags[b]||{},d=c.lang||"es3";return b&&("goog"==
+c.module||this.getTranspiler().needsTranspile(d))?n.basePath+b in this.dependencies_.deferred:!1};a.allDepsAreAvailable_=function(b){if((b=this.getPathFromDeps_(b))&&b in this.dependencies_.requires)for(var c in this.dependencies_.requires[b])if(!this.isProvided(c)&&!this.isDeferredModule_(c))return!1;return!0};a.maybeProcessDeferredPath_=function(b){if(b in this.dependencies_.deferred){var c=this.dependencies_.deferred[b];delete this.dependencies_.deferred[b];n.globalEval(c)}};a.writeScriptSrcNode_=
+function(b){n.global.document.write('<script type="text/javascript" src="'+b+'">\x3c/script>')};a.appendScriptSrcNode_=function(b){var c=n.global.document,d=c.createElement("script");d.type="text/javascript";d.src=b;d.defer=!1;d.async=!1;c.head.appendChild(d)};a.writeScriptTag_=function(b,c){if(this.inHtmlDocument()){var d=n.global.document;if(!n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==d.readyState){if(/\bdeps.js$/.test(b))return!1;throw Error('Cannot write "'+b+'" after document load');
+}void 0===c?n.DebugLoader.IS_OLD_IE_?(c=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",d.write('<script type="text/javascript" src="'+b+'"'+c+">\x3c/script>")):n.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?this.appendScriptSrcNode_(b):this.writeScriptSrcNode_(b):d.write('<script type="text/javascript">'+this.protectScriptTag_(c)+"\x3c/script>");return!0}return!1};a.protectScriptTag_=function(b){return b.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")};a.getPathFromDeps_=
+function(b){return b in this.dependencies_.nameToPath?this.dependencies_.nameToPath[b]:null};a.getTranspiler=function(){return n.transpiler_};a.isProvided=function(b){return n.isProvided_(b)};a.inHtmlDocument=function(){return n.inHtmlDocument_()};a.logToConsole=function(b){n.logToConsole_(b)};n.debugLoader_=null;n.registerDebugLoader=function(){var b=q;if(n.debugLoader_)throw Error("Debug loader already registered!");if(!(b instanceof n.DebugLoader))throw Error("Not a goog.DebugLoader.");n.debugLoader_=
+b};n.getLoader_=function(){if(!n.debugLoader_&&n.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");n.debugLoader_||(n.debugLoader_=new n.DebugLoader);return n.debugLoader_};var q;n.DEBUG_LOADER&&(q=new n.DebugLoader,q.importScript_(n.basePath+n.DEBUG_LOADER));n.global.CLOSURE_NO_DEPS||(q=q||new n.DebugLoader,n.DEBUG_LOADER||n.registerDebugLoader(),q.importScript_(n.basePath+"deps.js"))};n.craw={};n.craw.AppWindowDelegate=function(){};n.craw.AppWindowDelegate.defaultImpl_=n.craw.AppWindowDelegate;n.craw.AppWindowDelegate.setDefaultImpl=function(){n.craw.AppWindowDelegate.defaultImpl_=t.WindowDelegate};n.craw.AppWindowDelegate.createDefaultImpl=function(b){return new n.craw.AppWindowDelegate.defaultImpl_(b)};n.craw.AppWindowDelegate.prototype.onWindowReady=function(){};n.craw.AppWindowDelegate.prototype.pollOnlineStatus=function(){return null};
+n.craw.AppWindowDelegate.prototype.finishedLaunch=function(){return!0};n.craw.AppWindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("craw_app_unavailable")};n.debug={};n.debug.Error=function(b){if(Error.captureStackTrace)Error.captureStackTrace(this,n.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}b&&(this.message=String(b))};n.inherits(n.debug.Error,Error);n.debug.Error.prototype.name="CustomError";n.dom={};n.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};n.asserts={};n.asserts.ENABLE_ASSERTS=n.DEBUG;n.asserts.AssertionError=function(b,c){n.debug.Error.call(this,n.asserts.subs_(b,c))};n.inherits(n.asserts.AssertionError,n.debug.Error);n.asserts.AssertionError.prototype.name="AssertionError";n.asserts.DEFAULT_ERROR_HANDLER=function(b){throw b;};n.asserts.errorHandler_=n.asserts.DEFAULT_ERROR_HANDLER;n.asserts.subs_=function(b,c){b=b.split("%s");for(var d="",e=b.length-1,f=0;f<e;f++)d+=b[f]+(f<c.length?c[f]:"%s");return d+b[e]};
+n.asserts.doAssertFailure_=function(b,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else b&&(f+=": "+b,g=c);b=new n.asserts.AssertionError(""+f,g||[]);n.asserts.errorHandler_(b)};n.asserts.setErrorHandler=function(b){n.asserts.ENABLE_ASSERTS&&(n.asserts.errorHandler_=b)};n.asserts.assert=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!b&&n.asserts.doAssertFailure_("",null,c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.fail=function(b,c){n.asserts.ENABLE_ASSERTS&&n.asserts.errorHandler_(new n.asserts.AssertionError("Failure"+(b?": "+b:""),Array.prototype.slice.call(arguments,1)))};n.asserts.assertNumber=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isNumber(b)&&n.asserts.doAssertFailure_("Expected number but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertString=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isString(b)&&n.asserts.doAssertFailure_("Expected string but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};n.asserts.assertFunction=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isFunction(b)&&n.asserts.doAssertFailure_("Expected function but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertObject=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isObject(b)&&n.asserts.doAssertFailure_("Expected object but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};n.asserts.assertArray=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isArray(b)&&n.asserts.doAssertFailure_("Expected array but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2))};
+n.asserts.assertBoolean=function(b,c,d){n.asserts.ENABLE_ASSERTS&&!n.isBoolean(b)&&n.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};n.asserts.assertElement=function(b,c,d){!n.asserts.ENABLE_ASSERTS||n.isObject(b)&&b.nodeType==n.dom.NodeType.ELEMENT||n.asserts.doAssertFailure_("Expected Element but got %s: %s.",[n.typeOf(b),b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertInstanceof=function(b,c,d,e){!n.asserts.ENABLE_ASSERTS||b instanceof c||n.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[n.asserts.getType_(c),n.asserts.getType_(b)],d,Array.prototype.slice.call(arguments,3));return b};n.asserts.assertFinite=function(b,c,d){!n.asserts.ENABLE_ASSERTS||"number"==typeof b&&isFinite(b)||n.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[b],c,Array.prototype.slice.call(arguments,2));return b};
+n.asserts.assertObjectPrototypeIsIntact=function(){for(var b in Object.prototype)n.asserts.fail(b+" should not be enumerable in Object.prototype.")};n.asserts.getType_=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};n.array={};n.NATIVE_ARRAY_PROTOTYPES=n.TRUSTED_SITE;n.array.ASSUME_NATIVE_FUNCTIONS=!1;n.array.peek=function(b){return b[b.length-1]};n.array.last=n.array.peek;
+n.array.indexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.indexOf.call(b,c,d)}:function(b,c,d){d=null==d?0:0>d?Math.max(0,b.length+d):d;if(n.isString(b))return n.isString(c)&&1==c.length?b.indexOf(c,d):-1;for(;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
+n.array.lastIndexOf=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.lastIndexOf.call(b,c,null==d?b.length-1:d)}:function(b,c,d){d=null==d?b.length-1:d;0>d&&(d=Math.max(0,b.length+d));if(n.isString(b))return n.isString(c)&&1==c.length?b.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in b&&b[d]===c)return d;return-1};
+n.array.forEach=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(b,c,d){n.asserts.assert(null!=b.length);Array.prototype.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};n.array.forEachRight=function(b,c){var d=b.length,e=n.isString(b)?b.split(""):b;for(--d;0<=d;--d)d in e&&c.call(void 0,e[d],d,b)};
+n.array.filter=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=n.isString(b)?b.split(""):b,l=0;l<e;l++)if(l in h){var m=h[l];c.call(d,m,l,b)&&(f[g++]=m)}return f};
+n.array.map=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=Array(e),g=n.isString(b)?b.split(""):b,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,b));return f};
+n.array.reduce=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(b,c,d,e){n.asserts.assert(null!=b.length);e&&(c=n.bind(c,e));return Array.prototype.reduce.call(b,c,d)}:function(b,c,d,e){var f=d;n.array.forEach(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
+n.array.reduceRight=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(b,c,d,e){n.asserts.assert(null!=b.length);n.asserts.assert(null!=c);e&&(c=n.bind(c,e));return Array.prototype.reduceRight.call(b,c,d)}:function(b,c,d,e){var f=d;n.array.forEachRight(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
+n.array.some=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return!0;return!1};
+n.array.every=n.NATIVE_ARRAY_PROTOTYPES&&(n.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(b,c,d){n.asserts.assert(null!=b.length);return Array.prototype.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return!1;return!0};n.array.count=function(b,c,d){var e=0;n.array.forEach(b,function(b,g,h){c.call(d,b,g,h)&&++e},d);return e};
+n.array.find=function(b,c,d){c=n.array.findIndex(b,c,d);return 0>c?null:n.isString(b)?b.charAt(c):b[c]};n.array.findIndex=function(b,c,d){for(var e=b.length,f=n.isString(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};n.array.findRight=function(b,c,d){c=n.array.findIndexRight(b,c,d);return 0>c?null:n.isString(b)?b.charAt(c):b[c]};
+n.array.findIndexRight=function(b,c,d){var e=b.length,f=n.isString(b)?b.split(""):b;for(--e;0<=e;e--)if(e in f&&c.call(d,f[e],e,b))return e;return-1};n.array.contains=function(b,c){return 0<=n.array.indexOf(b,c)};n.array.isEmpty=function(b){return 0==b.length};n.array.clear=function(b){if(!n.isArray(b))for(var c=b.length-1;0<=c;c--)delete b[c];b.length=0};n.array.insert=function(b,c){n.array.contains(b,c)||b.push(c)};n.array.insertAt=function(b,c,d){n.array.splice(b,d,0,c)};
+n.array.insertArrayAt=function(b,c,d){n.partial(n.array.splice,b,d,0).apply(null,c)};n.array.insertBefore=function(b,c,d){var e;2==arguments.length||0>(e=n.array.indexOf(b,d))?b.push(c):n.array.insertAt(b,c,e)};n.array.remove=function(b,c){c=n.array.indexOf(b,c);var d;(d=0<=c)&&n.array.removeAt(b,c);return d};n.array.removeLast=function(b,c){c=n.array.lastIndexOf(b,c);return 0<=c?(n.array.removeAt(b,c),!0):!1};
+n.array.removeAt=function(b,c){n.asserts.assert(null!=b.length);return 1==Array.prototype.splice.call(b,c,1).length};n.array.removeIf=function(b,c,d){c=n.array.findIndex(b,c,d);return 0<=c?(n.array.removeAt(b,c),!0):!1};n.array.removeAllIf=function(b,c,d){var e=0;n.array.forEachRight(b,function(f,g){c.call(d,f,g,b)&&n.array.removeAt(b,g)&&e++});return e};n.array.concat=function(b){return Array.prototype.concat.apply([],arguments)};n.array.join=function(b){return Array.prototype.concat.apply([],arguments)};
+n.array.toArray=function(b){var c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];return d}return[]};n.array.clone=n.array.toArray;n.array.extend=function(b,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(n.isArrayLike(e)){var f=b.length||0,g=e.length||0;b.length=f+g;for(var h=0;h<g;h++)b[f+h]=e[h]}else b.push(e)}};n.array.splice=function(b,c,d,e){n.asserts.assert(null!=b.length);return Array.prototype.splice.apply(b,n.array.slice(arguments,1))};
+n.array.slice=function(b,c,d){n.asserts.assert(null!=b.length);return 2>=arguments.length?Array.prototype.slice.call(b,c):Array.prototype.slice.call(b,c,d)};n.array.removeDuplicates=function(b,c){c=c||b;for(var d={},e=0,f=0;f<b.length;){var g=b[f++];var h=g;h=n.isObject(h)?"o"+n.getUid(h):(typeof h).charAt(0)+h;Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,c[e++]=g)}c.length=e};n.array.binarySearch=function(b,c,d){return n.array.binarySearch_(b,d||n.array.defaultCompare,!1,c)};
+n.array.binarySelect=function(b,c,d){return n.array.binarySearch_(b,c,!0,void 0,d)};n.array.binarySearch_=function(b,c,d,e,f){for(var g=0,h=b.length,l;g<h;){var m=g+h>>1;var p=d?c.call(f,b[m],m,b):c(e,b[m]);0<p?g=m+1:(h=m,l=!p)}return l?g:~g};n.array.sort=function(b,c){b.sort(c||n.array.defaultCompare)};
+n.array.stableSort=function(b,c){for(var d=Array(b.length),e=0;e<b.length;e++)d[e]={index:e,value:b[e]};var f=c||n.array.defaultCompare;n.array.sort(d,function(b,c){return f(b.value,c.value)||b.index-c.index});for(e=0;e<b.length;e++)b[e]=d[e].value};n.array.sortByKey=function(b,c,d){var e=d||n.array.defaultCompare;n.array.sort(b,function(b,d){return e(c(b),c(d))})};n.array.sortObjectsByKey=function(b,c,d){n.array.sortByKey(b,function(b){return b[c]},d)};
+n.array.isSorted=function(b){for(var c=n.array.defaultCompare,d=1;d<b.length;d++)if(0<c(b[d-1],b[d]))return!1;return!0};n.array.equals=function(b,c){if(!n.isArrayLike(b)||!n.isArrayLike(c)||b.length!=c.length)return!1;for(var d=b.length,e=n.array.defaultCompareEquality,f=0;f<d;f++)if(!e(b[f],c[f]))return!1;return!0};
+n.array.compare3=function(b,c,d){d=d||n.array.defaultCompare;for(var e=Math.min(b.length,c.length),f=0;f<e;f++){var g=d(b[f],c[f]);if(0!=g)return g}return n.array.defaultCompare(b.length,c.length)};n.array.defaultCompare=function(b,c){return b>c?1:b<c?-1:0};n.array.inverseDefaultCompare=function(b,c){return-n.array.defaultCompare(b,c)};n.array.defaultCompareEquality=function(b,c){return b===c};
+n.array.binaryInsert=function(b,c,d){d=n.array.binarySearch(b,c,d);return 0>d?(n.array.insertAt(b,c,-(d+1)),!0):!1};n.array.binaryRemove=function(b,c,d){c=n.array.binarySearch(b,c,d);return 0<=c?n.array.removeAt(b,c):!1};n.array.bucket=function(b,c,d){for(var e={},f=0;f<b.length;f++){var g=b[f],h=c.call(d,g,f,b);n.isDef(h)&&(e[h]||(e[h]=[])).push(g)}return e};n.array.toObject=function(b,c,d){var e={};n.array.forEach(b,function(f,g){e[c.call(d,f,g,b)]=f});return e};
+n.array.range=function(b,c,d){var e=[],f=0,g=b;d=d||1;void 0!==c&&(f=b,g=c);if(0>d*(g-f))return[];if(0<d)for(b=f;b<g;b+=d)e.push(b);else for(b=f;b>g;b+=d)e.push(b);return e};n.array.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};n.array.flatten=function(b){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(n.isArray(e))for(var f=0;f<e.length;f+=8192){var g=n.array.slice(e,f,f+8192);g=n.array.flatten.apply(null,g);for(var h=0;h<g.length;h++)c.push(g[h])}else c.push(e)}return c};
+n.array.rotate=function(b,c){n.asserts.assert(null!=b.length);b.length&&(c%=b.length,0<c?Array.prototype.unshift.apply(b,b.splice(-c,c)):0>c&&Array.prototype.push.apply(b,b.splice(0,-c)));return b};n.array.moveItem=function(b,c,d){n.asserts.assert(0<=c&&c<b.length);n.asserts.assert(0<=d&&d<b.length);c=Array.prototype.splice.call(b,c,1);Array.prototype.splice.call(b,d,0,c[0])};
+n.array.zip=function(b){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};n.array.shuffle=function(b,c){c=c||Math.random;for(var d=b.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=b[d];b[d]=b[e];b[e]=f}};n.array.copyByIndex=function(b,c){var d=[];n.array.forEach(c,function(c){d.push(b[c])});return d};
+n.array.concatMap=function(b,c,d){return n.array.concat.apply([],n.array.map(b,c,d))};n.debug.errorcontext={};n.debug.errorcontext.addErrorContext=function(b,c,d){b[n.debug.errorcontext.CONTEXT_KEY_]||(b[n.debug.errorcontext.CONTEXT_KEY_]={});b[n.debug.errorcontext.CONTEXT_KEY_][c]=d};n.debug.errorcontext.getErrorContext=function(b){return b[n.debug.errorcontext.CONTEXT_KEY_]||{}};n.debug.errorcontext.CONTEXT_KEY_="__closure__error__context__984382";n.string={};n.string.DETECT_DOUBLE_ESCAPING=!1;n.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;n.string.Unicode={NBSP:"\u00a0"};n.string.startsWith=function(b,c){return 0==b.lastIndexOf(c,0)};n.string.endsWith=function(b,c){var d=b.length-c.length;return 0<=d&&b.indexOf(c,d)==d};n.string.caseInsensitiveStartsWith=function(b){return 0==n.string.caseInsensitiveCompare("tel:",b.substr(0,4))};
+n.string.caseInsensitiveEndsWith=function(b,c){return 0==n.string.caseInsensitiveCompare(c,b.substr(b.length-c.length,c.length))};n.string.caseInsensitiveEquals=function(b){return n.net.XhrIo.CONTENT_TYPE_HEADER.toLowerCase()==b.toLowerCase()};n.string.subs=function(b,c){for(var d=b.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};
+n.string.collapseWhitespace=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};n.string.isEmptyOrWhitespace=function(b){return/^[\s\xa0]*$/.test(b)};n.string.isEmptyString=function(b){return 0==b.length};n.string.isEmpty=n.string.isEmptyOrWhitespace;n.string.isEmptyOrWhitespaceSafe=function(b){return n.string.isEmptyOrWhitespace(n.string.makeSafe(b))};n.string.isEmptySafe=n.string.isEmptyOrWhitespaceSafe;n.string.isBreakingWhitespace=function(b){return!/[^\t\n\r ]/.test(b)};
+n.string.isAlpha=function(b){return!/[^a-zA-Z]/.test(b)};n.string.isNumeric=function(b){return!/[^0-9]/.test(b)};n.string.isAlphaNumeric=function(b){return!/[^a-zA-Z0-9]/.test(b)};n.string.isSpace=function(b){return" "==b};n.string.isUnicodeChar=function(b){return 1==b.length&&" "<=b&&"~">=b||"\u0080"<=b&&"\ufffd">=b};n.string.stripNewlines=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};n.string.canonicalizeNewlines=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};
+n.string.normalizeWhitespace=function(b){return b.replace(/\xa0|\s/g," ")};n.string.normalizeSpaces=function(b){return b.replace(/\xa0|[ \t]+/g," ")};n.string.collapseBreakingSpaces=function(b){return b.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};n.string.trim=n.TRUSTED_SITE&&String.prototype.trim?function(b){return b.trim()}:function(b){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(b)[1]};n.string.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};
+n.string.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};n.string.caseInsensitiveCompare=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};
+n.string.numberAwareCompare_=function(b,c,d){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var e=b.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var l=f[h];if(d!=l)return b=parseInt(d,10),!isNaN(b)&&(c=parseInt(l,10),!isNaN(c)&&b-c)?b-c:d<l?-1:1}return e.length!=f.length?e.length-f.length:b<c?-1:1};n.string.intAwareCompare=function(b,c){return n.string.numberAwareCompare_(b,c,/\d+|\D+/g)};
+n.string.floatAwareCompare=function(b,c){return n.string.numberAwareCompare_(b,c,/\d+|\.\d+|\D+/g)};n.string.numerateCompare=n.string.floatAwareCompare;n.string.urlEncode=function(b){return encodeURIComponent(String(b))};n.string.urlDecode=function(b){return decodeURIComponent(b.replace(/\+/g," "))};n.string.newLineToBr=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
+n.string.htmlEscape=function(b,c){if(c)b=b.replace(n.string.AMP_RE_,"&amp;").replace(n.string.LT_RE_,"&lt;").replace(n.string.GT_RE_,"&gt;").replace(n.string.QUOT_RE_,"&quot;").replace(n.string.SINGLE_QUOTE_RE_,"&#39;").replace(n.string.NULL_RE_,"&#0;"),n.string.DETECT_DOUBLE_ESCAPING&&(b=b.replace(n.string.E_RE_,"&#101;"));else{if(!n.string.ALL_RE_.test(b))return b;-1!=b.indexOf("&")&&(b=b.replace(n.string.AMP_RE_,"&amp;"));-1!=b.indexOf("<")&&(b=b.replace(n.string.LT_RE_,"&lt;"));-1!=b.indexOf(">")&&
+(b=b.replace(n.string.GT_RE_,"&gt;"));-1!=b.indexOf('"')&&(b=b.replace(n.string.QUOT_RE_,"&quot;"));-1!=b.indexOf("'")&&(b=b.replace(n.string.SINGLE_QUOTE_RE_,"&#39;"));-1!=b.indexOf("\x00")&&(b=b.replace(n.string.NULL_RE_,"&#0;"));n.string.DETECT_DOUBLE_ESCAPING&&-1!=b.indexOf("e")&&(b=b.replace(n.string.E_RE_,"&#101;"))}return b};n.string.AMP_RE_=/&/g;n.string.LT_RE_=/</g;n.string.GT_RE_=/>/g;n.string.QUOT_RE_=/"/g;n.string.SINGLE_QUOTE_RE_=/'/g;n.string.NULL_RE_=/\x00/g;n.string.E_RE_=/e/g;
+n.string.ALL_RE_=n.string.DETECT_DOUBLE_ESCAPING?/[\x00&<>"'e]/:/[\x00&<>"']/;n.string.unescapeEntities=function(b){return n.string.contains(b,"&")?!n.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in n.global?n.string.unescapeEntitiesUsingDom_(b):n.string.unescapePureXmlEntities_(b):b};n.string.unescapeEntitiesWithDocument=function(b,c){return n.string.contains(b,"&")?n.string.unescapeEntitiesUsingDom_(b,c):b};
+n.string.unescapeEntitiesUsingDom_=function(b,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):n.global.document.createElement("div");return b.replace(n.string.HTML_ENTITY_PATTERN_,function(b,c){var f=d[b];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=b+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[b]=f})};
+n.string.unescapePureXmlEntities_=function(b){return b.replace(/&([^;]+);/g,function(b,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?b:String.fromCharCode(d)}})};n.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;n.string.whitespaceEscape=function(b){return n.string.newLineToBr(b.replace(/  /g," &#160;"),void 0)};
+n.string.preserveSpaces=function(b){return b.replace(/(^|[\n ]) /g,"$1"+n.string.Unicode.NBSP)};n.string.stripQuotes=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};n.string.truncate=function(b,c,d){d&&(b=n.string.unescapeEntities(b));b.length>c&&(b=b.substring(0,c-3)+"...");d&&(b=n.string.htmlEscape(b));return b};
+n.string.truncateMiddle=function(b,c,d,e){d&&(b=n.string.unescapeEntities(b));e&&b.length>c?(e>c&&(e=c),b=b.substring(0,c-e)+"..."+b.substring(b.length-e)):b.length>c&&(e=Math.floor(c/2),b=b.substring(0,e+c%2)+"..."+b.substring(b.length-e));d&&(b=n.string.htmlEscape(b));return b};n.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};n.string.jsEscapeCache_={"'":"\\'"};
+n.string.quote=function(b){b=String(b);for(var c=['"'],d=0;d<b.length;d++){var e=b.charAt(d),f=e.charCodeAt(0);c[d+1]=n.string.specialEscapeChars_[e]||(31<f&&127>f?e:n.string.escapeChar(e))}c.push('"');return c.join("")};n.string.escapeString=function(b){for(var c=[],d=0;d<b.length;d++)c[d]=n.string.escapeChar(b.charAt(d));return c.join("")};
+n.string.escapeChar=function(b){if(b in n.string.jsEscapeCache_)return n.string.jsEscapeCache_[b];if(b in n.string.specialEscapeChars_)return n.string.jsEscapeCache_[b]=n.string.specialEscapeChars_[b];var c=b.charCodeAt(0);if(31<c&&127>c)var d=b;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return n.string.jsEscapeCache_[b]=d};n.string.contains=function(b,c){return-1!=b.indexOf(c)};
+n.string.caseInsensitiveContains=function(b,c){return n.string.contains(b.toLowerCase(),c.toLowerCase())};n.string.countOf=function(b,c){return b&&c?b.split(c).length-1:0};n.string.removeAt=function(b){return b};n.string.remove=function(b,c){return b.replace(c,"")};n.string.removeAll=function(b,c){c=new RegExp(n.string.regExpEscape(c),"g");return b.replace(c,"")};n.string.replaceAll=function(b,c,d){c=new RegExp(n.string.regExpEscape(c),"g");return b.replace(c,d.replace(/\$/g,"$$$$"))};
+n.string.regExpEscape=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};n.string.repeat=String.prototype.repeat?function(b,c){return b.repeat(c)}:function(b,c){return Array(c+1).join(b)};n.string.padNumber=function(b,c,d){b=n.isDef(d)?b.toFixed(d):String(b);d=b.indexOf(".");-1==d&&(d=b.length);return n.string.repeat("0",Math.max(0,c-d))+b};n.string.makeSafe=function(b){return null==b?"":String(b)};
+n.string.buildString=function(b){return Array.prototype.join.call(arguments,"")};n.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^n.now()).toString(36)};
+n.string.compareVersions=function(b,c){var d=0;b=n.string.trim(String(b)).split(".");c=n.string.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;0==d&&f<e;f++){var g=b[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=n.string.compareElements_(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||n.string.compareElements_(0==g[2].length,0==h[2].length)||n.string.compareElements_(g[2],
+h[2]);g=g[3];h=h[3]}while(0==d)}return d};n.string.compareElements_=function(b,c){return b<c?-1:b>c?1:0};n.string.hashCode=function(b){for(var c=0,d=0;d<b.length;++d)c=31*c+b.charCodeAt(d)>>>0;return c};n.string.uniqueStringCounter_=2147483648*Math.random()|0;n.string.createUniqueString=function(){return"goog_"+n.string.uniqueStringCounter_++};n.string.toNumber=function(b){var c=Number(b);return 0==c&&n.string.isEmptyOrWhitespace(b)?NaN:c};n.string.isLowerCamelCase=function(b){return/^[a-z]+([A-Z][a-z]*)*$/.test(b)};
+n.string.isUpperCamelCase=function(b){return/^([A-Z][a-z]*)+$/.test(b)};n.string.toCamelCase=function(b){return String(b).replace(/\-([a-z])/g,function(b,d){return d.toUpperCase()})};n.string.toSelectorCase=function(b){return String(b).replace(/([A-Z])/g,"-$1").toLowerCase()};n.string.toTitleCase=function(b,c){c=n.isString(c)?n.string.regExpEscape(c):"\\s";return b.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(b,c,f){return c+f.toUpperCase()})};
+n.string.capitalize=function(b){return String(b.charAt(0)).toUpperCase()+String(b.substr(1)).toLowerCase()};n.string.parseInt=function(b){isFinite(b)&&(b=String(b));return n.isString(b)?/^\s*-?0x/i.test(b)?parseInt(b,16):parseInt(b,10):NaN};n.string.splitLimit=function(b,c,d){b=b.split(c);for(var e=[];0<d&&b.length;)e.push(b.shift()),d--;b.length&&e.push(b.join(c));return e};
+n.string.lastComponent=function(b,c){if(c)"string"==typeof c&&(c=[c]);else return b;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=b.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?b:b.slice(d+1)};
+n.string.editDistance=function(b,c){var d=[],e=[];if(b==c)return 0;if(!b.length||!c.length)return Math.max(b.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<b.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(b[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};n.labs={};n.labs.userAgent={};n.labs.userAgent.util={};n.labs.userAgent.util.getNativeUserAgentString_=function(){var b=n.labs.userAgent.util.getNavigator_();return b&&(b=b.userAgent)?b:""};n.labs.userAgent.util.getNavigator_=function(){return n.global.navigator};n.labs.userAgent.util.userAgent_=n.labs.userAgent.util.getNativeUserAgentString_();n.labs.userAgent.util.setUserAgent=function(b){n.labs.userAgent.util.userAgent_=b||n.labs.userAgent.util.getNativeUserAgentString_()};
+n.labs.userAgent.util.getUserAgent=function(){return n.labs.userAgent.util.userAgent_};n.labs.userAgent.util.matchUserAgent=function(b){return n.string.contains(n.labs.userAgent.util.getUserAgent(),b)};n.labs.userAgent.util.matchUserAgentIgnoreCase=function(){return n.string.caseInsensitiveContains(n.labs.userAgent.util.getUserAgent(),"WebKit")};
+n.labs.userAgent.util.extractVersionTuples=function(b){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(b);)d.push([e[1],e[2],e[3]||void 0]);return d};n.object={};n.object.is=function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c};n.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};n.object.filter=function(b,c,d){var e={},f;for(f in b)c.call(d,b[f],f,b)&&(e[f]=b[f]);return e};n.object.map=function(b,c,d){var e={},f;for(f in b)e[f]=c.call(d,b[f],f,b);return e};n.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return!0;return!1};n.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return!1;return!0};
+n.object.getCount=function(b){var c=0,d;for(d in b)c++;return c};n.object.getAnyKey=function(b){for(var c in b)return c};n.object.getAnyValue=function(b){for(var c in b)return b[c]};n.object.contains=function(b,c){return n.object.containsValue(b,c)};n.object.getValues=function(b){var c=[],d=0,e;for(e in b)c[d++]=b[e];return c};n.object.getKeys=function(b){var c=[],d=0,e;for(e in b)c[d++]=e;return c};
+n.object.getValueByKeys=function(b,c){var d=n.isArrayLike(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==b)return;b=b[e[d]]}return b};n.object.containsKey=function(b,c){return null!==b&&c in b};n.object.containsValue=function(b,c){for(var d in b)if(b[d]==c)return!0;return!1};n.object.findKey=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};n.object.findValue=function(b,c,d){return(c=n.object.findKey(b,c,d))&&b[c]};n.object.isEmpty=function(b){for(var c in b)return!1;return!0};
+n.object.clear=function(b){for(var c in b)delete b[c]};n.object.remove=function(b,c){var d;(d=c in b)&&delete b[c];return d};n.object.add=function(b,c,d){if(null!==b&&c in b)throw Error('The object already contains the key "'+c+'"');n.object.set(b,c,d)};n.object.get=function(b,c,d){return null!==b&&c in b?b[c]:d};n.object.set=function(b,c,d){b[c]=d};n.object.setIfUndefined=function(b,c,d){return c in b?b[c]:b[c]=d};
+n.object.setWithReturnValueIfNotSet=function(b,c,d){if(c in b)return b[c];d=d();return b[c]=d};n.object.equals=function(b,c){for(var d in b)if(!(d in c)||b[d]!==c[d])return!1;for(d in c)if(!(d in b))return!1;return!0};n.object.clone=function(b){var c={},d;for(d in b)c[d]=b[d];return c};n.object.unsafeClone=function(b){var c=n.typeOf(b);if("object"==c||"array"==c){if(n.isFunction(b.clone))return b.clone();c="array"==c?[]:{};for(var d in b)c[d]=n.object.unsafeClone(b[d]);return c}return b};
+n.object.transpose=function(b){var c={},d;for(d in b)c[b[d]]=d;return c};n.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");n.object.extend=function(b,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)b[d]=e[d];for(var g=0;g<n.object.PROTOTYPE_FIELDS_.length;g++)d=n.object.PROTOTYPE_FIELDS_[g],Object.prototype.hasOwnProperty.call(e,d)&&(b[d]=e[d])}};
+n.object.create=function(b){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};n.object.createSet=function(b){var c=arguments.length;if(1==c&&n.isArray(arguments[0]))return n.object.createSet.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};
+n.object.createImmutableView=function(b){var c=b;Object.isFrozen&&!Object.isFrozen(b)&&(c=Object.create(b),Object.freeze(c));return c};n.object.isImmutableView=function(b){return!!Object.isFrozen&&Object.isFrozen(b)};
+n.object.getAllPropertyNames=function(b,c,d){if(!b)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return n.object.getKeys(b);for(var e={};b&&(b!==Object.prototype||c)&&(b!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(b),g=0;g<f.length;g++)e[f[g]]=!0;b=Object.getPrototypeOf(b)}return n.object.getKeys(e)};n.labs.userAgent.browser={};n.labs.userAgent.browser.matchOpera_=function(){return n.labs.userAgent.util.matchUserAgent("Opera")};n.labs.userAgent.browser.matchIE_=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.browser.matchEdge_=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.browser.matchFirefox_=function(){return n.labs.userAgent.util.matchUserAgent("Firefox")};
+n.labs.userAgent.browser.matchSafari_=function(){return n.labs.userAgent.util.matchUserAgent("Safari")&&!(n.labs.userAgent.browser.matchChrome_()||n.labs.userAgent.browser.matchCoast_()||n.labs.userAgent.browser.matchOpera_()||n.labs.userAgent.browser.matchEdge_()||n.labs.userAgent.browser.isSilk()||n.labs.userAgent.util.matchUserAgent("Android"))};n.labs.userAgent.browser.matchCoast_=function(){return n.labs.userAgent.util.matchUserAgent("Coast")};
+n.labs.userAgent.browser.matchIosWebview_=function(){return(n.labs.userAgent.util.matchUserAgent("iPad")||n.labs.userAgent.util.matchUserAgent("iPhone"))&&!n.labs.userAgent.browser.matchSafari_()&&!n.labs.userAgent.browser.matchChrome_()&&!n.labs.userAgent.browser.matchCoast_()&&n.labs.userAgent.util.matchUserAgent("AppleWebKit")};n.labs.userAgent.browser.matchChrome_=function(){return(n.labs.userAgent.util.matchUserAgent("Chrome")||n.labs.userAgent.util.matchUserAgent("CriOS"))&&!n.labs.userAgent.browser.matchEdge_()};
+n.labs.userAgent.browser.matchAndroidBrowser_=function(){return n.labs.userAgent.util.matchUserAgent("Android")&&!(n.labs.userAgent.browser.isChrome()||n.labs.userAgent.browser.isFirefox()||n.labs.userAgent.browser.isOpera()||n.labs.userAgent.browser.isSilk())};n.labs.userAgent.browser.isOpera=n.labs.userAgent.browser.matchOpera_;n.labs.userAgent.browser.isIE=n.labs.userAgent.browser.matchIE_;n.labs.userAgent.browser.isEdge=n.labs.userAgent.browser.matchEdge_;n.labs.userAgent.browser.isFirefox=n.labs.userAgent.browser.matchFirefox_;
+n.labs.userAgent.browser.isSafari=n.labs.userAgent.browser.matchSafari_;n.labs.userAgent.browser.isCoast=n.labs.userAgent.browser.matchCoast_;n.labs.userAgent.browser.isIosWebview=n.labs.userAgent.browser.matchIosWebview_;n.labs.userAgent.browser.isChrome=n.labs.userAgent.browser.matchChrome_;n.labs.userAgent.browser.isAndroidBrowser=n.labs.userAgent.browser.matchAndroidBrowser_;n.labs.userAgent.browser.isSilk=function(){return n.labs.userAgent.util.matchUserAgent("Silk")};
+n.labs.userAgent.browser.getVersion=function(){function b(b){b=n.array.find(b,e);return d[b]||""}var c=n.labs.userAgent.util.getUserAgent();if(n.labs.userAgent.browser.isIE())return n.labs.userAgent.browser.getIEVersion_(c);c=n.labs.userAgent.util.extractVersionTuples(c);var d={};n.array.forEach(c,function(b){d[b[0]]=b[1]});var e=n.partial(n.object.containsKey,d);return n.labs.userAgent.browser.isOpera()?b(["Version","Opera"]):n.labs.userAgent.browser.isEdge()?b(["Edge"]):n.labs.userAgent.browser.isChrome()?
+b(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};n.labs.userAgent.browser.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.browser.getVersion(),b)};
+n.labs.userAgent.browser.getIEVersion_=function(b){var c=/rv: *([\d\.]*)/.exec(b);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(b);if(d&&d[1])if(b=/Trident\/(\d.\d)/.exec(b),"7.0"==d[1])if(b&&b[1])switch(b[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};n.labs.userAgent.engine={};n.labs.userAgent.engine.isPresto=function(){return n.labs.userAgent.util.matchUserAgent("Presto")};n.labs.userAgent.engine.isTrident=function(){return n.labs.userAgent.util.matchUserAgent("Trident")||n.labs.userAgent.util.matchUserAgent("MSIE")};n.labs.userAgent.engine.isEdge=function(){return n.labs.userAgent.util.matchUserAgent("Edge")};n.labs.userAgent.engine.isWebKit=function(){return n.labs.userAgent.util.matchUserAgentIgnoreCase()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.isGecko=function(){return n.labs.userAgent.util.matchUserAgent("Gecko")&&!n.labs.userAgent.engine.isWebKit()&&!n.labs.userAgent.engine.isTrident()&&!n.labs.userAgent.engine.isEdge()};
+n.labs.userAgent.engine.getVersion=function(){var b=n.labs.userAgent.util.getUserAgent();if(b){b=n.labs.userAgent.util.extractVersionTuples(b);var c=n.labs.userAgent.engine.getEngineTuple_(b);if(c)return"Gecko"==c[0]?n.labs.userAgent.engine.getVersionForKey_(b):c[1];b=b[0];var d;if(b&&(d=b[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};
+n.labs.userAgent.engine.getEngineTuple_=function(b){if(!n.labs.userAgent.engine.isEdge())return b[1];for(var c=0;c<b.length;c++){var d=b[c];if("Edge"==d[0])return d}};n.labs.userAgent.engine.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.engine.getVersion(),b)};n.labs.userAgent.engine.getVersionForKey_=function(b){return(b=n.array.find(b,function(b){return"Firefox"==b[0]}))&&b[1]||""};n.labs.userAgent.platform={};n.labs.userAgent.platform.isAndroid=function(){return n.labs.userAgent.util.matchUserAgent("Android")};n.labs.userAgent.platform.isIpod=function(){return n.labs.userAgent.util.matchUserAgent("iPod")};n.labs.userAgent.platform.isIphone=function(){return n.labs.userAgent.util.matchUserAgent("iPhone")&&!n.labs.userAgent.util.matchUserAgent("iPod")&&!n.labs.userAgent.util.matchUserAgent("iPad")};n.labs.userAgent.platform.isIpad=function(){return n.labs.userAgent.util.matchUserAgent("iPad")};
+n.labs.userAgent.platform.isIos=function(){return n.labs.userAgent.platform.isIphone()||n.labs.userAgent.platform.isIpad()||n.labs.userAgent.platform.isIpod()};n.labs.userAgent.platform.isMacintosh=function(){return n.labs.userAgent.util.matchUserAgent("Macintosh")};n.labs.userAgent.platform.isLinux=function(){return n.labs.userAgent.util.matchUserAgent("Linux")};n.labs.userAgent.platform.isWindows=function(){return n.labs.userAgent.util.matchUserAgent("Windows")};
+n.labs.userAgent.platform.isChromeOS=function(){return n.labs.userAgent.util.matchUserAgent("CrOS")};n.labs.userAgent.platform.isChromecast=function(){return n.labs.userAgent.util.matchUserAgent("CrKey")};
+n.labs.userAgent.platform.getVersion=function(){var b=n.labs.userAgent.util.getUserAgent(),c="";n.labs.userAgent.platform.isWindows()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(b=c.exec(b))?b[1]:"0.0"):n.labs.userAgent.platform.isIos()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(b=c.exec(b))&&b[1].replace(/_/g,".")):n.labs.userAgent.platform.isMacintosh()?(c=/Mac OS X ([0-9_.]+)/,c=(b=c.exec(b))?b[1].replace(/_/g,"."):"10"):n.labs.userAgent.platform.isAndroid()?(c=/Android\s+([^\);]+)(\)|;)/,c=(b=c.exec(b))&&
+b[1]):n.labs.userAgent.platform.isChromeOS()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,c=(b=c.exec(b))&&b[1]);return c||""};n.labs.userAgent.platform.isVersionOrHigher=function(b){return 0<=n.string.compareVersions(n.labs.userAgent.platform.getVersion(),b)};n.reflect={};n.reflect.object=function(b,c){return c};n.reflect.objectProperty=function(b){return b};n.reflect.sinkValue=function(b){n.reflect.sinkValue[" "](b);return b};n.reflect.sinkValue[" "]=n.nullFunction;n.reflect.canAccessProperty=function(b){try{return n.reflect.sinkValue(b.nodeName),!0}catch(c){}return!1};n.reflect.cache=function(b,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(b,e)?b[e]:b[e]=d(c)};n.userAgent={};n.userAgent.ASSUME_IE=!1;n.userAgent.ASSUME_EDGE=!1;n.userAgent.ASSUME_GECKO=!1;n.userAgent.ASSUME_WEBKIT=!1;n.userAgent.ASSUME_MOBILE_WEBKIT=!1;n.userAgent.ASSUME_OPERA=!1;n.userAgent.ASSUME_ANY_VERSION=!1;n.userAgent.BROWSER_KNOWN_=n.userAgent.ASSUME_IE||n.userAgent.ASSUME_EDGE||n.userAgent.ASSUME_GECKO||n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_OPERA;n.userAgent.getUserAgentString=function(){return n.labs.userAgent.util.getUserAgent()};
+n.userAgent.getNavigatorTyped=function(){return n.global.navigator||null};n.userAgent.getNavigator=function(){return n.userAgent.getNavigatorTyped()};n.userAgent.OPERA=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_OPERA:n.labs.userAgent.browser.isOpera();n.userAgent.IE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_IE:n.labs.userAgent.browser.isIE();n.userAgent.EDGE=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_EDGE:n.labs.userAgent.engine.isEdge();n.userAgent.EDGE_OR_IE=n.userAgent.EDGE||n.userAgent.IE;
+n.userAgent.GECKO=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_GECKO:n.labs.userAgent.engine.isGecko();n.userAgent.WEBKIT=n.userAgent.BROWSER_KNOWN_?n.userAgent.ASSUME_WEBKIT||n.userAgent.ASSUME_MOBILE_WEBKIT:n.labs.userAgent.engine.isWebKit();n.userAgent.isMobile_=function(){return n.userAgent.WEBKIT&&n.labs.userAgent.util.matchUserAgent("Mobile")};n.userAgent.MOBILE=n.userAgent.ASSUME_MOBILE_WEBKIT||n.userAgent.isMobile_();n.userAgent.SAFARI=n.userAgent.WEBKIT;
+n.userAgent.determinePlatform_=function(){var b=n.userAgent.getNavigatorTyped();return b&&b.platform||""};n.userAgent.PLATFORM=n.userAgent.determinePlatform_();n.userAgent.ASSUME_MAC=!1;n.userAgent.ASSUME_WINDOWS=!1;n.userAgent.ASSUME_LINUX=!1;n.userAgent.ASSUME_X11=!1;n.userAgent.ASSUME_ANDROID=!1;n.userAgent.ASSUME_IPHONE=!1;n.userAgent.ASSUME_IPAD=!1;n.userAgent.ASSUME_IPOD=!1;
+n.userAgent.PLATFORM_KNOWN_=n.userAgent.ASSUME_MAC||n.userAgent.ASSUME_WINDOWS||n.userAgent.ASSUME_LINUX||n.userAgent.ASSUME_X11||n.userAgent.ASSUME_ANDROID||n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD;n.userAgent.MAC=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_MAC:n.labs.userAgent.platform.isMacintosh();n.userAgent.WINDOWS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_WINDOWS:n.labs.userAgent.platform.isWindows();
+n.userAgent.isLegacyLinux_=function(){return n.labs.userAgent.platform.isLinux()||n.labs.userAgent.platform.isChromeOS()};n.userAgent.LINUX=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_LINUX:n.userAgent.isLegacyLinux_();n.userAgent.isX11_=function(){var b=n.userAgent.getNavigatorTyped();return!!b&&n.string.contains(b.appVersion||"","X11")};n.userAgent.X11=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_X11:n.userAgent.isX11_();
+n.userAgent.ANDROID=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_ANDROID:n.labs.userAgent.platform.isAndroid();n.userAgent.IPHONE=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE:n.labs.userAgent.platform.isIphone();n.userAgent.IPAD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPAD:n.labs.userAgent.platform.isIpad();n.userAgent.IPOD=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIpod();
+n.userAgent.IOS=n.userAgent.PLATFORM_KNOWN_?n.userAgent.ASSUME_IPHONE||n.userAgent.ASSUME_IPAD||n.userAgent.ASSUME_IPOD:n.labs.userAgent.platform.isIos();n.userAgent.determineVersion_=function(){var b="",c=n.userAgent.getVersionRegexResult_();c&&(b=c?c[1]:"");return n.userAgent.IE&&(c=n.userAgent.getDocumentMode_(),null!=c&&c>parseFloat(b))?String(c):b};
+n.userAgent.getVersionRegexResult_=function(){var b=n.userAgent.getUserAgentString();if(n.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(b);if(n.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(b);if(n.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);if(n.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(b);if(n.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(b)};n.userAgent.getDocumentMode_=function(){var b=n.global.document;return b?b.documentMode:void 0};n.userAgent.VERSION=n.userAgent.determineVersion_();
+n.userAgent.compare=function(b,c){return n.string.compareVersions(b,c)};n.userAgent.isVersionOrHigherCache_={};n.userAgent.isVersionOrHigher=function(b){return n.userAgent.ASSUME_ANY_VERSION||n.reflect.cache(n.userAgent.isVersionOrHigherCache_,b,function(){return 0<=n.string.compareVersions(n.userAgent.VERSION,b)})};n.userAgent.isVersion=n.userAgent.isVersionOrHigher;n.userAgent.isDocumentModeOrHigher=function(b){return Number(n.userAgent.DOCUMENT_MODE)>=b};n.userAgent.isDocumentMode=n.userAgent.isDocumentModeOrHigher;
+var u;var v=n.global.document;u=v&&n.userAgent.IE?n.userAgent.getDocumentMode_()||("CSS1Compat"==v.compatMode?parseInt(n.userAgent.VERSION,10):5):void 0;n.userAgent.DOCUMENT_MODE=u;n.debug.LOGGING_ENABLED=n.DEBUG;n.debug.FORCE_SLOPPY_STACKS=!1;n.debug.catchErrors=function(b,c,d){d=d||n.global;var e=d.onerror,f=!!c;n.userAgent.WEBKIT&&!n.userAgent.isVersionOrHigher("535.3")&&(f=!f);d.onerror=function(c,d,l,m,p){e&&e(c,d,l,m,p);b({message:c,fileName:d,line:l,lineNumber:l,col:m,error:p});return f}};
+n.debug.expose=function(b,c){if("undefined"==typeof b)return"undefined";if(null==b)return"NULL";var d=[],e;for(e in b)if(c||!n.isFunction(b[e])){var f=e+" = ";try{f+=b[e]}catch(g){f+="*** "+g+" ***"}d.push(f)}return d.join("\n")};
+n.debug.deepExpose=function(b,c){var d=[],e=[],f={},g=function(b,l){var h=l+"  ";try{if(n.isDef(b))if(n.isNull(b))d.push("NULL");else if(n.isString(b))d.push('"'+b.replace(/\n/g,"\n"+l)+'"');else if(n.isFunction(b))d.push(String(b).replace(/\n/g,"\n"+l));else if(n.isObject(b)){n.hasUid(b)||e.push(b);var p=n.getUid(b);if(f[p])d.push("*** reference loop detected (id="+p+") ***");else{f[p]=!0;d.push("{");for(var A in b)if(c||!n.isFunction(b[A]))d.push("\n"),d.push(h),d.push(A+" = "),g(b[A],h);d.push("\n"+
+l+"}");delete f[p]}}else d.push(b);else d.push("undefined")}catch(O){d.push("*** "+O+" ***")}};g(b,"");for(b=0;b<e.length;b++)n.removeUid(e[b]);return d.join("")};n.debug.exposeArray=function(b){for(var c=[],d=0;d<b.length;d++)n.isArray(b[d])?c.push(n.debug.exposeArray(b[d])):c.push(b[d]);return"[ "+c.join(", ")+" ]"};
+n.debug.normalizeErrorObject=function(b){var c=n.getObjectByName("window.location.href");if(n.isString(b))return{message:b,name:"Unknown error",lineNumber:"Not available",fileName:c,stack:"Not available"};var d=!1;try{var e=b.lineNumber||b.line||"Not available"}catch(g){e="Not available",d=!0}try{var f=b.fileName||b.filename||b.sourceURL||n.global.$googDebugFname||c}catch(g){f="Not available",d=!0}return!d&&b.lineNumber&&b.fileName&&b.stack&&b.message&&b.name?b:{message:b.message||"Not available",
+name:b.name||"UnknownError",lineNumber:e,fileName:f,stack:b.stack||"Not available"}};n.debug.enhanceError=function(b,c){b instanceof Error||(b=Error(b),Error.captureStackTrace&&Error.captureStackTrace(b,n.debug.enhanceError));b.stack||(b.stack=n.debug.getStacktrace(n.debug.enhanceError));if(c){for(var d=0;b["message"+d];)++d;b["message"+d]=String(c)}return b};
+n.debug.enhanceErrorWithContext=function(b,c){b=n.debug.enhanceError(b);if(c)for(var d in c)n.debug.errorcontext.addErrorContext(b,d,c[d]);return b};
+n.debug.getStacktraceSimple=function(b){if(!n.debug.FORCE_SLOPPY_STACKS){var c=n.debug.getNativeStackTrace_(n.debug.getStacktraceSimple);if(c)return c}c=[];for(var d=arguments.callee.caller,e=0;d&&(!b||e<b);){c.push(n.debug.getFunctionName(d));c.push("()\n");try{d=d.caller}catch(f){c.push("[exception trying to get caller]\n");break}e++;if(e>=n.debug.MAX_STACK_DEPTH){c.push("[...long stack...]");break}}b&&e>=b?c.push("[...reached max depth limit...]"):c.push("[end]");return c.join("")};
+n.debug.MAX_STACK_DEPTH=50;n.debug.getNativeStackTrace_=function(b){var c=Error();if(Error.captureStackTrace)return Error.captureStackTrace(c,b),String(c.stack);try{throw c;}catch(d){c=d}return(b=c.stack)?String(b):null};n.debug.getStacktrace=function(b){var c;n.debug.FORCE_SLOPPY_STACKS||(c=n.debug.getNativeStackTrace_(b||n.debug.getStacktrace));c||(c=n.debug.getStacktraceHelper_(b||arguments.callee.caller,[]));return c};
+n.debug.getStacktraceHelper_=function(b,c){var d=[];if(n.array.contains(c,b))d.push("[...circular reference...]");else if(b&&c.length<n.debug.MAX_STACK_DEPTH){d.push(n.debug.getFunctionName(b)+"(");for(var e=b.arguments,f=0;e&&f<e.length;f++){0<f&&d.push(", ");var g=e[f];switch(typeof g){case "object":g=g?"object":"null";break;case "string":break;case "number":g=String(g);break;case "boolean":g=g?"true":"false";break;case "function":g=(g=n.debug.getFunctionName(g))?g:"[fn]";break;default:g=typeof g}40<
+g.length&&(g=g.substr(0,40)+"...");d.push(g)}c.push(b);d.push(")\n");try{d.push(n.debug.getStacktraceHelper_(b.caller,c))}catch(h){d.push("[exception trying to get caller]\n")}}else b?d.push("[...long stack...]"):d.push("[end]");return d.join("")};n.debug.setFunctionResolver=function(b){n.debug.fnNameResolver_=b};
+n.debug.getFunctionName=function(b){if(n.debug.fnNameCache_[b])return n.debug.fnNameCache_[b];if(n.debug.fnNameResolver_){var c=n.debug.fnNameResolver_(b);if(c)return n.debug.fnNameCache_[b]=c}b=String(b);n.debug.fnNameCache_[b]||(c=/function ([^\(]+)/.exec(b),n.debug.fnNameCache_[b]=c?c[1]:"[Anonymous]");return n.debug.fnNameCache_[b]};n.debug.makeWhitespaceVisible=function(b){return b.replace(/ /g,"[_]").replace(/\f/g,"[f]").replace(/\n/g,"[n]\n").replace(/\r/g,"[r]").replace(/\t/g,"[t]")};
+n.debug.runtimeType=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};n.debug.fnNameCache_={};n.debug.freezeInternal_=n.DEBUG&&Object.freeze||function(b){return b};n.debug.freeze=function(b){return n.debug.freezeInternal_(b)};n.debug.entryPointRegistry={};n.debug.EntryPointMonitor=function(){};n.debug.entryPointRegistry.refList_=[];n.debug.entryPointRegistry.monitors_=[];n.debug.entryPointRegistry.monitorsMayExist_=!1;n.debug.entryPointRegistry.register=function(b){n.debug.entryPointRegistry.refList_[n.debug.entryPointRegistry.refList_.length]=b;if(n.debug.entryPointRegistry.monitorsMayExist_)for(var c=n.debug.entryPointRegistry.monitors_,d=0;d<c.length;d++)b(n.bind(c[d].wrap,c[d]))};
+n.debug.entryPointRegistry.monitorAll=function(b){n.debug.entryPointRegistry.monitorsMayExist_=!0;for(var c=n.bind(b.wrap,b),d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](c);n.debug.entryPointRegistry.monitors_.push(b)};
+n.debug.entryPointRegistry.unmonitorAllIfPossible=function(b){var c=n.debug.entryPointRegistry.monitors_;n.asserts.assert(b==c[c.length-1],"Only the most recent monitor can be unwrapped.");b=n.bind(b.unwrap,b);for(var d=0;d<n.debug.entryPointRegistry.refList_.length;d++)n.debug.entryPointRegistry.refList_[d](b);c.length--};n.disposable={};n.disposable.IDisposable=function(){};n.Disposable=function(){n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&(n.Disposable.instances_[n.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};n.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};n.Disposable.MONITORING_MODE=0;n.Disposable.INCLUDE_STACK_ON_CREATION=!0;n.Disposable.instances_={};
+n.Disposable.getUndisposedObjects=function(){var b=[],c;for(c in n.Disposable.instances_)n.Disposable.instances_.hasOwnProperty(c)&&b.push(n.Disposable.instances_[Number(c)]);return b};n.Disposable.clearUndisposedObjects=function(){n.Disposable.instances_={}};n.Disposable.prototype.disposed_=!1;n.Disposable.prototype.isDisposed=function(){return this.disposed_};
+n.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF)){var b=n.getUid(this);if(n.Disposable.MONITORING_MODE==n.Disposable.MonitoringMode.PERMANENT&&!n.Disposable.instances_.hasOwnProperty(b))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");if(n.Disposable.MONITORING_MODE!=n.Disposable.MonitoringMode.OFF&&this.onDisposeCallbacks_&&
+0<this.onDisposeCallbacks_.length)throw Error(this+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete n.Disposable.instances_[b]}};n.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};n.Disposable.isDisposed=function(){return!1};n.dispose=function(b){b&&"function"==typeof b.dispose&&b.dispose()};
+n.disposeAll=function(b){for(var c=0,d=arguments.length;c<d;++c){var e=arguments[c];n.isArrayLike(e)?n.disposeAll.apply(null,e):n.dispose(e)}};n.events={};k.scope.purify=function(b){return b()};
+n.events.BrowserFeature={HAS_W3C_BUTTON:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!n.userAgent.WEBKIT||n.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9b")||n.userAgent.IE&&n.userAgent.isVersionOrHigher("8")||n.userAgent.OPERA&&
+n.userAgent.isVersionOrHigher("9.5")||n.userAgent.WEBKIT&&n.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:n.userAgent.GECKO&&!n.userAgent.isVersionOrHigher("8")||n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in n.global||!!(n.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!n.global.navigator||!n.global.navigator.maxTouchPoints&&!n.global.navigator.msMaxTouchPoints),POINTER_EVENTS:"PointerEvent"in n.global,
+MSPOINTER_EVENTS:"MSPointerEvent"in n.global&&!(!n.global.navigator||!n.global.navigator.msPointerEnabled),PASSIVE_EVENTS:(0,k.scope.purify)(function(){if(!n.global.addEventListener||!Object.defineProperty)return!1;var b=!1,c=Object.defineProperty({},"passive",{get:function(){b=!0}});n.global.addEventListener("test",n.nullFunction,c);n.global.removeEventListener("test",n.nullFunction,c);return b})};n.events.EventId=function(b){this.id=b};n.events.EventId.prototype.toString=function(){return this.id};n.events.Event=function(b,c){this.type=b instanceof n.events.EventId?String(b):b;this.currentTarget=this.target=c;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};n.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};n.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};n.events.Event.stopPropagation=function(b){b.stopPropagation()};n.events.Event.preventDefault=function(b){b.preventDefault()};n.events.getVendorPrefixedName_=function(b){return n.userAgent.WEBKIT?"webkit"+b:n.userAgent.OPERA?"o"+b.toLowerCase():b.toLowerCase()};
+n.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:"focusin",FOCUSOUT:"focusout",CHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",
+INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICECHANGE:"devicechange",DEVICEMOTION:"devicemotion",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",
+LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",VOLUMECHANGE:"volumechange",
+WAITING:"waiting",SOURCEOPEN:"sourceopen",SOURCEENDED:"sourceended",SOURCECLOSED:"sourceclosed",ABORT:"abort",UPDATE:"update",UPDATESTART:"updatestart",UPDATEEND:"updateend",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",INSTALL:"install",ACTIVATE:"activate",FETCH:"fetch",FOREIGNFETCH:"foreignfetch",
+MESSAGEERROR:"messageerror",STATECHANGE:"statechange",UPDATEFOUND:"updatefound",CONTROLLERCHANGE:"controllerchange",ANIMATIONSTART:n.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:n.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:n.events.getVendorPrefixedName_("AnimationIteration"),TRANSITIONEND:n.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",
+POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",
+MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:n.userAgent.IE?"textinput":"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",BEFOREINPUT:"beforeinput",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",
+SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",DOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint",BEFOREINSTALLPROMPT:"beforeinstallprompt",
+APPINSTALLED:"appinstalled"};n.events.getPointerFallbackEventName_=function(b,c,d){return n.events.BrowserFeature.POINTER_EVENTS?b:n.events.BrowserFeature.MSPOINTER_EVENTS?c:d};
+n.events.PointerFallbackEventType={POINTERDOWN:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERDOWN,n.events.EventType.MSPOINTERDOWN,n.events.EventType.MOUSEDOWN),POINTERUP:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERUP,n.events.EventType.MSPOINTERUP,n.events.EventType.MOUSEUP),POINTERCANCEL:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERCANCEL,n.events.EventType.MSPOINTERCANCEL,"mousecancel"),POINTERMOVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERMOVE,
+n.events.EventType.MSPOINTERMOVE,n.events.EventType.MOUSEMOVE),POINTEROVER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROVER,n.events.EventType.MSPOINTEROVER,n.events.EventType.MOUSEOVER),POINTEROUT:n.events.getPointerFallbackEventName_(n.events.EventType.POINTEROUT,n.events.EventType.MSPOINTEROUT,n.events.EventType.MOUSEOUT),POINTERENTER:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERENTER,n.events.EventType.MSPOINTERENTER,n.events.EventType.MOUSEENTER),POINTERLEAVE:n.events.getPointerFallbackEventName_(n.events.EventType.POINTERLEAVE,
+n.events.EventType.MSPOINTERLEAVE,n.events.EventType.MOUSELEAVE)};n.events.BrowserEvent=function(b,c){n.events.Event.call(this,b?b.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.key="";this.charCode=this.keyCode=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.event_=null;if(b){var d=this.type=b.type,e=b.changedTouches?b.changedTouches[0]:null;this.target=b.target||b.srcElement;this.currentTarget=
+c;(c=b.relatedTarget)?n.userAgent.GECKO&&(n.reflect.canAccessProperty(c)||(c=null)):d==n.events.EventType.MOUSEOVER?c=b.fromElement:d==n.events.EventType.MOUSEOUT&&(c=b.toElement);this.relatedTarget=c;n.isNull(e)?(this.offsetX=n.userAgent.WEBKIT||void 0!==b.offsetX?b.offsetX:b.layerX,this.offsetY=n.userAgent.WEBKIT||void 0!==b.offsetY?b.offsetY:b.layerY,this.clientX=void 0!==b.clientX?b.clientX:b.pageX,this.clientY=void 0!==b.clientY?b.clientY:b.pageY,this.screenX=b.screenX||0,this.screenY=b.screenY||
+0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0);this.button=b.button;this.keyCode=b.keyCode||0;this.key=b.key||"";this.charCode=b.charCode||("keypress"==d?b.keyCode:0);this.ctrlKey=b.ctrlKey;this.altKey=b.altKey;this.shiftKey=b.shiftKey;this.metaKey=b.metaKey;this.pointerId=b.pointerId||0;this.pointerType=n.events.BrowserEvent.getPointerType_(b);this.state=b.state;this.event_=b;b.defaultPrevented&&
+this.preventDefault()}};n.inherits(n.events.BrowserEvent,n.events.Event);n.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};n.events.BrowserEvent.PointerType={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"};n.events.BrowserEvent.IEButtonMap=n.debug.freeze([1,4,2]);n.events.BrowserEvent.IE_BUTTON_MAP=n.events.BrowserEvent.IEButtonMap;n.events.BrowserEvent.IE_POINTER_TYPE_MAP=n.debug.freeze({2:n.events.BrowserEvent.PointerType.TOUCH,3:n.events.BrowserEvent.PointerType.PEN,4:n.events.BrowserEvent.PointerType.MOUSE});
+n.events.BrowserEvent.prototype.stopPropagation=function(){n.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};
+n.events.BrowserEvent.prototype.preventDefault=function(){n.events.BrowserEvent.superClass_.preventDefault.call(this);var b=this.event_;if(b.preventDefault)b.preventDefault();else if(b.returnValue=!1,n.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(b.ctrlKey||112<=b.keyCode&&123>=b.keyCode)b.keyCode=-1}catch(c){}};n.events.BrowserEvent.getPointerType_=function(b){return n.isString(b.pointerType)?b.pointerType:n.events.BrowserEvent.IE_POINTER_TYPE_MAP[b.pointerType]||""};n.events.Listenable=function(){};n.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);n.events.Listenable.addImplementation=function(b){b.prototype[n.events.Listenable.IMPLEMENTED_BY_PROP]=!0};n.events.Listenable.isImplementedBy=function(b){return!(!b||!b[n.events.Listenable.IMPLEMENTED_BY_PROP])};n.events.ListenableKey=function(){};n.events.ListenableKey.counter_=0;n.events.ListenableKey.reserveKey=function(){return++n.events.ListenableKey.counter_};n.events.Listener=function(b,c,d,e,f){this.listener=b;this.proxy=null;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=n.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};n.events.Listener.ENABLE_MONITORING=!1;var w=function(b){b.removed=!0;b.listener=null;b.proxy=null;b.src=null;b.handler=null};n.events.ListenerMap=function(b){this.src=b;this.listeners={};this.typeCount_=0};n.events.ListenerMap.prototype.add=function(b,c,d,e,f){var g=b.toString();b=this.listeners[g];b||(b=this.listeners[g]=[],this.typeCount_++);var h=n.events.ListenerMap.findListenerIndex_(b,c,e,f);-1<h?(c=b[h],d||(c.callOnce=!1)):(c=new n.events.Listener(c,this.src,g,!!e,f),c.callOnce=d,b.push(c));return c};
+n.events.ListenerMap.prototype.remove=function(b,c,d,e){b=b.toString();if(!(b in this.listeners))return!1;var f=this.listeners[b];c=n.events.ListenerMap.findListenerIndex_(f,c,d,e);return-1<c?(w(f[c]),n.array.removeAt(f,c),0==f.length&&(delete this.listeners[b],this.typeCount_--),!0):!1};var x=function(b,c){var d=c.type;if(!(d in b.listeners))return!1;var e=n.array.remove(b.listeners[d],c);e&&(w(c),0==b.listeners[d].length&&(delete b.listeners[d],b.typeCount_--));return e};
+n.events.ListenerMap.prototype.removeAll=function(b){b=b&&b.toString();var c=0,d;for(d in this.listeners)if(!b||d==b){for(var e=this.listeners[d],f=0;f<e.length;f++)++c,w(e[f]);delete this.listeners[d];this.typeCount_--}return c};n.events.ListenerMap.prototype.getListeners=function(b,c){b=this.listeners[b.toString()];var d=[];if(b)for(var e=0;e<b.length;++e){var f=b[e];f.capture==c&&d.push(f)}return d};
+n.events.ListenerMap.prototype.getListener=function(b,c,d,e){b=this.listeners[b.toString()];var f=-1;b&&(f=n.events.ListenerMap.findListenerIndex_(b,c,d,e));return-1<f?b[f]:null};n.events.ListenerMap.prototype.hasListener=function(b,c){var d=n.isDef(b),e=d?b.toString():"",f=n.isDef(c);return n.object.some(this.listeners,function(b){for(var g=0;g<b.length;++g)if(!(d&&b[g].type!=e||f&&b[g].capture!=c))return!0;return!1})};
+n.events.ListenerMap.findListenerIndex_=function(b,c,d,e){for(var f=0;f<b.length;++f){var g=b[f];if(!g.removed&&g.listener==c&&g.capture==!!d&&g.handler==e)return f}return-1};n.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);n.events.onString_="on";n.events.onStringMap_={};n.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};n.events.CAPTURE_SIMULATION_MODE=2;n.events.listenerCountEstimate_=0;
+n.events.listen=function(b,c,d,e,f){if(e&&e.once)return n.events.listenOnce(b,c,d,e,f);if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listen(b,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(b)?b.listen(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(b,c,d,!1,e,f)};
+n.events.listen_=function(b,c,d,e,f,g){if(!c)throw Error("Invalid event type");var h=n.isObject(f)?!!f.capture:!!f;if(h&&!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_FAIL)return n.asserts.fail("Can not register capture listener in IE8-."),null;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var l=n.events.getListenerMap_(b);l||(b[n.events.LISTENER_MAP_PROP_]=l=new n.events.ListenerMap(b));
+d=l.add(c,d,e,h,g);if(d.proxy)return d;e=n.events.getProxy();d.proxy=e;e.src=b;e.listener=d;if(b.addEventListener)n.events.BrowserFeature.PASSIVE_EVENTS||(f=h),void 0===f&&(f=!1),b.addEventListener(c.toString(),e,f);else if(b.attachEvent)b.attachEvent(n.events.getOnString_(c.toString()),e);else if(b.addListener&&b.removeListener)n.asserts.assert("change"===c,"MediaQueryList only has a change event"),b.addListener(e);else throw Error("addEventListener and attachEvent are unavailable.");n.events.listenerCountEstimate_++;
+return d};n.events.getProxy=function(){var b=n.events.handleBrowserEvent_,c=n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(d){return b.call(c.src,c.listener,d)}:function(d){d=b.call(c.src,c.listener,d);if(!d)return d};return c};
+n.events.listenOnce=function(b,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.listenOnce(b,c[g],d,e,f);return null}d=n.events.wrapListener(d);return n.events.Listenable.isImplementedBy(b)?b.listenOnce(c,d,n.isObject(e)?!!e.capture:!!e,f):n.events.listen_(b,c,d,!0,e,f)};n.events.listenWithWrapper=function(b,c,d,e,f){c.listen(b,d,e,f)};
+n.events.unlisten=function(b,c,d,e,f){if(n.isArray(c)){for(var g=0;g<c.length;g++)n.events.unlisten(b,c[g],d,e,f);return null}e=n.isObject(e)?!!e.capture:!!e;d=n.events.wrapListener(d);if(n.events.Listenable.isImplementedBy(b))return b.unlisten(c,d,e,f);if(!b)return!1;if(b=n.events.getListenerMap_(b))if(c=b.getListener(c,d,e,f))return n.events.unlistenByKey(c);return!1};
+n.events.unlistenByKey=function(b){if(n.isNumber(b)||!b||b.removed)return!1;var c=b.src;if(n.events.Listenable.isImplementedBy(c))return c.unlistenByKey(b);var d=b.type,e=b.proxy;c.removeEventListener?c.removeEventListener(d,e,b.capture):c.detachEvent?c.detachEvent(n.events.getOnString_(d),e):c.addListener&&c.removeListener&&c.removeListener(e);n.events.listenerCountEstimate_--;(d=n.events.getListenerMap_(c))?(x(d,b),0==d.typeCount_&&(d.src=null,c[n.events.LISTENER_MAP_PROP_]=null)):w(b);return!0};
+n.events.unlistenWithWrapper=function(b,c,d,e,f){c.unlisten(b,d,e,f)};n.events.removeAll=function(b,c){if(!b)return 0;if(n.events.Listenable.isImplementedBy(b))return b.eventTargetListeners_?b.eventTargetListeners_.removeAll(c):0;b=n.events.getListenerMap_(b);if(!b)return 0;var d=0;c=c&&c.toString();for(var e in b.listeners)if(!c||e==c)for(var f=b.listeners[e].concat(),g=0;g<f.length;++g)n.events.unlistenByKey(f[g])&&++d;return d};
+n.events.getListeners=function(b,c){return n.events.Listenable.isImplementedBy(b)?b.getListeners(c,void 0):b?(b=n.events.getListenerMap_(b))?b.getListeners(c,void 0):[]:[]};n.events.getListener=function(b,c,d,e){d=n.events.wrapListener(d);e=!!e;return n.events.Listenable.isImplementedBy(b)?b.getListener(c,d,e,void 0):b?(b=n.events.getListenerMap_(b))?b.getListener(c,d,e,void 0):null:null};
+n.events.hasListener=function(b,c,d){if(n.events.Listenable.isImplementedBy(b))return b.hasListener(c,d);b=n.events.getListenerMap_(b);return!!b&&b.hasListener(c,d)};n.events.expose=function(b){var c=[],d;for(d in b)b[d]&&b[d].id?c.push(d+" = "+b[d]+" ("+b[d].id+")"):c.push(d+" = "+b[d]);return c.join("\n")};n.events.getOnString_=function(b){return b in n.events.onStringMap_?n.events.onStringMap_[b]:n.events.onStringMap_[b]=n.events.onString_+b};
+n.events.fireListeners=function(b,c,d){return n.events.Listenable.isImplementedBy(b)?b.fireListeners(c,d,void 0):n.events.fireListeners_(b,c,d,void 0)};n.events.fireListeners_=function(b,c,d,e){var f=!0;if(b=n.events.getListenerMap_(b))if(c=b.listeners[c.toString()])for(c=c.concat(),b=0;b<c.length;b++){var g=c[b];g&&g.capture==d&&!g.removed&&(g=n.events.fireListener(g,e),f=f&&!1!==g)}return f};
+n.events.fireListener=function(b,c){var d=b.listener,e=b.handler||b.src;b.callOnce&&n.events.unlistenByKey(b);return d.call(e,c)};n.events.getTotalListenerCount=function(){return n.events.listenerCountEstimate_};n.events.dispatchEvent=function(b,c){n.asserts.assert(n.events.Listenable.isImplementedBy(b),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return b.dispatchEvent(c)};n.events.protectBrowserEventEntryPoint=function(b){n.events.handleBrowserEvent_=b.protectEntryPoint(n.events.handleBrowserEvent_)};
+n.events.handleBrowserEvent_=function(b,c){if(b.removed)return!0;if(!n.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var d=c||n.getObjectByName("window.event");c=new n.events.BrowserEvent(d,this);var e=!0;if(n.events.CAPTURE_SIMULATION_MODE==n.events.CaptureSimulationMode.ON){if(!n.events.isMarkedIeEvent_(d)){n.events.markIeEvent_(d);d=[];for(var f=c.currentTarget;f;f=f.parentNode)d.push(f);b=b.type;for(f=d.length-1;!c.propagationStopped_&&0<=f;f--){c.currentTarget=d[f];var g=n.events.fireListeners_(d[f],
+b,!0,c);e=e&&g}for(f=0;!c.propagationStopped_&&f<d.length;f++)c.currentTarget=d[f],g=n.events.fireListeners_(d[f],b,!1,c),e=e&&g}}else e=n.events.fireListener(b,c);return e}return n.events.fireListener(b,new n.events.BrowserEvent(c,this))};n.events.markIeEvent_=function(b){var c=!1;if(0==b.keyCode)try{b.keyCode=-1;return}catch(d){c=!0}if(c||void 0==b.returnValue)b.returnValue=!0};n.events.isMarkedIeEvent_=function(b){return 0>b.keyCode||void 0!=b.returnValue};n.events.uniqueIdCounter_=0;
+n.events.getUniqueId=function(b){return b+"_"+n.events.uniqueIdCounter_++};n.events.getListenerMap_=function(b){b=b[n.events.LISTENER_MAP_PROP_];return b instanceof n.events.ListenerMap?b:null};n.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);
+n.events.wrapListener=function(b){n.asserts.assert(b,"Listener can not be null.");if(n.isFunction(b))return b;n.asserts.assert(b.handleEvent,"An object listener must have handleEvent method.");b[n.events.LISTENER_WRAPPER_PROP_]||(b[n.events.LISTENER_WRAPPER_PROP_]=function(c){return b.handleEvent(c)});return b[n.events.LISTENER_WRAPPER_PROP_]};n.debug.entryPointRegistry.register(function(b){n.events.handleBrowserEvent_=b(n.events.handleBrowserEvent_)});n.events.EventTarget=function(){n.Disposable.call(this);this.eventTargetListeners_=new n.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};n.inherits(n.events.EventTarget,n.Disposable);n.events.Listenable.addImplementation(n.events.EventTarget);n.events.EventTarget.MAX_ANCESTORS_=1E3;a=n.events.EventTarget.prototype;a.addEventListener=function(b,c,d,e){n.events.listen(this,b,c,d,e)};a.removeEventListener=function(b,c,d,e){n.events.unlisten(this,b,c,d,e)};
+a.dispatchEvent=function(b){y(this);var c=this.parentEventTarget_;if(c){var d=[];for(var e=1;c;c=c.parentEventTarget_)d.push(c),n.asserts.assert(++e<n.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return n.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,b,d)};a.disposeInternal=function(){n.events.EventTarget.superClass_.disposeInternal.call(this);this.eventTargetListeners_&&this.eventTargetListeners_.removeAll(void 0);this.parentEventTarget_=null};
+a.listen=function(b,c,d,e){y(this);return this.eventTargetListeners_.add(String(b),c,!1,d,e)};a.listenOnce=function(b,c,d,e){return this.eventTargetListeners_.add(String(b),c,!0,d,e)};a.unlisten=function(b,c,d,e){return this.eventTargetListeners_.remove(String(b),c,d,e)};a.unlistenByKey=function(b){return x(this.eventTargetListeners_,b)};
+a.fireListeners=function(b,c,d){b=this.eventTargetListeners_.listeners[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];if(g&&!g.removed&&g.capture==c){var h=g.listener,l=g.handler||g.src;g.callOnce&&this.unlistenByKey(g);e=!1!==h.call(l,d)&&e}}return e&&0!=d.returnValue_};a.getListeners=function(b,c){return this.eventTargetListeners_.getListeners(String(b),c)};a.getListener=function(b,c,d,e){return this.eventTargetListeners_.getListener(String(b),c,d,e)};
+a.hasListener=function(b,c){return this.eventTargetListeners_.hasListener(n.isDef(b)?String(b):void 0,c)};var y=function(b){n.asserts.assert(b.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};
+n.events.EventTarget.dispatchEventInternal_=function(b,c,d){var e=c.type||c;if(n.isString(c))c=new n.events.Event(c,b);else if(c instanceof n.events.Event)c.target=c.target||b;else{var f=c;c=new n.events.Event(e,b);n.object.extend(c,f)}f=!0;if(d)for(var g=d.length-1;!c.propagationStopped_&&0<=g;g--){var h=c.currentTarget=d[g];f=h.fireListeners(e,!0,c)&&f}c.propagationStopped_||(h=c.currentTarget=b,f=h.fireListeners(e,!0,c)&&f,c.propagationStopped_||(f=h.fireListeners(e,!1,c)&&f));if(d)for(g=0;!c.propagationStopped_&&
+g<d.length;g++)h=c.currentTarget=d[g],f=h.fireListeners(e,!1,c)&&f;return f};n.functions={};n.functions.constant=function(b){return function(){return b}};n.functions.FALSE=n.functions.constant(!1);n.functions.TRUE=n.functions.constant(!0);n.functions.NULL=n.functions.constant(null);n.functions.identity=function(b){return b};n.functions.error=function(b){return function(){throw Error(b);}};n.functions.fail=function(){};n.functions.lock=function(b,c){c=c||0;return function(){return b.apply(this,Array.prototype.slice.call(arguments,0,c))}};n.functions.nth=function(b){return function(){return arguments[b]}};
+n.functions.partialRight=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return b.apply(this,c)}};n.functions.withReturnValue=function(b,c){return n.functions.sequence(b,n.functions.constant(c))};n.functions.equalTo=function(b,c){return function(d){return c?b==d:b===d}};
+n.functions.compose=function(b,c){var d=arguments,e=d.length;return function(){var b;e&&(b=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)b=d[c].call(this,b);return b}};n.functions.sequence=function(b){var c=arguments,d=c.length;return function(){for(var b,f=0;f<d;f++)b=c[f].apply(this,arguments);return b}};n.functions.and=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(!c[b].apply(this,arguments))return!1;return!0}};
+n.functions.or=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(c[b].apply(this,arguments))return!0;return!1}};n.functions.not=function(b){return function(){return!b.apply(this,arguments)}};n.functions.create=function(b,c){var d=function(){};d.prototype=b.prototype;d=new d;b.apply(d,Array.prototype.slice.call(arguments,1));return d};n.functions.CACHE_RETURN_VALUE=!0;
+n.functions.cacheReturnValue=function(b){var c=!1,d;return function(){if(!n.functions.CACHE_RETURN_VALUE)return b();c||(d=b(),c=!0);return d}};n.functions.once=function(b){var c=b;return function(){if(c){var b=c;c=null;b()}}};n.functions.debounce=function(b,c,d){var e=0;return function(f){n.global.clearTimeout(e);var g=arguments;e=n.global.setTimeout(function(){b.apply(d,g)},c)}};
+n.functions.throttle=function(b,c,d){var e=0,f=!1,g=[],h=function(){e=0;f&&(f=!1,l())},l=function(){e=n.global.setTimeout(h,c);b.apply(d,g)};return function(b){g=arguments;e?f=!0:l()}};n.functions.rateLimit=function(b,c,d){var e=0,f=function(){e=0};return function(g){e||(e=n.global.setTimeout(f,c),b.apply(d,arguments))}};n.math={};n.math.randomInt=function(){return Math.floor(Math.random()*n.craw.AppWindow.NETWORK_TEST_URLS_.length)};n.math.uniformRandom=function(b,c){return b+Math.random()*(c-b)};n.math.clamp=function(b,c,d){return Math.min(Math.max(b,c),d)};n.math.modulo=function(b,c){b%=c;return 0>b*c?b+c:b};n.math.lerp=function(b,c,d){return b+d*(c-b)};n.math.nearlyEquals=function(b,c,d){return Math.abs(b-c)<=(d||1E-6)};n.math.standardAngle=function(b){return n.math.modulo(b,360)};
+n.math.standardAngleInRadians=function(b){return n.math.modulo(b,2*Math.PI)};n.math.toRadians=function(b){return b*Math.PI/180};n.math.toDegrees=function(b){return 180*b/Math.PI};n.math.angleDx=function(b,c){return c*Math.cos(n.math.toRadians(b))};n.math.angleDy=function(b,c){return c*Math.sin(n.math.toRadians(b))};n.math.angle=function(b,c,d,e){return n.math.standardAngle(n.math.toDegrees(Math.atan2(e-c,d-b)))};
+n.math.angleDifference=function(b,c){b=n.math.standardAngle(c)-n.math.standardAngle(b);180<b?b-=360:-180>=b&&(b=360+b);return b};n.math.sign=function(b){return 0<b?1:0>b?-1:b};
+n.math.longestCommonSubsequence=function(b,c,d,e){d=d||function(b,c){return b==c};e=e||function(c){return b[c]};for(var f=b.length,g=c.length,h=[],l=0;l<f+1;l++)h[l]=[],h[l][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(l=1;l<=f;l++)for(m=1;m<=g;m++)d(b[l-1],c[m-1])?h[l][m]=h[l-1][m-1]+1:h[l][m]=Math.max(h[l-1][m],h[l][m-1]);var p=[];l=f;for(m=g;0<l&&0<m;)d(b[l-1],c[m-1])?(p.unshift(e(l-1,m-1)),l--,m--):h[l-1][m]>h[l][m-1]?l--:m--;return p};
+n.math.sum=function(b){return n.array.reduce(arguments,function(b,d){return b+d},0)};n.math.average=function(b){return n.math.sum.apply(null,arguments)/arguments.length};n.math.sampleVariance=function(b){var c=arguments.length;if(2>c)return 0;var d=n.math.average.apply(null,arguments);return n.math.sum.apply(null,n.array.map(arguments,function(b){return Math.pow(b-d,2)}))/(c-1)};n.math.standardDeviation=function(b){return Math.sqrt(n.math.sampleVariance.apply(null,arguments))};
+n.math.isInt=function(b){return isFinite(b)&&0==b%1};n.math.isFiniteNumber=function(b){return isFinite(b)};n.math.isNegativeZero=function(b){return 0==b&&0>1/b};n.math.log10Floor=function(b){if(0<b){var c=Math.round(Math.log(b)*Math.LOG10E);return c-(parseFloat("1e"+c)>b?1:0)}return 0==b?-Infinity:NaN};n.math.safeFloor=function(b,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.floor(b+(c||2E-15))};n.math.safeCeil=function(b,c){n.asserts.assert(!n.isDef(c)||0<c);return Math.ceil(b-(c||2E-15))};n.iter={};n.iter.StopIteration="StopIteration"in n.global?n.global.StopIteration:{message:"StopIteration",stack:""};n.iter.Iterator=function(){};n.iter.Iterator.prototype.next=function(){throw n.iter.StopIteration;};n.iter.Iterator.prototype.__iterator__=function(){return this};
+n.iter.toIterator=function(b){if(b instanceof n.iter.Iterator)return b;if("function"==typeof b.__iterator__)return b.__iterator__(!1);if(n.isArrayLike(b)){var c=0,d=new n.iter.Iterator;d.next=function(){for(;;){if(c>=b.length)throw n.iter.StopIteration;if(c in b)return b[c++];c++}};return d}throw Error("Not implemented");};
+n.iter.forEach=function(b,c,d){if(n.isArrayLike(b))try{n.array.forEach(b,c,d)}catch(e){if(e!==n.iter.StopIteration)throw e;}else{b=n.iter.toIterator(b);try{for(;;)c.call(d,b.next(),void 0,b)}catch(e){if(e!==n.iter.StopIteration)throw e;}}};n.iter.filter=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){for(;;){var b=e.next();if(c.call(d,b,void 0,e))return b}};return b};n.iter.filterFalse=function(b,c,d){return n.iter.filter(b,n.functions.not(c),d)};
+n.iter.range=function(b,c,d){var e=0,f=b,g=d||1;1<arguments.length&&(e=b,f=+c);if(0==g)throw Error("Range step argument must not be zero");var h=new n.iter.Iterator;h.next=function(){if(0<g&&e>=f||0>g&&e<=f)throw n.iter.StopIteration;var b=e;e+=g;return b};return h};n.iter.join=function(b,c){return n.iter.toArray(b).join(c)};n.iter.map=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=e.next();return c.call(d,b,void 0,e)};return b};
+n.iter.reduce=function(b,c,d,e){var f=d;n.iter.forEach(b,function(b){f=c.call(e,f,b)});return f};n.iter.some=function(b,c,d){b=n.iter.toIterator(b);try{for(;;)if(c.call(d,b.next(),void 0,b))return!0}catch(e){if(e!==n.iter.StopIteration)throw e;}return!1};n.iter.every=function(b,c,d){b=n.iter.toIterator(b);try{for(;;)if(!c.call(d,b.next(),void 0,b))return!1}catch(e){if(e!==n.iter.StopIteration)throw e;}return!0};n.iter.chain=function(b){return n.iter.chainFromIterable(arguments)};
+n.iter.chainFromIterable=function(b){var c=n.iter.toIterator(b);b=new n.iter.Iterator;var d=null;b.next=function(){for(;;){if(null==d){var b=c.next();d=n.iter.toIterator(b)}try{return d.next()}catch(f){if(f!==n.iter.StopIteration)throw f;d=null}}};return b};n.iter.dropWhile=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;var f=!0;b.next=function(){for(;;){var b=e.next();if(!f||!c.call(d,b,void 0,e))return f=!1,b}};return b};
+n.iter.takeWhile=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=e.next();if(c.call(d,b,void 0,e))return b;throw n.iter.StopIteration;};return b};n.iter.toArray=function(b){if(n.isArrayLike(b))return n.array.toArray(b);b=n.iter.toIterator(b);var c=[];n.iter.forEach(b,function(b){c.push(b)});return c};n.iter.equals=function(b,c){b=n.iter.zipLongest({},b,c);var d=n.array.defaultCompareEquality;return n.iter.every(b,function(b){return d(b[0],b[1])})};
+n.iter.nextOrValue=function(b){try{n.iter.toIterator(b).next()}catch(c){if(c!=n.iter.StopIteration)throw c;}};
+n.iter.product=function(b){if(n.array.some(arguments,function(b){return!b.length})||!arguments.length)return new n.iter.Iterator;var c=new n.iter.Iterator,d=arguments,e=n.array.repeat(0,d.length);c.next=function(){if(e){for(var b=n.array.map(e,function(b,c){return d[c][b]}),c=e.length-1;0<=c;c--){n.asserts.assert(e);if(e[c]<d[c].length-1){e[c]++;break}if(0==c){e=null;break}e[c]=0}return b}throw n.iter.StopIteration;};return c};
+n.iter.cycle=function(b){var c=n.iter.toIterator(b),d=[],e=0;b=new n.iter.Iterator;var f=!1;b.next=function(){var b=null;if(!f)try{return b=c.next(),d.push(b),b}catch(h){if(h!=n.iter.StopIteration||n.array.isEmpty(d))throw h;f=!0}b=d[e];e=(e+1)%d.length;return b};return b};n.iter.count=function(b,c){var d=b||0,e=n.isDef(c)?c:1;b=new n.iter.Iterator;b.next=function(){var b=d;d+=e;return b};return b};n.iter.repeat=function(b){var c=new n.iter.Iterator;c.next=n.functions.constant(b);return c};
+n.iter.accumulate=function(b){var c=n.iter.toIterator(b),d=0;b=new n.iter.Iterator;b.next=function(){return d+=c.next()};return b};n.iter.zip=function(b){var c=arguments,d=new n.iter.Iterator;if(0<c.length){var e=n.array.map(c,n.iter.toIterator);d.next=function(){return n.array.map(e,function(b){return b.next()})}}return d};
+n.iter.zipLongest=function(b,c){var d=n.array.slice(arguments,1),e=new n.iter.Iterator;if(0<d.length){var f=n.array.map(d,n.iter.toIterator);e.next=function(){var c=!1,d=n.array.map(f,function(d){try{var e=d.next();c=!0}catch(p){if(p!==n.iter.StopIteration)throw p;e=b}return e});if(!c)throw n.iter.StopIteration;return d}}return e};n.iter.compress=function(b,c){var d=n.iter.toIterator(c);return n.iter.filter(b,function(){return!!d.next()})};
+n.iter.GroupByIterator_=function(b,c){this.iterator=n.iter.toIterator(b);this.keyFunc=c||n.functions.identity};n.inherits(n.iter.GroupByIterator_,n.iter.Iterator);
+n.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);for(var b=this.targetKey=this.currentKey,c=this.targetKey,d=[];this.currentKey==c;){d.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(e){if(e!==n.iter.StopIteration)throw e;break}this.currentKey=this.keyFunc(this.currentValue)}return[b,d]};
+n.iter.groupBy=function(b,c){return new n.iter.GroupByIterator_(b,c)};n.iter.starMap=function(b,c,d){var e=n.iter.toIterator(b);b=new n.iter.Iterator;b.next=function(){var b=n.iter.toArray(e.next());return c.apply(d,n.array.concat(b,void 0,e))};return b};
+n.iter.tee=function(b,c){var d=n.iter.toIterator(b),e=n.array.map(n.array.range(n.isNumber(c)?c:2),function(){return[]}),f=function(){var b=d.next();n.array.forEach(e,function(c){c.push(b)})};return n.array.map(e,function(b){var c=new n.iter.Iterator;c.next=function(){n.array.isEmpty(b)&&f();n.asserts.assert(!n.array.isEmpty(b));return b.shift()};return c})};n.iter.enumerate=function(b,c){return n.iter.zip(n.iter.count(c),b)};
+n.iter.limit=function(b,c){n.asserts.assert(n.math.isInt(c)&&0<=c);var d=n.iter.toIterator(b);b=new n.iter.Iterator;var e=c;b.next=function(){if(0<e--)return d.next();throw n.iter.StopIteration;};return b};n.iter.consume=function(b,c){n.asserts.assert(n.math.isInt(c)&&0<=c);for(b=n.iter.toIterator(b);0<c--;)n.iter.nextOrValue(b);return b};
+n.iter.slice=function(b,c,d){n.asserts.assert(n.math.isInt(c)&&0<=c);b=n.iter.consume(b,c);n.isNumber(d)&&(n.asserts.assert(n.math.isInt(d)&&d>=c),b=n.iter.limit(b,d-c));return b};n.iter.hasDuplicates_=function(b){var c=[];n.array.removeDuplicates(b,c);return b.length!=c.length};n.iter.permutations=function(b,c){b=n.iter.toArray(b);c=n.array.repeat(b,n.isNumber(c)?c:b.length);c=n.iter.product.apply(void 0,c);return n.iter.filter(c,function(b){return!n.iter.hasDuplicates_(b)})};
+n.iter.combinations=function(b,c){function d(b){return e[b]}var e=n.iter.toArray(b);b=n.iter.range(e.length);c=n.iter.permutations(b,c);var f=n.iter.filter(c,function(b){return n.array.isSorted(b)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};
+n.iter.combinationsWithReplacement=function(b,c){function d(b){return e[b]}var e=n.iter.toArray(b);b=n.array.range(e.length);c=n.array.repeat(b,c);c=n.iter.product.apply(void 0,c);var f=n.iter.filter(c,function(b){return n.array.isSorted(b)});c=new n.iter.Iterator;c.next=function(){return n.array.map(f.next(),d)};return c};n.structs={};n.structs.Map=function(b,c){this.map_={};this.keys_=[];this.version_=this.count_=0;var d=arguments.length;if(1<d){if(d%2)throw Error("Uneven number of arguments");for(var e=0;e<d;e+=2)this.set(arguments[e],arguments[e+1])}else b&&this.addAll(b)};a=n.structs.Map.prototype;a.getCount=function(){return this.count_};a.getValues=function(){z(this);for(var b=[],c=0;c<this.keys_.length;c++)b.push(this.map_[this.keys_[c]]);return b};a.getKeys=function(){z(this);return this.keys_.concat()};
+a.containsKey=function(b){return n.structs.Map.hasKey_(this.map_,b)};a.containsValue=function(b){for(var c=0;c<this.keys_.length;c++){var d=this.keys_[c];if(n.structs.Map.hasKey_(this.map_,d)&&this.map_[d]==b)return!0}return!1};a.equals=function(b,c){if(this===b)return!0;if(this.count_!=b.getCount())return!1;c=c||n.structs.Map.defaultEquals;z(this);for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),b.get(d)))return!1;return!0};n.structs.Map.defaultEquals=function(b,c){return b===c};
+n.structs.Map.prototype.isEmpty=function(){return 0==this.count_};n.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};n.structs.Map.prototype.remove=function(b){return n.structs.Map.hasKey_(this.map_,b)?(delete this.map_[b],this.count_--,this.version_++,this.keys_.length>2*this.count_&&z(this),!0):!1};
+var z=function(b){if(b.count_!=b.keys_.length){for(var c=0,d=0;c<b.keys_.length;){var e=b.keys_[c];n.structs.Map.hasKey_(b.map_,e)&&(b.keys_[d++]=e);c++}b.keys_.length=d}if(b.count_!=b.keys_.length){var f={};for(d=c=0;c<b.keys_.length;)e=b.keys_[c],n.structs.Map.hasKey_(f,e)||(b.keys_[d++]=e,f[e]=1),c++;b.keys_.length=d}};a=n.structs.Map.prototype;a.get=function(b,c){return n.structs.Map.hasKey_(this.map_,b)?this.map_[b]:c};
+a.set=function(b,c){n.structs.Map.hasKey_(this.map_,b)||(this.count_++,this.keys_.push(b),this.version_++);this.map_[b]=c};a.addAll=function(b){if(b instanceof n.structs.Map)for(var c=b.getKeys(),d=0;d<c.length;d++)this.set(c[d],b.get(c[d]));else for(c in b)this.set(c,b[c])};a.forEach=function(b,c){for(var d=this.getKeys(),e=0;e<d.length;e++){var f=d[e],g=this.get(f);b.call(c,g,f,this)}};a.clone=function(){return new n.structs.Map(this)};
+a.transpose=function(){for(var b=new n.structs.Map,c=0;c<this.keys_.length;c++){var d=this.keys_[c];b.set(this.map_[d],d)}return b};a.toObject=function(){z(this);for(var b={},c=0;c<this.keys_.length;c++){var d=this.keys_[c];b[d]=this.map_[d]}return b};
+a.__iterator__=function(b){z(this);var c=0,d=this.version_,e=this,f=new n.iter.Iterator;f.next=function(){if(d!=e.version_)throw Error("The map has changed since the iterator was created");if(c>=e.keys_.length)throw n.iter.StopIteration;var f=e.keys_[c++];return b?f:e.map_[f]};return f};n.structs.Map.hasKey_=function(b,c){return Object.prototype.hasOwnProperty.call(b,c)};n.structs.LinkedMap=function(b){this.maxCount_=b||null;this.cache_=!0;this.evictionCallback_=void 0;this.map_=new n.structs.Map;this.head_=new n.structs.LinkedMap.Node_("",void 0);this.head_.next=this.head_.prev=this.head_};var C=function(b,c){(c=b.map_.get(c))&&b.cache_&&(c.remove(),B(b,c));return c};a=n.structs.LinkedMap.prototype;a.get=function(b,c){return(b=C(this,b))?b.value:c};a.set=function(b,c){var d=C(this,b);d?d.value=c:(d=new n.structs.LinkedMap.Node_(b,c),this.map_.set(b,d),B(this,d))};
+a.peek=function(){return this.head_.next.value};a.shift=function(){return D(this,this.head_.next)};a.pop=function(){return D(this,this.head_.prev)};a.remove=function(b){return(b=this.map_.get(b))?(this.removeNode(b),!0):!1};a.removeNode=function(b){b.remove();this.map_.remove(b.key)};a.getCount=function(){return this.map_.getCount()};a.isEmpty=function(){return this.map_.isEmpty()};a.getKeys=function(){return this.map(function(b,c){return c})};a.getValues=function(){return this.map(function(b){return b})};
+a.contains=function(b){return this.some(function(c){return c==b})};a.containsKey=function(b){return this.map_.containsKey(b)};a.clear=function(){E(this,0)};a.forEach=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)b.call(c,d.value,d.key,this)};a.map=function(b,c){for(var d=[],e=this.head_.next;e!=this.head_;e=e.next)d.push(b.call(c,e.value,e.key,this));return d};a.some=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(b.call(c,d.value,d.key,this))return!0;return!1};
+a.every=function(b,c){for(var d=this.head_.next;d!=this.head_;d=d.next)if(!b.call(c,d.value,d.key,this))return!1;return!0};
+var B=function(b,c){b.cache_?(c.next=b.head_.next,c.prev=b.head_,b.head_.next=c,c.next.prev=c):(c.prev=b.head_.prev,c.next=b.head_,b.head_.prev=c,c.prev.next=c);null!=b.maxCount_&&E(b,b.maxCount_)},E=function(b,c){for(;b.getCount()>c;){var d=b.cache_?b.head_.prev:b.head_.next;b.removeNode(d);b.evictionCallback_&&b.evictionCallback_(d.key,d.value)}},D=function(b,c){b.head_!=c&&b.removeNode(c);return c.value};n.structs.LinkedMap.Node_=function(b,c){this.key=b;this.value=c};
+n.structs.LinkedMap.Node_.prototype.remove=function(){this.prev.next=this.next;this.next.prev=this.prev;delete this.prev;delete this.next};var t={LicensesCache:function(b,c){n.events.EventTarget.call(this);this.timeout_=b||36E5;this.cache_=new n.structs.LinkedMap(c||100)}};n.inherits(t.LicensesCache,n.events.EventTarget);t.LicensesCache.Entry=function(b){this.timeStamp_=n.now();this.licenses_=b};t.LicensesCache.prototype.get=function(b){b=this.cache_.get(b);var c;if(c=b)c=this.timeout_,c=n.now()-b.timeStamp_<=c;return c?b.licenses_:null};t.LicensesCache.prototype.remove=function(b){this.cache_.remove(b)};n.structs.getCount=function(b){return b.getCount&&"function"==typeof b.getCount?b.getCount():n.isArrayLike(b)||n.isString(b)?b.length:n.object.getCount(b)};n.structs.getValues=function(b){if(b.getValues&&"function"==typeof b.getValues)return b.getValues();if(n.isString(b))return b.split("");if(n.isArrayLike(b)){for(var c=[],d=b.length,e=0;e<d;e++)c.push(b[e]);return c}return n.object.getValues(b)};
+n.structs.getKeys=function(b){if(b.getKeys&&"function"==typeof b.getKeys)return b.getKeys();if(!b.getValues||"function"!=typeof b.getValues){if(n.isArrayLike(b)||n.isString(b)){var c=[];b=b.length;for(var d=0;d<b;d++)c.push(d);return c}return n.object.getKeys(b)}};
+n.structs.contains=function(b,c){return b.contains&&"function"==typeof b.contains?b.contains(c):b.containsValue&&"function"==typeof b.containsValue?b.containsValue(c):n.isArrayLike(b)||n.isString(b)?n.array.contains(b,c):n.object.containsValue(b,c)};n.structs.isEmpty=function(b){return b.isEmpty&&"function"==typeof b.isEmpty?b.isEmpty():n.isArrayLike(b)||n.isString(b)?n.array.isEmpty(b):n.object.isEmpty(b)};
+n.structs.clear=function(b){b.clear&&"function"==typeof b.clear?b.clear():n.isArrayLike(b)?n.array.clear(b):n.object.clear(b)};n.structs.forEach=function(b,c,d){if(b.forEach&&"function"==typeof b.forEach)b.forEach(c,d);else if(n.isArrayLike(b)||n.isString(b))n.array.forEach(b,c,d);else for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)c.call(d,f[h],e&&e[h],b)};
+n.structs.filter=function(b,c,d){if("function"==typeof b.filter)return b.filter(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.filter(b,c,d);var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)c.call(d,f[l],e[l],b)&&(h[e[l]]=f[l])}else for(h=[],l=0;l<g;l++)c.call(d,f[l],void 0,b)&&h.push(f[l]);return h};
+n.structs.map=function(b,c,d){if("function"==typeof b.map)return b.map(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.map(b,c,d);var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length;if(e){var h={};for(var l=0;l<g;l++)h[e[l]]=c.call(d,f[l],e[l],b)}else for(h=[],l=0;l<g;l++)h[l]=c.call(d,f[l],void 0,b);return h};
+n.structs.some=function(b,c,d){if("function"==typeof b.some)return b.some(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.some(b,c,d);for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)if(c.call(d,f[h],e&&e[h],b))return!0;return!1};
+n.structs.every=function(b,c,d){if("function"==typeof b.every)return b.every(c,d);if(n.isArrayLike(b)||n.isString(b))return n.array.every(b,c,d);for(var e=n.structs.getKeys(b),f=n.structs.getValues(b),g=f.length,h=0;h<g;h++)if(!c.call(d,f[h],e&&e[h],b))return!1;return!0};n.uri={};n.uri.utils={};n.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};n.uri.utils.buildFromEncodedParts=function(b,c,d,e,f,g,h){var l="";b&&(l+=b+":");d&&(l+="//",c&&(l+=c+"@"),l+=d,e&&(l+=":"+e));f&&(l+=f);g&&(l+="?"+g);h&&(l+="#"+h);return l};n.uri.utils.splitRe_=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;n.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};
+n.uri.utils.split=function(b){return b.match(n.uri.utils.splitRe_)};n.uri.utils.decodeIfPossible_=function(b,c){return b?c?decodeURI(b):decodeURIComponent(b):b};n.uri.utils.getComponentByIndex_=function(b,c){return n.uri.utils.split(c)[b]||null};n.uri.utils.getScheme=function(b){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.SCHEME,b)};
+n.uri.utils.getEffectiveScheme=function(b){b=n.uri.utils.getScheme(b);!b&&n.global.self&&n.global.self.location&&(b=n.global.self.location.protocol,b=b.substr(0,b.length-1));return b?b.toLowerCase():""};n.uri.utils.getUserInfoEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.USER_INFO,void 0)};n.uri.utils.getUserInfo=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getUserInfoEncoded())};
+n.uri.utils.getDomainEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.DOMAIN,void 0)};n.uri.utils.getDomain=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getDomainEncoded(),!0)};n.uri.utils.getPort=function(){return Number(n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PORT,void 0))||null};n.uri.utils.getPathEncoded=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.PATH,void 0)};
+n.uri.utils.getPath=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getPathEncoded(),!0)};n.uri.utils.getQueryData=function(){return n.uri.utils.getComponentByIndex_(n.uri.utils.ComponentIndex.QUERY_DATA,void 0)};n.uri.utils.getFragmentEncoded=function(){var b=(void 0).indexOf("#");return 0>b?null:(void 0).substr(b+1)};n.uri.utils.setFragmentEncoded=function(b,c){return n.uri.utils.removeFragment(b)+(c?"#"+c:"")};n.uri.utils.getFragment=function(){return n.uri.utils.decodeIfPossible_(n.uri.utils.getFragmentEncoded())};
+n.uri.utils.getHost=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(b[n.uri.utils.ComponentIndex.SCHEME],b[n.uri.utils.ComponentIndex.USER_INFO],b[n.uri.utils.ComponentIndex.DOMAIN],b[n.uri.utils.ComponentIndex.PORT])};n.uri.utils.getOrigin=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(b[n.uri.utils.ComponentIndex.SCHEME],null,b[n.uri.utils.ComponentIndex.DOMAIN],b[n.uri.utils.ComponentIndex.PORT])};
+n.uri.utils.getPathAndAfter=function(b){b=n.uri.utils.split(b);return n.uri.utils.buildFromEncodedParts(null,null,null,null,b[n.uri.utils.ComponentIndex.PATH],b[n.uri.utils.ComponentIndex.QUERY_DATA],b[n.uri.utils.ComponentIndex.FRAGMENT])};n.uri.utils.removeFragment=function(b){var c=b.indexOf("#");return 0>c?b:b.substr(0,c)};
+n.uri.utils.haveSameDomain=function(b,c){b=n.uri.utils.split(b);c=n.uri.utils.split(c);return b[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&b[n.uri.utils.ComponentIndex.SCHEME]==c[n.uri.utils.ComponentIndex.SCHEME]&&b[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.uri.utils.assertNoFragmentsOrQueries_=function(b){n.asserts.assert(0>b.indexOf("#")&&0>b.indexOf("?"),"goog.uri.utils: Fragment or query identifiers are not supported: [%s]",b)};
+n.uri.utils.parseQueryData=function(b,c){if(b){b=b.split("&");for(var d=0;d<b.length;d++){var e=b[d].indexOf("="),f=null;if(0<=e){var g=b[d].substring(0,e);f=b[d].substring(e+1)}else g=b[d];c(g,f?n.string.urlDecode(f):"")}}};n.uri.utils.splitQueryData_=function(b){var c=b.indexOf("#");0>c&&(c=b.length);var d=b.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=b.substring(d+1,c);return[b.substr(0,d),e,b.substr(c)]};n.uri.utils.joinQueryData_=function(b){return b[0]+(b[1]?"?"+b[1]:"")+b[2]};
+n.uri.utils.appendQueryData_=function(b,c){return c?b?b+"&"+c:c:b};n.uri.utils.appendQueryDataToUri_=function(b,c){if(!c)return b;b=n.uri.utils.splitQueryData_(b);b[1]=n.uri.utils.appendQueryData_(b[1],c);return n.uri.utils.joinQueryData_(b)};n.uri.utils.appendKeyValuePairs_=function(b,c,d){n.asserts.assertString(b);if(n.isArray(c)){n.asserts.assertArray(c);for(var e=0;e<c.length;e++)n.uri.utils.appendKeyValuePairs_(b,String(c[e]),d)}else null!=c&&d.push(b+(""===c?"":"="+n.string.urlEncode(c)))};
+n.uri.utils.buildQueryData=function(b,c){n.asserts.assert(0==Math.max(b.length-(c||0),0)%2,"goog.uri.utils: Key/value lists must be even in length.");var d=[];for(c=c||0;c<b.length;c+=2)n.uri.utils.appendKeyValuePairs_(b[c],b[c+1],d);return d.join("&")};n.uri.utils.buildQueryDataFromMap=function(b){var c=[],d;for(d in b)n.uri.utils.appendKeyValuePairs_(d,b[d],c);return c.join("&")};
+n.uri.utils.appendParams=function(b,c){var d=2==arguments.length?n.uri.utils.buildQueryData(arguments[1],0):n.uri.utils.buildQueryData(arguments,1);return n.uri.utils.appendQueryDataToUri_(b,d)};n.uri.utils.appendParamsFromMap=function(b,c){c=n.uri.utils.buildQueryDataFromMap(c);return n.uri.utils.appendQueryDataToUri_(b,c)};n.uri.utils.appendParam=function(b,c,d){d=n.isDefAndNotNull(d)?"="+n.string.urlEncode(d):"";return n.uri.utils.appendQueryDataToUri_(b,c+d)};
+n.uri.utils.findParam_=function(b,c,d,e){for(var f=d.length;0<=(c=b.indexOf(d,c))&&c<e;){var g=b.charCodeAt(c-1);if(g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.QUESTION)if(g=b.charCodeAt(c+f),!g||g==n.uri.utils.CharCode_.EQUAL||g==n.uri.utils.CharCode_.AMPERSAND||g==n.uri.utils.CharCode_.HASH)return c;c+=f+1}return-1};n.uri.utils.hashOrEndRe_=/#|$/;n.uri.utils.hasParam=function(b,c){return 0<=n.uri.utils.findParam_(b,0,c,b.search(n.uri.utils.hashOrEndRe_))};
+n.uri.utils.getParamValue=function(b,c){var d=b.search(n.uri.utils.hashOrEndRe_),e=n.uri.utils.findParam_(b,0,c,d);if(0>e)return null;var f=b.indexOf("&",e);if(0>f||f>d)f=d;e+=c.length+1;return n.string.urlDecode(b.substr(e,f-e))};n.uri.utils.getParamValues=function(b,c){for(var d=b.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(b,e,c,d));){e=b.indexOf("&",f);if(0>e||e>d)e=d;f+=c.length+1;g.push(n.string.urlDecode(b.substr(f,e-f)))}return g};
+n.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;n.uri.utils.removeParam=function(b,c){for(var d=b.search(n.uri.utils.hashOrEndRe_),e=0,f,g=[];0<=(f=n.uri.utils.findParam_(b,e,c,d));)g.push(b.substring(e,f)),e=Math.min(b.indexOf("&",f)+1||d,d);g.push(b.substr(e));return g.join("").replace(n.uri.utils.trailingQueryPunctuationRe_,"$1")};
+n.uri.utils.setParam=function(b){var c=n.uri.utils.StandardQueryParam.RANDOM,d=n.string.getRandomString();return n.uri.utils.appendParam(n.uri.utils.removeParam(b,c),c,d)};n.uri.utils.setParamsFromMap=function(b,c){b=n.uri.utils.splitQueryData_(b);var d=b[1],e=[];d&&n.array.forEach(d.split("&"),function(b){var d=b.indexOf("=");c.hasOwnProperty(0<=d?b.substr(0,d):b)||e.push(b)});b[1]=n.uri.utils.appendQueryData_(e.join("&"),n.uri.utils.buildQueryDataFromMap(c));return n.uri.utils.joinQueryData_(b)};
+n.uri.utils.appendPath=function(b,c){n.uri.utils.assertNoFragmentsOrQueries_(b);n.string.endsWith(b,"/")&&(b=b.substr(0,b.length-1));n.string.startsWith(c,"/")&&(c=c.substr(1));return n.string.buildString(b,"/",c)};n.uri.utils.setPath=function(b,c){n.string.startsWith(c,"/");n.uri.utils.split(b)};n.uri.utils.StandardQueryParam={RANDOM:"zx"};n.uri.utils.makeUnique=function(b){return n.uri.utils.setParam(b)};n.Uri=function(b,c){this.domain_=this.userInfo_=this.scheme_="";this.port_=null;this.fragment_=this.path_="";this.ignoreCase_=this.isReadOnly_=!1;var d;b instanceof n.Uri?(this.ignoreCase_=n.isDef(c)?c:b.ignoreCase_,F(this,b.getScheme()),G(this,b.getUserInfo()),H(this,b.getDomain()),I(this,b.getPort()),this.setPath(b.getPath()),J(this,b.getQueryData().clone()),L(this,b.getFragment())):b&&(d=n.uri.utils.split(String(b)))?(this.ignoreCase_=!!c,F(this,d[n.uri.utils.ComponentIndex.SCHEME]||"",!0),G(this,
+d[n.uri.utils.ComponentIndex.USER_INFO]||"",!0),H(this,d[n.uri.utils.ComponentIndex.DOMAIN]||"",!0),I(this,d[n.uri.utils.ComponentIndex.PORT]),this.setPath(d[n.uri.utils.ComponentIndex.PATH]||"",!0),J(this,d[n.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),L(this,d[n.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!c,this.queryData_=new n.Uri.QueryData(null,this.ignoreCase_))};n.Uri.preserveParameterTypesCompatibilityFlag=!1;n.Uri.RANDOM_PARAM=n.uri.utils.StandardQueryParam.RANDOM;
+n.Uri.prototype.toString=function(){var b=[],c=this.getScheme();c&&b.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),":");var d=this.getDomain();if(d||"file"==c)b.push("//"),(c=this.getUserInfo())&&b.push(n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInSchemeOrUserInfo_,!0),"@"),b.push(n.Uri.removeDoubleEncoding_(n.string.urlEncode(d))),d=this.getPort(),null!=d&&b.push(":",String(d));if(d=this.getPath())this.domain_&&"/"!=d.charAt(0)&&b.push("/"),b.push(n.Uri.encodeSpecialChars_(d,
+"/"==d.charAt(0)?n.Uri.reDisallowedInAbsolutePath_:n.Uri.reDisallowedInRelativePath_,!0));(d=this.queryData_.toString())&&b.push("?",d);(d=this.getFragment())&&b.push("#",n.Uri.encodeSpecialChars_(d,n.Uri.reDisallowedInFragment_));return b.join("")};
+n.Uri.prototype.resolve=function(b){var c=this.clone(),d=!!b.scheme_;d?F(c,b.getScheme()):d=!!b.userInfo_;d?G(c,b.getUserInfo()):d=!!b.domain_;d?H(c,b.getDomain()):d=null!=b.port_;var e=b.getPath();if(d)I(c,b.getPort());else if(d=!!b.path_){if("/"!=e.charAt(0))if(this.domain_&&!this.path_)e="/"+e;else{var f=c.getPath().lastIndexOf("/");-1!=f&&(e=c.getPath().substr(0,f+1)+e)}e=n.Uri.removeDotSegments(e)}d?c.setPath(e):d=""!==b.queryData_.toString();d?J(c,b.getQueryData().clone()):d=!!b.fragment_;d&&
+L(c,b.getFragment());return c};n.Uri.prototype.clone=function(){return new n.Uri(this)};n.Uri.prototype.getScheme=function(){return this.scheme_};var F=function(b,c,d){M(b);b.scheme_=d?n.Uri.decodeOrEmpty_(c,!0):c;b.scheme_&&(b.scheme_=b.scheme_.replace(/:$/,""))};n.Uri.prototype.getUserInfo=function(){return this.userInfo_};var G=function(b,c,d){M(b);b.userInfo_=d?n.Uri.decodeOrEmpty_(c):c};n.Uri.prototype.getDomain=function(){return this.domain_};
+var H=function(b,c,d){M(b);b.domain_=d?n.Uri.decodeOrEmpty_(c,!0):c};n.Uri.prototype.getPort=function(){return this.port_};var I=function(b,c){M(b);if(c){c=Number(c);if(isNaN(c)||0>c)throw Error("Bad port number "+c);b.port_=c}else b.port_=null};n.Uri.prototype.getPath=function(){return this.path_};n.Uri.prototype.setPath=function(b,c){M(this);this.path_=c?n.Uri.decodeOrEmpty_(b,!0):b};
+var J=function(b,c,d){M(b);c instanceof n.Uri.QueryData?(b.queryData_=c,b.queryData_.setIgnoreCase(b.ignoreCase_)):(d||(c=n.Uri.encodeSpecialChars_(c,n.Uri.reDisallowedInQuery_)),b.queryData_=new n.Uri.QueryData(c,b.ignoreCase_))};n.Uri.prototype.getQueryData=function(){return this.queryData_};var N=function(b,c,d){M(b);b.queryData_.set(c,d)};n.Uri.prototype.getFragment=function(){return this.fragment_};var L=function(b,c,d){M(b);b.fragment_=d?n.Uri.decodeOrEmpty_(c):c};
+n.Uri.prototype.makeUnique=function(){M(this);N(this,n.Uri.RANDOM_PARAM,n.string.getRandomString());return this};n.Uri.prototype.removeParameter=function(b){M(this);this.queryData_.remove(b);return this};var M=function(b){if(b.isReadOnly_)throw Error("Tried to modify a read-only Uri");};n.Uri.prototype.setIgnoreCase=function(b){this.ignoreCase_=b;this.queryData_&&this.queryData_.setIgnoreCase(b)};n.Uri.parse=function(b,c){return b instanceof n.Uri?b.clone():new n.Uri(b,c)};
+n.Uri.create=function(b,c,d,e,f,g,h,l){l=new n.Uri(null,l);b&&F(l,b);c&&G(l,c);d&&H(l,d);e&&I(l,e);f&&l.setPath(f);g&&J(l,g);h&&L(l,h);return l};n.Uri.resolve=function(b,c){b instanceof n.Uri||(b=n.Uri.parse(b));c instanceof n.Uri||(c=n.Uri.parse(c));return b.resolve(c)};
+n.Uri.removeDotSegments=function(b){if(".."==b||"."==b)return"";if(n.string.contains(b,"./")||n.string.contains(b,"/.")){var c=n.string.startsWith(b,"/");b=b.split("/");for(var d=[],e=0;e<b.length;){var f=b[e++];"."==f?c&&e==b.length&&d.push(""):".."==f?((1<d.length||1==d.length&&""!=d[0])&&d.pop(),c&&e==b.length&&d.push("")):(d.push(f),c=!0)}return d.join("/")}return b};n.Uri.decodeOrEmpty_=function(b,c){return b?c?decodeURI(b.replace(/%25/g,"%2525")):decodeURIComponent(b):""};
+n.Uri.encodeSpecialChars_=function(b,c,d){return n.isString(b)?(b=encodeURI(b).replace(c,n.Uri.encodeChar_),d&&(b=n.Uri.removeDoubleEncoding_(b)),b):null};n.Uri.encodeChar_=function(b){b=b.charCodeAt(0);return"%"+(b>>4&15).toString(16)+(b&15).toString(16)};n.Uri.removeDoubleEncoding_=function(b){return b.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};n.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;n.Uri.reDisallowedInRelativePath_=/[#\?:]/g;n.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
+n.Uri.reDisallowedInQuery_=/[#\?@]/g;n.Uri.reDisallowedInFragment_=/#/g;n.Uri.haveSameDomain=function(b,c){b=n.uri.utils.split(b);c=n.uri.utils.split(c);return b[n.uri.utils.ComponentIndex.DOMAIN]==c[n.uri.utils.ComponentIndex.DOMAIN]&&b[n.uri.utils.ComponentIndex.PORT]==c[n.uri.utils.ComponentIndex.PORT]};n.Uri.QueryData=function(b,c){this.count_=this.keyMap_=null;this.encodedQuery_=b||null;this.ignoreCase_=!!c};
+var P=function(b){b.keyMap_||(b.keyMap_=new n.structs.Map,b.count_=0,b.encodedQuery_&&n.uri.utils.parseQueryData(b.encodedQuery_,function(c,d){b.add(n.string.urlDecode(c),d)}))};n.Uri.QueryData.createFromMap=function(b,c,d){c=n.structs.getKeys(b);if("undefined"==typeof c)throw Error("Keys are undefined");d=new n.Uri.QueryData(null,d);b=n.structs.getValues(b);for(var e=0;e<c.length;e++){var f=c[e],g=b[e];n.isArray(g)?aa(d,f,g):d.add(f,g)}return d};
+n.Uri.QueryData.createFromKeysValues=function(b,c,d,e){if(b.length!=c.length)throw Error("Mismatched lengths for keys/values");d=new n.Uri.QueryData(null,e);for(e=0;e<b.length;e++)d.add(b[e],c[e]);return d};a=n.Uri.QueryData.prototype;a.getCount=function(){P(this);return this.count_};a.add=function(b,c){P(this);this.encodedQuery_=null;b=Q(this,b);var d=this.keyMap_.get(b);d||this.keyMap_.set(b,d=[]);d.push(c);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+a.remove=function(b){P(this);b=Q(this,b);return this.keyMap_.containsKey(b)?(this.encodedQuery_=null,this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length,this.keyMap_.remove(b)):!1};a.clear=function(){this.keyMap_=this.encodedQuery_=null;this.count_=0};a.isEmpty=function(){P(this);return 0==this.count_};a.containsKey=function(b){P(this);b=Q(this,b);return this.keyMap_.containsKey(b)};a.containsValue=function(b){var c=this.getValues();return n.array.contains(c,b)};
+a.forEach=function(b,c){P(this);this.keyMap_.forEach(function(d,e){n.array.forEach(d,function(d){b.call(c,d,e,this)},this)},this)};a.getKeys=function(){P(this);for(var b=this.keyMap_.getValues(),c=this.keyMap_.getKeys(),d=[],e=0;e<c.length;e++)for(var f=b[e],g=0;g<f.length;g++)d.push(c[e]);return d};
+a.getValues=function(b){P(this);var c=[];if(n.isString(b))this.containsKey(b)&&(c=n.array.concat(c,this.keyMap_.get(Q(this,b))));else{b=this.keyMap_.getValues();for(var d=0;d<b.length;d++)c=n.array.concat(c,b[d])}return c};a.set=function(b,c){P(this);this.encodedQuery_=null;b=Q(this,b);this.containsKey(b)&&(this.count_=n.asserts.assertNumber(this.count_)-this.keyMap_.get(b).length);this.keyMap_.set(b,[c]);this.count_=n.asserts.assertNumber(this.count_)+1;return this};
+a.get=function(b,c){b=b?this.getValues(b):[];return n.Uri.preserveParameterTypesCompatibilityFlag?0<b.length?b[0]:c:0<b.length?String(b[0]):c};var aa=function(b,c,d){b.remove(c);0<d.length&&(b.encodedQuery_=null,b.keyMap_.set(Q(b,c),n.array.clone(d)),b.count_=n.asserts.assertNumber(b.count_)+d.length)};
+n.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";for(var b=[],c=this.keyMap_.getKeys(),d=0;d<c.length;d++){var e=c[d],f=n.string.urlEncode(e);e=this.getValues(e);for(var g=0;g<e.length;g++){var h=f;""!==e[g]&&(h+="="+n.string.urlEncode(e[g]));b.push(h)}}return this.encodedQuery_=b.join("&")};
+n.Uri.QueryData.prototype.clone=function(){var b=new n.Uri.QueryData;b.encodedQuery_=this.encodedQuery_;this.keyMap_&&(b.keyMap_=this.keyMap_.clone(),b.count_=this.count_);return b};var Q=function(b,c){c=String(c);b.ignoreCase_&&(c=c.toLowerCase());return c};n.Uri.QueryData.prototype.setIgnoreCase=function(b){b&&!this.ignoreCase_&&(P(this),this.encodedQuery_=null,this.keyMap_.forEach(function(b,d){var c=d.toLowerCase();d!=c&&(this.remove(d),aa(this,c,b))},this));this.ignoreCase_=b};
+n.Uri.QueryData.prototype.extend=function(b){for(var c=0;c<arguments.length;c++)n.structs.forEach(arguments[c],function(b,c){this.add(c,b)},this)};t.Errors={};t.Errors.ErrorTypes={MINT_JWT_ERROR:"MINT_JWT_ERROR",PURCHASE_CANCELED:"PURCHASE_CANCELED",CONSUME_PURCHASE_ERROR:"CONSUME_PURCHASE_ERROR",GET_PURCHASES_ERROR:"GET_PURCHASES_ERROR",GET_SKU_DETAILS_ERROR:"GET_SKU_DETAILS_ERROR",ENV_NOT_SUPPORTED_ERROR:"ENV_NOT_SUPPORTED_ERROR",TOKEN_MISSING_ERROR:"TOKEN_MISSING_ERROR",INVALID_RESPONSE_ERROR:"INVALID_RESPONSE_ERROR"};t.Errors.getErrorResponse=function(b){return{request:{},response:{errorType:b}}};t.WebStoreService=function(){this.baseUrl_=t.WebStoreService.Environment.SANDBOX;this.baseUrlAndPath_=this.baseUrl_+t.WebStoreService.WEB_STORE_REQUEST_PATH_};t.WebStoreService.Environment={PROD:"https://www.googleapis.com",SANDBOX:"https://www-googleapis-staging.sandbox.google.com"};t.WebStoreService.WEB_STORE_REQUEST_PATH_="/chromewebstore/v1.1";
+var ca=function(b,c,d,e,f,g,h,l,m,p){var A=d?d:"",O=l||"application/x-www-form-urlencoded",ba=function(b,c){if(c&&200==b){b=null;try{b=JSON.parse(c)}catch(wa){g(t.Errors.ErrorTypes.INVALID_RESPONSE_ERROR);return}f(b)}else g(t.Errors.ErrorTypes.INVALID_RESPONSE_ERROR)},da=function(K){if(K){var r=new XMLHttpRequest;r.open(e,c);r.setRequestHeader("Authorization","Bearer "+K);r.setRequestHeader("Content-Type",O);r.onreadystatechange=function(){4==r.readyState&&(401==r.status&&K?chrome.identity.removeCachedAuthToken({token:K},
+function(){h?ca(b,e,d,e,f,g,!1,l,m,p):(console.log(r),ba(r.status,r.responseText))}):(console.log(r),ba(r.status,r.responseText)))};r.send(A)}else g(t.Errors.ErrorTypes.TOKEN_MISSING_ERROR)};p?da(p):chrome.identity.getAuthToken({interactive:m||!1},da)};t.WebStoreService.prototype.onFailure_=function(b,c,d){b(t.Errors.getErrorResponse(d||c))};
+var ea=function(b,c,d,e,f,g,h,l){c={hl:window.navigator.language,itemId:c,sku:d,paymentVersion:1};h&&(c.gl=h);h=new n.Uri.QueryData;l&&h.add("projection",l);l=new n.Uri(b.baseUrlAndPath_+"/payments/buy");J(l,h);f=n.bind(b.onFailure_,b,f,t.Errors.ErrorTypes.MINT_JWT_ERROR);ca(b,l.toString(),JSON.stringify(c),"POST",function(b){e(b.jwt,b.paymentData,b.signature)},f,!0,"application/json",void 0,g)};n.dom.asserts={};n.dom.asserts.assertIsLocation=function(b){if(n.asserts.ENABLE_ASSERTS){var c=n.dom.asserts.getWindow_(b);"undefined"!=typeof c.Location&&"undefined"!=typeof c.Element&&n.asserts.assert(b&&(b instanceof c.Location||!(b instanceof c.Element)),"Argument is not a Location (or a non-Element mock); got: %s",n.dom.asserts.debugStringForType_(b))}};
+n.dom.asserts.assertIsElementType_=function(b,c){if(n.asserts.ENABLE_ASSERTS){var d=n.dom.asserts.getWindow_(b);"undefined"!=typeof d[c]&&"undefined"!=typeof d.Location&&"undefined"!=typeof d.Element&&n.asserts.assert(b&&(b instanceof d[c]||!(b instanceof d.Location||b instanceof d.Element)),"Argument is not a %s (or a non-Element, non-Location mock); got: %s",c,n.dom.asserts.debugStringForType_(b))}return b};
+n.dom.asserts.assertIsHTMLAnchorElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLAnchorElement")};n.dom.asserts.assertIsHTMLButtonElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLButtonElement")};n.dom.asserts.assertIsHTMLLinkElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLLinkElement")};n.dom.asserts.assertIsHTMLImageElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLImageElement")};
+n.dom.asserts.assertIsHTMLVideoElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLVideoElement")};n.dom.asserts.assertIsHTMLInputElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLInputElement")};n.dom.asserts.assertIsHTMLEmbedElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLEmbedElement")};n.dom.asserts.assertIsHTMLFormElement=function(b){return n.dom.asserts.assertIsElementType_(b,"HTMLFormElement")};
+n.dom.asserts.assertIsHTMLFrameElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLFrameElement")};n.dom.asserts.assertIsHTMLIFrameElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLIFrameElement")};n.dom.asserts.assertIsHTMLObjectElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLObjectElement")};n.dom.asserts.assertIsHTMLScriptElement=function(b){n.dom.asserts.assertIsElementType_(b,"HTMLScriptElement")};
+n.dom.asserts.debugStringForType_=function(b){return n.isObject(b)?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):void 0===b?"undefined":null===b?"null":typeof b};n.dom.asserts.getWindow_=function(b){return(b=b&&b.ownerDocument)&&(b.defaultView||b.parentWindow)||n.global};n.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!n.userAgent.IE||n.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!n.userAgent.GECKO&&!n.userAgent.IE||n.userAgent.IE&&n.userAgent.isDocumentModeOrHigher(9)||n.userAgent.GECKO&&n.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:n.userAgent.IE||n.userAgent.OPERA||n.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:n.userAgent.IE,LEGACY_IE_RANGES:n.userAgent.IE&&
+!n.userAgent.isDocumentModeOrHigher(9)};n.dom.HtmlElement=function(){};n.dom.TagName=function(b){this.tagName_=b};n.dom.TagName.prototype.toString=function(){return this.tagName_};n.dom.TagName.A=new n.dom.TagName("A");n.dom.TagName.ABBR=new n.dom.TagName("ABBR");n.dom.TagName.ACRONYM=new n.dom.TagName("ACRONYM");n.dom.TagName.ADDRESS=new n.dom.TagName("ADDRESS");n.dom.TagName.APPLET=new n.dom.TagName("APPLET");n.dom.TagName.AREA=new n.dom.TagName("AREA");n.dom.TagName.ARTICLE=new n.dom.TagName("ARTICLE");n.dom.TagName.ASIDE=new n.dom.TagName("ASIDE");
+n.dom.TagName.AUDIO=new n.dom.TagName("AUDIO");n.dom.TagName.B=new n.dom.TagName("B");n.dom.TagName.BASE=new n.dom.TagName("BASE");n.dom.TagName.BASEFONT=new n.dom.TagName("BASEFONT");n.dom.TagName.BDI=new n.dom.TagName("BDI");n.dom.TagName.BDO=new n.dom.TagName("BDO");n.dom.TagName.BIG=new n.dom.TagName("BIG");n.dom.TagName.BLOCKQUOTE=new n.dom.TagName("BLOCKQUOTE");n.dom.TagName.BODY=new n.dom.TagName("BODY");n.dom.TagName.BR=new n.dom.TagName("BR");n.dom.TagName.BUTTON=new n.dom.TagName("BUTTON");
+n.dom.TagName.CANVAS=new n.dom.TagName("CANVAS");n.dom.TagName.CAPTION=new n.dom.TagName("CAPTION");n.dom.TagName.CENTER=new n.dom.TagName("CENTER");n.dom.TagName.CITE=new n.dom.TagName("CITE");n.dom.TagName.CODE=new n.dom.TagName("CODE");n.dom.TagName.COL=new n.dom.TagName("COL");n.dom.TagName.COLGROUP=new n.dom.TagName("COLGROUP");n.dom.TagName.COMMAND=new n.dom.TagName("COMMAND");n.dom.TagName.DATA=new n.dom.TagName("DATA");n.dom.TagName.DATALIST=new n.dom.TagName("DATALIST");
+n.dom.TagName.DD=new n.dom.TagName("DD");n.dom.TagName.DEL=new n.dom.TagName("DEL");n.dom.TagName.DETAILS=new n.dom.TagName("DETAILS");n.dom.TagName.DFN=new n.dom.TagName("DFN");n.dom.TagName.DIALOG=new n.dom.TagName("DIALOG");n.dom.TagName.DIR=new n.dom.TagName("DIR");n.dom.TagName.DIV=new n.dom.TagName("DIV");n.dom.TagName.DL=new n.dom.TagName("DL");n.dom.TagName.DT=new n.dom.TagName("DT");n.dom.TagName.EM=new n.dom.TagName("EM");n.dom.TagName.EMBED=new n.dom.TagName("EMBED");
+n.dom.TagName.FIELDSET=new n.dom.TagName("FIELDSET");n.dom.TagName.FIGCAPTION=new n.dom.TagName("FIGCAPTION");n.dom.TagName.FIGURE=new n.dom.TagName("FIGURE");n.dom.TagName.FONT=new n.dom.TagName("FONT");n.dom.TagName.FOOTER=new n.dom.TagName("FOOTER");n.dom.TagName.FORM=new n.dom.TagName("FORM");n.dom.TagName.FRAME=new n.dom.TagName("FRAME");n.dom.TagName.FRAMESET=new n.dom.TagName("FRAMESET");n.dom.TagName.H1=new n.dom.TagName("H1");n.dom.TagName.H2=new n.dom.TagName("H2");n.dom.TagName.H3=new n.dom.TagName("H3");
+n.dom.TagName.H4=new n.dom.TagName("H4");n.dom.TagName.H5=new n.dom.TagName("H5");n.dom.TagName.H6=new n.dom.TagName("H6");n.dom.TagName.HEAD=new n.dom.TagName("HEAD");n.dom.TagName.HEADER=new n.dom.TagName("HEADER");n.dom.TagName.HGROUP=new n.dom.TagName("HGROUP");n.dom.TagName.HR=new n.dom.TagName("HR");n.dom.TagName.HTML=new n.dom.TagName("HTML");n.dom.TagName.I=new n.dom.TagName("I");n.dom.TagName.IFRAME=new n.dom.TagName("IFRAME");n.dom.TagName.IMG=new n.dom.TagName("IMG");
+n.dom.TagName.INPUT=new n.dom.TagName("INPUT");n.dom.TagName.INS=new n.dom.TagName("INS");n.dom.TagName.ISINDEX=new n.dom.TagName("ISINDEX");n.dom.TagName.KBD=new n.dom.TagName("KBD");n.dom.TagName.KEYGEN=new n.dom.TagName("KEYGEN");n.dom.TagName.LABEL=new n.dom.TagName("LABEL");n.dom.TagName.LEGEND=new n.dom.TagName("LEGEND");n.dom.TagName.LI=new n.dom.TagName("LI");n.dom.TagName.LINK=new n.dom.TagName("LINK");n.dom.TagName.MAIN=new n.dom.TagName("MAIN");n.dom.TagName.MAP=new n.dom.TagName("MAP");
+n.dom.TagName.MARK=new n.dom.TagName("MARK");n.dom.TagName.MATH=new n.dom.TagName("MATH");n.dom.TagName.MENU=new n.dom.TagName("MENU");n.dom.TagName.MENUITEM=new n.dom.TagName("MENUITEM");n.dom.TagName.META=new n.dom.TagName("META");n.dom.TagName.METER=new n.dom.TagName("METER");n.dom.TagName.NAV=new n.dom.TagName("NAV");n.dom.TagName.NOFRAMES=new n.dom.TagName("NOFRAMES");n.dom.TagName.NOSCRIPT=new n.dom.TagName("NOSCRIPT");n.dom.TagName.OBJECT=new n.dom.TagName("OBJECT");n.dom.TagName.OL=new n.dom.TagName("OL");
+n.dom.TagName.OPTGROUP=new n.dom.TagName("OPTGROUP");n.dom.TagName.OPTION=new n.dom.TagName("OPTION");n.dom.TagName.OUTPUT=new n.dom.TagName("OUTPUT");n.dom.TagName.P=new n.dom.TagName("P");n.dom.TagName.PARAM=new n.dom.TagName("PARAM");n.dom.TagName.PICTURE=new n.dom.TagName("PICTURE");n.dom.TagName.PRE=new n.dom.TagName("PRE");n.dom.TagName.PROGRESS=new n.dom.TagName("PROGRESS");n.dom.TagName.Q=new n.dom.TagName("Q");n.dom.TagName.RP=new n.dom.TagName("RP");n.dom.TagName.RT=new n.dom.TagName("RT");
+n.dom.TagName.RTC=new n.dom.TagName("RTC");n.dom.TagName.RUBY=new n.dom.TagName("RUBY");n.dom.TagName.S=new n.dom.TagName("S");n.dom.TagName.SAMP=new n.dom.TagName("SAMP");n.dom.TagName.SCRIPT=new n.dom.TagName("SCRIPT");n.dom.TagName.SECTION=new n.dom.TagName("SECTION");n.dom.TagName.SELECT=new n.dom.TagName("SELECT");n.dom.TagName.SMALL=new n.dom.TagName("SMALL");n.dom.TagName.SOURCE=new n.dom.TagName("SOURCE");n.dom.TagName.SPAN=new n.dom.TagName("SPAN");n.dom.TagName.STRIKE=new n.dom.TagName("STRIKE");
+n.dom.TagName.STRONG=new n.dom.TagName("STRONG");n.dom.TagName.STYLE=new n.dom.TagName("STYLE");n.dom.TagName.SUB=new n.dom.TagName("SUB");n.dom.TagName.SUMMARY=new n.dom.TagName("SUMMARY");n.dom.TagName.SUP=new n.dom.TagName("SUP");n.dom.TagName.SVG=new n.dom.TagName("SVG");n.dom.TagName.TABLE=new n.dom.TagName("TABLE");n.dom.TagName.TBODY=new n.dom.TagName("TBODY");n.dom.TagName.TD=new n.dom.TagName("TD");n.dom.TagName.TEMPLATE=new n.dom.TagName("TEMPLATE");n.dom.TagName.TEXTAREA=new n.dom.TagName("TEXTAREA");
+n.dom.TagName.TFOOT=new n.dom.TagName("TFOOT");n.dom.TagName.TH=new n.dom.TagName("TH");n.dom.TagName.THEAD=new n.dom.TagName("THEAD");n.dom.TagName.TIME=new n.dom.TagName("TIME");n.dom.TagName.TITLE=new n.dom.TagName("TITLE");n.dom.TagName.TR=new n.dom.TagName("TR");n.dom.TagName.TRACK=new n.dom.TagName("TRACK");n.dom.TagName.TT=new n.dom.TagName("TT");n.dom.TagName.U=new n.dom.TagName("U");n.dom.TagName.UL=new n.dom.TagName("UL");n.dom.TagName.VAR=new n.dom.TagName("VAR");n.dom.TagName.VIDEO=new n.dom.TagName("VIDEO");
+n.dom.TagName.WBR=new n.dom.TagName("WBR");n.dom.tags={};n.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};n.dom.tags.isVoidTag=function(b){return!0===n.dom.tags.VOID_TAGS_[b]};n.string.TypedString=function(){};n.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=n.string.Const.TYPE_MARKER_};n.string.Const.prototype.implementsGoogStringTypedString=!0;n.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};
+n.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};n.string.Const.unwrap=function(b){if(b instanceof n.string.Const&&b.constructor===n.string.Const&&b.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===n.string.Const.TYPE_MARKER_)return b.stringConstValueWithSecurityContract__googStringSecurityPrivate_;n.asserts.fail("expected object of type Const, got '"+b+"'");return"type_error:Const"};
+n.string.Const.from=function(b){return n.string.Const.create__googStringSecurityPrivate_(b)};n.string.Const.TYPE_MARKER_={};n.string.Const.create__googStringSecurityPrivate_=function(b){var c=new n.string.Const;c.stringConstValueWithSecurityContract__googStringSecurityPrivate_=b;return c};n.string.Const.EMPTY=n.string.Const.from("");n.html={};n.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeScript.prototype.implementsGoogStringTypedString=!0;n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.SafeScript.fromConstant=function(b){b=n.string.Const.unwrap(b);return 0===b.length?n.html.SafeScript.EMPTY:n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeScript.fromConstantAndArgs=function(b,c){for(var d=[],e=1;e<arguments.length;e++)d.push(n.html.SafeScript.stringify_(arguments[e]));return n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+n.string.Const.unwrap(b)+")("+d.join(", ")+");")};n.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};
+n.DEBUG&&(n.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});
+n.html.SafeScript.unwrap=function(b){if(b instanceof n.html.SafeScript&&b.constructor===n.html.SafeScript&&b.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeScriptWrappedValue_;n.asserts.fail("expected object of type SafeScript, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeScript"};n.html.SafeScript.stringify_=function(b){return JSON.stringify(b).replace(/</g,"\\x3c")};
+n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(b)};n.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=b;return this};n.html.SafeScript.EMPTY=n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");n.fs={};n.fs.url={};n.fs.url.createObjectUrl=function(b){return n.fs.url.getUrlObject_().createObjectURL(b)};n.fs.url.revokeObjectUrl=function(b){n.fs.url.getUrlObject_().revokeObjectURL(b)};n.fs.url.getUrlObject_=function(){var b=n.fs.url.findUrlObject_();if(null!=b)return b;throw Error("This browser doesn't seem to support blob URLs");};
+n.fs.url.findUrlObject_=function(){return n.isDef(n.global.URL)&&n.isDef(n.global.URL.createObjectURL)?n.global.URL:n.isDef(n.global.webkitURL)&&n.isDef(n.global.webkitURL.createObjectURL)?n.global.webkitURL:n.isDef(n.global.createObjectURL)?n.global:null};n.fs.url.browserSupportsObjectUrls=function(){return null!=n.fs.url.findUrlObject_()};n.i18n={};n.i18n.bidi={};n.i18n.bidi.FORCE_RTL=!1;
+n.i18n.bidi.IS_RTL=n.i18n.bidi.FORCE_RTL||("ar"==n.LOCALE.substring(0,2).toLowerCase()||"fa"==n.LOCALE.substring(0,2).toLowerCase()||"he"==n.LOCALE.substring(0,2).toLowerCase()||"iw"==n.LOCALE.substring(0,2).toLowerCase()||"ps"==n.LOCALE.substring(0,2).toLowerCase()||"sd"==n.LOCALE.substring(0,2).toLowerCase()||"ug"==n.LOCALE.substring(0,2).toLowerCase()||"ur"==n.LOCALE.substring(0,2).toLowerCase()||"yi"==n.LOCALE.substring(0,2).toLowerCase())&&(2==n.LOCALE.length||"-"==n.LOCALE.substring(2,3)||"_"==
+n.LOCALE.substring(2,3))||3<=n.LOCALE.length&&"ckb"==n.LOCALE.substring(0,3).toLowerCase()&&(3==n.LOCALE.length||"-"==n.LOCALE.substring(3,4)||"_"==n.LOCALE.substring(3,4));n.i18n.bidi.Format={LRE:"\u202a",RLE:"\u202b",PDF:"\u202c",LRM:"\u200e",RLM:"\u200f"};n.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};n.i18n.bidi.RIGHT="right";n.i18n.bidi.LEFT="left";n.i18n.bidi.I18N_RIGHT=n.i18n.bidi.IS_RTL?n.i18n.bidi.LEFT:n.i18n.bidi.RIGHT;n.i18n.bidi.I18N_LEFT=n.i18n.bidi.IS_RTL?n.i18n.bidi.RIGHT:n.i18n.bidi.LEFT;
+n.i18n.bidi.toDir=function(b){return"number"==typeof b?0<b?n.i18n.bidi.Dir.LTR:0>b?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.NEUTRAL:null==b?null:b?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.LTR};n.i18n.bidi.ltrChars_="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";n.i18n.bidi.rtlChars_="\u0591-\u06ef\u06fa-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc";n.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;
+n.i18n.bidi.stripHtmlIfNeeded_=function(b,c){return c?b.replace(n.i18n.bidi.htmlSkipReg_,""):b};n.i18n.bidi.rtlCharReg_=new RegExp("["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.ltrCharReg_=new RegExp("["+n.i18n.bidi.ltrChars_+"]");n.i18n.bidi.hasAnyRtl=function(b,c){return n.i18n.bidi.rtlCharReg_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.hasRtlChar=n.i18n.bidi.hasAnyRtl;n.i18n.bidi.hasAnyLtr=function(b){return n.i18n.bidi.ltrCharReg_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,void 0))};
+n.i18n.bidi.ltrRe_=new RegExp("^["+n.i18n.bidi.ltrChars_+"]");n.i18n.bidi.rtlRe_=new RegExp("^["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.isRtlChar=function(b){return n.i18n.bidi.rtlRe_.test(b)};n.i18n.bidi.isLtrChar=function(b){return n.i18n.bidi.ltrRe_.test(b)};n.i18n.bidi.isNeutralChar=function(b){return!n.i18n.bidi.isLtrChar(b)&&!n.i18n.bidi.isRtlChar(b)};n.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+n.i18n.bidi.rtlChars_+"]*["+n.i18n.bidi.ltrChars_+"]");
+n.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+n.i18n.bidi.ltrChars_+"]*["+n.i18n.bidi.rtlChars_+"]");n.i18n.bidi.startsWithRtl=function(b,c){return n.i18n.bidi.rtlDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isRtlText=n.i18n.bidi.startsWithRtl;n.i18n.bidi.startsWithLtr=function(b,c){return n.i18n.bidi.ltrDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isLtrText=n.i18n.bidi.startsWithLtr;n.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/;
+n.i18n.bidi.isNeutralText=function(b,c){b=n.i18n.bidi.stripHtmlIfNeeded_(b,c);return n.i18n.bidi.isRequiredLtrRe_.test(b)||!n.i18n.bidi.hasAnyLtr(b)&&!n.i18n.bidi.hasAnyRtl(b)};n.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+n.i18n.bidi.ltrChars_+"][^"+n.i18n.bidi.rtlChars_+"]*$");n.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+n.i18n.bidi.rtlChars_+"][^"+n.i18n.bidi.ltrChars_+"]*$");n.i18n.bidi.endsWithLtr=function(b,c){return n.i18n.bidi.ltrExitDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};
+n.i18n.bidi.isLtrExitText=n.i18n.bidi.endsWithLtr;n.i18n.bidi.endsWithRtl=function(b,c){return n.i18n.bidi.rtlExitDirCheckRe_.test(n.i18n.bidi.stripHtmlIfNeeded_(b,c))};n.i18n.bidi.isRtlExitText=n.i18n.bidi.endsWithRtl;n.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;n.i18n.bidi.isRtlLanguage=function(b){return n.i18n.bidi.rtlLocalesRe_.test(b)};n.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;
+n.i18n.bidi.guardBracketInText=function(b,c){c=(void 0===c?n.i18n.bidi.hasAnyRtl(b):c)?n.i18n.bidi.Format.RLM:n.i18n.bidi.Format.LRM;return b.replace(n.i18n.bidi.bracketGuardTextRe_,c+"$&"+c)};n.i18n.bidi.enforceRtlInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+b+"</span>"};n.i18n.bidi.enforceRtlInText=function(b){return n.i18n.bidi.Format.RLE+b+n.i18n.bidi.Format.PDF};
+n.i18n.bidi.enforceLtrInHtml=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+b+"</span>"};n.i18n.bidi.enforceLtrInText=function(b){return n.i18n.bidi.Format.LRE+b+n.i18n.bidi.Format.PDF};n.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;n.i18n.bidi.leftRe_=/left/gi;n.i18n.bidi.rightRe_=/right/gi;n.i18n.bidi.tempRe_=/%%%%/g;
+n.i18n.bidi.mirrorCSS=function(b){return b.replace(n.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(n.i18n.bidi.leftRe_,"%%%%").replace(n.i18n.bidi.rightRe_,n.i18n.bidi.LEFT).replace(n.i18n.bidi.tempRe_,n.i18n.bidi.RIGHT)};n.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g;n.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g;n.i18n.bidi.normalizeHebrewQuote=function(b){return b.replace(n.i18n.bidi.doubleQuoteSubstituteRe_,"$1\u05f4").replace(n.i18n.bidi.singleQuoteSubstituteRe_,"$1\u05f3")};
+n.i18n.bidi.wordSeparatorRe_=/\s+/;n.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/;n.i18n.bidi.rtlDetectionThreshold_=.4;
+n.i18n.bidi.estimateDirection=function(b,c){var d=0,e=0,f=!1;b=n.i18n.bidi.stripHtmlIfNeeded_(b,c).split(n.i18n.bidi.wordSeparatorRe_);for(c=0;c<b.length;c++){var g=b[c];n.i18n.bidi.startsWithRtl(g)?(d++,e++):n.i18n.bidi.isRequiredLtrRe_.test(g)?f=!0:n.i18n.bidi.hasAnyLtr(g)?e++:n.i18n.bidi.hasNumeralsRe_.test(g)&&(f=!0)}return 0==e?f?n.i18n.bidi.Dir.LTR:n.i18n.bidi.Dir.NEUTRAL:d/e>n.i18n.bidi.rtlDetectionThreshold_?n.i18n.bidi.Dir.RTL:n.i18n.bidi.Dir.LTR};
+n.i18n.bidi.detectRtlDirectionality=function(b,c){return n.i18n.bidi.estimateDirection(b,c)==n.i18n.bidi.Dir.RTL};n.i18n.bidi.setElementDirAndAlign=function(b,c){b&&(c=n.i18n.bidi.toDir(c))&&(b.style.textAlign=c==n.i18n.bidi.Dir.RTL?n.i18n.bidi.RIGHT:n.i18n.bidi.LEFT,b.dir=c==n.i18n.bidi.Dir.RTL?"rtl":"ltr")};n.i18n.bidi.setElementDirByTextDirectionality=function(b,c){switch(n.i18n.bidi.estimateDirection(c)){case n.i18n.bidi.Dir.LTR:b.dir="ltr";break;case n.i18n.bidi.Dir.RTL:b.dir="rtl";break;default:b.removeAttribute("dir")}};
+n.i18n.bidi.DirectionalString=function(){};n.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;n.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};
+n.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;n.html.TrustedResourceUrl.prototype.getDirection=function(){return n.i18n.bidi.Dir.LTR};n.DEBUG&&(n.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});
+n.html.TrustedResourceUrl.unwrap=function(b){if(b instanceof n.html.TrustedResourceUrl&&b.constructor===n.html.TrustedResourceUrl&&b.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;n.asserts.fail("expected object of type TrustedResourceUrl, got '"+b+"' of type "+n.typeOf(b));return"type_error:TrustedResourceUrl"};
+n.html.TrustedResourceUrl.format=function(b,c){var d=n.string.Const.unwrap(b);if(!n.html.TrustedResourceUrl.BASE_URL_.test(d))throw Error("Invalid TrustedResourceUrl format: "+d);b=d.replace(n.html.TrustedResourceUrl.FORMAT_MARKER_,function(b,f){if(!Object.prototype.hasOwnProperty.call(c,f))throw Error('Found marker, "'+f+'", in format string, "'+d+'", but no valid label mapping found in args: '+JSON.stringify(c));b=c[f];return b instanceof n.string.Const?n.string.Const.unwrap(b):encodeURIComponent(String(b))});
+return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g;n.html.TrustedResourceUrl.BASE_URL_=/^(?:https:)?\/\/[0-9a-z.:[\]-]+\/|^\/[^\/\\]|^about:blank#/i;
+n.html.TrustedResourceUrl.formatWithParams=function(b,c,d){b=n.html.TrustedResourceUrl.format(b,c);b=n.html.TrustedResourceUrl.unwrap(b);c=/\?/.test(b)?"&":"?";for(var e in d)for(var f=n.isArray(d[e])?d[e]:[d[e]],g=0;g<f.length;g++)null!=f[g]&&(b+=c+encodeURIComponent(e)+"="+encodeURIComponent(String(f[g])),c="&");return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.TrustedResourceUrl.fromConstant=function(b){return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n.string.Const.unwrap(b))};
+n.html.TrustedResourceUrl.fromConstants=function(b){for(var c="",d=0;d<b.length;d++)c+=n.string.Const.unwrap(b[d]);return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};n.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new n.html.TrustedResourceUrl;c.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=b;return c};n.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";n.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;n.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};n.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;
+n.html.SafeUrl.prototype.getDirection=function(){return n.i18n.bidi.Dir.LTR};n.DEBUG&&(n.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});
+n.html.SafeUrl.unwrap=function(b){if(b instanceof n.html.SafeUrl&&b.constructor===n.html.SafeUrl&&b.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;n.asserts.fail("expected object of type SafeUrl, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeUrl"};n.html.SafeUrl.fromConstant=function(b){return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(n.string.Const.unwrap(b))};
+n.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp|3gpp2|aac|midi|mp4|mpeg|ogg|x-m4a|x-wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))$/i;n.html.SafeUrl.fromBlob=function(b){b=n.html.SAFE_MIME_TYPE_PATTERN_.test(b.type)?n.fs.url.createObjectUrl(b):n.html.SafeUrl.INNOCUOUS_STRING;return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i;
+n.html.SafeUrl.fromDataUrl=function(b){var c=b.match(n.html.DATA_URL_PATTERN_);c=c&&n.html.SAFE_MIME_TYPE_PATTERN_.test(c[1]);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c?b:n.html.SafeUrl.INNOCUOUS_STRING)};n.html.SafeUrl.fromTelUrl=function(b){n.string.caseInsensitiveStartsWith(b)||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeUrl.fromTrustedResourceUrl=function(b){return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(n.html.TrustedResourceUrl.unwrap(b))};
+n.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;n.html.SafeUrl.sanitize=function(b){if(b instanceof n.html.SafeUrl)return b;b=b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);n.html.SAFE_URL_PATTERN_.test(b)||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeUrl.sanitizeAssertUnchanged=function(b){if(b instanceof n.html.SafeUrl)return b;b=b.implementsGoogStringTypedString?b.getTypedStringValue():String(b);n.asserts.assert(n.html.SAFE_URL_PATTERN_.test(b))||(b=n.html.SafeUrl.INNOCUOUS_STRING);return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(b){var c=new n.html.SafeUrl;c.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;return c};n.html.SafeUrl.ABOUT_BLANK=n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");n.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeStyle.fromConstant=function(b){b=n.string.Const.unwrap(b);if(0===b.length)return n.html.SafeStyle.EMPTY;n.html.SafeStyle.checkStyle_(b);n.asserts.assert(n.string.endsWith(b,";"),"Last character of style string is not ';': "+b);n.asserts.assert(n.string.contains(b,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+b);return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};
+n.html.SafeStyle.checkStyle_=function(b){n.asserts.assert(!/[<>]/.test(b),"Forbidden characters in style string: "+b)};n.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};n.DEBUG&&(n.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});
+n.html.SafeStyle.unwrap=function(b){if(b instanceof n.html.SafeStyle&&b.constructor===n.html.SafeStyle&&b.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleWrappedValue_;n.asserts.fail("expected object of type SafeStyle, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeStyle"};n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(b)};
+n.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=b;return this};n.html.SafeStyle.EMPTY=n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");n.html.SafeStyle.INNOCUOUS_STRING="zClosurez";
+n.html.SafeStyle.create=function(b){var c="",d;for(d in b){if(!/^[-_a-zA-Z0-9]+$/.test(d))throw Error("Name allows only [-_a-zA-Z0-9], got: "+d);var e=b[d];null!=e&&(e=n.isArray(e)?n.array.map(e,n.html.SafeStyle.sanitizePropertyValue_).join(" "):n.html.SafeStyle.sanitizePropertyValue_(e),c+=d+":"+e+";")}if(!c)return n.html.SafeStyle.EMPTY;n.html.SafeStyle.checkStyle_(c);return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
+n.html.SafeStyle.sanitizePropertyValue_=function(b){if(b instanceof n.html.SafeUrl)return'url("'+n.html.SafeUrl.unwrap(b).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';b=b instanceof n.string.Const?n.string.Const.unwrap(b):n.html.SafeStyle.sanitizePropertyValueString_(String(b));n.asserts.assert(!/[{;}]/.test(b),"Value does not allow [{;}].");return b};
+n.html.SafeStyle.sanitizePropertyValueString_=function(b){var c=b.replace(n.html.SafeUrl.FUNCTIONS_RE_,"$1").replace(n.html.SafeUrl.URL_RE_,"url");return n.html.SafeStyle.VALUE_RE_.test(c)?n.html.SafeStyle.hasBalancedQuotes_(b)?n.html.SafeStyle.sanitizeUrl_(b):(n.asserts.fail("String value requires balanced quotes, got: "+b),n.html.SafeStyle.INNOCUOUS_STRING):(n.asserts.fail("String value allows only "+n.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+b),n.html.SafeStyle.INNOCUOUS_STRING)};
+n.html.SafeStyle.hasBalancedQuotes_=function(b){for(var c=!0,d=!0,e=0;e<b.length;e++){var f=b.charAt(e);"'"==f&&d?c=!c:'"'==f&&c&&(d=!d)}return c&&d};n.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9]";n.html.SafeStyle.VALUE_RE_=new RegExp("^"+n.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$");n.html.SafeUrl.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;n.html.SafeUrl.FUNCTIONS_RE_=/\b(hsl|hsla|rgb|rgba|(rotate|scale|translate)(X|Y|Z|3d)?)\([-0-9a-z.%, ]+\)/g;
+n.html.SafeStyle.sanitizeUrl_=function(b){return b.replace(n.html.SafeUrl.URL_RE_,function(b,d,e,f){var c="";e=e.replace(/^(['"])(.*)\1$/,function(b,d,e){c=d;return e});b=n.html.SafeUrl.sanitize(e).getTypedStringValue();return d+c+b+c+f})};n.html.SafeStyle.concat=function(b){var c="",d=function(b){n.isArray(b)?n.array.forEach(b,d):c+=n.html.SafeStyle.unwrap(b)};n.array.forEach(arguments,d);return c?n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c):n.html.SafeStyle.EMPTY};n.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};n.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};
+n.html.SafeStyleSheet.createRule=function(b,c){if(n.string.contains(b,"<"))throw Error("Selector does not allow '<', got: "+b);var d=b.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(d))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+b);if(!n.html.SafeStyleSheet.hasBalancedBrackets_(d))throw Error("() and [] in selector must be balanced, got: "+b);c instanceof n.html.SafeStyle||(c=n.html.SafeStyle.create(c));
+b=b+"{"+n.html.SafeStyle.unwrap(c)+"}";return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeStyleSheet.hasBalancedBrackets_=function(b){for(var c={"(":")","[":"]"},d=[],e=0;e<b.length;e++){var f=b[e];if(c[f])d.push(c[f]);else if(n.object.contains(c,f)&&d.pop()!=f)return!1}return 0==d.length};n.html.SafeStyleSheet.concat=function(b){var c="",d=function(b){n.isArray(b)?n.array.forEach(b,d):c+=n.html.SafeStyleSheet.unwrap(b)};n.array.forEach(arguments,d);return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
+n.html.SafeStyleSheet.fromConstant=function(b){b=n.string.Const.unwrap(b);if(0===b.length)return n.html.SafeStyleSheet.EMPTY;n.asserts.assert(!n.string.contains(b,"<"),"Forbidden '<' character in style sheet string: "+b);return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};n.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};
+n.DEBUG&&(n.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});
+n.html.SafeStyleSheet.unwrap=function(b){if(b instanceof n.html.SafeStyleSheet&&b.constructor===n.html.SafeStyleSheet&&b.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;n.asserts.fail("expected object of type SafeStyleSheet, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeStyleSheet"};
+n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(b){return(new n.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(b)};n.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=b;return this};n.html.SafeStyleSheet.EMPTY=n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");n.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};n.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;n.html.SafeHtml.prototype.getDirection=function(){return this.dir_};n.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;n.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};
+n.DEBUG&&(n.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});n.html.SafeHtml.unwrap=function(b){if(b instanceof n.html.SafeHtml&&b.constructor===n.html.SafeHtml&&b.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return b.privateDoNotAccessOrElseSafeHtmlWrappedValue_;n.asserts.fail("expected object of type SafeHtml, got '"+b+"' of type "+n.typeOf(b));return"type_error:SafeHtml"};
+n.html.SafeHtml.htmlEscape=function(b){if(b instanceof n.html.SafeHtml)return b;var c=null;b.implementsGoogI18nBidiDirectionalString&&(c=b.getDirection());return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.htmlEscape(b.implementsGoogStringTypedString?b.getTypedStringValue():String(b)),c)};
+n.html.SafeHtml.htmlEscapePreservingNewlines=function(b){if(b instanceof n.html.SafeHtml)return b;b=n.html.SafeHtml.htmlEscape(b);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.newLineToBr(n.html.SafeHtml.unwrap(b)),b.getDirection())};
+n.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(b){if(b instanceof n.html.SafeHtml)return b;b=n.html.SafeHtml.htmlEscape(b);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n.string.whitespaceEscape(n.html.SafeHtml.unwrap(b)),b.getDirection())};n.html.SafeHtml.from=n.html.SafeHtml.htmlEscape;n.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;n.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};
+n.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};n.html.SafeHtml.create=function(b,c,d){n.html.SafeHtml.verifyTagName(String(b));return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(b),c,d)};
+n.html.SafeHtml.verifyTagName=function(b){if(!n.html.SafeHtml.VALID_NAMES_IN_TAG_.test(b))throw Error("Invalid tag name <"+b+">.");if(b.toUpperCase()in n.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+b+"> is not allowed for SafeHtml.");};
+n.html.SafeHtml.createIframe=function(b,c,d,e){b&&n.html.TrustedResourceUrl.unwrap(b);var f={};f.src=b||null;f.srcdoc=c&&n.html.SafeHtml.unwrap(c);b=n.html.SafeHtml.combineAttributes(f,{sandbox:""},d);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};
+n.html.SafeHtml.createSandboxIframe=function(b,c,d,e){if(!n.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var f={};f.src=b?n.html.SafeUrl.unwrap(n.html.SafeUrl.sanitize(b)):null;f.srcdoc=c||null;f.sandbox="";b=n.html.SafeHtml.combineAttributes(f,{},d);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",b,e)};n.html.SafeHtml.canUseSandboxIframe=function(){return n.global.HTMLIFrameElement&&"sandbox"in n.global.HTMLIFrameElement.prototype};
+n.html.SafeHtml.createScriptSrc=function(b,c){n.html.TrustedResourceUrl.unwrap(b);b=n.html.SafeHtml.combineAttributes({src:b},{},c);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",b)};
+n.html.SafeHtml.createScript=function(b,c){for(var d in c){var e=d.toLowerCase();if("language"==e||"src"==e||"text"==e||"type"==e)throw Error('Cannot set "'+e+'" attribute');}d="";b=n.array.concat(b);for(e=0;e<b.length;e++)d+=n.html.SafeScript.unwrap(b[e]);b=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,n.i18n.bidi.Dir.NEUTRAL);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",c,b)};
+n.html.SafeHtml.createStyle=function(b,c){c=n.html.SafeHtml.combineAttributes({type:"text/css"},{},c);var d="";b=n.array.concat(b);for(var e=0;e<b.length;e++)d+=n.html.SafeStyleSheet.unwrap(b[e]);b=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,n.i18n.bidi.Dir.NEUTRAL);return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",c,b)};
+n.html.SafeHtml.createMetaRefresh=function(b,c){b=n.html.SafeUrl.unwrap(n.html.SafeUrl.sanitize(b));(n.labs.userAgent.browser.isIE()||n.labs.userAgent.browser.isEdge())&&n.string.contains(b,";")&&(b="'"+b.replace(/'/g,"%27")+"'");return n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(c||0)+"; url="+b})};
+n.html.SafeHtml.getAttrNameAndValue_=function(b,c,d){if(d instanceof n.string.Const)d=n.string.Const.unwrap(d);else if("style"==c.toLowerCase())d=n.html.SafeHtml.getStyleValue_(d);else{if(/^on/i.test(c))throw Error('Attribute "'+c+'" requires goog.string.Const value, "'+d+'" given.');if(c.toLowerCase()in n.html.SafeHtml.URL_ATTRIBUTES_)if(d instanceof n.html.TrustedResourceUrl)d=n.html.TrustedResourceUrl.unwrap(d);else if(d instanceof n.html.SafeUrl)d=n.html.SafeUrl.unwrap(d);else if(n.isString(d))d=
+n.html.SafeUrl.sanitize(d).getTypedStringValue();else throw Error('Attribute "'+c+'" on tag "'+b+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+d+'" given.');}d.implementsGoogStringTypedString&&(d=d.getTypedStringValue());n.asserts.assert(n.isString(d)||n.isNumber(d),"String or number value expected, got "+typeof d+" with value: "+d);return c+'="'+n.string.htmlEscape(String(d))+'"'};
+n.html.SafeHtml.getStyleValue_=function(b){if(!n.isObject(b))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof b+" given: "+b);b instanceof n.html.SafeStyle||(b=n.html.SafeStyle.create(b));return n.html.SafeStyle.unwrap(b)};n.html.SafeHtml.createWithDir=function(b,c,d,e){c=n.html.SafeHtml.create(c,d,e);c.dir_=b;return c};
+n.html.SafeHtml.concat=function(b){var c=n.i18n.bidi.Dir.NEUTRAL,d="",e=function(b){n.isArray(b)?n.array.forEach(b,e):(b=n.html.SafeHtml.htmlEscape(b),d+=n.html.SafeHtml.unwrap(b),b=b.getDirection(),c==n.i18n.bidi.Dir.NEUTRAL?c=b:b!=n.i18n.bidi.Dir.NEUTRAL&&c!=b&&(c=null))};n.array.forEach(arguments,e);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,c)};n.html.SafeHtml.concatWithDir=function(b,c){var d=n.html.SafeHtml.concat(n.array.slice(arguments,1));d.dir_=b;return d};
+n.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(b,c){return(new n.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(b,c)};n.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(b,c){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=b;this.dir_=c;return this};
+n.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(b,c,d){var e=null;var f="<"+b+n.html.SafeHtml.stringifyAttributes(b,c);n.isDefAndNotNull(d)?n.isArray(d)||(d=[d]):d=[];n.dom.tags.isVoidTag(b.toLowerCase())?(n.asserts.assert(!d.length,"Void tag <"+b+"> does not allow content."),f+=">"):(e=n.html.SafeHtml.concat(d),f+=">"+n.html.SafeHtml.unwrap(e)+"</"+b+">",e=e.getDirection());(b=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(b)?n.i18n.bidi.Dir.NEUTRAL:null);return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(f,
+e)};n.html.SafeHtml.stringifyAttributes=function(b,c){var d="";if(c)for(var e in c){if(!n.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error('Invalid attribute name "'+e+'".');var f=c[e];n.isDefAndNotNull(f)&&(d+=" "+n.html.SafeHtml.getAttrNameAndValue_(b,e,f))}return d};
+n.html.SafeHtml.combineAttributes=function(b,c,d){var e={},f;for(f in b)n.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=b[f];for(f in c)n.asserts.assert(f.toLowerCase()==f,"Must be lower case"),e[f]=c[f];for(f in d){var g=f.toLowerCase();if(g in b)throw Error('Cannot override "'+g+'" attribute, got "'+f+'" with value "'+d[f]+'"');g in c&&delete e[g];e[f]=d[f]}return e};n.html.SafeHtml.DOCTYPE_HTML=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",n.i18n.bidi.Dir.NEUTRAL);
+n.html.SafeHtml.EMPTY=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",n.i18n.bidi.Dir.NEUTRAL);n.html.SafeHtml.BR=n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",n.i18n.bidi.Dir.NEUTRAL);n.dom.safe={};n.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};n.dom.safe.insertAdjacentHtml=function(b,c,d){b.insertAdjacentHTML(c,n.html.SafeHtml.unwrap(d))};n.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};
+n.dom.safe.setInnerHtml=function(b,c){if(n.asserts.ENABLE_ASSERTS&&n.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[b.tagName.toUpperCase()])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+b.tagName+".");b.innerHTML=n.html.SafeHtml.unwrap(c)};n.dom.safe.setOuterHtml=function(b,c){b.outerHTML=n.html.SafeHtml.unwrap(c)};
+n.dom.safe.setFormElementAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLFormElement(b).action=n.html.SafeUrl.unwrap(c)};n.dom.safe.setButtonFormAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLButtonElement(b).formAction=n.html.SafeUrl.unwrap(c)};
+n.dom.safe.setInputFormAction=function(b,c){c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);n.dom.asserts.assertIsHTMLInputElement(b).formAction=n.html.SafeUrl.unwrap(c)};n.dom.safe.setStyle=function(b,c){b.style.cssText=n.html.SafeStyle.unwrap(c)};n.dom.safe.documentWrite=function(b,c){b.write(n.html.SafeHtml.unwrap(c))};
+n.dom.safe.setAnchorHref=function(b,c){n.dom.asserts.assertIsHTMLAnchorElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=n.html.SafeUrl.unwrap(c)};n.dom.safe.setImageSrc=function(b,c){n.dom.asserts.assertIsHTMLImageElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.src=n.html.SafeUrl.unwrap(c)};
+n.dom.safe.setVideoSrc=function(b,c){n.dom.asserts.assertIsHTMLVideoElement(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.src=n.html.SafeUrl.unwrap(c)};n.dom.safe.setEmbedSrc=function(b,c){n.dom.asserts.assertIsHTMLEmbedElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setFrameSrc=function(b,c){n.dom.asserts.assertIsHTMLFrameElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};
+n.dom.safe.setIframeSrc=function(b,c){n.dom.asserts.assertIsHTMLIFrameElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setIframeSrcdoc=function(b,c){n.dom.asserts.assertIsHTMLIFrameElement(b);b.srcdoc=n.html.SafeHtml.unwrap(c)};
+n.dom.safe.setLinkHrefAndRel=function(b,c,d){n.dom.asserts.assertIsHTMLLinkElement(b);b.rel=d;n.string.caseInsensitiveContains(d,"stylesheet")?(n.asserts.assert(c instanceof n.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),b.href=n.html.TrustedResourceUrl.unwrap(c)):b.href=c instanceof n.html.TrustedResourceUrl?n.html.TrustedResourceUrl.unwrap(c):c instanceof n.html.SafeUrl?n.html.SafeUrl.unwrap(c):n.html.SafeUrl.sanitizeAssertUnchanged(c).getTypedStringValue()};
+n.dom.safe.setObjectData=function(b,c){n.dom.asserts.assertIsHTMLObjectElement(b);b.data=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setScriptSrc=function(b,c){n.dom.asserts.assertIsHTMLScriptElement(b);b.src=n.html.TrustedResourceUrl.unwrap(c)};n.dom.safe.setScriptContent=function(b,c){n.dom.asserts.assertIsHTMLScriptElement(b);b.text=n.html.SafeScript.unwrap(c)};
+n.dom.safe.setLocationHref=function(b,c){n.dom.asserts.assertIsLocation(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.href=n.html.SafeUrl.unwrap(c)};n.dom.safe.replaceLocation=function(b,c){n.dom.asserts.assertIsLocation(b);c=c instanceof n.html.SafeUrl?c:n.html.SafeUrl.sanitizeAssertUnchanged(c);b.replace(n.html.SafeUrl.unwrap(c))};
+n.dom.safe.openInWindow=function(b,c,d,e,f){b=b instanceof n.html.SafeUrl?b:n.html.SafeUrl.sanitizeAssertUnchanged(b);return(c||window).open(n.html.SafeUrl.unwrap(b),d?n.string.Const.unwrap(d):"",e,f)};n.html.uncheckedconversions={};n.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,null)};
+n.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(c)};
+n.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(b,c){n.asserts.assertString(n.string.Const.unwrap(b),"must provide justification");n.asserts.assert(!n.string.isEmptyOrWhitespace(n.string.Const.unwrap(b)),"must provide non-empty justification");return n.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c)};n.math.Coordinate=function(b,c){this.x=n.isDef(b)?b:0;this.y=n.isDef(c)?c:0};n.math.Coordinate.prototype.clone=function(){return new n.math.Coordinate(this.x,this.y)};n.DEBUG&&(n.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});n.math.Coordinate.prototype.equals=function(b){return b instanceof n.math.Coordinate&&n.math.Coordinate.equals(this,b)};n.math.Coordinate.equals=function(b,c){return b==c?!0:b&&c?b.x==c.x&&b.y==c.y:!1};
+n.math.Coordinate.distance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};n.math.Coordinate.magnitude=function(b){return Math.sqrt(b.x*b.x+b.y*b.y)};n.math.Coordinate.azimuth=function(b){return n.math.angle(0,0,b.x,b.y)};n.math.Coordinate.squaredDistance=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};n.math.Coordinate.difference=function(b,c){return new n.math.Coordinate(b.x-c.x,b.y-c.y)};n.math.Coordinate.sum=function(b,c){return new n.math.Coordinate(b.x+c.x,b.y+c.y)};
+a=n.math.Coordinate.prototype;a.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};a.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};a.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};a.translate=function(b,c){b instanceof n.math.Coordinate?(this.x+=b.x,this.y+=b.y):(this.x+=Number(b),n.isNumber(c)&&(this.y+=c));return this};a.scale=function(b,c){c=n.isNumber(c)?c:b;this.x*=b;this.y*=c;return this};n.math.Size=function(b,c){this.width=b;this.height=c};n.math.Size.equals=function(b,c){return b==c?!0:b&&c?b.width==c.width&&b.height==c.height:!1};n.math.Size.prototype.clone=function(){return new n.math.Size(this.width,this.height)};n.DEBUG&&(n.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});a=n.math.Size.prototype;a.area=function(){return this.width*this.height};a.aspectRatio=function(){return this.width/this.height};a.isEmpty=function(){return!this.area()};
+a.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};a.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};a.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};a.scale=function(b,c){c=n.isNumber(c)?c:b;this.width*=b;this.height*=c;return this};n.dom.ASSUME_QUIRKS_MODE=!1;n.dom.ASSUME_STANDARDS_MODE=!1;n.dom.COMPAT_MODE_KNOWN_=n.dom.ASSUME_QUIRKS_MODE||n.dom.ASSUME_STANDARDS_MODE;n.dom.getDomHelper=function(b){return b?new n.dom.DomHelper(n.dom.getOwnerDocument(b)):n.dom.defaultDomHelper_||(n.dom.defaultDomHelper_=new n.dom.DomHelper)};n.dom.getDocument=function(){return document};n.dom.getElement=function(b){return n.dom.getElementHelper_(document,b)};n.dom.getElementHelper_=function(b,c){return n.isString(c)?b.getElementById(c):c};
+n.dom.getRequiredElement=function(b){return n.dom.getRequiredElementHelper_(document,b)};n.dom.getRequiredElementHelper_=function(b,c){n.asserts.assertString(c);b=n.dom.getElementHelper_(b,c);return b=n.asserts.assertElement(b,"No element found with id: "+c)};n.dom.$=n.dom.getElement;n.dom.getElementsByTagName=function(b,c){return(c||document).getElementsByTagName(String(b))};n.dom.getElementsByTagNameAndClass=function(b,c,d){return n.dom.getElementsByTagNameAndClass_(document,b,c,d)};
+n.dom.getElementByTagNameAndClass=function(b,c,d){return n.dom.getElementByTagNameAndClass_(document,b,c,d)};n.dom.getElementsByClass=function(b,c){var d=c||document;return n.dom.canUseQuerySelector_(d)?d.querySelectorAll("."+b):n.dom.getElementsByTagNameAndClass_(document,"*",b,c)};n.dom.getElementByClass=function(b,c){var d=c||document;return(d.getElementsByClassName?d.getElementsByClassName(b)[0]:n.dom.getElementByTagNameAndClass_(document,"*",b,c))||null};
+n.dom.getRequiredElementByClass=function(b,c){c=n.dom.getElementByClass(b,c);return n.asserts.assert(c,"No element found with className: "+b)};n.dom.canUseQuerySelector_=function(b){return!(!b.querySelectorAll||!b.querySelector)};
+n.dom.getElementsByTagNameAndClass_=function(b,c,d,e){b=e||b;c=c&&"*"!=c?String(c).toUpperCase():"";if(n.dom.canUseQuerySelector_(b)&&(c||d))return b.querySelectorAll(c+(d?"."+d:""));if(d&&b.getElementsByClassName){b=b.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)c==h.nodeName&&(e[f++]=h);e.length=f;return e}return b}b=b.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++)c=h.className,"function"==typeof c.split&&n.array.contains(c.split(/\s+/),d)&&(e[f++]=h);e.length=
+f;return e}return b};n.dom.getElementByTagNameAndClass_=function(b,c,d,e){var f=e||b,g=c&&"*"!=c?String(c).toUpperCase():"";return n.dom.canUseQuerySelector_(f)&&(g||d)?f.querySelector(g+(d?"."+d:"")):n.dom.getElementsByTagNameAndClass_(b,c,d,e)[0]||null};n.dom.$$=n.dom.getElementsByTagNameAndClass;
+n.dom.setProperties=function(b,c){n.object.forEach(c,function(c,e){c&&c.implementsGoogStringTypedString&&(c=c.getTypedStringValue());"style"==e?b.style.cssText=c:"class"==e?b.className=c:"for"==e?b.htmlFor=c:n.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(e)?b.setAttribute(n.dom.DIRECT_ATTRIBUTE_MAP_[e],c):n.string.startsWith(e,"aria-")||n.string.startsWith(e,"data-")?b.setAttribute(e,c):b[e]=c})};
+n.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};n.dom.getViewportSize=function(b){return n.dom.getViewportSize_(b||window)};n.dom.getViewportSize_=function(b){b=b.document;b=n.dom.isCss1CompatMode_(b)?b.documentElement:b.body;return new n.math.Size(b.clientWidth,b.clientHeight)};
+n.dom.getDocumentHeight=function(){return n.dom.getDocumentHeight_(window)};n.dom.getDocumentHeightForWindow=function(b){return n.dom.getDocumentHeight_(b)};
+n.dom.getDocumentHeight_=function(b){var c=b.document,d=0;if(c){d=c.body;var e=c.documentElement;if(!e||!d)return 0;b=n.dom.getViewportSize_(b).height;if(n.dom.isCss1CompatMode_(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;e.clientHeight!=f&&(c=d.scrollHeight,f=d.offsetHeight);d=c>b?c>f?c:f:c<f?c:f}}return d};n.dom.getPageScroll=function(b){return n.dom.getDomHelper((b||n.global||window).document).getDocumentScroll()};
+n.dom.getDocumentScroll=function(){return n.dom.getDocumentScroll_(document)};n.dom.getDocumentScroll_=function(b){var c=n.dom.getDocumentScrollElement_(b);b=n.dom.getWindow_(b);return n.userAgent.IE&&n.userAgent.isVersionOrHigher("10")&&b.pageYOffset!=c.scrollTop?new n.math.Coordinate(c.scrollLeft,c.scrollTop):new n.math.Coordinate(b.pageXOffset||c.scrollLeft,b.pageYOffset||c.scrollTop)};n.dom.getDocumentScrollElement=function(){return n.dom.getDocumentScrollElement_(document)};
+n.dom.getDocumentScrollElement_=function(b){return b.scrollingElement?b.scrollingElement:!n.userAgent.WEBKIT&&n.dom.isCss1CompatMode_(b)?b.documentElement:b.body||b.documentElement};n.dom.getWindow=function(b){return b?n.dom.getWindow_(b):window};n.dom.getWindow_=function(b){return b.parentWindow||b.defaultView};n.dom.createDom=function(b,c,d){return n.dom.createDom_(document,arguments)};
+n.dom.createDom_=function(b,c){var d=String(c[0]),e=c[1];if(!n.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',n.string.htmlEscape(e.name),'"');if(e.type){d.push(' type="',n.string.htmlEscape(e.type),'"');var f={};n.object.extend(f,e);delete f.type;e=f}d.push(">");d=d.join("")}d=b.createElement(d);e&&(n.isString(e)?d.className=e:n.isArray(e)?d.className=e.join(" "):n.dom.setProperties(d,e));2<c.length&&n.dom.append_(b,d,c,2);return d};
+n.dom.append_=function(b,c,d,e){function f(d){d&&c.appendChild(n.isString(d)?b.createTextNode(d):d)}for(;e<d.length;e++){var g=d[e];n.isArrayLike(g)&&!n.dom.isNodeLike(g)?n.array.forEach(n.dom.isNodeList(g)?n.array.toArray(g):g,f):f(g)}};n.dom.$dom=n.dom.createDom;n.dom.createElement=function(b){return n.dom.createElement_(document,b)};n.dom.createElement_=function(b,c){return b.createElement(String(c))};n.dom.createTextNode=function(b){return document.createTextNode(String(b))};
+n.dom.createTable=function(b,c,d){return n.dom.createTable_(document,b,c,!!d)};n.dom.createTable_=function(b,c,d,e){for(var f=n.dom.createElement_(b,"TABLE"),g=f.appendChild(n.dom.createElement_(b,"TBODY")),h=0;h<c;h++){for(var l=n.dom.createElement_(b,"TR"),m=0;m<d;m++){var p=n.dom.createElement_(b,"TD");e&&n.dom.setTextContent(p,n.string.Unicode.NBSP);l.appendChild(p)}g.appendChild(l)}return f};
+n.dom.constHtmlToNode=function(b){var c=n.array.map(arguments,n.string.Const.unwrap);c=n.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(n.string.Const.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),c.join(""));return n.dom.safeHtmlToNode(c)};n.dom.safeHtmlToNode=function(b){return n.dom.safeHtmlToNode_(document,b)};
+n.dom.safeHtmlToNode_=function(b,c){var d=n.dom.createElement_(b,"DIV");n.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(n.dom.safe.setInnerHtml(d,n.html.SafeHtml.concat(n.html.SafeHtml.BR,c)),d.removeChild(d.firstChild)):n.dom.safe.setInnerHtml(d,c);return n.dom.childrenToNode_(b,d)};n.dom.childrenToNode_=function(b,c){if(1==c.childNodes.length)return c.removeChild(c.firstChild);for(b=b.createDocumentFragment();c.firstChild;)b.appendChild(c.firstChild);return b};n.dom.isCss1CompatMode=function(){return n.dom.isCss1CompatMode_(document)};
+n.dom.isCss1CompatMode_=function(b){return n.dom.COMPAT_MODE_KNOWN_?n.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==b.compatMode};n.dom.canHaveChildren=function(b){if(b.nodeType!=n.dom.NodeType.ELEMENT)return!1;switch(b.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0};
+n.dom.appendChild=function(b,c){b.appendChild(c)};n.dom.append=function(b,c){n.dom.append_(n.dom.getOwnerDocument(b),b,arguments,1)};n.dom.removeChildren=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};n.dom.insertSiblingBefore=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c)};n.dom.insertSiblingAfter=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};n.dom.insertChildAt=function(b,c,d){b.insertBefore(c,b.childNodes[d]||null)};
+n.dom.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};n.dom.replaceNode=function(b,c){var d=c.parentNode;d&&d.replaceChild(b,c)};n.dom.flattenElement=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=n.dom.NodeType.DOCUMENT_FRAGMENT){if(b.removeNode)return b.removeNode(!1);for(;c=b.firstChild;)d.insertBefore(c,b);return n.dom.removeNode(b)}};
+n.dom.getChildren=function(b){return n.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=b.children?b.children:n.array.filter(b.childNodes,function(b){return b.nodeType==n.dom.NodeType.ELEMENT})};n.dom.getFirstElementChild=function(b){return n.isDef(b.firstElementChild)?b.firstElementChild:n.dom.getNextElementNode_(b.firstChild,!0)};n.dom.getLastElementChild=function(b){return n.isDef(b.lastElementChild)?b.lastElementChild:n.dom.getNextElementNode_(b.lastChild,!1)};
+n.dom.getNextElementSibling=function(b){return n.isDef(b.nextElementSibling)?b.nextElementSibling:n.dom.getNextElementNode_(b.nextSibling,!0)};n.dom.getPreviousElementSibling=function(b){return n.isDef(b.previousElementSibling)?b.previousElementSibling:n.dom.getNextElementNode_(b.previousSibling,!1)};n.dom.getNextElementNode_=function(b,c){for(;b&&b.nodeType!=n.dom.NodeType.ELEMENT;)b=c?b.nextSibling:b.previousSibling;return b};
+n.dom.getNextNode=function(b){if(!b)return null;if(b.firstChild)return b.firstChild;for(;b&&!b.nextSibling;)b=b.parentNode;return b?b.nextSibling:null};n.dom.getPreviousNode=function(b){if(!b)return null;if(!b.previousSibling)return b.parentNode;for(b=b.previousSibling;b&&b.lastChild;)b=b.lastChild;return b};n.dom.isNodeLike=function(b){return n.isObject(b)&&0<b.nodeType};n.dom.isElement=function(b){return n.isObject(b)&&b.nodeType==n.dom.NodeType.ELEMENT};
+n.dom.isWindow=function(b){return n.isObject(b)&&b.window==b};n.dom.getParentElement=function(b){var c;if(n.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY&&!(n.userAgent.IE&&n.userAgent.isVersionOrHigher("9")&&!n.userAgent.isVersionOrHigher("10")&&n.global.SVGElement&&b instanceof n.global.SVGElement)&&(c=b.parentElement))return c;c=b.parentNode;return n.dom.isElement(c)?c:null};
+n.dom.contains=function(b,c){if(!b||!c)return!1;if(b.contains&&c.nodeType==n.dom.NodeType.ELEMENT)return b==c||b.contains(c);if("undefined"!=typeof b.compareDocumentPosition)return b==c||!!(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
+n.dom.compareNodeOrder=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if(n.userAgent.IE&&!n.userAgent.isDocumentModeOrHigher(9)){if(b.nodeType==n.dom.NodeType.DOCUMENT)return-1;if(c.nodeType==n.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==n.dom.NodeType.ELEMENT,e=c.nodeType==n.dom.NodeType.ELEMENT;if(d&&e)return b.sourceIndex-c.sourceIndex;var f=b.parentNode,g=c.parentNode;
+return f==g?n.dom.compareSiblingOrder_(b,c):!d&&n.dom.contains(f,c)?-1*n.dom.compareParentsDescendantNodeIe_(b,c):!e&&n.dom.contains(g,b)?n.dom.compareParentsDescendantNodeIe_(c,b):(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}e=n.dom.getOwnerDocument(b);d=e.createRange();d.selectNode(b);d.collapse(!0);b=e.createRange();b.selectNode(c);b.collapse(!0);return d.compareBoundaryPoints(n.global.Range.START_TO_END,b)};
+n.dom.compareParentsDescendantNodeIe_=function(b,c){var d=b.parentNode;if(d==c)return-1;for(;c.parentNode!=d;)c=c.parentNode;return n.dom.compareSiblingOrder_(c,b)};n.dom.compareSiblingOrder_=function(b,c){for(;c=c.previousSibling;)if(c==b)return-1;return 1};
+n.dom.findCommonAncestor=function(b){var c,d=arguments.length;if(!d)return null;if(1==d)return arguments[0];var e=[],f=Infinity;for(c=0;c<d;c++){for(var g=[],h=arguments[c];h;)g.unshift(h),h=h.parentNode;e.push(g);f=Math.min(f,g.length)}g=null;for(c=0;c<f;c++){h=e[0][c];for(var l=1;l<d;l++)if(h!=e[l][c])return g;g=h}return g};n.dom.getOwnerDocument=function(b){n.asserts.assert(b,"Node cannot be null or undefined.");return b.nodeType==n.dom.NodeType.DOCUMENT?b:b.ownerDocument||b.document};
+n.dom.getFrameContentDocument=function(b){return b.contentDocument||b.contentWindow.document};n.dom.getFrameContentWindow=function(b){try{return b.contentWindow||(b.contentDocument?n.dom.getWindow(b.contentDocument):null)}catch(c){}return null};
+n.dom.setTextContent=function(b,c){n.asserts.assert(null!=b,"goog.dom.setTextContent expects a non-null value for node");if("textContent"in b)b.textContent=c;else if(b.nodeType==n.dom.NodeType.TEXT)b.data=String(c);else if(b.firstChild&&b.firstChild.nodeType==n.dom.NodeType.TEXT){for(;b.lastChild!=b.firstChild;)b.removeChild(b.lastChild);b.firstChild.data=String(c)}else{n.dom.removeChildren(b);var d=n.dom.getOwnerDocument(b);b.appendChild(d.createTextNode(String(c)))}};
+n.dom.getOuterHtml=function(b){n.asserts.assert(null!==b,"goog.dom.getOuterHtml expects a non-null value for element");if("outerHTML"in b)return b.outerHTML;var c=n.dom.getOwnerDocument(b);c=n.dom.createElement_(c,"DIV");c.appendChild(b.cloneNode(!0));return c.innerHTML};n.dom.findNode=function(b,c){var d=[];return n.dom.findNodes_(b,c,d,!0)?d[0]:void 0};n.dom.findNodes=function(b,c){var d=[];n.dom.findNodes_(b,c,d,!1);return d};
+n.dom.findNodes_=function(b,c,d,e){if(null!=b)for(b=b.firstChild;b;){if(c(b)&&(d.push(b),e)||n.dom.findNodes_(b,c,d,e))return!0;b=b.nextSibling}return!1};n.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};n.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\n"};n.dom.isFocusableTabIndex=function(b){return n.dom.hasSpecifiedTabIndex_(b)&&n.dom.isTabIndexFocusable_(b)};n.dom.setFocusableTabIndex=function(b,c){c?b.tabIndex=0:(b.tabIndex=-1,b.removeAttribute("tabIndex"))};
+n.dom.isFocusable=function(b){var c;return(c=n.dom.nativelySupportsFocus_(b)?!b.disabled&&(!n.dom.hasSpecifiedTabIndex_(b)||n.dom.isTabIndexFocusable_(b)):n.dom.isFocusableTabIndex(b))&&n.userAgent.IE?n.dom.hasNonZeroBoundingRect_(b):c};n.dom.hasSpecifiedTabIndex_=function(b){return n.userAgent.IE&&!n.userAgent.isVersionOrHigher("9")?(b=b.getAttributeNode("tabindex"),n.isDefAndNotNull(b)&&b.specified):b.hasAttribute("tabindex")};
+n.dom.isTabIndexFocusable_=function(b){b=b.tabIndex;return n.isNumber(b)&&0<=b&&32768>b};n.dom.nativelySupportsFocus_=function(b){return"A"==b.tagName||"INPUT"==b.tagName||"TEXTAREA"==b.tagName||"SELECT"==b.tagName||"BUTTON"==b.tagName};n.dom.hasNonZeroBoundingRect_=function(b){b=!n.isFunction(b.getBoundingClientRect)||n.userAgent.IE&&null==b.parentElement?{height:b.offsetHeight,width:b.offsetWidth}:b.getBoundingClientRect();return n.isDefAndNotNull(b)&&0<b.height&&0<b.width};
+n.dom.getTextContent=function(b){if(n.dom.BrowserFeature.CAN_USE_INNER_TEXT&&null!==b&&"innerText"in b)b=n.string.canonicalizeNewlines(b.innerText);else{var c=[];n.dom.getTextContent_(b,c,!0);b=c.join("")}b=b.replace(/ \xAD /g," ").replace(/\xAD/g,"");b=b.replace(/\u200B/g,"");n.dom.BrowserFeature.CAN_USE_INNER_TEXT||(b=b.replace(/ +/g," "));" "!=b&&(b=b.replace(/^\s*/,""));return b};n.dom.getRawTextContent=function(b){var c=[];n.dom.getTextContent_(b,c,!1);return c.join("")};
+n.dom.getTextContent_=function(b,c,d){if(!(b.nodeName in n.dom.TAGS_TO_IGNORE_))if(b.nodeType==n.dom.NodeType.TEXT)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in n.dom.PREDEFINED_TAG_VALUES_)c.push(n.dom.PREDEFINED_TAG_VALUES_[b.nodeName]);else for(b=b.firstChild;b;)n.dom.getTextContent_(b,c,d),b=b.nextSibling};n.dom.getNodeTextLength=function(b){return n.dom.getTextContent(b).length};
+n.dom.getNodeTextOffset=function(b,c){c=c||n.dom.getOwnerDocument(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(n.dom.getTextContent(e));b=b.parentNode}return n.string.trimLeft(d.join("")).replace(/ +/g," ").length};
+n.dom.getNodeAtOffset=function(b,c,d){b=[b];for(var e=0,f=null;0<b.length&&e<c;)if(f=b.pop(),!(f.nodeName in n.dom.TAGS_TO_IGNORE_))if(f.nodeType==n.dom.NodeType.TEXT){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in n.dom.PREDEFINED_TAG_VALUES_)e+=n.dom.PREDEFINED_TAG_VALUES_[f.nodeName].length;else for(g=f.childNodes.length-1;0<=g;g--)b.push(f.childNodes[g]);n.isObject(d)&&(d.remainder=f?f.nodeValue.length+c-e-1:0,d.node=f);return f};
+n.dom.isNodeList=function(b){if(b&&"number"==typeof b.length){if(n.isObject(b))return"function"==typeof b.item||"string"==typeof b.item;if(n.isFunction(b))return"function"==typeof b.item}return!1};n.dom.getAncestorByTagNameAndClass=function(b,c,d,e){if(!c&&!d)return null;var f=c?String(c).toUpperCase():null;return n.dom.getAncestor(b,function(b){return(!f||b.nodeName==f)&&(!d||n.isString(b.className)&&n.array.contains(b.className.split(/\s+/),d))},!0,e)};
+n.dom.getAncestorByClass=function(b,c,d){return n.dom.getAncestorByTagNameAndClass(b,null,c,d)};n.dom.getAncestor=function(b,c,d,e){b&&!d&&(b=b.parentNode);for(d=0;b&&(null==e||d<=e);){n.asserts.assert("parentNode"!=b.name);if(c(b))return b;b=b.parentNode;d++}return null};n.dom.getActiveElement=function(b){try{return b&&b.activeElement}catch(c){}return null};
+n.dom.getPixelRatio=function(){var b=n.dom.getWindow();return n.isDef(b.devicePixelRatio)?b.devicePixelRatio:b.matchMedia?n.dom.matchesPixelRatio_(3)||n.dom.matchesPixelRatio_(2)||n.dom.matchesPixelRatio_(1.5)||n.dom.matchesPixelRatio_(1)||.75:1};n.dom.matchesPixelRatio_=function(b){return n.dom.getWindow().matchMedia("(min-resolution: "+b+"dppx),(min--moz-device-pixel-ratio: "+b+"),(min-resolution: "+96*b+"dpi)").matches?b:0};n.dom.getCanvasContext2D=function(b){return b.getContext("2d")};
+n.dom.DomHelper=function(b){this.document_=b||n.global.document||document};a=n.dom.DomHelper.prototype;a.getDomHelper=n.dom.getDomHelper;a.getDocument=function(){return this.document_};a.getElement=function(b){return n.dom.getElementHelper_(this.document_,b)};a.getRequiredElement=function(b){return n.dom.getRequiredElementHelper_(this.document_,b)};a.$=n.dom.DomHelper.prototype.getElement;a.getElementsByTagName=function(b,c){return(c||this.document_).getElementsByTagName(String(b))};
+a.getElementsByTagNameAndClass=function(b,c,d){return n.dom.getElementsByTagNameAndClass_(this.document_,b,c,d)};a.getElementByTagNameAndClass=function(b,c,d){return n.dom.getElementByTagNameAndClass_(this.document_,b,c,d)};a.getElementsByClass=function(b,c){return n.dom.getElementsByClass(b,c||this.document_)};a.getElementByClass=function(b,c){return n.dom.getElementByClass(b,c||this.document_)};a.getRequiredElementByClass=function(b,c){return n.dom.getRequiredElementByClass(b,c||this.document_)};
+a.$$=n.dom.DomHelper.prototype.getElementsByTagNameAndClass;a.setProperties=n.dom.setProperties;a.getViewportSize=function(b){return n.dom.getViewportSize(b||this.getWindow())};a.getDocumentHeight=function(){return n.dom.getDocumentHeight_(this.getWindow())};a.createDom=function(b,c,d){return n.dom.createDom_(this.document_,arguments)};a.$dom=n.dom.DomHelper.prototype.createDom;a.createElement=function(b){return n.dom.createElement_(this.document_,b)};a.createTextNode=function(b){return this.document_.createTextNode(String(b))};
+a.createTable=function(b,c,d){return n.dom.createTable_(this.document_,b,c,!!d)};a.safeHtmlToNode=function(b){return n.dom.safeHtmlToNode_(this.document_,b)};a.isCss1CompatMode=function(){return n.dom.isCss1CompatMode_(this.document_)};a.getWindow=function(){return n.dom.getWindow_(this.document_)};a.getDocumentScrollElement=function(){return n.dom.getDocumentScrollElement_(this.document_)};a.getDocumentScroll=function(){return n.dom.getDocumentScroll_(this.document_)};
+a.getActiveElement=function(b){return n.dom.getActiveElement(b||this.document_)};a.appendChild=n.dom.appendChild;a.append=n.dom.append;a.canHaveChildren=n.dom.canHaveChildren;a.removeChildren=n.dom.removeChildren;a.insertSiblingBefore=n.dom.insertSiblingBefore;a.insertSiblingAfter=n.dom.insertSiblingAfter;a.insertChildAt=n.dom.insertChildAt;a.removeNode=n.dom.removeNode;a.replaceNode=n.dom.replaceNode;a.flattenElement=n.dom.flattenElement;a.getChildren=n.dom.getChildren;a.getFirstElementChild=n.dom.getFirstElementChild;
+a.getLastElementChild=n.dom.getLastElementChild;a.getNextElementSibling=n.dom.getNextElementSibling;a.getPreviousElementSibling=n.dom.getPreviousElementSibling;a.getNextNode=n.dom.getNextNode;a.getPreviousNode=n.dom.getPreviousNode;a.isNodeLike=n.dom.isNodeLike;a.isElement=n.dom.isElement;a.isWindow=n.dom.isWindow;a.getParentElement=n.dom.getParentElement;a.contains=n.dom.contains;a.compareNodeOrder=n.dom.compareNodeOrder;a.findCommonAncestor=n.dom.findCommonAncestor;a.getOwnerDocument=n.dom.getOwnerDocument;
+a.getFrameContentDocument=n.dom.getFrameContentDocument;a.getFrameContentWindow=n.dom.getFrameContentWindow;a.setTextContent=n.dom.setTextContent;a.getOuterHtml=n.dom.getOuterHtml;a.findNode=n.dom.findNode;a.findNodes=n.dom.findNodes;a.isFocusableTabIndex=n.dom.isFocusableTabIndex;a.setFocusableTabIndex=n.dom.setFocusableTabIndex;a.isFocusable=n.dom.isFocusable;a.getTextContent=n.dom.getTextContent;a.getNodeTextLength=n.dom.getNodeTextLength;a.getNodeTextOffset=n.dom.getNodeTextOffset;
+a.getNodeAtOffset=n.dom.getNodeAtOffset;a.isNodeList=n.dom.isNodeList;a.getAncestorByTagNameAndClass=n.dom.getAncestorByTagNameAndClass;a.getAncestorByClass=n.dom.getAncestorByClass;a.getAncestor=n.dom.getAncestor;a.getCanvasContext2D=n.dom.getCanvasContext2D;t.WindowDelegate=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=this.transactionStarted_=this.walletIsLoaded_=!1;this.webStoreService_=new t.WebStoreService};n.inherits(t.WindowDelegate,n.craw.AppWindowDelegate);n.craw.AppWindowDelegate.setDefaultImpl();t.WindowDelegate.prototype.getAppUnavailableMessage=function(){return chrome.i18n.getMessage("iap_unavailable")};
+t.WindowDelegate.prototype.pollOnlineStatus=function(){if(!window.iapParams_.oauthToken)return chrome.i18n.getMessage("please_sign_in");if(this.retrieveJwtFailed_)return chrome.i18n.getMessage("jwt_retrieve_failed")};t.WindowDelegate.prototype.finishedLaunch=function(){return this.isFinishedLaunch_};
+var R=function(b){var c=window.iapParams_;b.isFinishedLaunch_&&c.oauthToken&&b.walletIsLoaded_&&!b.transactionStarted_&&(b.transactionStarted_=!0,n.dom.getDocument().querySelector("webview").contentWindow.postMessage({jwt:window.iapJwt_,parameters:c},"*"))};t.WindowDelegate.prototype.retrieveJwtOnSuccess_=function(b,c,d){window.iapJwt_=b;window.payment_data=c;window.signature=d;this.retrieveJwtFailed_=!1;this.isFinishedLaunch_=!0;R(this)};
+t.WindowDelegate.prototype.retrieveJwtOnFailed_=function(){this.isFinishedLaunch_=this.retrieveJwtFailed_=!0};
+t.WindowDelegate.prototype.onWindowReady=function(){var b=n.dom.getDocument().querySelector("webview");if(b){b.style.borderTop="1px #eaeaea solid";var c=!1,d=window.iapParams_,e=this,f=function(b){if(window.sku_){var c=window.sku_,d=window.iapParams_||{},f=e.webStoreService_,g=d||{};if("env"in g){switch(g.env){case "prod":f.baseUrl_=t.WebStoreService.Environment.PROD;break;default:f.baseUrl_=t.WebStoreService.Environment.SANDBOX}f.baseUrlAndPath_=f.baseUrl_+t.WebStoreService.WEB_STORE_REQUEST_PATH_}e.retrieveJwtFailed_=
+!1;e.isFinishedLaunch_=!1;ea(e.webStoreService_,d.applicationId,c,n.bind(e.retrieveJwtOnSuccess_,e),n.bind(e.retrieveJwtOnFailed_,e),b,d.gl,d.projection)}else e.isFinishedLaunch_=!0,R(e)};d.oauthToken?f(d.oauthToken):chrome.identity.getAuthToken({interactive:!0},function(b){window.iapParams_.oauthToken=b;f(b)});b.addEventListener("contentload",function(){if(!c){c=!0;switch(d.env||"sandbox"){case "prod":var e="https://payments.google.com/payments/v4/js/integrator.js";break;default:e="https://sandbox.google.com/payments/v4/js/integrator.js"}b.executeScript({runAt:"document_start",
+code:'document.write("<script type=\\"text/javascript\\" src=\\"'+e+"\\\" data-payments-main>\x3c/script><script type=\\\"text/javascript\\\">window.addEventListener('message', function(e) {  if (e.origin != 'chrome-extension://"+chrome.runtime.id+"') return;var mode = payments.business.integration.mashupMode.embedded('renderplace');var bootstrapper = payments.business.integration.bootstrap.asMashupMode(mode);bootstrapper    .usingDefaultActivityStatusChangeHandler()    .usingBaseZIndex(1201)    .usingOnResizeFrameCallback(function() {        var iframe = document.getElementById('renderplaceIframe');        var size = {'width': iframe.clientWidth, 'height': iframe.clientHeight};        e.source.postMessage({resize: size}, e.origin);})    .usingOAuthToken(e.data.parameters.oauthToken)    .usingStyle('pc=#FF0000;ac=#0000FF');var standaloneContextBootstrapper = bootstrapper.inStandaloneContext(    payments.business.integration.standaloneContextAuthId.forGaia());var buyFlowScenario =    standaloneContextBootstrapper.buyFlow(function(res) {        e.source.postMessage({type: 'success', result: res}, e.origin);});buyFlowScenario.withEncryptedParameters(e.data.jwt);buyFlowScenario.load(undefined, function(res) {    e.source.postMessage({type: 'failure', result: res}, e.origin);});}, false);console.log('registered payment listener: ' + Date.now());\x3c/script>&nbsp;\");"},
+function(){console.log("did exec once");b.executeScript({runAt:"document_end",code:"document.write(\"<script type=\\\"text/javascript\\\">var elem = document.createElement('div');elem.setAttribute('id', 'renderplace');elem.setAttribute('style', 'margin-left:35px;margin-right:35px;');document.body.appendChild(elem);console.log('finished loading, start payment: ' + Date.now());\x3c/script>\");"})})}},!1);b.addEventListener("consolemessage",function(b){-1!=b.message.indexOf("finished")&&(e.walletIsLoaded_=
+!0,R(e))});b.addEventListener("newwindow",function(b){window.open(b.targetUrl);b.window.discard()},!1)}};window.addEventListener("message",function(b){console.log(b);if("type"in b.data)window.purchase_result=b.data.result,window.close();else if("resize"in b.data){var c=chrome.app.window.current();c.resizeTo(c.outerBounds.width+0,b.data.resize.height+80)}},!1);n.async={};n.async.FreeList=function(b,c,d){this.limit_=d;this.create_=b;this.reset_=c;this.occupants_=0;this.head_=null};n.async.FreeList.prototype.get=function(){if(0<this.occupants_){this.occupants_--;var b=this.head_;this.head_=b.next;b.next=null}else b=this.create_();return b};n.async.FreeList.prototype.put=function(b){this.reset_(b);this.occupants_<this.limit_&&(this.occupants_++,b.next=this.head_,this.head_=b)};n.async.throwException=function(b){n.global.setTimeout(function(){throw b;},0)};n.async.nextTick=function(b,c,d){var e=b;c&&(e=n.bind(b,c));e=n.async.nextTick.wrapCallback_(e);n.isFunction(n.global.setImmediate)&&(d||n.async.nextTick.useSetImmediate_())?n.global.setImmediate(e):(n.async.nextTick.setImmediate_||(n.async.nextTick.setImmediate_=n.async.nextTick.getSetImmediateEmulator_()),n.async.nextTick.setImmediate_(e))};
+n.async.nextTick.useSetImmediate_=function(){return n.global.Window&&n.global.Window.prototype&&!n.labs.userAgent.browser.isEdge()&&n.global.Window.prototype.setImmediate==n.global.setImmediate?!1:!0};
+n.async.nextTick.getSetImmediateEmulator_=function(){var b=n.global.MessageChannel;"undefined"===typeof b&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!n.labs.userAgent.engine.isPresto()&&(b=function(){var b=document.createElement("IFRAME");b.style.display="none";b.src="";document.documentElement.appendChild(b);var c=b.contentWindow;b=c.document;b.open();b.write("");b.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+"//"+
+c.location.host;b=n.bind(function(b){if(("*"==e||b.origin==e)&&b.data==d)this.port1.onmessage()},this);c.addEventListener("message",b,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof b&&!n.labs.userAgent.browser.isIE()){var c=new b,d={},e=d;c.port1.onmessage=function(){if(n.isDef(d.next)){d=d.next;var b=d.cb;d.cb=null;b()}};return function(b){e.next={cb:b};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in
+document.createElement("SCRIPT")?function(b){var c=document.createElement("SCRIPT");c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;b();b=null};document.documentElement.appendChild(c)}:function(b){n.global.setTimeout(b,0)}};n.async.nextTick.wrapCallback_=n.functions.identity;n.debug.entryPointRegistry.register(function(b){n.async.nextTick.wrapCallback_=b});n.async.WorkQueue=function(){this.workTail_=this.workHead_=null};n.async.WorkQueue.DEFAULT_MAX_UNUSED=100;n.async.WorkQueue.freelist_=new n.async.FreeList(function(){return new n.async.WorkItem},function(b){b.reset()},n.async.WorkQueue.DEFAULT_MAX_UNUSED);n.async.WorkQueue.prototype.add=function(b,c){var d=n.async.WorkQueue.freelist_.get();d.set(b,c);this.workTail_?this.workTail_.next=d:(n.asserts.assert(!this.workHead_),this.workHead_=d);this.workTail_=d};
+n.async.WorkQueue.prototype.remove=function(){var b=null;this.workHead_&&(b=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),b.next=null);return b};n.async.WorkItem=function(){this.next=this.scope=this.fn=null};n.async.WorkItem.prototype.set=function(b,c){this.fn=b;this.scope=c;this.next=null};n.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};n.async.run=function(b,c){n.async.run.schedule_||n.async.run.initializeRunner_();n.async.run.workQueueScheduled_||(n.async.run.schedule_(),n.async.run.workQueueScheduled_=!0);n.async.run.workQueue_.add(b,c)};n.async.run.initializeRunner_=function(){if(-1!=String(n.global.Promise).indexOf("[native code]")){var b=n.global.Promise.resolve(void 0);n.async.run.schedule_=function(){b.then(n.async.run.processWorkQueue)}}else n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue)}};
+n.async.run.forceNextTick=function(b){n.async.run.schedule_=function(){n.async.nextTick(n.async.run.processWorkQueue);b&&b(n.async.run.processWorkQueue)}};n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue;n.DEBUG&&(n.async.run.resetQueue=function(){n.async.run.workQueueScheduled_=!1;n.async.run.workQueue_=new n.async.WorkQueue});
+n.async.run.processWorkQueue=function(){for(var b;b=n.async.run.workQueue_.remove();){try{b.fn.call(b.scope)}catch(c){n.async.throwException(c)}n.async.WorkQueue.freelist_.put(b)}n.async.run.workQueueScheduled_=!1};n.debug.LogRecord=function(b,c,d,e,f){this.reset(b,c,d,e,f)};n.debug.LogRecord.prototype.exception_=null;n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;n.debug.LogRecord.nextSequenceNumber_=0;n.debug.LogRecord.prototype.reset=function(b,c,d,e,f){n.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&("number"==typeof f||n.debug.LogRecord.nextSequenceNumber_++);e||n.now();this.level_=b;this.msg_=c;delete this.exception_};n.debug.LogRecord.prototype.setLevel=function(b){this.level_=b};
+n.debug.LogRecord.prototype.getMessage=function(){return this.msg_};n.debug.LogBuffer=function(){n.asserts.assert(n.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};n.debug.LogBuffer.getInstance=function(){n.debug.LogBuffer.instance_||(n.debug.LogBuffer.instance_=new n.debug.LogBuffer);return n.debug.LogBuffer.instance_};n.debug.LogBuffer.CAPACITY=0;n.debug.LogBuffer.isBufferingEnabled=function(){return 0<n.debug.LogBuffer.CAPACITY};
+n.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(n.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};n.debug.Logger=function(b){this.name_=b;this.handlers_=this.children_=this.level_=this.parent_=null};n.debug.Logger.ROOT_LOGGER_NAME="";n.debug.Logger.ENABLE_HIERARCHY=!0;n.debug.Logger.ENABLE_PROFILER_LOGGING=!1;n.debug.Logger.ENABLE_HIERARCHY||(n.debug.Logger.rootHandlers_=[]);n.debug.Logger.Level=function(b,c){this.name=b;this.value=c};n.debug.Logger.Level.prototype.toString=function(){return this.name};n.debug.Logger.Level.OFF=new n.debug.Logger.Level("OFF",Infinity);
+n.debug.Logger.Level.SHOUT=new n.debug.Logger.Level("SHOUT",1200);n.debug.Logger.Level.SEVERE=new n.debug.Logger.Level("SEVERE",1E3);n.debug.Logger.Level.WARNING=new n.debug.Logger.Level("WARNING",900);n.debug.Logger.Level.INFO=new n.debug.Logger.Level("INFO",800);n.debug.Logger.Level.CONFIG=new n.debug.Logger.Level("CONFIG",700);n.debug.Logger.Level.FINE=new n.debug.Logger.Level("FINE",500);n.debug.Logger.Level.FINER=new n.debug.Logger.Level("FINER",400);
+n.debug.Logger.Level.FINEST=new n.debug.Logger.Level("FINEST",300);n.debug.Logger.Level.ALL=new n.debug.Logger.Level("ALL",0);n.debug.Logger.Level.PREDEFINED_LEVELS=[n.debug.Logger.Level.OFF,n.debug.Logger.Level.SHOUT,n.debug.Logger.Level.SEVERE,n.debug.Logger.Level.WARNING,n.debug.Logger.Level.INFO,n.debug.Logger.Level.CONFIG,n.debug.Logger.Level.FINE,n.debug.Logger.Level.FINER,n.debug.Logger.Level.FINEST,n.debug.Logger.Level.ALL];n.debug.Logger.Level.predefinedLevelsCache_=null;
+n.debug.Logger.Level.createPredefinedLevelsCache_=function(){n.debug.Logger.Level.predefinedLevelsCache_={};for(var b=0,c;c=n.debug.Logger.Level.PREDEFINED_LEVELS[b];b++)n.debug.Logger.Level.predefinedLevelsCache_[c.value]=c,n.debug.Logger.Level.predefinedLevelsCache_[c.name]=c};n.debug.Logger.Level.getPredefinedLevel=function(b){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();return n.debug.Logger.Level.predefinedLevelsCache_[b]||null};
+n.debug.Logger.Level.getPredefinedLevelByValue=function(b){n.debug.Logger.Level.predefinedLevelsCache_||n.debug.Logger.Level.createPredefinedLevelsCache_();if(b in n.debug.Logger.Level.predefinedLevelsCache_)return n.debug.Logger.Level.predefinedLevelsCache_[b];for(var c=0;c<n.debug.Logger.Level.PREDEFINED_LEVELS.length;++c){var d=n.debug.Logger.Level.PREDEFINED_LEVELS[c];if(d.value<=b)return d}return null};n.debug.Logger.getLogger=function(b){return n.debug.LogManager.getLogger(b)};
+n.debug.Logger.logToProfilers=function(b){if(n.debug.Logger.ENABLE_PROFILER_LOGGING){var c=n.global.msWriteProfilerMark;c?c(b):(c=n.global.console)&&c.timeStamp&&c.timeStamp(b)}};a=n.debug.Logger.prototype;a.getName=function(){return this.name_};
+a.addHandler=function(b){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(b)):(n.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootHandlers_.push(b)))};a.removeHandler=function(b){if(n.debug.LOGGING_ENABLED){var c=n.debug.Logger.ENABLE_HIERARCHY?this.handlers_:n.debug.Logger.rootHandlers_;return!!c&&n.array.remove(c,b)}return!1};
+a.getParent=function(){return this.parent_};a.getChildren=function(){this.children_||(this.children_={});return this.children_};a.setLevel=function(b){n.debug.LOGGING_ENABLED&&(n.debug.Logger.ENABLE_HIERARCHY?this.level_=b:(n.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),n.debug.Logger.rootLevel_=b))};
+var fa=function(b){if(!n.debug.LOGGING_ENABLED)return n.debug.Logger.Level.OFF;if(!n.debug.Logger.ENABLE_HIERARCHY)return n.debug.Logger.rootLevel_;if(b.level_)return b.level_;if(b.parent_)return fa(b.parent_);n.asserts.fail("Root logger has no level set.");return null};
+n.debug.Logger.prototype.log=function(b,c,d){if(n.debug.LOGGING_ENABLED&&n.debug.LOGGING_ENABLED&&b.value>=fa(this).value){n.isFunction(c)&&(c=c());if(n.debug.LogBuffer.isBufferingEnabled()){var e=n.debug.LogBuffer.getInstance(),f=this.name_,g=(e.curIndex_+1)%n.debug.LogBuffer.CAPACITY;e.curIndex_=g;e.isFull_?(e=e.buffer_[g],e.reset(b,c,f),b=e):(e.isFull_=g==n.debug.LogBuffer.CAPACITY-1,b=e.buffer_[g]=new n.debug.LogRecord(b,c,f))}else b=new n.debug.LogRecord(b,String(c),this.name_);d&&(b.exception_=
+d);n.debug.Logger.ENABLE_PROFILER_LOGGING&&n.debug.Logger.logToProfilers("log:"+b.getMessage());if(n.debug.Logger.ENABLE_HIERARCHY)for(d=this;d;){f=d;e=b;if(f.handlers_)for(g=0;c=f.handlers_[g];g++)c(e);d=d.getParent()}else for(d=0;c=n.debug.Logger.rootHandlers_[d++];)c(b)}};n.debug.Logger.prototype.warning=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.WARNING,b,c)};n.debug.Logger.prototype.info=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.INFO,b,c)};
+n.debug.Logger.prototype.fine=function(b,c){n.debug.LOGGING_ENABLED&&this.log(n.debug.Logger.Level.FINE,b,c)};n.debug.LogManager={};n.debug.LogManager.loggers_={};n.debug.LogManager.rootLogger_=null;n.debug.LogManager.initialize=function(){n.debug.LogManager.rootLogger_||(n.debug.LogManager.rootLogger_=new n.debug.Logger(n.debug.Logger.ROOT_LOGGER_NAME),n.debug.LogManager.loggers_[n.debug.Logger.ROOT_LOGGER_NAME]=n.debug.LogManager.rootLogger_,n.debug.LogManager.rootLogger_.setLevel(n.debug.Logger.Level.CONFIG))};
+n.debug.LogManager.getLoggers=function(){return n.debug.LogManager.loggers_};n.debug.LogManager.getRoot=function(){n.debug.LogManager.initialize();return n.debug.LogManager.rootLogger_};n.debug.LogManager.getLogger=function(b){n.debug.LogManager.initialize();return n.debug.LogManager.loggers_[b]||n.debug.LogManager.createLogger_(b)};
+n.debug.LogManager.createFunctionForCatchErrors=function(b){return function(c){var d=b||n.debug.LogManager.getRoot();n.debug.LOGGING_ENABLED&&d.log(n.debug.Logger.Level.SEVERE,"Error: "+c.message+" ("+c.fileName+" @ Line: "+c.line+")",void 0)}};
+n.debug.LogManager.createLogger_=function(b){var c=new n.debug.Logger(b);if(n.debug.Logger.ENABLE_HIERARCHY){var d=b.lastIndexOf("."),e=b.substr(d+1);d=n.debug.LogManager.getLogger(b.substr(0,d));d.getChildren()[e]=c;c.parent_=d}return n.debug.LogManager.loggers_[b]=c};n.json={};n.json.USE_NATIVE_JSON=!1;n.json.TRY_NATIVE_JSON=!1;n.json.isValid=function(b){return/^\s*$/.test(b)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(b.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))};n.json.errorLogger_=n.nullFunction;n.json.setErrorLogger=function(b){n.json.errorLogger_=b};
+n.json.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(b){if(n.json.TRY_NATIVE_JSON)try{return n.global.JSON.parse(b)}catch(e){var c=e}b=String(b);if(n.json.isValid(b))try{var d=eval("("+b+")");c&&n.json.errorLogger_("Invalid JSON: "+b,c);return d}catch(e){}throw Error("Invalid JSON string: "+b);};n.json.serialize=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(b,c){return(new n.json.Serializer(c)).serialize(b)};n.json.Serializer=function(b){this.replacer_=b};
+n.json.Serializer.prototype.serialize=function(b){var c=[];S(this,b,c);return c.join("")};
+var S=function(b,c,d){if(null==c)d.push("null");else{if("object"==typeof c){if(n.isArray(c)){var e=c;c=e.length;d.push("[");for(var f="",g=0;g<c;g++)d.push(f),f=e[g],S(b,b.replacer_?b.replacer_.call(e,String(g),f):f,d),f=",";d.push("]");return}if(c instanceof String||c instanceof Number||c instanceof Boolean)c=c.valueOf();else{d.push("{");g="";for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(f=c[e],"function"!=typeof f&&(d.push(g),ha(e,d),d.push(":"),S(b,b.replacer_?b.replacer_.call(c,e,f):
+f,d),g=","));d.push("}");return}}switch(typeof c){case "string":ha(c,d);break;case "number":d.push(isFinite(c)&&!isNaN(c)?String(c):"null");break;case "boolean":d.push(String(c));break;case "function":d.push("null");break;default:throw Error("Unknown type: "+typeof c);}}};n.json.Serializer.charToJsonCharCache_={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"};
+n.json.Serializer.charsToReplace_=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;var ha=function(b,c){c.push('"',b.replace(n.json.Serializer.charsToReplace_,function(b){var c=n.json.Serializer.charToJsonCharCache_[b];c||(c="\\u"+(b.charCodeAt(0)|65536).toString(16).substr(1),n.json.Serializer.charToJsonCharCache_[b]=c);return c}),'"')};n.json.hybrid={};n.json.hybrid.stringify=n.json.USE_NATIVE_JSON?n.global.JSON.stringify:function(b){if(n.global.JSON)try{return n.global.JSON.stringify(b)}catch(c){}return n.json.serialize(b)};n.json.hybrid.parse_=function(b){var c=n.json.parse;if(n.global.JSON)try{var d=n.global.JSON.parse(b);n.asserts.assert("object"==typeof d);return d}catch(e){}return c(b)};n.json.hybrid.parse=n.json.USE_NATIVE_JSON?n.global.JSON.parse:function(b){return n.json.hybrid.parse_(b)};n.log={};n.log.ENABLED=n.debug.LOGGING_ENABLED;n.log.ROOT_LOGGER_NAME=n.debug.Logger.ROOT_LOGGER_NAME;n.log.Logger=n.debug.Logger;n.log.Level=n.debug.Logger.Level;n.log.LogRecord=n.debug.LogRecord;n.log.getLogger=function(b){return n.log.ENABLED?n.debug.LogManager.getLogger(b):null};n.log.addHandler=function(b){n.log.ENABLED&&b&&b.addHandler(void 0)};n.log.removeHandler=function(b){return n.log.ENABLED&&b?b.removeHandler(void 0):!1};n.log.log=function(b,c,d,e){n.log.ENABLED&&b&&b.log(c,d,e)};
+n.log.error=function(b,c,d){n.log.ENABLED&&b&&n.debug.LOGGING_ENABLED&&b.log(n.debug.Logger.Level.SEVERE,c,d)};n.log.warning=function(b,c){n.log.ENABLED&&b&&b.warning(c,void 0)};n.log.info=function(b,c,d){n.log.ENABLED&&b&&b.info(c,d)};n.log.fine=function(b,c){n.log.ENABLED&&b&&b.fine(c,void 0)};n.net={};n.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9};
+n.net.ErrorCode.getDebugMessage=function(b){switch(b){case n.net.ErrorCode.NO_ERROR:return"No Error";case n.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case n.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case n.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case n.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case n.net.ErrorCode.EXCEPTION:return"An exception occurred";case n.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level";
+case n.net.ErrorCode.ABORT:return"Request was aborted";case n.net.ErrorCode.TIMEOUT:return"Request timed out";case n.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};n.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};n.net.HttpStatus={CONTINUE:100,SWITCHING_PROTOCOLS:101,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,
+PRECONDITION_FAILED:412,REQUEST_ENTITY_TOO_LARGE:413,REQUEST_URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,REQUEST_RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,NETWORK_AUTHENTICATION_REQUIRED:511,QUIRK_IE_NO_CONTENT:1223};
+n.net.HttpStatus.isSuccess=function(b){switch(b){case n.net.HttpStatus.OK:case n.net.HttpStatus.CREATED:case n.net.HttpStatus.ACCEPTED:case n.net.HttpStatus.NO_CONTENT:case n.net.HttpStatus.PARTIAL_CONTENT:case n.net.HttpStatus.NOT_MODIFIED:case n.net.HttpStatus.QUIRK_IE_NO_CONTENT:return!0;default:return!1}};n.net.XhrLike=function(){};a=n.net.XhrLike.prototype;a.open=function(){};a.send=function(){};a.abort=function(){};a.setRequestHeader=function(){};a.getResponseHeader=function(){};a.getAllResponseHeaders=function(){};n.net.XmlHttpFactory=function(){};n.net.XmlHttpFactory.prototype.cachedOptions_=null;n.net.XmlHttpFactory.prototype.getOptions=function(){var b;(b=this.cachedOptions_)||(b={},ia(this)&&(b[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]=!0,b[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]=!0),b=this.cachedOptions_=b);return b};n.net.WrapperXmlHttpFactory=function(b,c){this.xhrFactory_=b;this.optionsFactory_=c};n.inherits(n.net.WrapperXmlHttpFactory,n.net.XmlHttpFactory);n.net.WrapperXmlHttpFactory.prototype.createInstance=function(){return this.xhrFactory_()};n.net.WrapperXmlHttpFactory.prototype.getOptions=function(){return this.optionsFactory_()};n.net.XmlHttp=function(){return n.net.XmlHttp.factory_.createInstance()};n.net.XmlHttp.ASSUME_NATIVE_XHR=!1;n.net.XmlHttpDefines={};n.net.XmlHttpDefines.ASSUME_NATIVE_XHR=!1;n.net.XmlHttp.getOptions=function(){return n.net.XmlHttp.factory_.getOptions()};n.net.XmlHttp.OptionType={USE_NULL_FUNCTION:0,LOCAL_REQUEST_ERROR:1};n.net.XmlHttp.ReadyState={UNINITIALIZED:0,LOADING:1,LOADED:2,INTERACTIVE:3,COMPLETE:4};
+n.net.XmlHttp.setFactory=function(b,c){n.net.XmlHttp.setGlobalFactory(new n.net.WrapperXmlHttpFactory(n.asserts.assert(b),n.asserts.assert(c)))};n.net.XmlHttp.setGlobalFactory=function(b){n.net.XmlHttp.factory_=b};n.net.DefaultXmlHttpFactory=function(){};n.inherits(n.net.DefaultXmlHttpFactory,n.net.XmlHttpFactory);n.net.DefaultXmlHttpFactory.prototype.createInstance=function(){var b=ia(this);return b?new ActiveXObject(b):new XMLHttpRequest};
+var ia=function(b){if(n.net.XmlHttp.ASSUME_NATIVE_XHR||n.net.XmlHttpDefines.ASSUME_NATIVE_XHR)return"";if(!b.ieProgId_&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var c=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],d=0;d<c.length;d++){var e=c[d];try{return new ActiveXObject(e),b.ieProgId_=e}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}return b.ieProgId_};n.net.XmlHttp.setGlobalFactory(new n.net.DefaultXmlHttpFactory);n.promise={};n.promise.Resolver=function(){};n.Thenable=function(){};n.Thenable.prototype.then=function(){};n.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";n.Thenable.addImplementation=function(b){b.prototype.then=b.prototype.then;b.prototype[n.Thenable.IMPLEMENTED_BY_PROP]=!0};n.Thenable.isImplementedBy=function(b){if(!b)return!1;try{return!!b[n.Thenable.IMPLEMENTED_BY_PROP]}catch(c){return!1}};n.Promise=function(b,c){this.state_=n.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<n.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==n.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);n.Promise.LONG_STACK_TRACES&&(this.stack_=[],T(this,Error("created")),this.currentStep_=0);if(b!=n.nullFunction)try{var d=this;b.call(c,function(b){U(d,n.Promise.State_.FULFILLED,b)},function(b){if(n.DEBUG&&
+!(b instanceof n.Promise.CancellationError))try{if(b instanceof Error)throw b;throw Error("Promise rejected.");}catch(f){}U(d,n.Promise.State_.REJECTED,b)})}catch(e){U(this,n.Promise.State_.REJECTED,e)}};n.Promise.LONG_STACK_TRACES=!1;n.Promise.UNHANDLED_REJECTION_DELAY=0;n.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};n.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};
+n.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};n.Promise.DEFAULT_MAX_UNUSED=100;n.Promise.freelist_=new n.async.FreeList(function(){return new n.Promise.CallbackEntry_},function(b){b.reset()},n.Promise.DEFAULT_MAX_UNUSED);n.Promise.getCallbackEntry_=function(b,c,d){var e=n.Promise.freelist_.get();e.onFulfilled=b;e.onRejected=c;e.context=d;return e};n.Promise.returnEntry_=function(b){n.Promise.freelist_.put(b)};
+n.Promise.resolve=function(b){if(b instanceof n.Promise)return b;var c=new n.Promise(n.nullFunction);U(c,n.Promise.State_.FULFILLED,b);return c};n.Promise.reject=function(b){return new n.Promise(function(c,d){d(b)})};n.Promise.resolveThen_=function(b,c,d){n.Promise.maybeThen_(b,c,d,null)||n.async.run(n.partial(c,b))};n.Promise.race=function(b){return new n.Promise(function(c,d){b.length||c(void 0);for(var e=0,f;e<b.length;e++)f=b[e],n.Promise.resolveThen_(f,c,d)})};
+n.Promise.all=function(b){return new n.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b,d){e--;f[b]=d;0==e&&c(f)},h=function(b){d(b)},l=0,m;l<b.length;l++)m=b[l],n.Promise.resolveThen_(m,n.partial(g,l),h);else c(f)})};
+n.Promise.allSettled=function(b){return new n.Promise(function(c){var d=b.length,e=[];if(d)for(var f=function(b,f,g){d--;e[b]=f?{fulfilled:!0,value:g}:{fulfilled:!1,reason:g};0==d&&c(e)},g=0,h;g<b.length;g++)h=b[g],n.Promise.resolveThen_(h,n.partial(f,g,!0),n.partial(f,g,!1));else c(e)})};
+n.Promise.firstFulfilled=function(b){return new n.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b){c(b)},h=function(b,c){e--;f[b]=c;0==e&&d(f)},l=0,m;l<b.length;l++)m=b[l],n.Promise.resolveThen_(m,g,n.partial(h,l));else c(void 0)})};n.Promise.withResolver=function(){var b,c,d=new n.Promise(function(d,f){b=d;c=f});return new n.Promise.Resolver_(d,b,c)};
+n.Promise.prototype.then=function(b,c,d){null!=b&&n.asserts.assertFunction(b,"opt_onFulfilled should be a function.");null!=c&&n.asserts.assertFunction(c,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");n.Promise.LONG_STACK_TRACES&&T(this,Error("then"));return ja(this,n.isFunction(b)?b:null,n.isFunction(c)?c:null,d)};n.Thenable.addImplementation(n.Promise);
+var ka=function(b,c){n.Promise.LONG_STACK_TRACES&&T(b,Error("thenCatch"));return ja(b,null,c,void 0)};n.Promise.prototype.cancel=function(b){this.state_==n.Promise.State_.PENDING&&n.async.run(function(){var c=new n.Promise.CancellationError(b);la(this,c)},this)};
+var la=function(b,c){if(b.state_==n.Promise.State_.PENDING)if(b.parent_){var d=b.parent_;if(d.callbackEntries_){for(var e=0,f=null,g=null,h=d.callbackEntries_;h&&(h.always||(e++,h.child==b&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.state_==n.Promise.State_.PENDING&&1==e?la(d,c):(g?(e=g,n.asserts.assert(d.callbackEntries_),n.asserts.assert(null!=e),e.next==d.callbackEntriesTail_&&(d.callbackEntriesTail_=e),e.next=e.next.next):ma(d),na(d,f,n.Promise.State_.REJECTED,c)))}b.parent_=null}else U(b,n.Promise.State_.REJECTED,
+c)},pa=function(b,c){b.callbackEntries_||b.state_!=n.Promise.State_.FULFILLED&&b.state_!=n.Promise.State_.REJECTED||oa(b);n.asserts.assert(null!=c.onFulfilled);b.callbackEntriesTail_?b.callbackEntriesTail_.next=c:b.callbackEntries_=c;b.callbackEntriesTail_=c},ja=function(b,c,d,e){var f=n.Promise.getCallbackEntry_(null,null,null);f.child=new n.Promise(function(b,h){f.onFulfilled=c?function(d){try{var f=c.call(e,d);b(f)}catch(p){h(p)}}:b;f.onRejected=d?function(c){try{var f=d.call(e,c);!n.isDef(f)&&
+c instanceof n.Promise.CancellationError?h(c):b(f)}catch(p){h(p)}}:h});f.child.parent_=b;pa(b,f);return f.child};n.Promise.prototype.unblockAndFulfill_=function(b){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.FULFILLED,b)};n.Promise.prototype.unblockAndReject_=function(b){n.asserts.assert(this.state_==n.Promise.State_.BLOCKED);this.state_=n.Promise.State_.PENDING;U(this,n.Promise.State_.REJECTED,b)};
+var U=function(b,c,d){b.state_==n.Promise.State_.PENDING&&(b===d&&(c=n.Promise.State_.REJECTED,d=new TypeError("Promise cannot resolve to itself")),b.state_=n.Promise.State_.BLOCKED,n.Promise.maybeThen_(d,b.unblockAndFulfill_,b.unblockAndReject_,b)||(b.result_=d,b.state_=c,b.parent_=null,oa(b),c!=n.Promise.State_.REJECTED||d instanceof n.Promise.CancellationError||n.Promise.addUnhandledRejection_(b,d)))};
+n.Promise.maybeThen_=function(b,c,d,e){if(b instanceof n.Promise)return null!=c&&n.asserts.assertFunction(c,"opt_onFulfilled should be a function."),null!=d&&n.asserts.assertFunction(d,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?"),n.Promise.LONG_STACK_TRACES&&T(b,Error("then")),pa(b,n.Promise.getCallbackEntry_(c||n.nullFunction,d||null,e)),!0;if(n.Thenable.isImplementedBy(b))return b.then(c,d,e),!0;if(n.isObject(b))try{var f=b.then;if(n.isFunction(f))return n.Promise.tryThen_(b,
+f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};n.Promise.tryThen_=function(b,c,d,e,f){var g=!1,h=function(b){g||(g=!0,d.call(f,b))},l=function(b){g||(g=!0,e.call(f,b))};try{c.call(b,h,l)}catch(m){l(m)}};var oa=function(b){b.executing_||(b.executing_=!0,n.async.run(b.executeCallbacks_,b))},ma=function(b){var c=null;b.callbackEntries_&&(c=b.callbackEntries_,b.callbackEntries_=c.next,c.next=null);b.callbackEntries_||(b.callbackEntriesTail_=null);null!=c&&n.asserts.assert(null!=c.onFulfilled);return c};
+n.Promise.prototype.executeCallbacks_=function(){for(var b;b=ma(this);)n.Promise.LONG_STACK_TRACES&&this.currentStep_++,na(this,b,this.state_,this.result_);this.executing_=!1};
+var na=function(b,c,d,e){if(d==n.Promise.State_.REJECTED&&c.onRejected&&!c.always)if(0<n.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.unhandledRejectionId_;b=b.parent_)n.global.clearTimeout(b.unhandledRejectionId_),b.unhandledRejectionId_=0;else if(0==n.Promise.UNHANDLED_REJECTION_DELAY)for(;b&&b.hadUnhandledRejection_;b=b.parent_)b.hadUnhandledRejection_=!1;if(c.child)c.child.parent_=null,n.Promise.invokeCallback_(c,d,e);else try{c.always?c.onFulfilled.call(c.context):n.Promise.invokeCallback_(c,
+d,e)}catch(f){n.Promise.handleRejection_.call(null,f)}n.Promise.returnEntry_(c)};n.Promise.invokeCallback_=function(b,c,d){c==n.Promise.State_.FULFILLED?b.onFulfilled.call(b.context,d):b.onRejected&&b.onRejected.call(b.context,d)};
+var T=function(b,c){if(n.Promise.LONG_STACK_TRACES&&n.isString(c.stack)){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");b.stack_.push(c+d)}},qa=function(b,c){if(n.Promise.LONG_STACK_TRACES&&c&&n.isString(c.stack)&&b.stack_.length){for(var d=["Promise trace:"],e=b;e;e=e.parent_){for(var f=b.currentStep_;0<=f;f--)d.push(e.stack_[f]);d.push("Value: ["+(e.state_==n.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(e.result_)+">")}c.stack+="\n\n"+d.join("\n")}};
+n.Promise.addUnhandledRejection_=function(b,c){0<n.Promise.UNHANDLED_REJECTION_DELAY?b.unhandledRejectionId_=n.global.setTimeout(function(){qa(b,c);n.Promise.handleRejection_.call(null,c)},n.Promise.UNHANDLED_REJECTION_DELAY):0==n.Promise.UNHANDLED_REJECTION_DELAY&&(b.hadUnhandledRejection_=!0,n.async.run(function(){b.hadUnhandledRejection_&&(qa(b,c),n.Promise.handleRejection_.call(null,c))}))};n.Promise.handleRejection_=n.async.throwException;
+n.Promise.setUnhandledRejectionHandler=function(b){n.Promise.handleRejection_=b};n.Promise.CancellationError=function(b){n.debug.Error.call(this,b)};n.inherits(n.Promise.CancellationError,n.debug.Error);n.Promise.CancellationError.prototype.name="cancel";n.Promise.Resolver_=function(b,c,d){this.promise=b;this.resolve=c;this.reject=d};n.Timer=function(b,c){n.events.EventTarget.call(this);this.interval_=b||1;this.timerObject_=c||n.Timer.defaultTimerObject;this.boundTick_=n.bind(this.tick_,this);this.last_=n.now()};n.inherits(n.Timer,n.events.EventTarget);n.Timer.MAX_TIMEOUT_=2147483647;n.Timer.INVALID_TIMEOUT_ID_=-1;n.Timer.prototype.enabled=!1;n.Timer.defaultTimerObject=n.global;n.Timer.intervalScale=.8;a=n.Timer.prototype;a.timer_=null;
+a.setInterval=function(b){this.interval_=b;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};
+a.tick_=function(){if(this.enabled){var b=n.now()-this.last_;0<b&&b<this.interval_*n.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-b):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchEvent(n.Timer.TICK),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now()))}};
+a.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=n.now())};a.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};a.disposeInternal=function(){n.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};n.Timer.TICK="tick";
+n.Timer.callOnce=function(b,c,d){if(n.isFunction(b))d&&(b=n.bind(b,d));else if(b&&"function"==typeof b.handleEvent)b=n.bind(b.handleEvent,b);else throw Error("Invalid listener argument");return Number(c)>n.Timer.MAX_TIMEOUT_?n.Timer.INVALID_TIMEOUT_ID_:n.Timer.defaultTimerObject.setTimeout(b,c||0)};n.Timer.clear=function(b){n.Timer.defaultTimerObject.clearTimeout(b)};
+n.Timer.promise=function(b,c){var d=null;return ka(new n.Promise(function(e,f){d=n.Timer.callOnce(function(){e(c)},b);d==n.Timer.INVALID_TIMEOUT_ID_&&f(Error("Failed to schedule timer."))}),function(b){n.Timer.clear(d);throw b;})};n.net.XhrIo=function(b){n.events.EventTarget.call(this);this.headers=new n.structs.Map;this.xmlHttpFactory_=b||null;this.active_=!1;this.xhrOptions_=this.xhr_=null;this.lastError_=this.lastMethod_=this.lastUri_="";this.inAbort_=this.inOpen_=this.inSend_=this.errorDispatched_=!1;this.timeoutInterval_=0;this.timeoutId_=null;this.responseType_=n.net.XhrIo.ResponseType.DEFAULT;this.useXhr2Timeout_=this.progressEventsEnabled_=this.withCredentials_=!1};n.inherits(n.net.XhrIo,n.events.EventTarget);
+n.net.XhrIo.ResponseType={DEFAULT:"",TEXT:"text",DOCUMENT:"document",BLOB:"blob",ARRAY_BUFFER:"arraybuffer"};n.net.XhrIo.prototype.logger_=n.log.getLogger("goog.net.XhrIo");n.net.XhrIo.CONTENT_TYPE_HEADER="Content-Type";n.net.XhrIo.CONTENT_TRANSFER_ENCODING="Content-Transfer-Encoding";n.net.XhrIo.HTTP_SCHEME_PATTERN=/^https?$/i;n.net.XhrIo.METHODS_WITH_FORM_DATA=["POST","PUT"];n.net.XhrIo.FORM_CONTENT_TYPE="application/x-www-form-urlencoded;charset=utf-8";n.net.XhrIo.XHR2_TIMEOUT_="timeout";
+n.net.XhrIo.XHR2_ON_TIMEOUT_="ontimeout";n.net.XhrIo.sendInstances_=[];n.net.XhrIo.send=function(b,c,d,e,f,g,h){var l=new n.net.XhrIo;n.net.XhrIo.sendInstances_.push(l);c&&l.listen(n.net.EventType.COMPLETE,c);l.listenOnce(n.net.EventType.READY,l.cleanupSend_);g&&(l.timeoutInterval_=Math.max(0,g));h&&(l.withCredentials_=h);l.send(b,d,e,f);return l};n.net.XhrIo.cleanup=function(){for(var b=n.net.XhrIo.sendInstances_;b.length;)b.pop().dispose()};
+n.net.XhrIo.protectEntryPoints=function(b){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b.protectEntryPoint(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)};n.net.XhrIo.prototype.cleanupSend_=function(){this.dispose();n.array.remove(n.net.XhrIo.sendInstances_,this)};
+n.net.XhrIo.prototype.send=function(b,c,d,e){if(this.xhr_)throw Error("[goog.net.XhrIo] Object is active with another request="+this.lastUri_+"; newUri="+b);c=c?c.toUpperCase():"GET";this.lastUri_=b;this.lastError_="";this.lastMethod_=c;this.errorDispatched_=!1;this.active_=!0;this.xhr_=this.xmlHttpFactory_?this.xmlHttpFactory_.createInstance():n.net.XmlHttp();this.xhrOptions_=this.xmlHttpFactory_?this.xmlHttpFactory_.getOptions():n.net.XmlHttp.getOptions();this.xhr_.onreadystatechange=n.bind(this.onReadyStateChange_,
+this);this.progressEventsEnabled_&&"onprogress"in this.xhr_&&(this.xhr_.onprogress=n.bind(function(b){this.onProgressHandler_(b,!0)},this),this.xhr_.upload&&(this.xhr_.upload.onprogress=n.bind(this.onProgressHandler_,this)));try{n.log.fine(this.logger_,V(this,"Opening Xhr")),this.inOpen_=!0,this.xhr_.open(c,String(b),!0),this.inOpen_=!1}catch(g){n.log.fine(this.logger_,V(this,"Error opening Xhr: "+g.message));ra(this,g);return}b=d||"";var f=this.headers.clone();e&&n.structs.forEach(e,function(b,c){f.set(c,
+b)});e=n.array.find(f.getKeys(),n.net.XhrIo.isContentTypeHeader_);d=n.global.FormData&&b instanceof n.global.FormData;!n.array.contains(n.net.XhrIo.METHODS_WITH_FORM_DATA,c)||e||d||f.set(n.net.XhrIo.CONTENT_TYPE_HEADER,n.net.XhrIo.FORM_CONTENT_TYPE);f.forEach(function(b,c){this.xhr_.setRequestHeader(c,b)},this);this.responseType_&&(this.xhr_.responseType=this.responseType_);"withCredentials"in this.xhr_&&this.xhr_.withCredentials!==this.withCredentials_&&(this.xhr_.withCredentials=this.withCredentials_);
+try{sa(this),0<this.timeoutInterval_&&(this.useXhr2Timeout_=n.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_),n.log.fine(this.logger_,V(this,"Will abort after "+this.timeoutInterval_+"ms if incomplete, xhr2 "+this.useXhr2Timeout_)),this.useXhr2Timeout_?(this.xhr_[n.net.XhrIo.XHR2_TIMEOUT_]=this.timeoutInterval_,this.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=n.bind(this.timeout_,this)):this.timeoutId_=n.Timer.callOnce(this.timeout_,this.timeoutInterval_,this)),n.log.fine(this.logger_,V(this,"Sending request")),
+this.inSend_=!0,this.xhr_.send(b),this.inSend_=!1}catch(g){n.log.fine(this.logger_,V(this,"Send error: "+g.message)),ra(this,g)}};n.net.XhrIo.shouldUseXhr2Timeout_=function(b){return n.userAgent.IE&&n.userAgent.isVersionOrHigher(9)&&n.isNumber(b[n.net.XhrIo.XHR2_TIMEOUT_])&&n.isDef(b[n.net.XhrIo.XHR2_ON_TIMEOUT_])};n.net.XhrIo.isContentTypeHeader_=function(b){return n.string.caseInsensitiveEquals(b)};
+n.net.XhrIo.prototype.timeout_=function(){"undefined"!=typeof n&&this.xhr_&&(this.lastError_="Timed out after "+this.timeoutInterval_+"ms, aborting",n.log.fine(this.logger_,V(this,this.lastError_)),this.dispatchEvent(n.net.EventType.TIMEOUT),this.abort(n.net.ErrorCode.TIMEOUT))};var ra=function(b,c){b.active_=!1;b.xhr_&&(b.inAbort_=!0,b.xhr_.abort(),b.inAbort_=!1);b.lastError_=c;ta(b);W(b)},ta=function(b){b.errorDispatched_||(b.errorDispatched_=!0,b.dispatchEvent(n.net.EventType.COMPLETE),b.dispatchEvent(n.net.EventType.ERROR))};
+n.net.XhrIo.prototype.abort=function(){this.xhr_&&this.active_&&(n.log.fine(this.logger_,V(this,"Aborting")),this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1,this.dispatchEvent(n.net.EventType.COMPLETE),this.dispatchEvent(n.net.EventType.ABORT),W(this))};n.net.XhrIo.prototype.disposeInternal=function(){this.xhr_&&(this.active_&&(this.active_=!1,this.inAbort_=!0,this.xhr_.abort(),this.inAbort_=!1),W(this,!0));n.net.XhrIo.superClass_.disposeInternal.call(this)};
+n.net.XhrIo.prototype.onReadyStateChange_=function(){if(!this.isDisposed())if(this.inOpen_||this.inSend_||this.inAbort_)ua(this);else this.onReadyStateChangeEntryPoint_()};n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=function(){ua(this)};
+var ua=function(b){if(b.active_&&"undefined"!=typeof n)if(b.xhrOptions_[n.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR]&&X(b)==n.net.XmlHttp.ReadyState.COMPLETE&&2==Y(b))n.log.fine(b.logger_,V(b,"Local request error detected and ignored"));else if(b.inSend_&&X(b)==n.net.XmlHttp.ReadyState.COMPLETE)n.Timer.callOnce(b.onReadyStateChange_,0,b);else if(b.dispatchEvent(n.net.EventType.READY_STATE_CHANGE),Z(b)){n.log.fine(b.logger_,V(b,"Request complete"));b.active_=!1;try{if(b.isSuccess())b.dispatchEvent(n.net.EventType.COMPLETE),
+b.dispatchEvent(n.net.EventType.SUCCESS);else{try{var c=X(b)>n.net.XmlHttp.ReadyState.LOADED?b.xhr_.statusText:""}catch(d){n.log.fine(b.logger_,"Can not get status: "+d.message),c=""}b.lastError_=c+" ["+Y(b)+"]";ta(b)}}finally{W(b)}}};
+n.net.XhrIo.prototype.onProgressHandler_=function(b,c){n.asserts.assert(b.type===n.net.EventType.PROGRESS,"goog.net.EventType.PROGRESS is of the same type as raw XHR progress.");this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(b,n.net.EventType.PROGRESS));this.dispatchEvent(n.net.XhrIo.buildProgressEvent_(b,c?n.net.EventType.DOWNLOAD_PROGRESS:n.net.EventType.UPLOAD_PROGRESS))};n.net.XhrIo.buildProgressEvent_=function(b,c){return{type:c,lengthComputable:b.lengthComputable,loaded:b.loaded,total:b.total}};
+var W=function(b,c){if(b.xhr_){sa(b);var d=b.xhr_,e=b.xhrOptions_[n.net.XmlHttp.OptionType.USE_NULL_FUNCTION]?n.nullFunction:null;b.xhr_=null;b.xhrOptions_=null;c||b.dispatchEvent(n.net.EventType.READY);try{d.onreadystatechange=e}catch(f){n.log.error(b.logger_,"Problem encountered resetting onreadystatechange: "+f.message)}}},sa=function(b){b.xhr_&&b.useXhr2Timeout_&&(b.xhr_[n.net.XhrIo.XHR2_ON_TIMEOUT_]=null);b.timeoutId_&&(n.Timer.clear(b.timeoutId_),b.timeoutId_=null)},Z=function(b){return X(b)==
+n.net.XmlHttp.ReadyState.COMPLETE};n.net.XhrIo.prototype.isSuccess=function(){var b=Y(this),c;if(!(c=n.net.HttpStatus.isSuccess(b))){if(b=0===b)b=n.uri.utils.getEffectiveScheme(String(this.lastUri_)),b=!n.net.XhrIo.HTTP_SCHEME_PATTERN.test(b);c=b}return c};var X=function(b){return b.xhr_?b.xhr_.readyState:n.net.XmlHttp.ReadyState.UNINITIALIZED},Y=function(b){try{return X(b)>n.net.XmlHttp.ReadyState.LOADED?b.xhr_.status:-1}catch(c){return-1}};
+n.net.XhrIo.prototype.getResponseHeader=function(b){if(this.xhr_&&Z(this))return b=this.xhr_.getResponseHeader(b),n.isNull(b)?void 0:b};n.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&Z(this)?this.xhr_.getAllResponseHeaders()||"":""};var V=function(b,c){return c+" ["+b.lastMethod_+" "+b.lastUri_+" "+Y(b)+"]"};n.debug.entryPointRegistry.register(function(b){n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_=b(n.net.XhrIo.prototype.onReadyStateChangeEntryPoint_)});n.craw.AppAuthenticator=function(b,c,d){this.appUrl_=b;this.authCompletedCallback_=c;this.authFailedCallback_=d||n.functions.NULL;this.uberTokenAttempts_=0};n.craw.AppAuthenticator.UBERAUTH_URL_="https://www.google.com/accounts/OAuthLogin?issueuberauth=1";
+n.craw.AppAuthenticator.prototype.onAuthTokenReceived_=function(b){if(n.isDef(b)){var c=n.bind(this.onUberAuthResponse_,this),d="source="+chrome.runtime.getManifest().oauth2.client_id,e={Authorization:"Bearer "+b,"Content-Type":"application/x-www-form-urlencoded"},f=n.bind(function(){0===this.uberTokenAttempts_?(++this.uberTokenAttempts_,chrome.identity.removeCachedAuthToken({token:b},n.bind(this.authenticate,this))):this.authFailedCallback_()},this);n.net.XhrIo.send(n.craw.AppAuthenticator.UBERAUTH_URL_,
+function(){if(this.isSuccess()){try{var b=this.xhr_?this.xhr_.responseText:""}catch(h){n.log.fine(this.logger_,"Can not get responseText: "+h.message),b=""}c(b)}else f()},"POST",d,e)}else this.authFailedCallback_()};n.craw.AppAuthenticator.prototype.onUberAuthResponse_=function(b){var c=n.Uri.parse("https://accounts.google.com/MergeSession");N(c,"source","appsv2");N(c,"uberauth",b);N(c,"continue",this.appUrl_);this.authCompletedCallback_(c.toString())};
+n.craw.AppAuthenticator.prototype.authenticate=function(){chrome.identity.getAuthToken({interactive:!0},n.bind(this.onAuthTokenReceived_,this))};n.craw.WindowConfig=function(b,c){this.url_=b;this.useAuth_=c};n.craw.WindowConfig.prototype.getUrl=function(){return this.url_};n.craw.WindowConfig.prototype.getUseAuth=function(){return this.useAuth_};n.craw.AppWindow=function(b){this.config_=b;this.authenticator_=new n.craw.AppAuthenticator(b.getUrl(),n.bind(this.navigateToUrl_,this),n.bind(this.showOfflineWarning,this));this.webview_=n.dom.getDocument().querySelector("webview");this.hasLaunched_=!1;this.loadingOverlay_=n.dom.getElement("loading_overlay");this.offlineOverlay_=n.dom.getElement("offline_overlay");this.customStatus_=null;this.delegate_=n.craw.AppWindowDelegate.createDefaultImpl(this);this.webview_.addEventListener("contentload",
+n.bind(this.onContentLoad_,this),!1);this.webview_.addEventListener("newwindow",n.bind(this.onNewWindow_,this),!1);this.delegate_.onWindowReady();this.pollOnlineStatus_()};n.craw.AppWindow.REQUEST_FILTER_URL_PATTERN_="https://*.google.com/*";n.craw.AppWindow.REQUEST_FILTER_TYPE_="main_frame";n.craw.AppWindow.QUERY_NOCACHE_PARAMETER_="nocache";n.craw.AppWindow.NETWORK_TEST_URLS_=["https://www.google.com/images/cleardot.gif","https://www.google.com/images/dot2.gif","https://www.google.com/images/x2.gif"];
+n.craw.AppWindow.prototype.navigateToUrl_=function(b){this.webview_.src=b;this.hasLaunched_=!0};n.craw.AppWindow.prototype.onContentLoad_=function(){};n.craw.AppWindow.prototype.onNewWindow_=function(){};var va=function(b){b.hasLaunched_=!1;b.config_.getUseAuth()?b.authenticator_.authenticate():b.navigateToUrl_(b.config_.getUrl())};a=n.craw.AppWindow.prototype;a.hideVisibleOverlays_=function(){this.loadingOverlay_.style.display="none";this.offlineOverlay_.style.display="none"};
+a.fadeInOfflineOverlay_=function(){this.offlineOverlay_.style.opacity="1"};a.showOfflineWarning=function(){n.dom.getElement("app_unavailable").innerText=this.delegate_.getAppUnavailableMessage();n.dom.getElement("connect_to_network").innerText=this.customStatus_||chrome.i18n.getMessage("craw_connect_to_network");this.offlineOverlay_.style.display="-webkit-flex";this.offlineOverlay_.style.pointerEvents="all";n.Timer.callOnce(n.bind(this.fadeInOfflineOverlay_,this),0)};
+a.setOnlineStatus_=function(b){n.Timer.callOnce(n.bind(this.pollOnlineStatus_,this),1E3);b?this.hasLaunched_?this.delegate_.finishedLaunch()&&(this.offlineOverlay_.style.opacity="0",this.offlineOverlay_.style.pointerEvents="none",this.loadingOverlay_.style.opacity="0",this.loadingOverlay_.style.pointerEvents="none",n.Timer.callOnce(n.bind(this.hideVisibleOverlays_,this),250)):va(this):this.showOfflineWarning()};
+a.pollOnlineStatus_=function(){if(this.customStatus_=this.delegate_.pollOnlineStatus())this.setOnlineStatus_(!1);else{var b=n.bind(this.setOnlineStatus_,this),c=new n.Uri(n.craw.AppWindow.NETWORK_TEST_URLS_[n.math.randomInt()]);N(c,n.craw.AppWindow.QUERY_NOCACHE_PARAMETER_,Date.now().toString());n.net.XhrIo.send(c.toString(),function(){b(this.isSuccess())})}};window.onload=function(){va(new n.craw.AppWindow(n.dom.getWindow().crawConfig_))};
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css
new file mode 100644
index 0000000000000000000000000000000000000000..9b101d52287c72c0fcae53ea1bbc2571fcb2fd9c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/css/craw_window.css
@@ -0,0 +1,115 @@
+html, body {
+  margin: 0;
+  overflow: hidden;
+}
+
+webview {
+  width: 100%;
+  height: 100%;
+  min-height: 100%;
+  position: absolute;
+}
+
+.craw_overlay {
+  position: absolute;
+
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+
+  background-color: white;
+
+  -webkit-transition: opacity 250ms linear;
+
+  display: -webkit-flex;
+  -webkit-flex-direction: column;
+  -webkit-flex: 1 0%;
+  -webkit-align-items: center;
+  -webkit-justify-content: center;
+
+  -webkit-app-region: drag;
+}
+
+.craw_overlay img {
+  margin: 16px;
+}
+
+#loading_overlay {
+  opacity: 1;
+}
+
+#offline_overlay {
+  opacity: 0;
+  display: none;
+}
+
+#offline_overlay > img {
+  -webkit-filter: saturate(0%);
+}
+
+#offline_overlay > span {
+  font-family: 'Open Sans', 'Deja Vu Sans', Arial, sans-serif;
+  font-size: 15px;
+  line-height: 21px;
+  color: #8d8d8d;
+  display: block;
+}
+
+#loading_splash {
+  width: 128px;
+  height: 128px;
+}
+
+#drag_overlay {
+  position: absolute;
+  left: 0;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  pointer-events: none;
+  -webkit-app-region: drag;
+  display: none;
+}
+
+#top_bar {
+  -webkit-app-region: no-drag;
+  top: 4px;
+  right: 4px;
+  height: 28px;
+  width: 160px;
+  position: absolute;
+  pointer-events: all;
+
+  -webkit-transition: opacity 250ms linear;
+  opacity: 1;
+
+  display: none;
+}
+
+#top_bar div {
+  position: absolute;
+  width: 24px;
+  height: 24px;
+  top: 0;
+  background: url('/images/topbar_floating_button.png');
+}
+
+#top_bar div:hover {
+  background: url('/images/topbar_floating_button_hover.png');
+}
+
+#top_bar div:active {
+  background: url('/images/topbar_floating_button_pressed.png');
+}
+
+#top_bar div > img {
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  position: absolute;
+}
+
+#close_button { right: 4px; }
+#maximize_button { right: 32px; }
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html
new file mode 100644
index 0000000000000000000000000000000000000000..0d67ae1bcdd41f7771d05b9e299a1ee1a78db2b3
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/html/craw_window.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <link href="/css/craw_window.css" rel="stylesheet">
+    <script src="/craw_window.js"></script>
+  </head>
+  <body>
+    <webview></webview>
+    <div class="craw_overlay" id="loading_overlay">
+      <img src="/images/icon_128.png" />
+      <img src="/images/flapper.gif" />
+    </div>
+    <div class="craw_overlay" id="offline_overlay">
+      <img src="/images/icon_128.png" />
+      <span id="app_unavailable"></span>
+      <span id="connect_to_network"></span>
+    </div>
+    <div id="drag_overlay"></div>
+    <div id="top_bar">
+      <div id='close_button'>
+        <img src='/images/topbar_floating_button_close.png'/>
+      </div>
+      <div id='maximize_button'>
+        <img src='/images/topbar_floating_button_maximize.png'/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4471b6ba56026d87f37ca0c5367cca6069dc117a
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/flapper.gif differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6a699b085de258c89ab2488651d07a8eff2059c
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_128.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2baa6e5f240be4d278689e41ee9307eef649ed2
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/icon_16.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c02f849cf2c55caf550d5feecf73f93d5924dfe
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f29486e8827c5f297c17062a56eb8074bb61df1
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_close.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a01c12475294bd1e48f784cfc55cd0063a0f25c
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_hover.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc22c25929d9adfefbc3d0228eba01236589915a
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_maximize.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fa7f2e6ec0a2019a5b8f96bb5010aa9c66d5bc3
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/images/topbar_floating_button_pressed.png differ
diff --git a/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..18438575914957a82f3dc4036931464ac1d0faf9
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0/manifest.json
@@ -0,0 +1,27 @@
+{
+   "app": {
+      "background": {
+         "scripts": [ "craw_background.js" ]
+      }
+   },
+   "default_locale": "en",
+   "description": "__MSG_APP_DESCRIPTION__",
+   "display_in_launcher": false,
+   "display_in_new_tab_page": false,
+   "icons": {
+      "128": "images/icon_128.png",
+      "16": "images/icon_16.png"
+   },
+   "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrKfMnLqViEyokd1wk57FxJtW2XXpGXzIHBzv9vQI/01UsuP0IV5/lj0wx7zJ/xcibUgDeIxobvv9XD+zO1MdjMWuqJFcKuSS4Suqkje6u+pMrTSGOSHq1bmBVh0kpToN8YoJs/P/yrRd7FEtAXTaFTGxQL4C385MeXSjaQfiRiQIDAQAB",
+   "manifest_version": 2,
+   "minimum_chrome_version": "29",
+   "name": "__MSG_APP_NAME__",
+   "oauth2": {
+      "auto_approve": true,
+      "client_id": "203784468217.apps.googleusercontent.com",
+      "scopes": [ "https://www.googleapis.com/auth/sierra", "https://www.googleapis.com/auth/sierrasandbox", "https://www.googleapis.com/auth/chromewebstore", "https://www.googleapis.com/auth/chromewebstore.readonly" ]
+   },
+   "permissions": [ "identity", "webview", "https://www.google.com/", "https://www.googleapis.com/*", "https://payments.google.com/payments/v4/js/integrator.js", "https://sandbox.google.com/payments/v4/js/integrator.js" ],
+   "update_url": "https://clients2.google.com/service/update2/crx",
+   "version": "1.0.0.4"
+}
diff --git a/skels/prof/.config/chromium/Default/Favicons b/skels/prof/.config/chromium/Default/Favicons
new file mode 100644
index 0000000000000000000000000000000000000000..361e8f828d4e111af75afe12540e1afa38a8a043
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Favicons differ
diff --git a/skels/prof/.config/chromium/Default/Favicons-journal b/skels/prof/.config/chromium/Default/Favicons-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/History b/skels/prof/.config/chromium/Default/History
new file mode 100644
index 0000000000000000000000000000000000000000..85df9987b1451ccb88e729e94fff796bc130dc9b
Binary files /dev/null and b/skels/prof/.config/chromium/Default/History differ
diff --git a/skels/prof/.config/chromium/Default/History Provider Cache b/skels/prof/.config/chromium/Default/History Provider Cache
new file mode 100644
index 0000000000000000000000000000000000000000..68a83b1645217eff1f7318df379c4b923ae41aa9
Binary files /dev/null and b/skels/prof/.config/chromium/Default/History Provider Cache differ
diff --git a/skels/prof/.config/chromium/Default/History-journal b/skels/prof/.config/chromium/Default/History-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..1a80b33050c162013bc141b6c35a27f2a9cab0d8
Binary files /dev/null and b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log differ
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOCK b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..a956d3f1e2449877cdb6d4892b812541f598f430
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG
@@ -0,0 +1,3 @@
+2018/04/24-09:22:28.887 2112 Reusing MANIFEST /home/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001
+2018/04/24-09:22:28.887 2112 Recovering log #3
+2018/04/24-09:22:28.887 2112 Reusing old log /home/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log 
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG.old b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..7f165c262ef8c648f766232c80fa5db89066f8c6
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/LOG.old
@@ -0,0 +1,3 @@
+2018/04/24-09:21:08.417 2000 Reusing MANIFEST /home/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001
+2018/04/24-09:21:08.417 2000 Recovering log #3
+2018/04/24-09:21:08.417 2000 Reusing old log /home/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/000003.log 
diff --git a/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001 b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..3ccb46a2f1a61881a6644043c21b21edbdb22526
Binary files /dev/null and b/skels/prof/.config/chromium/Default/IndexedDB/https_www.google.com_0.indexeddb.leveldb/MANIFEST-000001 differ
diff --git a/skels/prof/.config/chromium/Default/Last Session b/skels/prof/.config/chromium/Default/Last Session
new file mode 100644
index 0000000000000000000000000000000000000000..850cbb720d54dfa478e1627699dd039280ff6743
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Last Session differ
diff --git a/skels/prof/.config/chromium/Default/Login Data b/skels/prof/.config/chromium/Default/Login Data
new file mode 100644
index 0000000000000000000000000000000000000000..1eccf7adcbcbbad050a29b3f301848bb661f5eda
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Login Data differ
diff --git a/skels/prof/.config/chromium/Default/Login Data-journal b/skels/prof/.config/chromium/Default/Login Data-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Network Action Predictor b/skels/prof/.config/chromium/Default/Network Action Predictor
new file mode 100644
index 0000000000000000000000000000000000000000..3f26e71f8db082930ace8a66a50031457639fadd
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Network Action Predictor differ
diff --git a/skels/prof/.config/chromium/Default/Network Action Predictor-journal b/skels/prof/.config/chromium/Default/Network Action Predictor-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Network Persistent State b/skels/prof/.config/chromium/Default/Network Persistent State
new file mode 100644
index 0000000000000000000000000000000000000000..8bca1008c3a8ab066cf59681e33f626ad83b86d6
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Network Persistent State	
@@ -0,0 +1 @@
+{"SDCH":{"dictionaries":{},"version":2}}
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/Origin Bound Certs b/skels/prof/.config/chromium/Default/Origin Bound Certs
new file mode 100644
index 0000000000000000000000000000000000000000..1038a3bc8aeea731d4cae2adf885394cdf75de12
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Origin Bound Certs differ
diff --git a/skels/prof/.config/chromium/Default/Origin Bound Certs-journal b/skels/prof/.config/chromium/Default/Origin Bound Certs-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Preferences b/skels/prof/.config/chromium/Default/Preferences
new file mode 100644
index 0000000000000000000000000000000000000000..3144b119cb1b4d09ee0162263c177b0faf45515d
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Preferences
@@ -0,0 +1 @@
+{"account_id_migration_state":2,"account_tracker_service_last_update":"13168963739024003","browser":{"has_seen_welcome_page":true,"window_placement":{"bottom":994,"docked":false,"left":0,"maximized":true,"right":1280,"top":0,"work_area_bottom":1024,"work_area_left":0,"work_area_right":1280,"work_area_top":0}},"countryid_at_install":18002,"data_reduction":{"daily_original_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","696719"],"daily_original_length_application":"364642","daily_original_length_unknown":"0","daily_original_length_via_data_reduction_proxy":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_original_length_via_data_reduction_proxy_application":"0","daily_original_length_via_data_reduction_proxy_unknown":"0","daily_original_length_via_data_reduction_proxy_video":"0","daily_original_length_video":"0","daily_original_length_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_original_length_with_data_reduction_proxy_enabled_application":"0","daily_original_length_with_data_reduction_proxy_enabled_unknown":"0","daily_original_length_with_data_reduction_proxy_enabled_video":"0","daily_received_length":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","696719"],"daily_received_length_application":"364642","daily_received_length_https_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_long_bypass_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_short_bypass_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_unknown":"0","daily_received_length_unknown_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_via_data_reduction_proxy":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_via_data_reduction_proxy_application":"0","daily_received_length_via_data_reduction_proxy_unknown":"0","daily_received_length_via_data_reduction_proxy_video":"0","daily_received_length_video":"0","daily_received_length_with_data_reduction_proxy_enabled":["0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"daily_received_length_with_data_reduction_proxy_enabled_application":"0","daily_received_length_with_data_reduction_proxy_enabled_unknown":"0","daily_received_length_with_data_reduction_proxy_enabled_video":"0","last_update_date":"13168994400000000"},"data_reduction_lo_fi":{"load_images_requests_per_session":0,"load_images_snackbars_shown_per_session":0,"was_used_this_session":false},"default_apps_install_state":3,"dns_prefetching":{"host_referral_list":[2,["https://www.google.com/",["https://ssl.gstatic.com/",1.8081039999999997,"https://www.google.com/",2.9369039999999993]]],"startup_list":[1,"https://ssl.gstatic.com/","https://www.google.com/"]},"extensions":{"alerts":{"initialized":true},"autoupdate":{"next_check":"13169028177295846"},"chrome_url_overrides":{"bookmarks":[{"active":true,"entry":"chrome-extension://eemcgdkfndhakfknompkggombfjjjeno/main.html"}]},"last_chrome_version":"57.0.2987.98","settings":{"ahfgeienlihckogmohjhadlkjgocpleb":{"active_permissions":{"api":["management","system.display","system.storage","webstorePrivate","system.cpu","system.memory","system.network"],"manifest_permissions":[]},"app_launcher_ordinal":"t","commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"install_time":"13168963738867778","location":5,"manifest":{"app":{"launch":{"web_url":"https://chrome.google.com/webstore"},"urls":["https://chrome.google.com/webstore"]},"description":"Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels pour Chromium.","icons":{"128":"webstore_icon_128.png","16":"webstore_icon_16.png"},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtl3tO0osjuzRsf6xtD2SKxPlTfuoy7AWoObysitBPvH5fE1NaAA1/2JkPWkVDhdLBWLaIBPYeXbzlHp3y4Vv/4XG+aN5qFE3z+1RU/NqkzVYHtIpVScf3DjTYtKVL66mzVGijSoAIwbFCC3LpGdaoe6Q1rSRDp76wR6jjFzsYwQIDAQAB","name":"Web Store","permissions":["webstorePrivate","management","system.cpu","system.display","system.memory","system.network","system.storage"],"version":"0.2"},"never_activated_since_loaded":true,"page_ordinal":"n","path":"/usr/lib/chromium/resources/web_store","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"bepbmhgboaologfdajaanbcjmnhjmhfn":{"disable_reasons":1,"state":0},"eemcgdkfndhakfknompkggombfjjjeno":{"active_permissions":{"api":["bookmarks","bookmarkManagerPrivate","metricsPrivate","systemPrivate","tabs"],"explicit_host":["chrome://favicon/*","chrome://resources/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13168963738866657","location":5,"manifest":{"chrome_url_overrides":{"bookmarks":"main.html"},"content_security_policy":"object-src 'none'; script-src chrome://resources 'self' blob: filesystem:","description":"Bookmark Manager","icons":{},"incognito":"split","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQcByy+eN9jzazWF/DPn7NW47sW7lgmpk6eKc0BQM18q8hvEM3zNm2n7HkJv/R6fU+X5mtqkDuKvq5skF6qqUF4oEyaleWDFhd1xFwV7JV+/DU7bZ00w2+6gzqsabkerFpoP33ZRIw7OviJenP0c0uWqDWF8EGSyMhB3txqhOtiQIDAQAB","manifest_version":2,"name":"Bookmark Manager","permissions":["bookmarks","bookmarkManagerPrivate","metricsPrivate","systemPrivate","tabs","chrome://favicon/","chrome://resources/"],"version":"0.1"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/bookmark_manager","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"kmendfapggjehodndflmmgagdbamhnfd":{"active_permissions":{"api":["cryptotokenPrivate","externally_connectable.all_urls","hid","tabs","u2fDevices","usb",{"usbDevices":[{"interfaceClass":-1,"interfaceId":-1,"productId":529,"vendorId":4176}]},"webConnectable"],"explicit_host":["http://*/*","https://*/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":["runtime.onConnectExternal","runtime.onMessageExternal"],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13168963738922751","location":5,"manifest":{"background":{"persistent":false,"scripts":["util.js","b64.js","sha256.js","timer.js","countdown.js","countdowntimer.js","devicestatuscodes.js","approvedorigins.js","errorcodes.js","webrequest.js","messagetypes.js","factoryregistry.js","closeable.js","requesthelper.js","enroller.js","requestqueue.js","signer.js","origincheck.js","textfetcher.js","appid.js","watchdog.js","logging.js","webrequestsender.js","window-timer.js","cryptotokenorigincheck.js","cryptotokenapprovedorigins.js","gnubbydevice.js","hidgnubbydevice.js","usbgnubbydevice.js","gnubbies.js","gnubby.js","gnubby-u2f.js","gnubbyfactory.js","singlesigner.js","multiplesigner.js","generichelper.js","inherits.js","individualattest.js","devicefactoryregistry.js","usbhelper.js","usbenrollhandler.js","usbsignhandler.js","usbgnubbyfactory.js","googlecorpindividualattest.js","cryptotokenbackground.js"]},"description":"CryptoToken Component Extension","externally_connectable":{"accepts_tls_channel_id":true,"ids":["fjajfjhkeibgmiggdfehjplbhmfkialk"],"matches":["\u003Call_urls>"]},"incognito":"split","key":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq7zRobvA+AVlvNqkHSSVhh1sEWsHSqz4oR/XptkDe/Cz3+gW9ZGumZ20NCHjaac8j1iiesdigp8B1LJsd/2WWv2Dbnto4f8GrQ5MVphKyQ9WJHwejEHN2K4vzrTcwaXqv5BSTXwxlxS/mXCmXskTfryKTLuYrcHEWK8fCHb+0gvr8b/kvsi75A1aMmb6nUnFJvETmCkOCPNX5CHTdy634Ts/x0fLhRuPlahk63rdf7agxQv5viVjQFk+tbgv6aa9kdSd11Js/RZ9yZjrFgHOBWgP4jTBqud4+HUglrzu8qynFipyNRLCZsaxhm+NItTyNgesxLdxZcwOz56KD1Q4IQIDAQAB","manifest_version":2,"name":"CryptoTokenExtension","permissions":["hid","u2fDevices","usb","cryptotokenPrivate","externally_connectable.all_urls","tabs","https://*/*","http://*/*",{"usbDevices":[{"productId":529,"vendorId":4176}]}],"version":"0.9.46"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/cryptotoken","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"mfehgcgbbipciphmccgaenjidiccnmng":{"active_permissions":{"api":["cloudPrintPrivate"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"install_time":"13168963738867291","location":5,"manifest":{"app":{"launch":{"web_url":"https://www.google.com/cloudprint"},"urls":["https://www.google.com/cloudprint/enable_chrome_connector"]},"description":"Cloud Print","display_in_launcher":false,"icons":{},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqOhnwk4+HXVfGyaNsAQdU/js1Na56diW08oF1MhZiwzSnJsEaeuMN9od9q9N4ZdK3o1xXOSARrYdE+syV7Dl31nf6qz3A6K+D5NHe6sSB9yvYlIiN37jdWdrfxxE0pRYEVYZNTe3bzq3NkcYJlOdt1UPcpJB+isXpAGUKUvt7EQIDAQAB","name":"Cloud Print","permissions":["cloudPrintPrivate"],"version":"0.1"},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/cloud_print","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"mhjfbmdgcfjbbpaeojofohoefgiehjai":{"active_permissions":{"api":["resourcesPrivate"],"explicit_host":["\u003Call_urls>","chrome://favicon/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":1,"events":[],"from_bookmark":false,"from_webstore":false,"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13168963738923283","location":5,"manifest":{"content_security_policy":"script-src 'self' blob: filesystem: chrome://resources; object-src * blob: externalfile: file: filesystem: data:; plugin-types application/x-google-chrome-pdf","description":"","incognito":"split","key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN6hM0rsDYGbzQPQfOygqlRtQgKUXMfnSjhIBL7LnReAVBEd7ZmKtyN2qmSasMl4HZpMhVe2rPWVVwBDl6iyNE/Kok6E6v6V3vCLGsOpQAuuNVye/3QxzIldzG/jQAdWZiyXReRVapOhZtLjGfywCvlWq7Sl/e3sbc0vWybSDI2QIDAQAB","manifest_version":2,"mime_types":["application/pdf"],"mime_types_handler":"index.html","name":"Chromium PDF Viewer","offline_enabled":true,"permissions":["\u003Call_urls>","resourcesPrivate"],"version":"1","web_accessible_resources":["*.js","*.html","*.css","*.png"]},"never_activated_since_loaded":true,"path":"/usr/lib/chromium/resources/pdf","preferences":{},"regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false},"nmmhkkegccagdldgiimedpiccmgmieda":{"ack_external":true,"active_permissions":{"api":["identity","webview"],"explicit_host":["https://payments.google.com/*","https://sandbox.google.com/*","https://www.google.com/*","https://www.googleapis.com/*"],"manifest_permissions":[]},"commands":{},"content_settings":[],"creation_flags":137,"events":["app.runtime.onLaunched","runtime.onConnectExternal"],"from_bookmark":false,"from_webstore":true,"granted_permissions":{"api":["identity","webview"],"explicit_host":["https://payments.google.com/*","https://sandbox.google.com/*","https://www.google.com/*","https://www.googleapis.com/*"],"manifest_permissions":[]},"incognito_content_settings":[],"incognito_preferences":{},"initial_keybindings_set":true,"install_time":"13169028053769211","lastpingday":"13169026800502618","location":10,"manifest":{"app":{"background":{"scripts":["craw_background.js"]}},"current_locale":"fr","default_locale":"en","description":"Paiements via le Chrome Web Store","display_in_launcher":false,"display_in_new_tab_page":false,"icons":{"128":"images/icon_128.png","16":"images/icon_16.png"},"key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrKfMnLqViEyokd1wk57FxJtW2XXpGXzIHBzv9vQI/01UsuP0IV5/lj0wx7zJ/xcibUgDeIxobvv9XD+zO1MdjMWuqJFcKuSS4Suqkje6u+pMrTSGOSHq1bmBVh0kpToN8YoJs/P/yrRd7FEtAXTaFTGxQL4C385MeXSjaQfiRiQIDAQAB","manifest_version":2,"minimum_chrome_version":"29","name":"Paiements via le Chrome Web Store","oauth2":{"auto_approve":true,"client_id":"203784468217.apps.googleusercontent.com","scopes":["https://www.googleapis.com/auth/sierra","https://www.googleapis.com/auth/sierrasandbox","https://www.googleapis.com/auth/chromewebstore","https://www.googleapis.com/auth/chromewebstore.readonly"]},"permissions":["identity","webview","https://www.google.com/","https://www.googleapis.com/*","https://payments.google.com/payments/v4/js/integrator.js","https://sandbox.google.com/payments/v4/js/integrator.js"],"update_url":"https://clients2.google.com/service/update2/crx","version":"1.0.0.4"},"never_activated_since_loaded":true,"path":"nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.4_0","preferences":{},"regular_only_preferences":{},"running":true,"state":1,"was_installed_by_default":true,"was_installed_by_oem":false}}},"gcm":{"product_category_for_subtypes":"org.chromium.linux"},"http_original_content_length":"696719","http_received_content_length":"696719","invalidator":{"client_id":"EGkPCUc9GTmrvYKEWAhV8w=="},"language_model_counters":{"fr":1},"media":{"device_id_salt":"uM5hXlN84p1dRv5q2CncTA=="},"net":{"network_qualities":{",1":"4G"}},"pinned_tabs":[],"plugins":{"plugins_list":[]},"profile":{"avatar_bubble_tutorial_shown":2,"avatar_index":26,"content_settings":{"domain_to_origin_migration_status":1,"exceptions":{"app_banner":{},"auto_select_certificate":{},"automatic_downloads":{},"autoplay":{},"background_sync":{},"bluetooth_guard":{},"cookies":{},"durable_storage":{},"geolocation":{},"images":{},"important_site_info":{},"javascript":{},"media_stream_camera":{},"media_stream_mic":{},"midi_sysex":{},"mixed_script":{},"notifications":{},"plugins":{},"popups":{},"ppapi_broker":{},"prompt_no_decision_count":{},"protocol_handler":{},"site_engagement":{},"ssl_cert_decisions":{},"usb_chooser_data":{}},"pref_version":1},"created_by_version":"57.0.2987.98","exit_type":"Normal","exited_cleanly":true,"local_profile_id":3472403,"managed_user_id":"","name":"Personne 1"},"protection":{"macs":{"browser":{"show_home_button":"904452986128BBEE5A7B1FFB8F342100C3150E3D9FD76C4105DF33EB021E22FD"},"default_search_provider_data":{"template_url_data":"575D258E47F940C6887685ABA99A5839CBFE4BA30863349DFE0D0C375AAB8816"},"extensions":{"settings":{"ahfgeienlihckogmohjhadlkjgocpleb":"798F4C7307D38CEDDB4CF3BB49667399FE28F04984CE62D756C669761D54E734","bepbmhgboaologfdajaanbcjmnhjmhfn":"8A21763201BA02BE4B6B57D100F2D16A45163FAF614511683823AC03AC93A582","eemcgdkfndhakfknompkggombfjjjeno":"EA53EB72FBFFAE0A34F57106EC2D0A9322921AAF1F8FB3F8203DAAD07EA522CF","kmendfapggjehodndflmmgagdbamhnfd":"337E1C714709A811C2BA7BECECAD48DF85DAF4A559472A30D20EC88D545B5E38","mfehgcgbbipciphmccgaenjidiccnmng":"6D3397FDD398CDB0731BEA7D27D27D6ADFA6637A8F544057D0092832AC5E3F46","mhjfbmdgcfjbbpaeojofohoefgiehjai":"CBE054A1F206D041AB60DF03F4B19EEABBB7ADA8FCE8840227DDD8DFD922858E","nmmhkkegccagdldgiimedpiccmgmieda":"21087AD9EB83D61ACDD17C9EFB1114D9F9863DF8A4AE92A27028FBC65F278981"}},"google":{"services":{"account_id":"E5B4CD7C5FA271A47D07D462465AFD63DBF6A8CDFAFEF4839D13F8F552131486","last_account_id":"6C67156FD15665D53CD24B5098D16B462BA8B8A0EFDD969A317C3235E973A4A3","last_username":"24FCEF9BF7DF12A2935BE143E58951E09DBAA1D3E0E24430C0FF93009F5D6AFD","username":"D26BCA1B2F99EDF1D42826D14541328D9E374F4559553FC3BB7E76405AC31AE2"}},"homepage":"B1E9FE8108A84F532486D13AAC43C0AFDA16D3DFC9EB2F743AEE11F89F2F163E","homepage_is_newtabpage":"3680F776D17E3C099431BAF5381FAB9BCC0C2C70FEA4C74D12324BC94A207119","pinned_tabs":"699F1AC92729A024B80605AFC3C63BFB2A35B70C4214581BBE108F851528E9E8","prefs":{"preference_reset_time":"95C909F3D0669D5931907B455F099C510E7770D9F0BA6FF13E4C76101B44F757"},"safebrowsing":{"incidents_sent":"569707D9A4676B72F48BE92B740BE3EF895419C8A646F1AE1BA70BD9C3B41845"},"search_provider_overrides":"1E1EBA3A4DC28A23BEFCF6ED5D71CE71E9814DD587A305F6B14F72E834AF75DD","session":{"restore_on_startup":"F9BD26F5D1AA6AB5258754888529CB2A82AE68D1703BCC2A97DEAEE5DDDA190E","startup_urls":"8BB8DBC1D7CA5C58F821C38254FB2B9C874F8EE9B9905B57DE48C731C6C91837"}}}}
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/QuotaManager b/skels/prof/.config/chromium/Default/QuotaManager
new file mode 100644
index 0000000000000000000000000000000000000000..97f268a44775f3f31501814698bfd380dcc671c0
Binary files /dev/null and b/skels/prof/.config/chromium/Default/QuotaManager differ
diff --git a/skels/prof/.config/chromium/Default/QuotaManager-journal b/skels/prof/.config/chromium/Default/QuotaManager-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/README b/skels/prof/.config/chromium/Default/README
new file mode 100644
index 0000000000000000000000000000000000000000..545cc6279beb0bd80ec9035d7ea1eee587da8d74
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/README
@@ -0,0 +1 @@
+Chromium settings and storage represent user-selected preferences and information and MUST not be extracted, overwritten or modified except through Chromium defined APIs.
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/Secure Preferences b/skels/prof/.config/chromium/Default/Secure Preferences
new file mode 100644
index 0000000000000000000000000000000000000000..5fa475e9e9952486ce7590ef93d377424a89bf1c
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Secure Preferences	
@@ -0,0 +1 @@
+{"protection":{"super_mac":"B613679A0814D9EC772F95D778C35FC5FF1697C493715653C6C712144292C5AD"}}
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1157fee2e2dc1968_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1157fee2e2dc1968_0
new file mode 100644
index 0000000000000000000000000000000000000000..af27fd2658a43b5519af239da43d7516cfde87dc
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1157fee2e2dc1968_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1b50f081c2940762_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1b50f081c2940762_0
new file mode 100644
index 0000000000000000000000000000000000000000..f7a780a813846098f22e85b370b033af11300b49
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/1b50f081c2940762_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_0
new file mode 100644
index 0000000000000000000000000000000000000000..37e95994fa85c2e6a9f19ca0e5c5d2ab6745ce81
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_1 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_1
new file mode 100644
index 0000000000000000000000000000000000000000..b236ba51fea49445a94db92228a73584ec75a304
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4646f5f439a00e10_1 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4b708aa6fca448c3_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4b708aa6fca448c3_0
new file mode 100644
index 0000000000000000000000000000000000000000..8f244bb98d82f58cb02da0e984950b9874d80947
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/4b708aa6fca448c3_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_0
new file mode 100644
index 0000000000000000000000000000000000000000..9acce210e03ce7987a26c3c75bde7a9343f0e704
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_1 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_1
new file mode 100644
index 0000000000000000000000000000000000000000..4611eff6578dd65f3ee47612704328e3756c5bf0
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/ac8fc8821ce50334_1 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/de5032c33a16f1da_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/de5032c33a16f1da_0
new file mode 100644
index 0000000000000000000000000000000000000000..1c6752dfc2e343d6552f2ca2d5a997855fdc5786
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/de5032c33a16f1da_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/fdf2cfeb8ad0eeac_0 b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/fdf2cfeb8ad0eeac_0
new file mode 100644
index 0000000000000000000000000000000000000000..73df7ba50a27e2170c798c54ea7e6fba4138f484
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/fdf2cfeb8ad0eeac_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index
new file mode 100644
index 0000000000000000000000000000000000000000..5ede15eb1eade1cad162d118dfe341e51f14152e
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index-dir/the-real-index b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index-dir/the-real-index
new file mode 100644
index 0000000000000000000000000000000000000000..747813f130d3e07fb3354452cce4cd1ef05e3352
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/04975963-45aa-4d9b-97f9-6d170d0fa3f9/index-dir/the-real-index differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ff86bb92554b9271d7460c16ed71a3e3abe14ad8
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Service Worker/CacheStorage/28da9c56fde4021055a681112c092453f74d8dd8/index.txt	
@@ -0,0 +1,3 @@
+
+<
+newtab-static-48rkas$04975963-45aa-4d9b-97f9-6d170d0fa3f9https://www.google.com/
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/000003.log b/skels/prof/.config/chromium/Default/Service Worker/Database/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..05cb8653514cf4efe0f154e332e14c3fb2c3066f
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/Database/000003.log differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/CURRENT b/skels/prof/.config/chromium/Default/Service Worker/Database/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Service Worker/Database/CURRENT	
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/LOCK b/skels/prof/.config/chromium/Default/Service Worker/Database/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/LOG b/skels/prof/.config/chromium/Default/Service Worker/Database/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..1b9798a7aa3900339d03905e4e73c873011b6796
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Service Worker/Database/LOG	
@@ -0,0 +1,3 @@
+2018/04/24-09:22:28.775 2116 Reusing MANIFEST /home/prof/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
+2018/04/24-09:22:28.775 2116 Recovering log #3
+2018/04/24-09:22:28.775 2116 Reusing old log /home/prof/.config/chromium/Default/Service Worker/Database/000003.log 
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/LOG.old b/skels/prof/.config/chromium/Default/Service Worker/Database/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..68d30ca5ce32f2a233a6bd4402b60c952e6bf5d3
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/Service Worker/Database/LOG.old	
@@ -0,0 +1,3 @@
+2018/04/24-09:21:08.220 2017 Reusing MANIFEST /home/prof/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
+2018/04/24-09:21:08.220 2017 Recovering log #3
+2018/04/24-09:21:08.220 2017 Reusing old log /home/prof/.config/chromium/Default/Service Worker/Database/000003.log 
diff --git a/skels/prof/.config/chromium/Default/Service Worker/Database/MANIFEST-000001 b/skels/prof/.config/chromium/Default/Service Worker/Database/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/Database/MANIFEST-000001 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0
new file mode 100644
index 0000000000000000000000000000000000000000..804a645b631c09c519fb6082e789668cfb9227d9
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_0 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1
new file mode 100644
index 0000000000000000000000000000000000000000..612b8bdded7368cce0a2dc3fb76949930c21bc0e
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/2cc80dabc69f58b6_1 differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index
new file mode 100644
index 0000000000000000000000000000000000000000..5ede15eb1eade1cad162d118dfe341e51f14152e
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index differ
diff --git a/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index
new file mode 100644
index 0000000000000000000000000000000000000000..11e32d636f43f855c7cdabc054622f182e928bb4
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Service Worker/ScriptCache/index-dir/the-real-index differ
diff --git a/skels/prof/.config/chromium/Default/Shortcuts b/skels/prof/.config/chromium/Default/Shortcuts
new file mode 100644
index 0000000000000000000000000000000000000000..50aea2f5679a9747085eef797b9a5ddce6419ffb
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Shortcuts differ
diff --git a/skels/prof/.config/chromium/Default/Shortcuts-journal b/skels/prof/.config/chromium/Default/Shortcuts-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/Top Sites b/skels/prof/.config/chromium/Default/Top Sites
new file mode 100644
index 0000000000000000000000000000000000000000..c3c3be41caf3846cc42c2397f7c5bcbc14d3a444
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Top Sites differ
diff --git a/skels/prof/.config/chromium/Default/Top Sites-journal b/skels/prof/.config/chromium/Default/Top Sites-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/TransportSecurity b/skels/prof/.config/chromium/Default/TransportSecurity
new file mode 100644
index 0000000000000000000000000000000000000000..db9d41c11be984c7aa3819a9168366af372faa44
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/TransportSecurity
@@ -0,0 +1,11 @@
+{
+   "5EdUoB7YUY9zZV+2DkgVXgho8WUvp+D+6KpeUOhNQIM=": {
+      "dynamic_spki_hashes_expiry": 0.0,
+      "expiry": 1524640949.042262,
+      "mode": "force-https",
+      "pkp_include_subdomains": false,
+      "pkp_observed": 0.0,
+      "sts_include_subdomains": false,
+      "sts_observed": 1524554549.042266
+   }
+}
diff --git a/skels/prof/.config/chromium/Default/Visited Links b/skels/prof/.config/chromium/Default/Visited Links
new file mode 100644
index 0000000000000000000000000000000000000000..afc5715df43532831e03d80a48ddf6de493c2597
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Visited Links differ
diff --git a/skels/prof/.config/chromium/Default/Web Data b/skels/prof/.config/chromium/Default/Web Data
new file mode 100644
index 0000000000000000000000000000000000000000..0c25eaec5173521e4d0861b87f3eb78c76f5553b
Binary files /dev/null and b/skels/prof/.config/chromium/Default/Web Data differ
diff --git a/skels/prof/.config/chromium/Default/Web Data-journal b/skels/prof/.config/chromium/Default/Web Data-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT
new file mode 100644
index 0000000000000000000000000000000000000000..7ed683d17118b70e46011ddc3562b455d0a4f866
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000001
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOCK b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOCK
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG
new file mode 100644
index 0000000000000000000000000000000000000000..32fea117f1f1b946beee1541db1e5fdf134ecf29
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG
@@ -0,0 +1,3 @@
+2018/04/24-09:22:28.726 2116 Reusing MANIFEST /home/prof/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
+2018/04/24-09:22:28.726 2116 Recovering log #3
+2018/04/24-09:22:28.726 2116 Reusing old log /home/prof/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log 
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old
new file mode 100644
index 0000000000000000000000000000000000000000..51c0a6944e8bcb49922d16fbc4fdd9155a347a40
--- /dev/null
+++ b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/LOG.old
@@ -0,0 +1,3 @@
+2018/04/24-09:21:08.169 2005 Reusing MANIFEST /home/prof/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
+2018/04/24-09:21:08.169 2005 Recovering log #3
+2018/04/24-09:21:08.169 2005 Reusing old log /home/prof/.config/chromium/Default/data_reduction_proxy_leveldb/000003.log 
diff --git a/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001 b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001
new file mode 100644
index 0000000000000000000000000000000000000000..18e5cab72c1550d8dc398e3413eea91bee24db77
Binary files /dev/null and b/skels/prof/.config/chromium/Default/data_reduction_proxy_leveldb/MANIFEST-000001 differ
diff --git a/skels/prof/.config/chromium/Default/databases/Databases.db b/skels/prof/.config/chromium/Default/databases/Databases.db
new file mode 100644
index 0000000000000000000000000000000000000000..9bea56b394c580507c67562ab45db04dd0dbccc1
Binary files /dev/null and b/skels/prof/.config/chromium/Default/databases/Databases.db differ
diff --git a/skels/prof/.config/chromium/Default/databases/Databases.db-journal b/skels/prof/.config/chromium/Default/databases/Databases.db-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Default/previews_opt_out.db b/skels/prof/.config/chromium/Default/previews_opt_out.db
new file mode 100644
index 0000000000000000000000000000000000000000..d8a6a00e40623b0e88215a4964b1f243561f2e27
Binary files /dev/null and b/skels/prof/.config/chromium/Default/previews_opt_out.db differ
diff --git a/skels/prof/.config/chromium/Default/previews_opt_out.db-journal b/skels/prof/.config/chromium/Default/previews_opt_out.db-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/First Run b/skels/prof/.config/chromium/First Run
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/Local State b/skels/prof/.config/chromium/Local State
new file mode 100644
index 0000000000000000000000000000000000000000..ff0dc14d8125bdb00bd0ba7ac2e13c134533cee7
--- /dev/null
+++ b/skels/prof/.config/chromium/Local State	
@@ -0,0 +1 @@
+{"browser":{"last_redirect_origin":""},"easy_unlock":{"user_prefs":{"":{"easy_unlock.proximity_required":false}}},"gl_renderer_string":"Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)","gl_vendor_string":"VMware, Inc.","gl_version_string":"3.0 Mesa 10.3.2","hardware_acceleration_mode_previous":true,"policy":{"last_statistics_update":"13168963737622768"},"profile":{"info_cache":{"Default":{"active_time":1524554453.362977,"avatar_icon":"chrome://theme/IDR_PROFILE_AVATAR_26","background_apps":false,"gaia_id":"","is_ephemeral":false,"is_omitted_from_profile_list":false,"is_using_default_avatar":true,"is_using_default_name":true,"managed_user_id":"","name":"Personne 1","stats_bookmarks":0,"stats_browsing_history":0,"stats_passwords":0,"stats_settings":59,"user_name":""}},"last_active_profiles":[]},"rappor":{"cohort_seed":435,"secret":"5J8sVvvzxWK6eCzcX2yV4LQNEc+n61qD2t0+kGXjx1nHTcvot4dQa9riYUssMcfi"},"show-first-run-bubble-option":0,"shutdown":{"num_processes":0,"num_processes_slow":0,"type":0},"startup_metric":{"last_startup_timestamp":"13169028148040000","last_startup_version":"57.0.2987.98","same_version_startup_count":4},"supervised_users":{"whitelists":{}},"uninstall_metrics":{"installation_date2":"1524490137","launch_count":"4"},"user_experience_metrics":{"low_entropy_source2":3614,"session_id":3,"stability":{"breakpad_registration_fail":4,"breakpad_registration_ok":0,"child_process_crash_count":0,"crash_count":0,"debugger_not_present":4,"debugger_present":0,"deferred_count":0,"discard_count":1,"execution_phase":700,"exited_cleanly":true,"extension_renderer_crash_count":0,"extension_renderer_failed_launch_count":0,"extension_renderer_launch_count":0,"incomplete_session_end_count":0,"last_timestamp_sec":"1524554551","launch_count":4,"launch_time_sec":"1524554548","page_load_count":0,"plugin_stats2":[],"renderer_crash_count":0,"renderer_failed_launch_count":0,"renderer_hang_count":0,"renderer_launch_count":0,"session_end_completed":true,"stats_buildtime":"1488690000","stats_version":"57.0.2987.98-64-devel","version_mismatch_count":0}},"was":{"restarted":false}}
\ No newline at end of file
diff --git a/skels/prof/.config/chromium/Safe Browsing Cookies b/skels/prof/.config/chromium/Safe Browsing Cookies
new file mode 100644
index 0000000000000000000000000000000000000000..51422ad34de72ea4603cef057e6ebaa991c5ddd3
Binary files /dev/null and b/skels/prof/.config/chromium/Safe Browsing Cookies differ
diff --git a/skels/prof/.config/chromium/Safe Browsing Cookies-journal b/skels/prof/.config/chromium/Safe Browsing Cookies-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.config/chromium/ShaderCache/GPUCache/data_0 b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_0
new file mode 100644
index 0000000000000000000000000000000000000000..d76fb77e93ac8a536b5dbade616d63abd00626c5
Binary files /dev/null and b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_0 differ
diff --git a/skels/prof/.config/chromium/ShaderCache/GPUCache/data_1 b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_1
new file mode 100644
index 0000000000000000000000000000000000000000..dcaafa9740ee97afbdf50792612ef9f379e292dc
Binary files /dev/null and b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_1 differ
diff --git a/skels/prof/.config/chromium/ShaderCache/GPUCache/data_2 b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_2
new file mode 100644
index 0000000000000000000000000000000000000000..c7e2eb9adcfb2d3313ec85f5c28cedda950a3f9b
Binary files /dev/null and b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_2 differ
diff --git a/skels/prof/.config/chromium/ShaderCache/GPUCache/data_3 b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_3
new file mode 100644
index 0000000000000000000000000000000000000000..5eec97358cf550862fd343fc9a73c159d4c0ab10
Binary files /dev/null and b/skels/prof/.config/chromium/ShaderCache/GPUCache/data_3 differ
diff --git a/skels/prof/.config/chromium/ShaderCache/GPUCache/index b/skels/prof/.config/chromium/ShaderCache/GPUCache/index
new file mode 100644
index 0000000000000000000000000000000000000000..2819a48316e87b2f0c3293e8a8f6928f1881bbdb
Binary files /dev/null and b/skels/prof/.config/chromium/ShaderCache/GPUCache/index differ
diff --git a/skels/prof/.config/lxpanel/default/panels/panel b/skels/prof/.config/lxpanel/default/panels/panel
index a18a493845e1b2ee1bac3086e98cdf677acf1a92..5a5ec164bd0c7d3c702cfafeb43c928ed9603188 100644
--- a/skels/prof/.config/lxpanel/default/panels/panel
+++ b/skels/prof/.config/lxpanel/default/panels/panel
@@ -32,10 +32,10 @@ Plugin {
   type=launchbar
   Config {
     Button {
-      id=menu://applications/Accessories/exo-file-manager.desktop
+      id=menu://applications/Internet/exo-web-browser.desktop
     }
     Button {
-      id=menu://applications/Internet/firefox-esr.desktop
+      id=menu://applications/Accessories/exo-file-manager.desktop
     }
   }
 }
diff --git a/skels/prof/.config/menus/xfce-applications.menu b/skels/prof/.config/menus/xfce-applications.menu
index 7e9465a11957447d86f7905d33a6b7b5bd270919..7acdee19acf7c14695077d2077fe6bba5563129a 100644
--- a/skels/prof/.config/menus/xfce-applications.menu
+++ b/skels/prof/.config/menus/xfce-applications.menu
@@ -56,6 +56,7 @@
 			<Filename>JB-policytool-jdk8.desktop</Filename>
 			<Filename>gpk-application.desktop</Filename>
 			<Filename>gpk-prefs.desktop</Filename>
+			<Filename>lxinput.desktop</Filename>
 			<Merge type="files" />
 		</Layout>
 	</Menu>
@@ -191,7 +192,6 @@
 			<Filename>activer-serveur.desktop</Filename>
 			<Filename>Appliplanet.desktop</Filename>
 			<Filename>Ardora.desktop</Filename>
-			<Filename>calculatice.desktop</Filename>
 			<Filename>DrGeo.desktop</Filename>
 			<Filename>jclic.desktop</Filename>
 			<Filename>jclicauthor.desktop</Filename>
@@ -245,6 +245,7 @@
 			<Filename>firefox-esr.desktop</Filename>
 			<Filename>JB-javaws-jdk8.desktop</Filename>
 			<Filename>thunderbird.desktop</Filename>
+			<Filename>chromium.desktop</Filename>
 			<Merge type="files" />
 		</Layout>
 	</Menu>
diff --git a/skels/prof/.config/rox.sourceforge.net/ROX-Filer/pb_1 b/skels/prof/.config/rox.sourceforge.net/ROX-Filer/pb_1
index 21913e23c8967b6b7324f60812b8b74b6d00d9c3..8b6c88bb8ba5fe6ef51dc654f018b3fd8f849e33 100644
--- a/skels/prof/.config/rox.sourceforge.net/ROX-Filer/pb_1
+++ b/skels/prof/.config/rox.sourceforge.net/ROX-Filer/pb_1
@@ -1,4 +1,5 @@
 <?xml version="1.0"?>
 <pinboard>
   <backdrop style="Stretched">/usr/share/backgrounds/chien.png</backdrop>
+  <icon x="32" y="64" label="chromium" locked="true">/usr/share/applications/chromium.desktop</icon>
 </pinboard>
diff --git a/skels/prof/.config/xfce4/helpers.rc b/skels/prof/.config/xfce4/helpers.rc
index cd9446b9451be5805cfe2f403b9f9e8c9b930034..edc2d267ebce72a4869252e0bf5294403d3f8d62 100644
--- a/skels/prof/.config/xfce4/helpers.rc
+++ b/skels/prof/.config/xfce4/helpers.rc
@@ -1,5 +1,5 @@
 FileManager=pcmanfm
-WebBrowser=seamonkey
+WebBrowser=chromium
 MailReader=seamonkey
 TerminalEmulator=roxterm
 
diff --git a/skels/prof/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0 b/skels/prof/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0
new file mode 100644
index 0000000000000000000000000000000000000000..4e0def17e0dafee96832fe02b66b416429016406
--- /dev/null
+++ b/skels/prof/.dbus/session-bus/873a1ac305714102a8cb568aa277bfb7-0
@@ -0,0 +1,8 @@
+# This file allows processes on the machine with id 873a1ac305714102a8cb568aa277bfb7 using 
+# display :0 to find the D-Bus session bus with the below address.
+# If the DBUS_SESSION_BUS_ADDRESS environment variable is set, it will
+# be used rather than this file.
+# See "man dbus-launch" for more details.
+DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-bzosJKUC36,guid=75711f46b9bd64599b68f28c5adee50a
+DBUS_SESSION_BUS_PID=1558
+DBUS_SESSION_BUS_WINDOWID=4194305
diff --git a/skels/prof/bookmarks-2018-01-24.json b/skels/prof/.local/share/Trash/files/bookmarks-2018-01-24.json
similarity index 100%
rename from skels/prof/bookmarks-2018-01-24.json
rename to skels/prof/.local/share/Trash/files/bookmarks-2018-01-24.json
diff --git a/skels/prof/.local/share/Trash/info/bookmarks-2018-01-24.json.trashinfo b/skels/prof/.local/share/Trash/info/bookmarks-2018-01-24.json.trashinfo
new file mode 100644
index 0000000000000000000000000000000000000000..f62a7a764594e38153f0501942675fb6c622d4e2
--- /dev/null
+++ b/skels/prof/.local/share/Trash/info/bookmarks-2018-01-24.json.trashinfo
@@ -0,0 +1,3 @@
+[Trash Info]
+Path=/home/prof/bookmarks-2018-01-24.json
+DeletionDate=2018-04-24T09:10:47
diff --git a/skels/prof/.local/share/applications/fskbsetting.desktop b/skels/prof/.local/share/applications/fskbsetting.desktop
index 3e4cb2b45a267173352e78f92a3d271e39715e19..6f70583c54edbd857f44f4f94f6ff7b25a4f91cd 100644
--- a/skels/prof/.local/share/applications/fskbsetting.desktop
+++ b/skels/prof/.local/share/applications/fskbsetting.desktop
@@ -6,7 +6,7 @@ GenericName=Clavier
 Comment=Configures keyboard options and layouts.
 Icon=preferences-desktop-keyboard
 Exec=fskbsetting
-NoDisplay=true
+NoDisplay=false
 Categories=DesktopSettings;GTK;Settings;
 StartupNotify=true
 Terminal=false
diff --git a/skels/prof/.local/share/applications/lxinput.desktop b/skels/prof/.local/share/applications/lxinput.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..93cc82371a24e75e9d5ed2fe5f6bb6da7e69d59e
--- /dev/null
+++ b/skels/prof/.local/share/applications/lxinput.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Clavier et souris
+Comment=Configure le clavier, la souris et d'autres périphériques d'entrée
+Icon=input-keyboard
+Exec=lxinput
+NoDisplay=false
+NotShowIn=GNOME;KDE;
+Categories=GTK;HardwareSettings;Settings;X-LXDE-Settings;
+StartupNotify=true
+Terminal=false
diff --git a/skels/prof/.local/share/applications/mimeapps.list b/skels/prof/.local/share/applications/mimeapps.list
index 543aad66a6774bc5c28f5787ba908cc37795e6e5..913f94b2fc86ecf92936a00bae1eb73563ec93b8 100644
--- a/skels/prof/.local/share/applications/mimeapps.list
+++ b/skels/prof/.local/share/applications/mimeapps.list
@@ -1,6 +1,6 @@
 [Added Associations]
-x-scheme-handler/http=seamonkey.desktop
-x-scheme-handler/https=seamonkey.desktop
+x-scheme-handler/http=exo-web-browser.desktop
+x-scheme-handler/https=exo-web-browser.desktop
 
 [Default Applications]
 text/plain=leafpad.desktop;
diff --git a/skels/prof/.local/share/gvfs-metadata/home b/skels/prof/.local/share/gvfs-metadata/home
index 57bbc09e6059dd9abba9674dd2895b92ec8bf4f1..690bc540f257c7f0c1157ebbf69bcd5b732ceccf 100644
Binary files a/skels/prof/.local/share/gvfs-metadata/home and b/skels/prof/.local/share/gvfs-metadata/home differ
diff --git a/skels/prof/.local/share/gvfs-metadata/home-4a50c486.log b/skels/prof/.local/share/gvfs-metadata/home-e992ac89.log
similarity index 99%
rename from skels/prof/.local/share/gvfs-metadata/home-4a50c486.log
rename to skels/prof/.local/share/gvfs-metadata/home-e992ac89.log
index 731b07fd471af3d337814fc7a66feb20632a4bb7..1b116c56a348e3f691603bc65eadde7bc0432f22 100644
Binary files a/skels/prof/.local/share/gvfs-metadata/home-4a50c486.log and b/skels/prof/.local/share/gvfs-metadata/home-e992ac89.log differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/SiteSecurityServiceState.txt b/skels/prof/.mozilla/firefox/gzylh1ps.default/SiteSecurityServiceState.txt
index 65c547b3db85f11ff5715af480f77349f7050b8c..bebde9571de454d1f734dc3d085ba38ad09209fb 100644
--- a/skels/prof/.mozilla/firefox/gzylh1ps.default/SiteSecurityServiceState.txt
+++ b/skels/prof/.mozilla/firefox/gzylh1ps.default/SiteSecurityServiceState.txt
@@ -1,4 +1,4 @@
-versioncheck-bg.addons.mozilla.org:HPKP	0	17556	1522070569329,1,1,WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=
+blocklist.addons.mozilla.org:HSTS	2	17556	1516886988428,1,0
 services.addons.mozilla.org:HSTS	6	17556	1548422568475,1,0
 api.qwant.com:HSTS	0	16862	1488469380437,1,1
 stats.g.doubleclick.net:HSTS	0	16862	1467819145048,1,0
@@ -8,7 +8,7 @@ shavar.services.mozilla.com:HSTS	1	17560	1548753635414,1,1
 s.qwant.com:HSTS	0	16862	1488469760163,1,1
 www.qwantjunior.com:HSTS	1	16867	1488912850700,1,1
 addons.mozilla.org:HSTS	3	17002	1500561658285,1,0
-blocklist.addons.mozilla.org:HSTS	2	17556	1516886988428,1,0
+versioncheck-bg.addons.mozilla.org:HPKP	0	17556	1522070569329,1,1,WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=
 aus5.mozilla.org:HSTS	1	17560	1548753682768,1,0
 addons.cdn.mozilla.net:HSTS	0	16862	1488468860315,1,0
 easylist-downloads.adblockplus.org:HSTS	0	16862	1488468934576,1,0
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/cookies.sqlite b/skels/prof/.mozilla/firefox/gzylh1ps.default/cookies.sqlite
index b82470df10bb22993d2dc0db3eb3eb2af2a2f499..bf4c3c5a4ae0d75aa9c4bdcbeb3a0493bfa775b5 100644
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/cookies.sqlite and b/skels/prof/.mozilla/firefox/gzylh1ps.default/cookies.sqlite differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516877471644.79f6c056-3553-4ecd-8d7e-2e28d0ff2f5c.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516877471644.79f6c056-3553-4ecd-8d7e-2e28d0ff2f5c.main.jsonlz4
deleted file mode 100644
index 942de303af946765b86d567c803d1876ac708f49..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516877471644.79f6c056-3553-4ecd-8d7e-2e28d0ff2f5c.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516886858850.0bc06626-efa8-43c0-91b3-371f3169d71b.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516886858850.0bc06626-efa8-43c0-91b3-371f3169d71b.main.jsonlz4
deleted file mode 100644
index e8705b12515c549bfdb17a336fcdba7b57bccec9..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516886858850.0bc06626-efa8-43c0-91b3-371f3169d71b.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887207656.88964edf-a4cb-4b01-9cb5-926ce087f452.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887207656.88964edf-a4cb-4b01-9cb5-926ce087f452.main.jsonlz4
deleted file mode 100644
index 7234d6b301b0586622075f9f8e95324d3624a187..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887207656.88964edf-a4cb-4b01-9cb5-926ce087f452.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887774562.3bfce968-afa9-4959-a5be-4cefda8c726d.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887774562.3bfce968-afa9-4959-a5be-4cefda8c726d.main.jsonlz4
deleted file mode 100644
index 855a898e6945a7bfbf9e647d97710dec98782947..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516887774562.3bfce968-afa9-4959-a5be-4cefda8c726d.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888363961.6340f6d5-a60c-46e5-a45a-b1f129cfd9b9.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888363961.6340f6d5-a60c-46e5-a45a-b1f129cfd9b9.main.jsonlz4
deleted file mode 100644
index f64c8f34447e135ea43b1a4a65c4eb0aa5484019..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888363961.6340f6d5-a60c-46e5-a45a-b1f129cfd9b9.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888434652.04b09dd4-e54a-4d17-80e8-1ad42001b814.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888434652.04b09dd4-e54a-4d17-80e8-1ad42001b814.main.jsonlz4
deleted file mode 100644
index ae221acd23efec86cd3d4c7e54d3d60b1e76c240..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1516888434652.04b09dd4-e54a-4d17-80e8-1ad42001b814.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517217741793.5fb542fb-90ee-4410-a729-496c279c8156.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517217741793.5fb542fb-90ee-4410-a729-496c279c8156.main.jsonlz4
deleted file mode 100644
index 3b4b8c0b0d0b5cd68b1572e5b833038c7e6234e8..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-01/1517217741793.5fb542fb-90ee-4410-a729-496c279c8156.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-02/1518168122392.b8d2f31a-fdec-483f-b0e3-74a7676d6e78.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-02/1518168122392.b8d2f31a-fdec-483f-b0e3-74a7676d6e78.main.jsonlz4
deleted file mode 100644
index 7add41512a3c92791e3c51e2c46ee19ce5447542..0000000000000000000000000000000000000000
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-02/1518168122392.b8d2f31a-fdec-483f-b0e3-74a7676d6e78.main.jsonlz4 and /dev/null differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524490131164.297ef4aa-7c5f-42a1-b8a6-4d1e74ff2c79.main.jsonlz4 b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524490131164.297ef4aa-7c5f-42a1-b8a6-4d1e74ff2c79.main.jsonlz4
new file mode 100644
index 0000000000000000000000000000000000000000..dec7f03386bd6b20f554c3175dc8d67af7b4be0c
Binary files /dev/null and b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/archived/2018-04/1524490131164.297ef4aa-7c5f-42a1-b8a6-4d1e74ff2c79.main.jsonlz4 differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
index c70ccbf32de977efa3c2b4781022ea105c188c7e..920399fab7f32869cbaf1348e16dc9294d4c0986 100644
--- a/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
+++ b/skels/prof/.mozilla/firefox/gzylh1ps.default/datareporting/session-state.json
@@ -1 +1 @@
-{"sessionId":"da3b0c55-2a2c-499c-8c77-223da9d971a3","subsessionId":"ad21cb09-2d53-48f4-ae41-7465dd481f99","profileSubsessionCounter":47}
\ No newline at end of file
+{"sessionId":"a2329aa7-749b-4039-b0c3-30455d0c060b","subsessionId":"dfac1ae7-b840-40c6-ba44-7f59ad15719f","profileSubsessionCounter":48}
\ No newline at end of file
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite b/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite
index 55bfb4f6fd6c8272dc9596133a355886cedaf577..ffa10313d8caf1a1002786ca703ea693a8a18566 100644
Binary files a/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite and b/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite differ
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite-journal b/skels/prof/.mozilla/firefox/gzylh1ps.default/places.sqlite-journal
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/prefs.js b/skels/prof/.mozilla/firefox/gzylh1ps.default/prefs.js
index e61fd58147610dff19d85288fa6b026ec94e0efb..95b8731fad55372f4255c7729f29f55c548c3036 100644
--- a/skels/prof/.mozilla/firefox/gzylh1ps.default/prefs.js
+++ b/skels/prof/.mozilla/firefox/gzylh1ps.default/prefs.js
@@ -13,7 +13,7 @@ user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1516886
 user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1517217651);
 user_pref("app.update.lastUpdateTime.datareporting-healthreport-lastDailyCollection", 0);
 user_pref("app.update.lastUpdateTime.experiments-update-timer", 1516877411);
-user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1516887745);
+user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1524490086);
 user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1516888076);
 user_pref("browser.cache.disk.capacity", 358400);
 user_pref("browser.cache.disk.filesystem_reported", 1);
@@ -42,9 +42,9 @@ user_pref("browser.search.hiddenOneOffs", "Yahoo,Bing,Amazon.fr,Debian packages,
 user_pref("browser.search.region", "FR");
 user_pref("browser.search.useDBForOrder", true);
 user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20151216080806");
-user_pref("browser.shell.mostRecentDateSetAsDefault", "1518168117");
-user_pref("browser.slowStartup.averageTime", 1687);
-user_pref("browser.slowStartup.samples", 4);
+user_pref("browser.shell.mostRecentDateSetAsDefault", "1524490058");
+user_pref("browser.slowStartup.averageTime", 0);
+user_pref("browser.slowStartup.samples", 0);
 user_pref("browser.startup.homepage", "https://www.qwantjunior.com/");
 user_pref("browser.startup.homepage_override.buildID", "20171114221957");
 user_pref("browser.startup.homepage_override.mstone", "52.5.0");
@@ -58,14 +58,14 @@ user_pref("datareporting.healthreport.service.firstRun", true);
 user_pref("datareporting.policy.dataSubmissionPolicyAcceptedVersion", 2);
 user_pref("datareporting.policy.dataSubmissionPolicyNotifiedTime", "1468509938553");
 user_pref("datareporting.policy.firstRunTime", "1468509877752");
-user_pref("datareporting.sessions.current.activeTicks", 1);
+user_pref("datareporting.sessions.current.activeTicks", 15);
 user_pref("datareporting.sessions.current.clean", true);
-user_pref("datareporting.sessions.current.firstPaint", 1638);
-user_pref("datareporting.sessions.current.main", 10);
-user_pref("datareporting.sessions.current.sessionRestored", 1571);
-user_pref("datareporting.sessions.current.startTime", "1518168116281");
-user_pref("datareporting.sessions.current.totalTime", 5);
-user_pref("datareporting.sessions.currentIndex", 44);
+user_pref("datareporting.sessions.current.firstPaint", 5134);
+user_pref("datareporting.sessions.current.main", 561);
+user_pref("datareporting.sessions.current.sessionRestored", 4993);
+user_pref("datareporting.sessions.current.startTime", "1524490053037");
+user_pref("datareporting.sessions.current.totalTime", 78);
+user_pref("datareporting.sessions.currentIndex", 45);
 user_pref("datareporting.sessions.previous.0", "{\"s\":1468509874699,\"a\":5,\"t\":29,\"c\":true,\"m\":31,\"fp\":1705,\"sr\":5849}");
 user_pref("datareporting.sessions.previous.1", "{\"s\":1468509925700,\"a\":5,\"t\":31,\"c\":true,\"m\":20,\"fp\":2950,\"sr\":2857}");
 user_pref("datareporting.sessions.previous.10", "{\"s\":1468778004353,\"a\":1,\"t\":4,\"c\":true,\"m\":20,\"fp\":-1,\"sr\":-1}");
@@ -105,6 +105,7 @@ user_pref("datareporting.sessions.previous.40", "{\"s\":1516887714336,\"a\":12,\
 user_pref("datareporting.sessions.previous.41", "{\"s\":1516888045935,\"a\":52,\"t\":317,\"c\":true,\"m\":21,\"fp\":2515,\"sr\":2658}");
 user_pref("datareporting.sessions.previous.42", "{\"s\":1516888368765,\"a\":10,\"t\":65,\"c\":true,\"m\":12,\"fp\":1159,\"sr\":1065}");
 user_pref("datareporting.sessions.previous.43", "{\"s\":1517217620747,\"a\":24,\"t\":120,\"c\":true,\"m\":20,\"fp\":1628,\"sr\":1529}");
+user_pref("datareporting.sessions.previous.44", "{\"s\":1518168116281,\"a\":1,\"t\":5,\"c\":true,\"m\":10,\"fp\":1638,\"sr\":1571}");
 user_pref("datareporting.sessions.previous.5", "{\"s\":1468510962071,\"a\":3,\"t\":15,\"c\":true,\"m\":12,\"fp\":2710,\"sr\":2638}");
 user_pref("datareporting.sessions.previous.6", "{\"s\":1468524116671,\"a\":2,\"t\":13,\"c\":true,\"m\":20,\"fp\":3552,\"sr\":3430}");
 user_pref("datareporting.sessions.previous.7", "{\"s\":1468661085822,\"a\":1,\"t\":14,\"c\":true,\"m\":810,\"fp\":-1,\"sr\":9450}");
@@ -177,7 +178,7 @@ user_pref("gecko.buildID", "20160629103935");
 user_pref("gecko.mstone", "47.0.1");
 user_pref("idle.lastDailyNotification", 1469019179);
 user_pref("media.gmp-manager.buildID", "20171114221957");
-user_pref("media.gmp-manager.lastCheck", 1517217683);
+user_pref("media.gmp-manager.lastCheck", 1524490118);
 user_pref("media.gmp.storage.version.observed", 1);
 user_pref("network.cookie.prefsMigrated", true);
 user_pref("network.predictor.cleaned-up", true);
@@ -212,7 +213,7 @@ user_pref("services.sync.tabs.lastSyncLocal", "0");
 user_pref("signon.importedFromSqlite", true);
 user_pref("storage.vacuum.last.index", 0);
 user_pref("storage.vacuum.last.places.sqlite", 1469019179);
-user_pref("toolkit.startup.last_success", 1518168116);
+user_pref("toolkit.startup.last_success", 1524490053);
 user_pref("toolkit.telemetry.cachedClientID", "f4232d95-9b73-4c5f-9def-346b27a474ec");
 user_pref("toolkit.telemetry.previousBuildID", "20171114221957");
 user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
diff --git a/skels/prof/.mozilla/firefox/gzylh1ps.default/xulstore.json b/skels/prof/.mozilla/firefox/gzylh1ps.default/xulstore.json
index bc036473a72648e4f7918222402c2d27fc3c45f8..a97def20d4ed515f6619341df64cbba24ef9d025 100644
--- a/skels/prof/.mozilla/firefox/gzylh1ps.default/xulstore.json
+++ b/skels/prof/.mozilla/firefox/gzylh1ps.default/xulstore.json
@@ -1 +1 @@
-{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small","abp-iconposition":"hidden,nav-bar,"},"main-window":{"width":"728","height":"530","screenX":"53","screenY":"0","sizemode":"maximized"},"sidebar-box":{"src":"chrome://browser/content/bookmarks/bookmarksPanel.xul"},"PersonalToolbar":{"collapsed":"false"},"sidebar-title":{"value":""}},"chrome://browser/content/preferences/connection.xul":{"ConnectionsDialog":{"screenX":"0","screenY":"0"}},"chrome://browser/content/bookmarks/bookmarksPanel.xul":{"place:folder=UNFILED_BOOKMARKS&queryType=1":{"open":"true"},"place:folder=TOOLBAR&queryType=1":{"open":"true"}},"chrome://browser/content/places/places.xul":{"placesContentTags":{"ordinal":"3"},"placesContentUrl":{"ordinal":"5"},"placesContentDate":{"ordinal":"7"},"placesContentVisitCount":{"ordinal":"9"},"placesContentKeyword":{"ordinal":"11"},"placesContentDescription":{"ordinal":"11"},"placesContentDateAdded":{"ordinal":"13"},"placesContentLastModified":{"ordinal":"15"},"places":{"screenX":"300","screenY":"197","width":"730","height":"500","sizemode":"normal"},"place:folder=TOOLBAR&excludeItems=1&expandQueries=0":{"open":"true"},"placesList":{"width":"352"}},"about:preferences#applications":{"handlersView":{"lastSelectedType":"mailto"}},"chrome://browser/content/history/history-panel.xul":{"place:beginTime=1456790400000000&endTime=1458000000000000&sort=1":{"open":"true"}},"chrome://browser/content/places/bookmarkProperties.xul":{"bookmarkproperties":{"screenX":"440","screenY":"455","width":"400"}}}
\ No newline at end of file
+{"chrome://browser/content/browser.xul":{"navigator-toolbox":{"iconsize":"small","abp-iconposition":"hidden,nav-bar,"},"main-window":{"width":"728","height":"530","screenX":"53","screenY":"0","sizemode":"maximized"},"sidebar-box":{"src":"chrome://browser/content/bookmarks/bookmarksPanel.xul"},"PersonalToolbar":{"collapsed":"false"}},"chrome://browser/content/preferences/connection.xul":{"ConnectionsDialog":{"screenX":"0","screenY":"0"}},"chrome://browser/content/bookmarks/bookmarksPanel.xul":{"place:folder=UNFILED_BOOKMARKS&queryType=1":{"open":"true"},"place:folder=TOOLBAR&queryType=1":{"open":"true"}},"chrome://browser/content/places/places.xul":{"placesContentTags":{"ordinal":"3"},"placesContentUrl":{"ordinal":"5"},"placesContentDate":{"ordinal":"7"},"placesContentVisitCount":{"ordinal":"9"},"placesContentKeyword":{"ordinal":"11"},"placesContentDescription":{"ordinal":"11"},"placesContentDateAdded":{"ordinal":"13"},"placesContentLastModified":{"ordinal":"15"},"places":{"screenX":"300","screenY":"197","width":"730","height":"500","sizemode":"normal"},"place:folder=TOOLBAR&excludeItems=1&expandQueries=0":{"open":"true"},"placesList":{"width":"352"}},"about:preferences#applications":{"handlersView":{"lastSelectedType":"mailto"}},"chrome://browser/content/history/history-panel.xul":{"place:beginTime=1456790400000000&endTime=1458000000000000&sort=1":{"open":"true"}},"chrome://browser/content/places/bookmarkProperties.xul":{"bookmarkproperties":{"screenX":"440","screenY":"455","width":"400"}}}
\ No newline at end of file
diff --git a/skels/prof/.pki/nssdb/cert9.db b/skels/prof/.pki/nssdb/cert9.db
new file mode 100644
index 0000000000000000000000000000000000000000..a3d50bb3591516055db5f1321027c25677e36338
Binary files /dev/null and b/skels/prof/.pki/nssdb/cert9.db differ
diff --git a/skels/prof/.pki/nssdb/key4.db b/skels/prof/.pki/nssdb/key4.db
new file mode 100644
index 0000000000000000000000000000000000000000..a608e34032bbc8c73089737bccef45fc3521fc52
Binary files /dev/null and b/skels/prof/.pki/nssdb/key4.db differ
diff --git a/skels/prof/.pki/nssdb/pkcs11.txt b/skels/prof/.pki/nssdb/pkcs11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..658c1cd1456ba8b6258a94953ec5fe4422a9e4e4
--- /dev/null
+++ b/skels/prof/.pki/nssdb/pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='sql:/home/prof/.pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags=optimizeSpace updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' 
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
diff --git a/skels/prof/.profile b/skels/prof/.profile
index 20aa21acf461f1686d2b8387b7af19df4f1c284f..24afb23e5c478cc1676bbc9c857d23f516117733 100644
--- a/skels/prof/.profile
+++ b/skels/prof/.profile
@@ -20,6 +20,6 @@ fi
 if [ -d "$HOME/bin" ] ; then
     PATH="$HOME/bin:$PATH"
 fi
-export ="slis:3128"
-export ="slis:3128"
-export ="slis:3128"
+export HTTP_PROXY="slis:3128"
+export FTP_PROXY="slis:3128"
+export HTPS_PROXY="slis:3128"
diff --git a/skels/prof/.profilee b/skels/prof/.profilee
new file mode 100644
index 0000000000000000000000000000000000000000..c9db4591825bd7a918df686ff04aeb3a87d3bda0
--- /dev/null
+++ b/skels/prof/.profilee
@@ -0,0 +1,22 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+    # include .bashrc if it exists
+    if [ -f "$HOME/.bashrc" ]; then
+	. "$HOME/.bashrc"
+    fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+    PATH="$HOME/bin:$PATH"
+fi