diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 00000000000..16d5f6aeab9
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1,3 @@
+Wikipedia/assets/**
+fastlane/**
+www/node_modules/**
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 87df394a5f9..7d4142f839d 100644
--- a/Makefile
+++ b/Makefile
@@ -105,13 +105,37 @@ exec-check: ##Check that executable dependencies are installed
done
#!!!!!
-#!!!!! Node dependency management
+#!!!!! Web dependency management
#!!!!!
+web: ##Make web assets
+web: css grunt
+
+CSS_ORIGIN = http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=false&lang=en&only=styles&skin=vector&modules=
+WEB_ASSETS_DIR = "Wikipedia/assets"
+
+define get_css_module
+curl -s -L -o
+endef
+
+css: ##Download latest stylesheets
+ @echo "Downloading CSS assets..."; \
+ mkdir -p $(WEB_ASSETS_DIR); \
+ cd $(WEB_ASSETS_DIR); \
+ $(get_css_module) 'styles.css' "$(CSS_ORIGIN)mobile.app.pagestyles.ios" > /dev/null; \
+ $(get_css_module) 'abusefilter.css' "$(CSS_ORIGIN)mobile.app.pagestyles.ios" > /dev/null; \
+ $(get_css_module) 'preview.css' "$(CSS_ORIGIN)mobile.app.preview" > /dev/null
+
NODE_VERSION = "$(shell node -v 2>/dev/null)"
NPM_VERSION = "$(shell npm -version 2>/dev/null)"
-npm: ##TODO, run npm install
+grunt: ##Run grunt
+grunt: npm
+ @cd www && grunt && cd ..
+
+npm: ##Install Javascript dependencies
+npm: node-check
+ @cd www && npm install && cd ..
get-node: ##Install node via Homebrew
brew install node
diff --git a/Wikipedia.xcodeproj/project.pbxproj b/Wikipedia.xcodeproj/project.pbxproj
index a2750c4d0df..8079ece406b 100644
--- a/Wikipedia.xcodeproj/project.pbxproj
+++ b/Wikipedia.xcodeproj/project.pbxproj
@@ -2567,14 +2567,12 @@
F33F4F6424C55FEF072D1A81 /* Check Pods Manifest.lock */,
D4991431181D51DE00E6073C /* Sources */,
D4991432181D51DE00E6073C /* Frameworks */,
- 04272E7619404CDF00CC682F /* run-grunt */,
- 04272E75193FF7F000CC682F /* make-css-assets */,
D4C16A621970946900CD91AD /* update-storyboard-strings */,
D4C16A631970949A00CD91AD /* update-qqq */,
D4991433181D51DE00E6073C /* Resources */,
+ 0EB312441ACB96C300C7F7A6 /* Process Icons */,
04E0C2771A7750AB00FE22DA /* copy-wmflogo-to-assets */,
45FA417DEEAE18B42A662320 /* Copy Pods Resources */,
- 0EB312441ACB96C300C7F7A6 /* Process Icons */,
);
buildRules = (
);
@@ -2802,35 +2800,6 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 04272E75193FF7F000CC682F /* make-css-assets */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "",
- );
- name = "make-css-assets";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/bash;
- shellScript = "scripts/make-css-assets.bash";
- };
- 04272E7619404CDF00CC682F /* run-grunt */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "run-grunt";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "scripts/run-grunt.sh";
- };
04E0C2771A7750AB00FE22DA /* copy-wmflogo-to-assets */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -2843,7 +2812,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "scripts/copy-wmflogo-to-assets.sh";
+ shellScript = "./scripts/copy-wmflogo-to-assets.sh";
};
0EB312441ACB96C300C7F7A6 /* Process Icons */ = {
isa = PBXShellScriptBuildPhase;
diff --git a/Wikipedia/assets/about.html b/Wikipedia/assets/about.html
new file mode 100644
index 00000000000..d979f2a7268
--- /dev/null
+++ b/Wikipedia/assets/about.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+ wikipedia
+
+ version
+
+ contributors_title
+
+ contributors_body
+
+ translators_title
+
+ translators_body
+
+ testers_title
+
+ testers_body
+
+ libraries_title
+
+ libraries_body
+
+ repositories_title
+
+ repositories_body
+
+ feedback_body
+
+
+
+
+
diff --git a/Wikipedia/assets/abusefilter.css b/Wikipedia/assets/abusefilter.css
new file mode 100644
index 00000000000..02f28d67c62
--- /dev/null
+++ b/Wikipedia/assets/abusefilter.css
@@ -0,0 +1,2 @@
+html,body,div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,textarea,button,select,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;background:none}table,caption,tbody,tfoot,thead,tr,th,td{font-size:100%}.beta *,.stable *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div#centralNotice{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}button{border:none;background-color:transparent}body{line-height:1;-webkit-tap-highlight-color:transparent}input{line-height:normal}ol,ul{list-style:none}table{border-collapse:collapse}html{-webkit-text-size-adjust:none;font-size:100%}body{font-family:"Helvetica Neue","Helvetica","Nimbus Sans L","Arial","Liberation Sans",sans-serif;line-height:1.4;color:#252525;background:#fff}.content{line-height:1.65;margin:.8em 16px 0;word-wrap:break-word}@media all and (max-width:280px){body{font-size:.8em}.content{margin:0 12px}}.nomobile{display:none !important}.content .thumb{margin:.6em 0}.content .thumb .thumbinner{margin:0 auto;max-width:100% !important}.content .thumb .thumbinner > div{float:none !important;width:auto !important;clear:both !important}.content .thumb .noresize{width:100%;overflow-x:auto}.content .thumb .noresize img{max-width:none !important}.content .thumbcaption{margin:.5em 0 0;font-size:.8em;line-height:1.5;padding:0 !important;color:#555;width:auto !important}.content .thumbborder{border:1px solid #CCC}.content img{vertical-align:middle}.content .floatright{clear:right;float:right;margin:0 0 .6em .6em}.content .floatleft{clear:left;float:left;margin:0 .6em .6em 0}.content a > img{max-width:100% !important;height:auto !important}.content div.magnify{display:none}ul.gallery{list-style:none;max-width:100%}ul.gallery .gallerybox{display:inline-block;vertical-align:top;max-width:100%}ul.gallery .gallerybox .thumb img{display:block}ul.gallery .gallerybox > div{max-width:100%}ul.gallery .gallerybox > div > .thumb{max-width:100%}ul.gallery .gallerybox .gallerytext{overflow:hidden;padding:2px 4px;word-wrap:break-word;font-size:.8em}#section_0{line-height:1.3}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{line-height:1.3;font-family:"Linux Libertine",Georgia,Times,serif;padding:.5em 0}.pre-content h1,.content h1{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.7em;-ms-word-break:normal;word-break:normal;word-wrap:break-word}h2{font-size:1.5em}h3{font-size:1.2em;font-weight:bold}h4{font-weight:bold}blockquote{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.1em;quotes:"\201C" "\201D";padding:1em 25px 1em 30px;position:relative;overflow:hidden}blockquote:before{content:open-quote;font-size:3em;position:absolute;left:0;top:0}blockquote:after{content:close-quote;font-size:3em;line-height:1;position:absolute;right:0;bottom:0}.content ol ol,.content ol ul,.content ul ol,.content ul ul{margin-left:1em}.content ul{list-style:square inside}.content ul>li>ul{list-style-type:disc}.content ul>li>ul>li>ul{list-style-type:circle}.content ol{list-style:decimal inside}dl{margin-left:1em}dl dt{font-weight:bold}.hlist > ul li,ul.hlist li{display:inline-block;margin-right:8px}a{text-decoration:none;color:#002bb8}a:visited{color:#5a3696}a:active{color:#faa700}a:hover{text-decoration:underline}a.new,a.new:visited,a.new:hover{color:#CC0000}a.external{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVElEQVR42n3PgQkAIAhEUXdqJ3dqJ3e6IoTPUSQcgj4EQ5IlUiLE0Jil3PECXhcHGBhZ8kg4hwxAu3MZeCGeyFnAXp4hqNQPnt7QL0nADpD6wHccLvnAKksq8iiaAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z)!ie;background-image:-webkit-linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:-webkit-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:-o-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z);background-repeat:no-repeat;background-position:center right;padding-right:13px}.content .return-link,.content #mw-mf-last-modified{display:block;font-size:.9em;margin-top:1.5em}.plainlinks a{background:none !important;padding:0 !important}.content p{margin:.5em 0 1em 0}strong,b{font-weight:bold}em,i{font-style:italic}code,pre{font-family:monospace;border:solid 1px #CCC;white-space:pre-wrap}code{padding:0.2em 0.5em}pre{padding:1em}sup{vertical-align:super}sub{vertical-align:sub}sub,sup{font-size:0.75em;line-height:1}.content table{margin:1em 0;overflow:auto;overflow-y:hidden;overflow-x:auto;display:block;width:100% !important}.content table caption{display:block;text-align:left}.content table.wikitable{background-color:transparent !important;border:none !important}.content table.wikitable tr{border-bottom:1px solid #EEE !important}.content table.wikitable tr:last-child{border-bottom:none !important}.content table.wikitable th,.content table.wikitable td{border-right:1px solid #EEE !important;padding:.2em}.content table.wikitable td:last-child,.content table.wikitable th:last-child{border-right:none !important}.client-js .alpha .infobox{display:none}.content .mbox-small,.content .tmbox,.content .ambox,.content #coordinates,.content .navbox,.content .vertical-navbox,.content .topicon,.content .metadata{display:none !important}.content table{float:none !important;margin-left:0 !important;margin-right:0 !important}.content table.infobox{font-size:90%;position:relative;border:none;margin-bottom:2em;text-align:left;background-color:#F9F9F9}.content table.infobox th,.content table.infobox td{vertical-align:top;border:none;border-bottom:1px solid #DDD;padding:.2em}.content table.infobox tr:last-child th,.content table.infobox tr:last-child td{border:none}#filetoc,.editsection,.mw-editsection{display:none}.skin-minerva .portal-column-left-wide,.skin-minerva .portal-column-left,.skin-minerva .portal-column-right,.skin-minerva .portal-column-right-narrow{float:none;width:100%}.collapsible td{width:auto !important}.references-column-count{-moz-column-width:35em;-webkit-column-width:35em;column-width:35em}.references li:target{background-color:#ddeeff}.hatnote,.dablink,.rellink{padding:0 0 .6em 0;color:#777;font-size:.8em;font-style:italic}.quotebox{margin:0 0 0.8em !important;width:auto !important}@media all and (max-width:768px){.gallery .gallerybox{width:100% !important}.gallery .gallerybox div{width:100% !important}}a.edit_section_button{height:32px;width:32px;margin-left:8px;margin-bottom:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAANlBMVEUAAAD///9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW+FiFraAAAAEXRSTlMAABAgMEBQYHCAkKCwwNDg8InUWv0AAAGfSURBVHhe7djBjsIgFIXhOwjFeltK3/9lJ4J6SG5dHGgyyaRn1dUXlb8slJ+T9//AC7zACxRiLu37EqXsDPCW9ue2cBLo8/7a/RQwFK9OTwDj3k6Hwbk6Mb/EeRDUojyaHzKMgG4pRmy/ehoAXcklT3h+buoGffU8vDJlQJtfuuG5busEY/Xc28N4EPkp7EHwUaODjSkLIr8Iu/VIELkE2Bj9psDzSBuLQoLIxX1sLEfhQHirQ9rwvLAgcoHdejx4b3IJ8PDOcCBysfklJzToipc9Piu2OKFA5LL5o/xUhAZ9Qi7W40Dkspj8as48OGXkYj0ORH73w/yC8OCMXA5y5sE2lwgPh86Bbi3h+i8506Brc3kYjwb9VkL7lh8N+jaXxXg0GBGayW8WCoSXq+dNzjyIXGx+UXhQm1yCyZkHA8JAfvBosF6h21RvU3vb86B+4lCTcxf4rkTV3PZ9IAiTcxcYvnm94P3Qi9IN6rHXDybL5SAD4IHnZQAMxtu8jIA4E+Q8BKr1xkCcybrOcwhOBsE3JOT+4G+WC7zAC7zAXxMIT+qGYJfyAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/styles/../images/edit.png?2015-03-25T18:43:20Z)!ie;background-size:32px 32px;float:right;display:inline-float}.no-editing a.edit_section_button{display:none}.page-protected a.edit_section_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAXVBMVEUAAAD////Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz8/Pz8/Pz89sbW/Pz89sbW/Pz8/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW+fZUWwAAAAHXRSTlMAABAQICAwMEBAUFBgYHBwgJCgoLDAwNDQ4ODw8PGFG8cAAAHOSURBVHhe7dTLcoMwDAVQxVCXJAoByiPUEf//mcW0Gh5KFrbojrtidUYM9wKnnfOP4AEe4AGCT3JvmuHR3BOAXcDrc/jN87wLeBvmnCUIATnZEUyeC/A7UYHWjeDdQ48PSL68eNOA6GgEH9Nh3m9GsFGASOTB6S7wufrHeLCkGfycwLMKrGgBwm8UoKknD/cCTffn7QSmk+cup51A6ybP+hsGmUCQvd7CTiCST2dAB0pPAcr6VQY0oPRgCqpB005eydvTglxnPlYLWvZ4ezqQ65zxsVrwwvPg7SlBJJ4HH6sDc64ze0qwWnroSAHKeSDRDL6JBGX9eB4FKUH2Sj5WC9p+PQ8lyA1BPnYVZ4NBnOssvS4NvhBp4dl+45nAV+Yv2q3nwakMBICyztnWAwgEzcpDWgchABR1Fp5DCAXTlVdtPAuBINevEB5/pQBQ1rneeAZCQaTVPERdQsGMVn97UZdgMJ89UeccIsDaA7V55SHEgD0vDtCJukSAKQM5kvBiwAtxRF3iwPKtFwm2TIi6RIJvvGgwe+UhxIO55ByCAqylZ0ED9luvt6ABU1kXUIHLWru2LVoDOrAk6tu6KLKMJSVohaMAtTnA4BzgAf4Asb6U9nmPcP4AAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/styles/../images/edit-locked.png?2015-03-25T18:43:20Z)!ie}#mainpage a.edit_section_button{display:none}.content-rtl a.edit_section_button{float:left;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.hide-when-compact{display:none}.mobile-float-reset{float:none !important;width:100% !important}#content .vertical-navbox,#content .navbox{display:none}@media all and (min-width:768px){#content .vertical-navbox,#content .navbox{display:inherit}}@media screen,handheld{.citation *.printonly{display:none}}.citation{word-wrap:break-word}.navbar{display:inline;font-size:88%;font-weight:normal}.navbar ul{display:inline;white-space:nowrap}.navbar li{word-spacing:-0.125em}.navbar.mini li span{font-variant:small-caps}.infobox .navbar{font-size:100%}.navbox .navbar{display:block;font-size:100%}.navbox-title .navbar{float:left;text-align:left;margin-right:0.5em;width:6em}.hlist dl,.hlist ol,.hlist ul{margin:0;padding:0}.hlist dd,.hlist dt,.hlist li{margin:0;display:inline}.hlist dl dl,.hlist dl ol,.hlist dl ul,.hlist ol dl,.hlist ol ol,.hlist ol ul,.hlist ul dl,.hlist ul ol,.hlist ul ul{display:inline}#content .hlist dt:after{content:":"}#content .hlist dd:after,#content .hlist li:after{content:" · ";font-weight:bold}#content .hlist dd:last-child:after,#content .hlist dt:last-child:after,#content .hlist li:last-child:after{content:none}#content .hlist dd dd:first-child:before,#content .hlist dd dt:first-child:before,#content .hlist dd li:first-child:before,#content .hlist dt dd:first-child:before,#content .hlist dt dt:first-child:before,#content .hlist dt li:first-child:before,#content .hlist li dd:first-child:before,#content .hlist li dt:first-child:before,#content .hlist li li:first-child:before{content:" (";font-weight:normal}#content .hlist dd dd:last-child:after,#content .hlist dd dt:last-child:after,#content .hlist dd li:last-child:after,#content .hlist dt dd:last-child:after,#content .hlist dt dt:last-child:after,#content .hlist dt li:last-child:after,#content .hlist li dd:last-child:after,#content .hlist li dt:last-child:after,#content .hlist li li:last-child:after{content:") ";font-weight:normal}#content .hlist ol{counter-reset:list-item}#content .hlist ol > li{counter-increment:list-item}#content .hlist ol > li:before{content:" " counter(list-item) " "}#content .hlist dd ol > li:first-child:before,#content .hlist dt ol > li:first-child:before,#content .hlist li ol > li:first-child:before{content:" (" counter(list-item) " "}.plainlist ul{list-style:none}.compact-ambox table .mbox-image,.compact-ambox table .mbox-imageright,.compact-ambox table .mbox-empty-cell{display:none}.compact-ambox table.ambox{border:none;border-collapse:collapse;background:transparent;margin:0 0 0 1.6em !important;padding:0 !important;width:auto;display:block}.compact-ambox table.mbox-small-left{font-size:100%;width:auto;margin:0}.compact-ambox table .mbox-text{padding:0 !important;margin:0 !important}.compact-ambox table .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:square;list-style-image:url(data:image/gif;base64,R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4SpADs=)}.compact-ambox .hide-when-compact{display:none}.rellink,.dablink,.hatnote{font-style:italic}.rellink i,.dablink i,.hatnote i{font-style:normal}div.rellink,div.dablink,div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.geo-default,.geo-dms,.geo-dec{display:inline}.geo-nondefault,.geo-multi-punct{display:none}.longitude,.latitude{white-space:nowrap}.nowrap,.nowraplinks a,.nowraplinks .selflink,sup.reference a{white-space:nowrap}.wrap,.wraplinks a{white-space:normal}.sysop-show,.accountcreator-show,.autoconfirmed-show{display:none}#li-coordinates{background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/80px-Edge-firefox.png);float:right;display:none;-webkit-background-size:auto 30px;background-size:auto 30px}.client-js .content_block.coordinates{display:none;text-align:right;margin-bottom:0.5em;font-size:smaller}.client-js .content_block.coordinates .latitude{display:none;padding-left:20px;background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/50px-Edge-firefox.png);background-repeat:no-repeat;-webkit-background-size:auto 15px;background-size:auto 15px}.alpha #li-coordinates{display:list-item}.client-js .beta .content_block.coordinates{display:block}.client-js .beta .content_block.coordinates .latitude{display:inline}.topicon{display:none}td .sortkey,th .sortkey{display:none;speak:none}.transborder{border:solid transparent}.references-column-count{-moz-column-count:1 !important;-webkit-column-count:1 !important;column-count:1 !important}.mwe-math-fallback-image-inline{display:inline-block;max-width:100%;vertical-align:middle}.mwe-math-fallback-image-display{display:block;max-width:100%;margin-left:auto !important;margin-right:auto !important}.mwe-math-fallback-source-inline{display:inline;max-width:100%;vertical-align:middle}.mwe-math-fallback-source-display{display:block;max-width:100%;margin-left:auto;margin-right:auto}
+/* cache key: enwiki:resourceloader:filter:minify-css:7:67a0d8153da9a7bf015e5690cc4bcb8f */
\ No newline at end of file
diff --git a/Wikipedia/assets/abusefilter.html b/Wikipedia/assets/abusefilter.html
new file mode 100644
index 00000000000..dbf1367649f
--- /dev/null
+++ b/Wikipedia/assets/abusefilter.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Wikipedia/assets/bundle.js b/Wikipedia/assets/bundle.js
new file mode 100644
index 00000000000..1a0ab4e7469
--- /dev/null
+++ b/Wikipedia/assets/bundle.js
@@ -0,0 +1,693 @@
+(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) || ((rect.top + rect.height) >= 0)) {
+ return i;
+ }
+ }
+ return -1;
+};
+
+},{}],3:[function(require,module,exports){
+(function () {
+var bridge = require("./bridge");
+var transformer = require("./transformer");
+var refs = require("./refs");
+
+// DOMContentLoaded fires before window.onload! That's good!
+// See: http://stackoverflow.com/a/3698214/135557
+document.addEventListener("DOMContentLoaded", function() {
+
+ transformer.transform( "moveFirstGoodParagraphUp", document );
+ transformer.transform( "hideRedlinks", document );
+ transformer.transform( "disableFilePageEdit", document );
+
+ bridge.sendMessage( "DOMContentLoaded", {} );
+});
+
+bridge.registerListener( "setLanguage", function( payload ){
+ var html = document.querySelector( "html" );
+ html.lang = payload.lang;
+ html.dir = payload.dir;
+ html.classList.add( 'content-' + payload.dir );
+ html.classList.add( 'ui-' + payload.uidir );
+ document.querySelector('base').href = 'https://' + payload.lang + '.wikipedia.org/';
+} );
+
+bridge.registerListener( "setScale", function( payload ) {
+ var contentSettings = [
+ "width=device-width",
+ "initial-scale=1.0",
+ "user-scalable=yes",
+ "minimum-scale=" + payload.min,
+ "maximum-scale=" + payload.max
+ ];
+ var content = contentSettings.join(", ");
+ document.getElementById("viewport").setAttribute('content', content);
+} );
+
+bridge.registerListener( "scrollToFragment", function( payload ) {
+ var item = document.getElementById( payload.hash );
+ var rect = item.getBoundingClientRect();
+ window.scroll( 0, rect.top );
+});
+
+bridge.registerListener( "setPageProtected", function() {
+ document.getElementsByTagName( "html" )[0].classList.add( "page-protected" );
+} );
+
+
+bridge.registerListener( "setTableLocalization", function( payload ) {
+ window.string_table_infobox = payload.string_table_infobox;
+ window.string_table_other = payload.string_table_other;
+ window.string_table_close = payload.string_table_close;
+} );
+
+
+bridge.registerListener( "collapseTables", function() {
+ transformer.transform( "hideTables", document );
+} );
+
+
+/**
+ * Quickie function to walk from the current element up to parents and match CSS-ish selectors.
+ * Think of it as a reverse element.querySelector :)
+ *
+ * Takes only element names, raw classes, and ids right now. Combines all given.
+ */
+function findParent(element, selector) {
+ // parse selector attributes
+ var matches = selector.match(/^([a-z0-9]*)(?:\.([a-z0-9-]+))?(?:#([a-z0-9-]+))?$/i);
+ if (!matches) {
+ throw new Error("Unexpected findParent selector format: " + selector);
+ }
+ var maybeLowerCase = function (s) {
+ return typeof s === 'string' ? s.toLowerCase() : undefined;
+ };
+ return _findParent(element,
+ maybeLowerCase(matches[1]),
+ maybeLowerCase(matches[2]),
+ maybeLowerCase(matches[3]),
+ 0,
+ 10);
+}
+
+/**
+ * Recursively traverse an element's parents until a match is found, up to `maxDepth`.
+ * @param element {HTMLElement} The element to check against provided selectors.
+ * @param selectorName {String} *Lowercase* tag name to search for.
+ * @param selectorClass {String} *Lowercase* class to search for.
+ * @param selectorId {String} *Lowercase* id to search for.
+ * @param depth {Int} The current recursion/traversal depth
+ * @param maxDepth {Int} The maximum depth to traverse to.
+ * @see findParent(element, selector)
+ */
+function _findParent(element, selectorName, selectorClass, selectorId, depth, maxDepth) {
+ if (!element || depth >= maxDepth) {
+ // base case, nothing found or max depth reached
+ return undefined;
+ } else if (selectorName && element.tagName && selectorName === element.tagName.toLowerCase()) {
+ // element.tagName can be nil if we hit `document`
+ return element;
+ } else if (selectorClass && element.classList && element.classList.contains(selectorClass)) {
+ return element;
+ } else if (selectorId && element.id && selectorId === element.id) {
+ return element;
+ } else {
+ // continue traversing
+ return _findParent(element.parentNode, selectorName, selectorClass, selectorId, depth+1, maxDepth);
+ }
+}
+
+document.onclick = function() {
+ // Reminder: resist adding any click/tap handling here - they can
+ // "fight" with items in the touchEndedWithoutDragging handler.
+ // Add click/tap handling to touchEndedWithoutDragging instead.
+ event.preventDefault(); // <-- Do not remove!
+};
+
+// track where initial touches start
+var touchDownY = 0.0;
+document.addEventListener(
+ "touchstart",
+ function (event) {
+ touchDownY = parseInt(event.changedTouches[0].clientY);
+ }, false);
+
+function handleTouchEnded(event){
+ var touchobj = event.changedTouches[0];
+ var touchEndY = parseInt(touchobj.clientY);
+ if (((touchDownY - touchEndY) === 0) && (event.changedTouches.length === 1)) {
+ // None of our tap events should fire if the user dragged vertically.
+ touchEndedWithoutDragging(event);
+ }
+}
+
+function touchEndedWithoutDragging(event){
+ /*
+ there are certain elements which don't have an ancestor, so if we fail to find it,
+ specify the event's target instead
+ */
+ var didSendMessage = maybeSendMessageForTarget(event, findParent(event.target, 'A') || event.target);
+
+ var hasSelectedText = window.getSelection().rangeCount > 0;
+
+ if (!didSendMessage && !hasSelectedText) {
+ // Do NOT prevent default behavior -- this is needed to for instance
+ // handle deselection of text.
+ bridge.sendMessage('nonAnchorTouchEndedWithoutDragging', {
+ id: event.target.getAttribute( "id" ),
+ tagName: event.target.tagName
+ });
+
+ }
+}
+
+/**
+ * Attempts to send a bridge message which corresponds to `hrefTarget`, based on various attributes.
+ * @return `true` if a message was sent, otherwise `false`.
+ */
+function maybeSendMessageForTarget(event, hrefTarget){
+ if (!hrefTarget) {
+ return false;
+ }
+ var href = hrefTarget.getAttribute( "href" );
+ var hrefClass = hrefTarget.getAttribute('class');
+ if (hrefTarget.getAttribute( "data-action" ) === "edit_section") {
+ bridge.sendMessage( 'editClicked', { sectionId: hrefTarget.getAttribute( "data-id" ) });
+ } else if (href && refs.isReference(href)) {
+ // Handle reference links with a popup view instead of scrolling about!
+ refs.sendNearbyReferences( hrefTarget );
+ } else if (href && href[0] === "#") {
+ // If it is a link to an anchor in the current page, just scroll to it
+ document.getElementById( href.substring( 1 ) ).scrollIntoView();
+ } else if (typeof hrefClass === 'string' && hrefClass.indexOf('image') !== -1) {
+ bridge.sendMessage('imageClicked', { 'url': event.target.getAttribute('src') });
+ } else if (href) {
+ bridge.sendMessage( 'linkClicked', { 'href': href });
+ } else {
+ return false;
+ }
+ return true;
+}
+
+document.addEventListener("touchend", handleTouchEnded, false);
+
+bridge.registerListener( "setLeadImageDivHeight", function( payload ) {
+ var div = document.getElementById( "lead_image_div" );
+ if (payload.height == div.offsetHeight) return;
+ div.style.height = payload.height + 'px';
+});
+
+})();
+
+},{"./bridge":1,"./refs":5,"./transformer":6}],4:[function(require,module,exports){
+
+var bridge = require("./bridge");
+var elementLocation = require("./elementLocation");
+
+window.bridge = bridge;
+window.elementLocation = elementLocation;
+
+},{"./bridge":1,"./elementLocation":2}],5:[function(require,module,exports){
+var bridge = require("./bridge");
+
+function isReference( href ) {
+ return ( href.slice( 0, 10 ) === "#cite_note" );
+}
+
+function goDown( element ) {
+ return element.getElementsByTagName( "A" )[0];
+}
+
+/**
+ * Skip over whitespace but not other elements
+ */
+function skipOverWhitespace( skipFunc ) {
+ return (function(element) {
+ do {
+ element = skipFunc( element );
+ if (element && element.nodeType == Node.TEXT_NODE) {
+ if (element.textContent.match(/^\s+$/)) {
+ // Ignore empty whitespace
+ continue;
+ } else {
+ break;
+ }
+ } else {
+ // found an element or ran out
+ break;
+ }
+ } while (true);
+ return element;
+ });
+}
+
+var goLeft = skipOverWhitespace( function( element ) {
+ return element.previousSibling;
+});
+
+var goRight = skipOverWhitespace( function( element ) {
+ return element.nextSibling;
+});
+
+function hasReferenceLink( element ) {
+ try {
+ return isReference( goDown( element ).getAttribute( "href" ) );
+ } catch (e) {
+ return false;
+ }
+}
+
+function collectRefText( sourceNode ) {
+ var href = sourceNode.getAttribute( "href" );
+ var targetId = href.slice(1);
+ var targetNode = document.getElementById( targetId );
+ if ( targetNode === null ) {
+ /*global console */
+ console.log("reference target not found: " + targetId);
+ return "";
+ }
+
+ // preferably without the back link
+ var refTexts = targetNode.getElementsByClassName( "reference-text" );
+ if ( refTexts.length > 0 ) {
+ targetNode = refTexts[0];
+ }
+
+ return targetNode.innerHTML;
+}
+
+function collectRefLink( sourceNode ) {
+ var node = sourceNode;
+ while (!node.classList || !node.classList.contains('reference')) {
+ node = node.parentNode;
+ if (!node) {
+ return '';
+ }
+ }
+ return node.id;
+}
+
+function sendNearbyReferences( sourceNode ) {
+ var refsIndex = 0;
+ var refs = [];
+ var linkId = [];
+ var linkText = [];
+ var curNode = sourceNode;
+
+ // handle clicked ref:
+ refs.push( collectRefText( curNode ) );
+ linkId.push( collectRefLink( curNode ) );
+ linkText.push( curNode.textContent );
+
+ // go left:
+ curNode = sourceNode.parentElement;
+ while ( hasReferenceLink( goLeft( curNode ) ) ) {
+ refsIndex += 1;
+ curNode = goLeft( curNode );
+ refs.unshift( collectRefText( goDown ( curNode ) ) );
+ linkId.unshift( collectRefLink( curNode ) );
+ linkText.unshift( curNode.textContent );
+ }
+
+ // go right:
+ curNode = sourceNode.parentElement;
+ while ( hasReferenceLink( goRight( curNode ) ) ) {
+ curNode = goRight( curNode );
+ refs.push( collectRefText( goDown ( curNode ) ) );
+ linkId.push( collectRefLink( curNode ) );
+ linkText.push( curNode.textContent );
+ }
+
+ // Special handling for references
+ bridge.sendMessage( 'referenceClicked', {
+ "refs": refs,
+ "refsIndex": refsIndex,
+ "linkId": linkId,
+ "linkText": linkText
+ } );
+}
+
+exports.isReference = isReference;
+exports.sendNearbyReferences = sendNearbyReferences;
+
+},{"./bridge":1}],6:[function(require,module,exports){
+function Transformer() {
+}
+
+var transforms = {};
+
+Transformer.prototype.register = function( transform, fun ) {
+ if ( transform in transforms ) {
+ transforms[transform].push( fun );
+ } else {
+ transforms[transform] = [ fun ];
+ }
+};
+
+Transformer.prototype.transform = function( transform, element ) {
+ var functions = transforms[transform];
+ for ( var i = 0; i < functions.length; i++ ) {
+ functions[i](element);
+ }
+};
+
+module.exports = new Transformer();
+
+},{}],7:[function(require,module,exports){
+var transformer = require("./transformer");
+
+transformer.register( "moveFirstGoodParagraphUp", function( content ) {
+ /*
+ Instead of moving the infobox down beneath the first P tag,
+ move the first good looking P tag *up* (as the first child of
+ the first section div). That way the first P text will appear not
+ only above infoboxes, but above other tables/images etc too!
+ */
+
+ if(content.getElementById( "mainpage" ))return;
+
+ var block_0 = content.getElementById( "content_block_0" );
+ if(!block_0) return;
+
+ var allPs = block_0.getElementsByTagName( "p" );
+ if(!allPs) return;
+
+ var edit_section_button_0 = content.getElementById( "edit_section_button_0" );
+ if(!edit_section_button_0) return;
+
+ function moveAfter(newNode, referenceNode) {
+ // Based on: http://stackoverflow.com/a/4793630/135557
+ referenceNode.parentNode.insertBefore(newNode.parentNode.removeChild(newNode), referenceNode.nextSibling);
+ }
+
+ for ( var i = 0; i < allPs.length; i++ ) {
+ var p = allPs[i];
+
+ // Narrow down to first P which is direct child of content_block_0 DIV.
+ // (Don't want to yank P from somewhere in the middle of a table!)
+ if (p.parentNode != block_0) continue;
+
+
+ // Ensure the P being pulled up has at least a couple lines of text.
+ // Otherwise silly things like a empty P or P which only contains a
+ // BR tag will get pulled up (see articles on "Chemical Reaction" and
+ // "Hawaii").
+ // Trick for quickly determining element height:
+ // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.offsetHeight
+ // http://stackoverflow.com/a/1343350/135557
+ var minHeight = 40;
+ var pIsTooSmall = (p.offsetHeight < minHeight);
+ if(pIsTooSmall) continue;
+
+
+ /*
+ // Note: this works - just not sure if needed?
+ // Sometimes P will be mostly image and not much text. Don't
+ // want to move these!
+ var pIsMostlyImage = false;
+ var imgs = p.getElementsByTagName('img');
+ for (var j = 0; j < imgs.length; j++) {
+ var thisImg = imgs[j];
+ // Get image height from img tag's height attribute - otherwise
+ // you'd have to wait for the image to render (if you used offsetHeight).
+ var thisImgHeight = thisImg.getAttribute("height");
+ if(thisImgHeight == 0) continue;
+ var imgHeightPercentOfParagraphTagHeight = thisImgHeight / p.offsetHeight;
+ if (imgHeightPercentOfParagraphTagHeight > 0.5){
+ pIsMostlyImage = true;
+ break;
+ }
+ }
+ if(pIsMostlyImage) continue;
+ */
+
+ // Move the P! Place it just after the lead section edit button.
+ moveAfter(p, edit_section_button_0);
+
+ // But only move one P!
+ break;
+ }
+});
+
+/*
+Tries to get an array of table header (TH) contents from a given table.
+If there are no TH elements in the table, an empty array is returned.
+*/
+function getTableHeader( element ) {
+ var thArray = [];
+ if (element.children === undefined || element.children === null) {
+ return thArray;
+ }
+ for (var i = 0; i < element.children.length; i++) {
+ var el = element.children[i];
+ if (el.tagName === "TH") {
+ // ok, we have a TH element!
+ // However, if it contains more than two links, then ignore it, because
+ // it will probably appear weird when rendered as plain text.
+ var aNodes = el.querySelectorAll( "a" );
+ if (aNodes.length < 3) {
+ // Also ignore it if it's identical to the page title.
+ if (el.innerText.length > 0 && el.innerText !== window.pageTitle && el.innerHTML !== window.pageTitle) {
+ thArray.push(el.innerText);
+ }
+ }
+ }
+ //if it's a table within a table, don't worry about it
+ if (el.tagName === "TABLE") {
+ continue;
+ }
+ //recurse into children of this element
+ var ret = getTableHeader(el);
+ //did we get a list of TH from this child?
+ if (ret.length > 0) {
+ thArray = thArray.concat(ret);
+ }
+ }
+ return thArray;
+}
+
+/*
+OnClick handler function for expanding/collapsing tables and infoboxes.
+*/
+function tableCollapseClickHandler() {
+ var container = this.parentNode;
+ var divCollapsed = container.children[0];
+ var tableFull = container.children[1];
+ var divBottom = container.children[2];
+ if (tableFull.style.display !== 'none') {
+ tableFull.style.display = 'none';
+ divCollapsed.classList.remove('app_table_collapse_close');
+ divCollapsed.classList.remove('app_table_collapse_icon');
+ divCollapsed.classList.add('app_table_collapsed_open');
+ divBottom.style.display = 'none';
+ //if they clicked the bottom div, then scroll back up to the top of the table.
+ if (this === divBottom) {
+ window.scrollTo( 0, container.offsetTop - 48 );
+ }
+ } else {
+ tableFull.style.display = 'block';
+ divCollapsed.classList.remove('app_table_collapsed_open');
+ divCollapsed.classList.add('app_table_collapse_close');
+ divCollapsed.classList.add('app_table_collapse_icon');
+ divBottom.style.display = 'block';
+ }
+}
+
+// From: http://stackoverflow.com/a/22119674/135557
+function findAncestor (el, cls) {
+ while ((el = el.parentElement) && !el.classList.contains(cls));
+ return el;
+}
+
+transformer.register( "hideTables", function( content ) {
+ var tables = content.querySelectorAll( "table" );
+ for (var i = 0; i < tables.length; i++) {
+
+ if (findAncestor (tables[i], 'app_table_container')) continue;
+
+ //is the table already hidden? if so, don't worry about it
+ if (tables[i].style.display === 'none' || tables[i].classList.contains( 'navbox' ) || tables[i].classList.contains( 'vertical-navbox' ) || tables[i].classList.contains( 'navbox-inner' ) || tables[i].classList.contains( 'metadata' )) {
+ continue;
+ }
+
+ var isInfobox = tables[i].classList.contains( 'infobox' );
+ var headerText = getTableHeader(tables[i]);
+ if (headerText.length === 0 && !isInfobox) {
+ continue;
+ }
+ var caption = "" + (isInfobox ? window.string_table_infobox : window.string_table_other) + "";
+ caption += "";
+ if (headerText.length > 0) {
+ caption += ": " + headerText[0];
+ }
+ if (headerText.length > 1) {
+ caption += ", " + headerText[1];
+ }
+ if (headerText.length > 0) {
+ caption += ", ...";
+ }
+ caption += "";
+
+ //create the container div that will contain both the original table
+ //and the collapsed version.
+ var containerDiv = document.createElement( 'div' );
+ containerDiv.className = 'app_table_container';
+ tables[i].parentNode.insertBefore(containerDiv, tables[i]);
+ tables[i].parentNode.removeChild(tables[i]);
+
+ //remove top and bottom margin from the table, so that it's flush with
+ //our expand/collapse buttons
+ tables[i].style.marginTop = "0px";
+ tables[i].style.marginBottom = "0px";
+
+ //create the collapsed div
+ var collapsedDiv = document.createElement( 'div' );
+ collapsedDiv.classList.add('app_table_collapsed_container');
+ collapsedDiv.classList.add('app_table_collapsed_open');
+ collapsedDiv.innerHTML = caption;
+
+ //create the bottom collapsed div
+ var bottomDiv = document.createElement( 'div' );
+ bottomDiv.classList.add('app_table_collapsed_bottom');
+ bottomDiv.classList.add('app_table_collapse_icon');
+ bottomDiv.innerHTML = window.string_table_close;
+
+ //add our stuff to the container
+ containerDiv.appendChild(collapsedDiv);
+ containerDiv.appendChild(tables[i]);
+ containerDiv.appendChild(bottomDiv);
+
+ //set initial visibility
+ tables[i].style.display = 'none';
+ collapsedDiv.style.display = 'block';
+ bottomDiv.style.display = 'none';
+
+ //assign click handler to the collapsed divs
+ collapsedDiv.onclick = tableCollapseClickHandler;
+ bottomDiv.onclick = tableCollapseClickHandler;
+ }
+} );
+
+
+transformer.register( "hideRedlinks", function( content ) {
+ var redLinks = content.querySelectorAll( 'a.new' );
+ for ( var i = 0; i < redLinks.length; i++ ) {
+ var redLink = redLinks[i];
+ redLink.style.color = 'inherit';
+ }
+} );
+
+transformer.register( "disableFilePageEdit", function( content ) {
+ var filetoc = content.querySelector( '#filetoc' );
+ if (filetoc) {
+ // We're on a File: page! Do some quick hacks.
+ // In future, replace entire thing with a custom view most of the time.
+ // Hide edit sections
+ var editSections = content.querySelectorAll('.edit_section_button');
+ for (var i = 0; i < editSections.length; i++) {
+ editSections[i].style.display = 'none';
+ }
+ var fullImageLink = content.querySelector('.fullImageLink a');
+ if (fullImageLink) {
+ // Don't replace the a with a span, as it will break styles.
+ // Just disable clicking.
+ // Don't disable touchstart as this breaks scrolling!
+ fullImageLink.href = '';
+ fullImageLink.addEventListener( 'click', function( event ) {
+ event.preventDefault();
+ } );
+ }
+ }
+} );
+
+},{"./transformer":6}]},{},[1,2,3,4,5,6,7])
\ No newline at end of file
diff --git a/Wikipedia/assets/footer.css b/Wikipedia/assets/footer.css
new file mode 100644
index 00000000000..5b2a778b267
--- /dev/null
+++ b/Wikipedia/assets/footer.css
@@ -0,0 +1 @@
+.content table.infobox{font-size:100%;border-style:none !important}table.infobox caption{text-align:center;font-weight:bold}.app_table_container{width:100%;margin-top:14px;margin-bottom:14px;border-radius:2px;padding:1px;box-shadow:inset 0 0 1px gray}.app_table_collapsed_container{width:100%;padding-left:12px;padding-right:48px;padding-top:12px;padding-bottom:12px;line-height:120%;background-color:#f8f8f8;background-repeat:no-repeat;background-position:95% 50%;background-size:16px 16px}.app_table_collapsed_open{border-radius:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4zjOaXUAAAAoZJREFUaEPtmE1uE0EQhceEn1NwFEtwALL0CSzbe2+9QQgJAoKI8BeF8I8ImCQCIRCSxVk4QNhkxwZ4z+qOespvPNMzYxCiS/ricVVX1evpnukkWbJkyZIlS5Ys2f9ss9lsTr/fPz8ajV4Mh8Nv4Dv4OhgMLvr43wKaLkDLF3BEbdRIrT4+/wGhlxA8Br8MPxG74gf/adD7OjUYTeSYmjkmw5d18CMILoBZ37DFVw0E3lFaAqh5nROYBs5CUPC2arQCOuh1T2kQTLNer3cGF4cmIOFdEQ3bhOIfqt6CQ2qfJ7pJHJgBEt4dNgqatgXF76iegn1qZt5JgclkchqBd2ZgEdts6HOb0u12T+E52xV9FFNq9bm5Qm4Sb01CEY/YOMyvgxP/VNRfAOPehOJJrhjhAA5UBQRPmkwC+WvoxbNH1c6B7fUan2u2Ru6LhwNdgixmeA4WCpfBHPDK1SiD42SPBYeHCS5RFbQUNlC4rboX5BfiVqiwtnR6mIiVeBkWXMKe3Z+KmOcMvZ+VbVHpDGEBFOM2kU0MuTeExb2u901OEZWeL+m0xLwpwIF/R4c48ZUOTPTarfpykE4FC2JJH6uGgvfgrM/lNfjgYktBjx3kVD5jpLMItxJVD5yP4/H4HOG1iRURfUBKZwkxR/4n8Nn4JLgxD1jb9CpFOivQQdNtK6IuuCG1f7+Szop0eNeUoEi2RO3KSGcEXIn7RlAMm6JmFNIZC1birhC3FOTcUrVikc46YB+X/Ql4AsbeVDXqIJ11gbhNK1awoXLrIp1N4NYQoucgdk3lNEE6m8ItIsRfVWObIp1tANEbXjwmtLL/LUlnW3DLYAKXVawtkiVLlixZsn/Ysuw35enU+iMlJaQAAAAASUVORK5CYII=)}.app_table_collapse_close{border-radius:2px 2px 0px 0px}.app_table_collapse_icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4zjOaXUAAAAoBJREFUaEPtmE1uE0EQhW3Mzyk4iiU4AFn6BJbtvbfeIIQEAUEUCEnE/58ImCQCIRCSxVk4AGyyYwN5L+qOxuXXM90zthCiS/ricXV11avunhkrrWzZsmXLlu2fttlstjJGo9GN4XB4VY0tC+lcBhC+Dv6QwWBwTcUsA+lsCgTf9uI92I3rKrYp0tkECL1jxXt4pNScJkhnXSByw4oWrKu5dZHOOuDYbAqxEh4xlaMO0pkKjsZ9JbQMHjWVKxXpTKANMQ+suAQ2RM4kpDOSNlZxW4hK5Z7IHY10RsCV3zVCaoN7Yos5TY0opLOCNgo+VEIEn8EX45NwN5nb1KpEOkN0u90zKPRYCRB8Go/HFwivzViIXdRJakI6FRSPlX8iiio+gPN+Lq/BRzdWCncXc6KbkE6LW/lnqqDgoNfrnbM56MPYoYmVcJdZ0+ZQSGcRJkLSF7ZIgOlkMjmr8hDXxL6ZE+JpTBPS6UGSDrb0lUkcYq9MvIcxiH1n5kpQ+3lVE9JJkKADXhcTlsC4jsqjcE3sFeYHwXF6ic9gbunkBHT/ppioBB6vaPEezgGNF2jBwdVB129NghBR5zQE5nfcCqvcc7gFXWhi7kvK+QSPmoj3MEfsE44La++z0wsn/r2dFCD5hVOGayL2BTn3pDv54x5vByZQgq2s/bulgpSfKPv+XZP0gkGBTVN02bCJHVVbcEjtvJGmZkCCxHdFwVXAJraUBsGUDayBXwXnAjift0ShlcLdVloKUPOaD76CL0eFQc9vjK3sfzpVoPZNajCayBE1M+Y0uN/vX3TP5O/gJ/iGoMt+/G8BTZeg5Sv4QW3USK1+PFu2bNmyZcuW7f+1VusYzYvU+uNoBCAAAAAASUVORK5CYII=)}.app_span_collapse_text{color:#808080}.app_table_collapsed_bottom{width:100%;color:#808080;padding-left:12px;padding-right:48px;padding-top:12px;padding-bottom:12px;line-height:120%;border-radius:0px 0px 2px 2px;background-color:#f8f8f8;background-repeat:no-repeat;background-position:95% 50%;background-size:16px 16px}
\ No newline at end of file
diff --git a/Wikipedia/assets/index.html b/Wikipedia/assets/index.html
new file mode 100644
index 00000000000..64ffdc9bede
--- /dev/null
+++ b/Wikipedia/assets/index.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #INJECTION_POINT#
+
+
+
diff --git a/Wikipedia/assets/ios.json b/Wikipedia/assets/ios.json
new file mode 100644
index 00000000000..75b5c8d3564
--- /dev/null
+++ b/Wikipedia/assets/ios.json
@@ -0,0 +1,3 @@
+{
+ "disableAnonEditing": false
+}
diff --git a/Wikipedia/assets/languages.json b/Wikipedia/assets/languages.json
new file mode 100644
index 00000000000..ed460591ac4
--- /dev/null
+++ b/Wikipedia/assets/languages.json
@@ -0,0 +1,1442 @@
+[
+ {
+ "canonical_name": "English",
+ "code": "en",
+ "name": "English"
+ },
+ {
+ "canonical_name": "Dutch",
+ "code": "nl",
+ "name": "Nederlands"
+ },
+ {
+ "canonical_name": "German",
+ "code": "de",
+ "name": "Deutsch"
+ },
+ {
+ "canonical_name": "Swedish",
+ "code": "sv",
+ "name": "Svenska"
+ },
+ {
+ "canonical_name": "French",
+ "code": "fr",
+ "name": "Fran\u00e7ais"
+ },
+ {
+ "canonical_name": "Italian",
+ "code": "it",
+ "name": "Italiano"
+ },
+ {
+ "canonical_name": "Russian",
+ "code": "ru",
+ "name": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439"
+ },
+ {
+ "canonical_name": "Spanish",
+ "code": "es",
+ "name": "Espa\u00f1ol"
+ },
+ {
+ "canonical_name": "Polish",
+ "code": "pl",
+ "name": "Polski"
+ },
+ {
+ "canonical_name": "Waray-Waray",
+ "code": "war",
+ "name": "Winaray"
+ },
+ {
+ "canonical_name": "Cebuano",
+ "code": "ceb",
+ "name": "Sinugboanong Binisaya"
+ },
+ {
+ "canonical_name": "Japanese",
+ "code": "ja",
+ "name": "\u65e5\u672c\u8a9e"
+ },
+ {
+ "canonical_name": "Vietnamese",
+ "code": "vi",
+ "name": "Ti\u1ebfng Vi\u1ec7t"
+ },
+ {
+ "canonical_name": "Portuguese",
+ "code": "pt",
+ "name": "Portugu\u00eas"
+ },
+ {
+ "canonical_name": "Chinese",
+ "code": "zh",
+ "name": "\u4e2d\u6587"
+ },
+ {
+ "canonical_name": "Ukrainian",
+ "code": "uk",
+ "name": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"
+ },
+ {
+ "canonical_name": "Catalan",
+ "code": "ca",
+ "name": "Catal\u00e0"
+ },
+ {
+ "canonical_name": "Norwegian (Bokm\u00e5l)",
+ "code": "no",
+ "name": "Norsk (Bokm\u00e5l)"
+ },
+ {
+ "canonical_name": "Persian",
+ "code": "fa",
+ "name": "\u0641\u0627\u0631\u0633\u06cc"
+ },
+ {
+ "canonical_name": "Finnish",
+ "code": "fi",
+ "name": "Suomi"
+ },
+ {
+ "canonical_name": "Indonesian",
+ "code": "id",
+ "name": "Bahasa Indonesia"
+ },
+ {
+ "canonical_name": "Czech",
+ "code": "cs",
+ "name": "\u010ce\u0161tina"
+ },
+ {
+ "canonical_name": "Korean",
+ "code": "ko",
+ "name": "\ud55c\uad6d\uc5b4"
+ },
+ {
+ "canonical_name": "Arabic",
+ "code": "ar",
+ "name": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629"
+ },
+ {
+ "canonical_name": "Hungarian",
+ "code": "hu",
+ "name": "Magyar"
+ },
+ {
+ "canonical_name": "Serbian",
+ "code": "sr",
+ "name": "\u0421\u0440\u043f\u0441\u043a\u0438 / Srpski"
+ },
+ {
+ "canonical_name": "Malay",
+ "code": "ms",
+ "name": "Bahasa Melayu"
+ },
+ {
+ "canonical_name": "Romanian",
+ "code": "ro",
+ "name": "Rom\u00e2n\u0103"
+ },
+ {
+ "canonical_name": "Turkish",
+ "code": "tr",
+ "name": "T\u00fcrk\u00e7e"
+ },
+ {
+ "canonical_name": "Minangkabau",
+ "code": "min",
+ "name": "Baso Minangkabau"
+ },
+ {
+ "canonical_name": "Kazakh",
+ "code": "kk",
+ "name": "\u049a\u0430\u0437\u0430\u049b\u0448\u0430"
+ },
+ {
+ "canonical_name": "Esperanto",
+ "code": "eo",
+ "name": "Esperanto"
+ },
+ {
+ "canonical_name": "Slovak",
+ "code": "sk",
+ "name": "Sloven\u010dina"
+ },
+ {
+ "canonical_name": "Danish",
+ "code": "da",
+ "name": "Dansk"
+ },
+ {
+ "canonical_name": "Basque",
+ "code": "eu",
+ "name": "Euskara"
+ },
+ {
+ "canonical_name": "Lithuanian",
+ "code": "lt",
+ "name": "Lietuvi\u0173"
+ },
+ {
+ "canonical_name": "Bulgarian",
+ "code": "bg",
+ "name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"
+ },
+ {
+ "canonical_name": "Hebrew",
+ "code": "he",
+ "name": "\u05e2\u05d1\u05e8\u05d9\u05ea"
+ },
+ {
+ "canonical_name": "Croatian",
+ "code": "hr",
+ "name": "Hrvatski"
+ },
+ {
+ "canonical_name": "Slovenian",
+ "code": "sl",
+ "name": "Sloven\u0161\u010dina"
+ },
+ {
+ "canonical_name": "Uzbek",
+ "code": "uz",
+ "name": "O\u2018zbek"
+ },
+ {
+ "canonical_name": "Estonian",
+ "code": "et",
+ "name": "Eesti"
+ },
+ {
+ "canonical_name": "Volap\u00fck",
+ "code": "vo",
+ "name": "Volap\u00fck"
+ },
+ {
+ "canonical_name": "Hindi",
+ "code": "hi",
+ "name": "\u0939\u093f\u0928\u094d\u0926\u0940"
+ },
+ {
+ "canonical_name": "Galician",
+ "code": "gl",
+ "name": "Galego"
+ },
+ {
+ "canonical_name": "Norwegian (Nynorsk)",
+ "code": "nn",
+ "name": "Nynorsk"
+ },
+ {
+ "canonical_name": "Simple English",
+ "code": "simple",
+ "name": "Simple English"
+ },
+ {
+ "canonical_name": "Armenian",
+ "code": "hy",
+ "name": "\u0540\u0561\u0575\u0565\u0580\u0565\u0576"
+ },
+ {
+ "canonical_name": "Latin",
+ "code": "la",
+ "name": "Latina"
+ },
+ {
+ "canonical_name": "Azerbaijani",
+ "code": "az",
+ "name": "Az\u0259rbaycanca"
+ },
+ {
+ "canonical_name": "Greek",
+ "code": "el",
+ "name": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"
+ },
+ {
+ "canonical_name": "Serbo-Croatian",
+ "code": "sh",
+ "name": "Srpskohrvatski / \u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438"
+ },
+ {
+ "canonical_name": "Occitan",
+ "code": "oc",
+ "name": "Occitan"
+ },
+ {
+ "canonical_name": "Thai",
+ "code": "th",
+ "name": "\u0e44\u0e17\u0e22"
+ },
+ {
+ "canonical_name": "Georgian",
+ "code": "ka",
+ "name": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8"
+ },
+ {
+ "canonical_name": "Macedonian",
+ "code": "mk",
+ "name": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438"
+ },
+ {
+ "canonical_name": "Newar / Nepal Bhasa",
+ "code": "new",
+ "name": "\u0928\u0947\u092a\u093e\u0932 \u092d\u093e\u0937\u093e"
+ },
+ {
+ "canonical_name": "Belarusian",
+ "code": "be",
+ "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f"
+ },
+ {
+ "canonical_name": "Piedmontese",
+ "code": "pms",
+ "name": "Piemont\u00e8is"
+ },
+ {
+ "canonical_name": "Tagalog",
+ "code": "tl",
+ "name": "Tagalog"
+ },
+ {
+ "canonical_name": "Tamil",
+ "code": "ta",
+ "name": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"
+ },
+ {
+ "canonical_name": "Tatar",
+ "code": "tt",
+ "name": "Tatar\u00e7a / \u0422\u0430\u0442\u0430\u0440\u0447\u0430"
+ },
+ {
+ "canonical_name": "Telugu",
+ "code": "te",
+ "name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"
+ },
+ {
+ "canonical_name": "Haitian",
+ "code": "ht",
+ "name": "Kr\u00e8yol ayisyen"
+ },
+ {
+ "canonical_name": "Welsh",
+ "code": "cy",
+ "name": "Cymraeg"
+ },
+ {
+ "canonical_name": "Latvian",
+ "code": "lv",
+ "name": "Latvie\u0161u"
+ },
+ {
+ "canonical_name": "Belarusian (Tara\u0161kievica)",
+ "code": "be-x-old",
+ "name": "\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f (\u0442\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0456\u0446\u0430)"
+ },
+ {
+ "canonical_name": "Albanian",
+ "code": "sq",
+ "name": "Shqip"
+ },
+ {
+ "canonical_name": "Bosnian",
+ "code": "bs",
+ "name": "Bosanski"
+ },
+ {
+ "canonical_name": "Breton",
+ "code": "br",
+ "name": "Brezhoneg"
+ },
+ {
+ "canonical_name": "Malagasy",
+ "code": "mg",
+ "name": "Malagasy"
+ },
+ {
+ "canonical_name": "Javanese",
+ "code": "jv",
+ "name": "Basa Jawa"
+ },
+ {
+ "canonical_name": "Luxembourgish",
+ "code": "lb",
+ "name": "L\u00ebtzebuergesch"
+ },
+ {
+ "canonical_name": "Marathi",
+ "code": "mr",
+ "name": "\u092e\u0930\u093e\u0920\u0940"
+ },
+ {
+ "canonical_name": "Icelandic",
+ "code": "is",
+ "name": "\u00cdslenska"
+ },
+ {
+ "canonical_name": "Malayalam",
+ "code": "ml",
+ "name": "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02"
+ },
+ {
+ "canonical_name": "Burmese",
+ "code": "my",
+ "name": "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c"
+ },
+ {
+ "canonical_name": "Bashkir",
+ "code": "ba",
+ "name": "\u0411\u0430\u0448\u04a1\u043e\u0440\u0442"
+ },
+ {
+ "canonical_name": "Yoruba",
+ "code": "yo",
+ "name": "Yor\u00f9b\u00e1"
+ },
+ {
+ "canonical_name": "Western Panjabi",
+ "code": "pnb",
+ "name": "\u0634\u0627\u06c1 \u0645\u06a9\u06be\u06cc \u067e\u0646\u062c\u0627\u0628\u06cc (Sh\u0101hmukh\u012b Pa\u00f1j\u0101b\u012b)"
+ },
+ {
+ "canonical_name": "Afrikaans",
+ "code": "af",
+ "name": "Afrikaans"
+ },
+ {
+ "canonical_name": "Aragonese",
+ "code": "an",
+ "name": "Aragon\u00e9s"
+ },
+ {
+ "canonical_name": "Lombard",
+ "code": "lmo",
+ "name": "Lumbaart"
+ },
+ {
+ "canonical_name": "West Frisian",
+ "code": "fy",
+ "name": "Frysk"
+ },
+ {
+ "canonical_name": "Irish",
+ "code": "ga",
+ "name": "Gaeilge"
+ },
+ {
+ "canonical_name": "Bengali",
+ "code": "bn",
+ "name": "\u09ac\u09be\u0982\u09b2\u09be"
+ },
+ {
+ "canonical_name": "Tajik",
+ "code": "tg",
+ "name": "\u0422\u043e\u04b7\u0438\u043a\u04e3"
+ },
+ {
+ "canonical_name": "Cantonese",
+ "code": "zh-yue",
+ "name": "\u7cb5\u8a9e"
+ },
+ {
+ "canonical_name": "Urdu",
+ "code": "ur",
+ "name": "\u0627\u0631\u062f\u0648"
+ },
+ {
+ "canonical_name": "Swahili",
+ "code": "sw",
+ "name": "Kiswahili"
+ },
+ {
+ "canonical_name": "Kirghiz",
+ "code": "ky",
+ "name": "\u041a\u044b\u0440\u0433\u044b\u0437\u0447\u0430"
+ },
+ {
+ "canonical_name": "Ido",
+ "code": "io",
+ "name": "Ido"
+ },
+ {
+ "canonical_name": "Nepali",
+ "code": "ne",
+ "name": "\u0928\u0947\u092a\u093e\u0932\u0940"
+ },
+ {
+ "canonical_name": "Gujarati",
+ "code": "gu",
+ "name": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0"
+ },
+ {
+ "canonical_name": "Bishnupriya Manipuri",
+ "code": "bpy",
+ "name": "\u0987\u09ae\u09be\u09b0 \u09a0\u09be\u09b0/\u09ac\u09bf\u09b7\u09cd\u09a3\u09c1\u09aa\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0"
+ },
+ {
+ "canonical_name": "Sicilian",
+ "code": "scn",
+ "name": "Sicilianu"
+ },
+ {
+ "canonical_name": "Chechen",
+ "code": "ce",
+ "name": "\u041d\u043e\u0445\u0447\u0438\u0439\u043d"
+ },
+ {
+ "canonical_name": "Low Saxon",
+ "code": "nds",
+ "name": "Plattd\u00fc\u00fctsch"
+ },
+ {
+ "canonical_name": "Chuvash",
+ "code": "cv",
+ "name": "\u0427\u0103\u0432\u0430\u0448"
+ },
+ {
+ "canonical_name": "Kurdish",
+ "code": "ku",
+ "name": "Kurd\u00ee / \u0643\u0648\u0631\u062f\u06cc"
+ },
+ {
+ "canonical_name": "Scots",
+ "code": "sco",
+ "name": "Scots"
+ },
+ {
+ "canonical_name": "Asturian",
+ "code": "ast",
+ "name": "Asturianu"
+ },
+ {
+ "canonical_name": "Quechua",
+ "code": "qu",
+ "name": "Runa Simi"
+ },
+ {
+ "canonical_name": "Sundanese",
+ "code": "su",
+ "name": "Basa Sunda"
+ },
+ {
+ "canonical_name": "Alemannic",
+ "code": "als",
+ "name": "Alemannisch"
+ },
+ {
+ "canonical_name": "Kannada",
+ "code": "kn",
+ "name": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1"
+ },
+ {
+ "canonical_name": "Interlingua",
+ "code": "ia",
+ "name": "Interlingua"
+ },
+ {
+ "canonical_name": "Buginese",
+ "code": "bug",
+ "name": "Basa Ugi"
+ },
+ {
+ "canonical_name": "Neapolitan",
+ "code": "nap",
+ "name": "Nnapulitano"
+ },
+ {
+ "canonical_name": "Samogitian",
+ "code": "bat-smg",
+ "name": "\u017demait\u0117\u0161ka"
+ },
+ {
+ "canonical_name": "Amharic",
+ "code": "am",
+ "name": "\u12a0\u121b\u122d\u129b"
+ },
+ {
+ "canonical_name": "Sorani",
+ "code": "ckb",
+ "name": "Soran\u00ee / \u06a9\u0648\u0631\u062f\u06cc"
+ },
+ {
+ "canonical_name": "Walloon",
+ "code": "wa",
+ "name": "Walon"
+ },
+ {
+ "canonical_name": "Banyumasan",
+ "code": "map-bms",
+ "name": "Basa Banyumasan"
+ },
+ {
+ "canonical_name": "Scottish Gaelic",
+ "code": "gd",
+ "name": "G\u00e0idhlig"
+ },
+ {
+ "canonical_name": "Mongolian",
+ "code": "mn",
+ "name": "\u041c\u043e\u043d\u0433\u043e\u043b"
+ },
+ {
+ "canonical_name": "Fiji Hindi",
+ "code": "hif",
+ "name": "Fiji Hindi"
+ },
+ {
+ "canonical_name": "Egyptian Arabic",
+ "code": "arz",
+ "name": "\u0645\u0635\u0631\u0649 (Ma\u1e63r\u012b)"
+ },
+ {
+ "canonical_name": "Min Nan",
+ "code": "zh-min-nan",
+ "name": "B\u00e2n-l\u00e2m-g\u00fa"
+ },
+ {
+ "canonical_name": "Mazandarani",
+ "code": "mzn",
+ "name": "\u0645\u064e\u0632\u0650\u0631\u0648\u0646\u064a"
+ },
+ {
+ "canonical_name": "Yiddish",
+ "code": "yi",
+ "name": "\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"
+ },
+ {
+ "canonical_name": "Venetian",
+ "code": "vec",
+ "name": "V\u00e8neto"
+ },
+ {
+ "canonical_name": "Sakha",
+ "code": "sah",
+ "name": "\u0421\u0430\u0445\u0430 \u0442\u044b\u043b\u0430 (Saxa Tyla)"
+ },
+ {
+ "canonical_name": "Nahuatl",
+ "code": "nah",
+ "name": "N\u0101huatl"
+ },
+ {
+ "canonical_name": "Sanskrit",
+ "code": "sa",
+ "name": "\u0938\u0902\u0938\u094d\u0915\u0943\u0924\u092e\u094d"
+ },
+ {
+ "canonical_name": "Sinhalese",
+ "code": "si",
+ "name": "\u0dc3\u0dd2\u0d82\u0dc4\u0dbd"
+ },
+ {
+ "canonical_name": "Tarantino",
+ "code": "roa-tara",
+ "name": "Tarand\u00edne"
+ },
+ {
+ "canonical_name": "Bavarian",
+ "code": "bar",
+ "name": "Boarisch"
+ },
+ {
+ "canonical_name": "Ossetian",
+ "code": "os",
+ "name": "\u0418\u0440\u043e\u043d\u0430\u0443"
+ },
+ {
+ "canonical_name": "Punjabi",
+ "code": "pa",
+ "name": "\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40"
+ },
+ {
+ "canonical_name": "Kapampangan",
+ "code": "pam",
+ "name": "Kapampangan"
+ },
+ {
+ "canonical_name": "Upper Sorbian",
+ "code": "hsb",
+ "name": "Hornjoserbsce"
+ },
+ {
+ "canonical_name": "Northern Sami",
+ "code": "se",
+ "name": "S\u00e1megiella"
+ },
+ {
+ "canonical_name": "Limburgish",
+ "code": "li",
+ "name": "Limburgs"
+ },
+ {
+ "canonical_name": "Faroese",
+ "code": "fo",
+ "name": "F\u00f8royskt"
+ },
+ {
+ "canonical_name": "Maori",
+ "code": "mi",
+ "name": "M\u0101ori"
+ },
+ {
+ "canonical_name": "Corsican",
+ "code": "co",
+ "name": "Corsu"
+ },
+ {
+ "canonical_name": "Ilokano",
+ "code": "ilo",
+ "name": "Ilokano"
+ },
+ {
+ "canonical_name": "Gan",
+ "code": "gan",
+ "name": "\u8d1b\u8a9e"
+ },
+ {
+ "canonical_name": "Tibetan",
+ "code": "bo",
+ "name": "\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51"
+ },
+ {
+ "canonical_name": "North Frisian",
+ "code": "frr",
+ "name": "Nordfriisk"
+ },
+ {
+ "canonical_name": "Gilaki",
+ "code": "glk",
+ "name": "\u06af\u06cc\u0644\u06a9\u06cc"
+ },
+ {
+ "canonical_name": "Rusyn",
+ "code": "rue",
+ "name": "\u0440\u0443\u0441\u0438\u043d\u044c\u0441\u043a\u044b\u0439 \u044f\u0437\u044b\u043a"
+ },
+ {
+ "canonical_name": "Central_Bicolano",
+ "code": "bcl",
+ "name": "Bikol"
+ },
+ {
+ "canonical_name": "Dutch Low Saxon",
+ "code": "nds-nl",
+ "name": "Nedersaksisch"
+ },
+ {
+ "canonical_name": "V\u00f5ro",
+ "code": "fiu-vro",
+ "name": "V\u00f5ro"
+ },
+ {
+ "canonical_name": "Oriya",
+ "code": "or",
+ "name": "\u0b13\u0b5c\u0b3f\u0b06"
+ },
+ {
+ "canonical_name": "Hill Mari",
+ "code": "mrj",
+ "name": "\u041a\u044b\u0440\u044b\u043a \u041c\u0430\u0440\u044b (Kyryk Mary)\u00a0"
+ },
+ {
+ "canonical_name": "Turkmen",
+ "code": "tk",
+ "name": "\u062a\u0631\u0643\u0645\u0646 / \u0422\u0443\u0440\u043a\u043c\u0435\u043d"
+ },
+ {
+ "canonical_name": "Pashto",
+ "code": "ps",
+ "name": "\u067e\u069a\u062a\u0648"
+ },
+ {
+ "canonical_name": "West Flemish",
+ "code": "vls",
+ "name": "West-Vlams"
+ },
+ {
+ "canonical_name": "Mingrelian",
+ "code": "xmf",
+ "name": "\u10db\u10d0\u10e0\u10d2\u10d0\u10da\u10e3\u10e0\u10d8 (Margaluri)"
+ },
+ {
+ "canonical_name": "Manx",
+ "code": "gv",
+ "name": "Gaelg"
+ },
+ {
+ "canonical_name": "Zazaki",
+ "code": "diq",
+ "name": "Zazaki"
+ },
+ {
+ "canonical_name": "Zeelandic",
+ "code": "zea",
+ "name": "Ze\u00eauws"
+ },
+ {
+ "canonical_name": "Komi",
+ "code": "kv",
+ "name": "\u041a\u043e\u043c\u0438"
+ },
+ {
+ "canonical_name": "Khmer",
+ "code": "km",
+ "name": "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a"
+ },
+ {
+ "canonical_name": "Meadow Mari",
+ "code": "mhr",
+ "name": "\u041e\u043b\u044b\u043a \u041c\u0430\u0440\u0438\u0439 (Olyk Marij)"
+ },
+ {
+ "canonical_name": "Pangasinan",
+ "code": "pag",
+ "name": "Pangasinan"
+ },
+ {
+ "canonical_name": "Vepsian",
+ "code": "vep",
+ "name": "Veps\u00c3\u00a4n"
+ },
+ {
+ "canonical_name": "Kashubian",
+ "code": "csb",
+ "name": "Kasz\u00ebbsczi"
+ },
+ {
+ "canonical_name": "Divehi",
+ "code": "dv",
+ "name": "\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0"
+ },
+ {
+ "canonical_name": "Hakka",
+ "code": "hak",
+ "name": "Hak-k\u00e2-fa / \u5ba2\u5bb6\u8a71"
+ },
+ {
+ "canonical_name": "Norman",
+ "code": "nrm",
+ "name": "Nouormand/Normaund"
+ },
+ {
+ "canonical_name": "Romansh",
+ "code": "rm",
+ "name": "Rumantsch"
+ },
+ {
+ "canonical_name": "Komi-Permyak",
+ "code": "koi",
+ "name": "\u041f\u0435\u0440\u0435\u043c \u041a\u043e\u043c\u0438 (Perem Komi)"
+ },
+ {
+ "canonical_name": "Udmurt",
+ "code": "udm",
+ "name": "\u0423\u0434\u043c\u0443\u0440\u0442 \u043a\u044b\u043b"
+ },
+ {
+ "canonical_name": "Ladino",
+ "code": "lad",
+ "name": "Dzhudezmo"
+ },
+ {
+ "canonical_name": "Sardinian",
+ "code": "sc",
+ "name": "Sardu"
+ },
+ {
+ "canonical_name": "Wu",
+ "code": "wuu",
+ "name": "\u5434\u8bed"
+ },
+ {
+ "canonical_name": "Classical Chinese",
+ "code": "zh-classical",
+ "name": "\u53e4\u6587 / \u6587\u8a00\u6587"
+ },
+ {
+ "canonical_name": "Ligurian",
+ "code": "lij",
+ "name": "L\u00edguru"
+ },
+ {
+ "canonical_name": "Somali",
+ "code": "so",
+ "name": "Soomaaliga"
+ },
+ {
+ "canonical_name": "Uyghur",
+ "code": "ug",
+ "name": "\u0626\u06c7\u064a\u063a\u06c7\u0631 \u062a\u0649\u0644\u0649"
+ },
+ {
+ "canonical_name": "Friulian",
+ "code": "fur",
+ "name": "Furlan"
+ },
+ {
+ "canonical_name": "Saterland Frisian",
+ "code": "stq",
+ "name": "Seeltersk"
+ },
+ {
+ "canonical_name": "Aymara",
+ "code": "ay",
+ "name": "Aymar"
+ },
+ {
+ "canonical_name": "Maltese",
+ "code": "mt",
+ "name": "Malti"
+ },
+ {
+ "canonical_name": "Pali",
+ "code": "pi",
+ "name": "\u092a\u093e\u0934\u093f"
+ },
+ {
+ "canonical_name": "Novial",
+ "code": "nov",
+ "name": "Novial"
+ },
+ {
+ "canonical_name": "Bihari",
+ "code": "bh",
+ "name": "\u092d\u094b\u091c\u092a\u0941\u0930\u0940"
+ },
+ {
+ "canonical_name": "Ripuarian",
+ "code": "ksh",
+ "name": "Ripoarisch"
+ },
+ {
+ "canonical_name": "Emilian-Romagnol",
+ "code": "eml",
+ "name": "Emili\u00e0n e rumagn\u00f2l"
+ },
+ {
+ "canonical_name": "Assamese",
+ "code": "as",
+ "name": "\u0985\u09b8\u09ae\u09c0\u09df\u09be"
+ },
+ {
+ "canonical_name": "Guarani",
+ "code": "gn",
+ "name": "Ava\u00f1e'\u1ebd"
+ },
+ {
+ "canonical_name": "Cornish",
+ "code": "kw",
+ "name": "Kernewek/Karnuack"
+ },
+ {
+ "canonical_name": "Picard",
+ "code": "pcd",
+ "name": "Picard"
+ },
+ {
+ "canonical_name": "Gagauz",
+ "code": "gag",
+ "name": "Gagauz"
+ },
+ {
+ "canonical_name": "Anglo-Saxon",
+ "code": "ang",
+ "name": "Englisc"
+ },
+ {
+ "canonical_name": "Acehnese",
+ "code": "ace",
+ "name": "Bahsa Ac\u00e8h"
+ },
+ {
+ "canonical_name": "Navajo",
+ "code": "nv",
+ "name": "Din\u00e9 bizaad"
+ },
+ {
+ "canonical_name": "Silesian",
+ "code": "szl",
+ "name": "\u015al\u016fnski"
+ },
+ {
+ "canonical_name": "Extremaduran",
+ "code": "ext",
+ "name": "Estreme\u00f1u"
+ },
+ {
+ "canonical_name": "Franco-Proven\u00e7al/Arpitan",
+ "code": "frp",
+ "name": "Arpitan"
+ },
+ {
+ "canonical_name": "Interlingue",
+ "code": "ie",
+ "name": "Interlingue"
+ },
+ {
+ "canonical_name": "Mirandese",
+ "code": "mwl",
+ "name": "Mirand\u00e9s"
+ },
+ {
+ "canonical_name": "Lingala",
+ "code": "ln",
+ "name": "Lingala"
+ },
+ {
+ "canonical_name": "Shona",
+ "code": "sn",
+ "name": "chiShona"
+ },
+ {
+ "canonical_name": "Palatinate German",
+ "code": "pfl",
+ "name": "Pf\u00e4lzisch"
+ },
+ {
+ "canonical_name": "Lezgian",
+ "code": "lez",
+ "name": "\u00d0\u009b\u00d0\u00b5\u00d0\u00b7\u00d0\u00b3\u00d0\u00b8 \u00d1\u0087\u00d0\u0086\u00d0\u00b0\u00d0\u00bb"
+ },
+ {
+ "canonical_name": "Karachay-Balkar",
+ "code": "krc",
+ "name": "\u041a\u044a\u0430\u0440\u0430\u0447\u0430\u0439-\u041c\u0430\u043b\u043a\u044a\u0430\u0440 (Qarachay-Malqar)"
+ },
+ {
+ "canonical_name": "Kalmyk",
+ "code": "xal",
+ "name": "\u0425\u0430\u043b\u044c\u043c\u0433"
+ },
+ {
+ "canonical_name": "Hawaiian",
+ "code": "haw",
+ "name": "Hawai`i"
+ },
+ {
+ "canonical_name": "Pennsylvania German",
+ "code": "pdc",
+ "name": "Deitsch"
+ },
+ {
+ "canonical_name": "Kinyarwanda",
+ "code": "rw",
+ "name": "Ikinyarwanda"
+ },
+ {
+ "canonical_name": "Crimean Tatar",
+ "code": "crh",
+ "name": "Q\u0131r\u0131mtatarca"
+ },
+ {
+ "canonical_name": "Lower Sorbian",
+ "code": "dsb",
+ "name": "Dolnoserbski"
+ },
+ {
+ "canonical_name": "Kabyle",
+ "code": "kab",
+ "name": "Taqbaylit"
+ },
+ {
+ "canonical_name": "Tongan",
+ "code": "to",
+ "name": "faka Tonga"
+ },
+ {
+ "canonical_name": "Erzya",
+ "code": "myv",
+ "name": "\u042d\u0440\u0437\u044f\u043d\u044c (Erzjanj Kelj)"
+ },
+ {
+ "canonical_name": "Aramaic",
+ "code": "arc",
+ "name": "\u0710\u072a\u0721\u071d\u0710"
+ },
+ {
+ "canonical_name": "Greenlandic",
+ "code": "kl",
+ "name": "Kalaallisut"
+ },
+ {
+ "canonical_name": "Banjar",
+ "code": "bjn",
+ "name": "Bahasa Banjar"
+ },
+ {
+ "canonical_name": "Papiamentu",
+ "code": "pap",
+ "name": "Papiamentu"
+ },
+ {
+ "canonical_name": "Kabardian Circassian",
+ "code": "kbd",
+ "name": "\u0410\u0434\u044b\u0433\u044d\u0431\u0437\u044d (Adighabze)"
+ },
+ {
+ "canonical_name": "Lao",
+ "code": "lo",
+ "name": "\u0ea5\u0eb2\u0ea7"
+ },
+ {
+ "canonical_name": "Tok Pisin",
+ "code": "tpi",
+ "name": "Tok Pisin"
+ },
+ {
+ "canonical_name": "Lak",
+ "code": "lbe",
+ "name": "\u041b\u0430\u043a\u043a\u0443"
+ },
+ {
+ "canonical_name": "Wolof",
+ "code": "wo",
+ "name": "Wolof"
+ },
+ {
+ "canonical_name": "Lojban",
+ "code": "jbo",
+ "name": "Lojban"
+ },
+ {
+ "canonical_name": "Moksha",
+ "code": "mdf",
+ "name": "\u041c\u043e\u043a\u0448\u0435\u043d\u044c (Mokshanj K\u00e4lj)"
+ },
+ {
+ "canonical_name": "Zamboanga Chavacano",
+ "code": "cbk-zam",
+ "name": "Chavacano de Zamboanga"
+ },
+ {
+ "canonical_name": "Avar",
+ "code": "av",
+ "name": "\u0410\u0432\u0430\u0440"
+ },
+ {
+ "canonical_name": "Sranan",
+ "code": "srn",
+ "name": "Sranantongo"
+ },
+ {
+ "canonical_name": "Tahitian",
+ "code": "ty",
+ "name": "Reo M\u0101`ohi"
+ },
+ {
+ "canonical_name": "Kongo",
+ "code": "kg",
+ "name": "KiKongo"
+ },
+ {
+ "canonical_name": "Buryat (Russia)",
+ "code": "bxr",
+ "name": "\u0411\u0443\u0440\u044f\u0430\u0434"
+ },
+ {
+ "canonical_name": "Abkhazian",
+ "code": "ab",
+ "name": "\u0410\u04a7\u0441\u0443\u0430"
+ },
+ {
+ "canonical_name": "Nauruan",
+ "code": "na",
+ "name": "dorerin Naoero"
+ },
+ {
+ "canonical_name": "Tetum",
+ "code": "tet",
+ "name": "Tetun"
+ },
+ {
+ "canonical_name": "Latgalian",
+ "code": "ltg",
+ "name": "Latga\u013cu"
+ },
+ {
+ "canonical_name": "Igbo",
+ "code": "ig",
+ "name": "Igbo"
+ },
+ {
+ "canonical_name": "Northern Sotho",
+ "code": "nso",
+ "name": "Sesotho sa Leboa"
+ },
+ {
+ "canonical_name": "Zhuang",
+ "code": "za",
+ "name": "Cuengh"
+ },
+ {
+ "canonical_name": "Karakalpak",
+ "code": "kaa",
+ "name": "Qaraqalpaqsha"
+ },
+ {
+ "canonical_name": "Zulu",
+ "code": "zu",
+ "name": "isiZulu"
+ },
+ {
+ "canonical_name": "Cheyenne",
+ "code": "chy",
+ "name": "Tsets\u00eahest\u00e2hese"
+ },
+ {
+ "canonical_name": "Romani",
+ "code": "rmy",
+ "name": "romani - \u0930\u094b\u092e\u093e\u0928\u0940"
+ },
+ {
+ "canonical_name": "Old Church Slavonic",
+ "code": "cu",
+ "name": "\u0421\u043b\u043e\u0432\u0463\u043d\u044c\u0441\u043a\u044a"
+ },
+ {
+ "canonical_name": "Min Dong",
+ "code": "cdo",
+ "name": "M\u00ecng-d\u0115\u0324ng-ng\u1e73\u0304"
+ },
+ {
+ "canonical_name": "Tswana",
+ "code": "tn",
+ "name": "Setswana"
+ },
+ {
+ "canonical_name": "Cherokee",
+ "code": "chr",
+ "name": "\u13e3\u13b3\u13a9"
+ },
+ {
+ "canonical_name": "Aromanian",
+ "code": "roa-rup",
+ "name": "Arm\u00e3neashce"
+ },
+ {
+ "canonical_name": "Bislama",
+ "code": "bi",
+ "name": "Bislama"
+ },
+ {
+ "canonical_name": "Norfolk",
+ "code": "pih",
+ "name": "Norfuk"
+ },
+ {
+ "canonical_name": "Gothic",
+ "code": "got",
+ "name": "\ud800\udf32\ud800\udf3f\ud800\udf44\ud800\udf39\ud800\udf43\ud800\udf3a"
+ },
+ {
+ "canonical_name": "Samoan",
+ "code": "sm",
+ "name": "Gagana Samoa"
+ },
+ {
+ "canonical_name": "Moldovan",
+ "code": "mo",
+ "name": "\u041c\u043e\u043b\u0434\u043e\u0432\u0435\u043d\u044f\u0441\u043a\u044d"
+ },
+ {
+ "canonical_name": "Bambara",
+ "code": "bm",
+ "name": "Bamanankan"
+ },
+ {
+ "canonical_name": "Inuktitut",
+ "code": "iu",
+ "name": "\u1403\u14c4\u1483\u144e\u1450\u1466"
+ },
+ {
+ "canonical_name": "Swati",
+ "code": "ss",
+ "name": "SiSwati"
+ },
+ {
+ "canonical_name": "Sindhi",
+ "code": "sd",
+ "name": "\u0633\u0646\u068c\u064a\u060c \u0633\u0646\u062f\u06be\u06cc \u060c \u0938\u093f\u0928\u094d\u0927"
+ },
+ {
+ "canonical_name": "Pontic",
+ "code": "pnt",
+ "name": "\u03a0\u03bf\u03bd\u03c4\u03b9\u03b1\u03ba\u03ac"
+ },
+ {
+ "canonical_name": "Kikuyu",
+ "code": "ki",
+ "name": "G\u0129k\u0169y\u0169"
+ },
+ {
+ "canonical_name": "Tuvan",
+ "code": "tyv",
+ "name": "\u0442\u044b\u0432\u0430 \u0434\u044b\u043b"
+ },
+ {
+ "canonical_name": "Ewe",
+ "code": "ee",
+ "name": "E\u028begbe"
+ },
+ {
+ "canonical_name": "Hausa",
+ "code": "ha",
+ "name": "\u0647\u064e\u0648\u064f\u0633\u064e"
+ },
+ {
+ "canonical_name": "Oromo",
+ "code": "om",
+ "name": "Oromoo"
+ },
+ {
+ "canonical_name": "Fijian",
+ "code": "fj",
+ "name": "Na Vosa Vakaviti"
+ },
+ {
+ "canonical_name": "Tigrinya",
+ "code": "ti",
+ "name": "\u1275\u130d\u122d\u129b"
+ },
+ {
+ "canonical_name": "Tsonga",
+ "code": "ts",
+ "name": "Xitsonga"
+ },
+ {
+ "canonical_name": "Kashmiri",
+ "code": "ks",
+ "name": "\u0915\u0936\u094d\u092e\u0940\u0930\u0940 / \u0643\u0634\u0645\u064a\u0631\u064a"
+ },
+ {
+ "canonical_name": "Twi",
+ "code": "tw",
+ "name": "Twi"
+ },
+ {
+ "canonical_name": "Sango",
+ "code": "sg",
+ "name": "S\u00e4ng\u00f6"
+ },
+ {
+ "canonical_name": "Venda",
+ "code": "ve",
+ "name": "Tshivenda"
+ },
+ {
+ "canonical_name": "Fula",
+ "code": "ff",
+ "name": "Fulfulde"
+ },
+ {
+ "canonical_name": "Sesotho",
+ "code": "st",
+ "name": "Sesotho"
+ },
+ {
+ "canonical_name": "Cree",
+ "code": "cr",
+ "name": "Nehiyaw"
+ },
+ {
+ "canonical_name": "Kirundi",
+ "code": "rn",
+ "name": "Kirundi"
+ },
+ {
+ "canonical_name": "Dzongkha",
+ "code": "dz",
+ "name": "\u0f47\u0f7c\u0f44\u0f0b\u0f41"
+ },
+ {
+ "canonical_name": "Akan",
+ "code": "ak",
+ "name": "Akana"
+ },
+ {
+ "canonical_name": "Tumbuka",
+ "code": "tum",
+ "name": "chiTumbuka"
+ },
+ {
+ "canonical_name": "Inupiak",
+ "code": "ik",
+ "name": "I\u00f1upiak"
+ },
+ {
+ "canonical_name": "Luganda",
+ "code": "lg",
+ "name": "Luganda"
+ },
+ {
+ "canonical_name": "Chichewa",
+ "code": "ny",
+ "name": "Chi-Chewa"
+ },
+ {
+ "canonical_name": "Chamorro",
+ "code": "ch",
+ "name": "Chamoru"
+ },
+ {
+ "canonical_name": "Xhosa",
+ "code": "xh",
+ "name": "isiXhosa"
+ },
+ {
+ "canonical_name": "Ndonga",
+ "code": "ng",
+ "name": "Oshiwambo"
+ },
+ {
+ "canonical_name": "Sichuan Yi",
+ "code": "ii",
+ "name": "\ua187\ua259"
+ },
+ {
+ "canonical_name": "Choctaw",
+ "code": "cho",
+ "name": "Choctaw"
+ },
+ {
+ "canonical_name": "Marshallese",
+ "code": "mh",
+ "name": "Ebon"
+ },
+ {
+ "canonical_name": "Afar",
+ "code": "aa",
+ "name": "Afar"
+ },
+ {
+ "canonical_name": "Kuanyama",
+ "code": "kj",
+ "name": "Kuanyama"
+ },
+ {
+ "canonical_name": "Hiri Motu",
+ "code": "ho",
+ "name": "Hiri Motu"
+ },
+ {
+ "canonical_name": "Muscogee",
+ "code": "mus",
+ "name": "Muskogee"
+ },
+ {
+ "canonical_name": "Kanuri",
+ "code": "kr",
+ "name": "Kanuri"
+ },
+ {
+ "canonical_name": "Herero",
+ "code": "hz",
+ "name": "Otsiherero"
+ },
+ {
+ "canonical_name": "Test Wiki",
+ "code": "test",
+ "name": "Test Wiki"
+ }
+]
\ No newline at end of file
diff --git a/Wikipedia/assets/mainpages.json b/Wikipedia/assets/mainpages.json
new file mode 100644
index 00000000000..4432ef4ca00
--- /dev/null
+++ b/Wikipedia/assets/mainpages.json
@@ -0,0 +1 @@
+{"gv": "Ard-ghuillag", "gu": "\u0aae\u0ac1\u0a96\u0aaa\u0ac3\u0ab7\u0acd\u0aa0", "scn": "P\u00e0ggina principali", "wuu": "\u5c01\u9762", "cdo": "T\u00e0u Hi\u0115k", "sco": "Main Page", "kbd": "\u041d\u0430\u043f\u044d\u043a\u04c0\u0443\u044d\u0446\u04c0 \u043d\u044d\u0445\u044a\u044b\u0449\u0445\u044c\u044d", "gd": "Pr\u00ecomh-Dhuilleag", "jbo": "ralju ckupau", "ga": "Pr\u00edomhleathanach", "gn": "Ape", "gl": "Portada", "als": "Wikipedia:Houptsyte", "lg": "Olupapula Olusooka", "hak": "Th\u00e8u-Ya\u030dp", "lb": "Haapts\u00e4it", "szl": "Przod\u0144o zajta", "vep": "P\u00e4lehtpol\u2019", "la": "Project:Pagina prima", "ln": "Lok\u00e1s\u00e1 ya libos\u00f3", "frp": "Re\u00e7ua", "tt": "\u0411\u0430\u0448 \u0431\u0438\u0442", "tr": "Ana Sayfa", "cbk-zam": "El Primero Pagina", "li": "Veurblaad", "lv": "S\u0101kumlapa", "to": "Peesi tali fiefia", "tl": "Unang Pahina", "vec": "Pajina prinsipa\u0142e", "th": "\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e25\u0e31\u0e01", "ti": "\u1218\u1260\u1308\u1232 \u1308\u133d", "tg": "\u0421\u0430\u04b3\u0438\u0444\u0430\u0438 \u0410\u0441\u043b\u04e3", "te": "\u0c2e\u0c4a\u0c26\u0c1f\u0c3f \u0c2a\u0c47\u0c1c\u0c40", "ksh": "Project:Houpsigk", "pcd": "Accueul", "ta": "\u0bae\u0bc1\u0ba4\u0bb1\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd", "yi": "\u05d4\u05d5\u05d9\u05e4\u05d8 \u05d6\u05d9\u05d9\u05d8", "xmf": "\u10d3\u10e3\u10d3\u10ee\u10d0\u10e1\u10f7\u10da\u10d0", "ceb": "Unang Panid", "yo": "Oj\u00faew\u00e9 \u00c0k\u1ecd\u0301k\u1ecd\u0301", "de": "Wikipedia:Hauptseite", "da": "Forside", "test": "Main Page", "bxr": "\u041d\u044e\u0443\u0440 \u0445\u0443\u0443\u0434\u0430\u04bb\u0430\u043d", "dz": "\u0f58\u0f0b\u0f64\u0f7c\u0f42\u0f0d", "hif": "Pahila Panna", "rm": "Wikipedia:Pagina principala", "dv": "\u0789\u07a6\u0787\u07a8 \u079e\u07a6\u078a\u07b0\u0799\u07a7", "bar": "Hoamseitn", "vls": "Voorblad", "kaa": "Bas bet", "qu": "Qhapaq p'anqa", "eml": "PP", "kn": "\u0cae\u0cc1\u0c96\u0ccd\u0caf \u0caa\u0cc1\u0c9f", "fiu-vro": "P\u00e4\u00e4leht", "bpy": "\u09aa\u09af\u09bc\u09b2\u09be \u09aa\u09be\u09a4\u09be", "crh": "Ba\u015f Saife", "mhr": "\u0422\u04f1\u04a5 \u043b\u0430\u0448\u0442\u044b\u043a", "diq": "Pela Seri", "ho": "Main Page", "el": "\u03a0\u03cd\u03bb\u03b7:\u039a\u03cd\u03c1\u03b9\u03b1", "eo": "Project:\u0108efpa\u011do", "en": "Main Page", "zh": "Wikipedia:\u9996\u9875", "pms": "Intrada", "ee": "Axa do \u014ag\u0254", "tpi": "Fran pes", "arz": "\u0627\u0644\u0635\u0641\u062d\u0647 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0647", "rmy": "Sherutni patrin", "mdf": "\u041f\u0440\u044f \u043b\u043e\u043f\u0430", "za": "Yiebdaeuz", "mh": "Main Page", "arc": "\u0726\u0710\u072c\u0710 \u072a\u071d\u072b\u071d\u072c\u0710", "uk": "\u0413\u043e\u043b\u043e\u0432\u043d\u0430 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430", "eu": "Azala", "et": "Esileht", "roa-rup": "Prota fr\u00e3ndz\u00e3", "tet": "P\u00e1jina Mahuluk", "es": "Wikipedia:Portada", "ru": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "roa-tara": "Pagene Prengep\u00e1le", "mus": "Main Page", "ha": "Marhabin", "ak": "Krataafa Titiriw", "lad": "La Primera Hoja", "bm": "Ny\u025b f\u0254l\u0254", "new": "\u092e\u0942 \u092a\u094c", "rn": "Main Page", "ro": "Pagina principal\u0103", "dsb": "G\u0142owny bok", "jv": "Kaca Utama", "hsb": "H\u0142owna strona", "be": "\u0413\u0430\u043b\u043e\u045e\u043d\u0430\u044f \u0441\u0442\u0430\u0440\u043e\u043d\u043a\u0430", "bg": "\u041d\u0430\u0447\u0430\u043b\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "be-x-old": "\u0413\u0430\u043b\u043e\u045e\u043d\u0430\u044f \u0441\u0442\u0430\u0440\u043e\u043d\u043a\u0430", "ba": "\u0411\u0430\u0448 \u0431\u0438\u0442", "wa": "Mwaisse p\u00e5dje", "ast": "Portada", "wo": "X\u00ebt wu nj\u00ebkk", "got": "\ud800\udf37\ud800\udf30\ud800\udf3f\ud800\udf31\ud800\udf39\ud800\udf33\ud800\udf30\ud800\udf43\ud800\udf34\ud800\udf39\ud800\udf33\ud800\udf49", "bn": "\u09aa\u09cd\u09b0\u09a7\u09be\u09a8 \u09aa\u09be\u09a4\u09be", "bo": "\u0f42\u0f59\u0f7c\u0f0b\u0f44\u0f7c\u0f66\u0f0d", "bh": "\u092e\u0941\u0916\u094d\u092f \u092a\u0928\u094d\u0928\u093e", "bi": "Nambawan Pej", "rue": "\u0413\u043e\u043b\u043e\u0432\u043d\u0430 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430", "map-bms": "Kaca Utama", "tum": "Main Page", "br": "Degemer", "bs": "Po\u010detna strana", "lez": "\u041a\u044c\u0438\u043b\u0438\u043d \u0447\u0447\u0438\u043d", "ja": "\u30e1\u30a4\u30f3\u30da\u30fc\u30b8", "om": "Fuula Dura", "glk": "\u06af\u062a \u0648\u0644\u06af", "ace": "\u00d4n Keu\u00eb", "ng": "Main Page", "ilo": "Umuna a Panid", "ty": "Fa\u2019ari\u2019ira\u2019a", "oc": "Acu\u00e8lh", "ltg": "Suoku puslopa", "st": "Leqephe la pele", "lo": "\u0edc\u0ec9\u0eb2\u0eab\u0ebc\u0eb1\u0e81", "krc": "\u0411\u0430\u0448 \u0431\u0435\u0442", "nds": "Wikipedia:H\u00f6\u00f6ftsiet", "os": "\u0421\u00e6\u0439\u0440\u0430\u0433 \u0444\u0430\u0440\u0441", "or": "\u0b2a\u0b4d\u0b30\u0b27\u0b3e\u0b28 \u0b2a\u0b43\u0b37\u0b4d\u0b20\u0b3e", "udm": "\u041a\u0443\u0442\u0441\u043a\u043e\u043d \u0431\u0430\u043c", "xh": "Iphepha Elingundoqo", "ch": "Fanhaluman", "co": "Pagina maestra", "nso": "Letlakala la pele", "simple": "Main Page", "bjn": "Tungkaran Tatambaian", "ca": "Portada", "lmo": "Pagina principala", "ce": "\u041a\u043e\u044c\u0440\u0442\u0430 \u0430\u0433\u04c0\u043e", "ts": "Tlukankulu", "cy": "Hafan", "ang": "H\u0113afodtramet", "cs": "Hlavn\u00ed strana", "cr": "\u14c3\u1525\u1455\u14bb\u1439\u1505\u144c\u148b\u14c2\u1472\u14d0", "cho": "Main Page", "cv": "\u0422\u0115\u043f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "cu": "\u0433\u043b\u0430\u0432\u044c\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "ve": "Hayani", "koi": "\u041f\u043e\u043d\u0434\u04e7\u0442\u0447\u0430\u043d \u043b\u0438\u0441\u0442\u0431\u043e\u043a", "ps": "\u0644\u0648\u0645\u0693\u06cc \u0645\u062e", "fj": "Tabana levu", "srn": "Fesipapira", "pt": "Wikipedia:P\u00e1gina principal", "sm": "It\u016blau Muamua", "ext": "P\u00e1gina prencipal", "lt": "Pagrindinis puslapis", "zh-min-nan": "Th\u00e2u-ia\u030dh", "frr": "Project:Hoodsid", "chr": "\u13a4\u13b5\u13ae\u13b5\u13cd\u13d7", "pa": "\u0a2e\u0a41\u0a71\u0a16 \u0a38\u0a2b\u0a3c\u0a3e", "xal": "\u041d\u04af\u0440 \u0445\u0430\u043b\u0445", "chy": "Va'ohtama", "pi": "\u092a\u092e\u0941\u0916 \u092a\u0924\u094d\u0924 Pamukha patta", "war": "Syahan nga Pakli", "pl": "Wikipedia:Strona g\u0142\u00f3wna", "tk": "Ba\u015f Sahypa", "hz": "Main Page", "hy": "\u0533\u056c\u056d\u0561\u057e\u0578\u0580 \u0567\u057b", "an": "Portalada", "nrm": "Page d\u00e9 garde", "hr": "Glavna stranica", "iu": "\u140a\u14a5\u1585", "pfl": "Project:Haubdsaid", "ht": "Paj Prensipal", "hu": "Kezd\u0151lap", "gan": "\u5c01\u9762", "bat-smg": "P\u0117rms poslapis", "hi": "\u092e\u0941\u0916\u092a\u0943\u0937\u094d\u0920", "tw": "Main Page", "gag": "Ba\u015f yaprak", "kg": "Muk\u00e2nda ya ngudi", "pnb": "\u067e\u06c1\u0644\u0627 \u0635\u0641\u06c1", "bug": "Mappadec\u00e9\u014b", "kj": "Main Page", "he": "\u05e2\u05de\u05d5\u05d3 \u05e8\u05d0\u05e9\u05d9", "mg": "Wikipedia:Fandraisana", "fur": "Pagjine princip\u00e2l", "uz": "Bosh Sahifa", "ml": "\u0d2a\u0d4d\u0d30\u0d27\u0d3e\u0d28 \u0d24\u0d3e\u0d7e", "mo": "\u041f\u0430\u04c2\u0438\u043d\u0430 \u043f\u0440\u0438\u043d\u0447\u0438\u043f\u0430\u043b\u044d", "mn": "\u041d\u04af\u04af\u0440 \u0445\u0443\u0443\u0434\u0430\u0441", "mi": "Hau K\u0101inga", "ik": "Makpi\u0121aaq Kanna", "mk": "\u0413\u043b\u0430\u0432\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "ur": "\u0635\u0641\u062d\u06c2 \u0627\u0648\u0644", "zea": "V\u00f2blad", "mt": "Il-Pa\u0121na prin\u010bipali", "stq": "Haudsiede", "ms": "Laman Utama", "mr": "\u092e\u0941\u0916\u092a\u0943\u0937\u094d\u0920", "ug": "\u0626\u06c7\u064a\u063a\u06c7\u0631\u0686\u06d5 \u06cb\u0649\u0643\u0649\u067e\u0649\u062f\u0649\u064a\u06d5", "mwl": "P\u00e1igina Percipal", "my": "\u1017\u101f\u102d\u102f\u1005\u102c\u1019\u103b\u1000\u103a\u1014\u103e\u102c", "ki": "Main Page", "pih": "Mien Paij", "aa": "Main Page", "sah": "\u0421\u04af\u0440\u04af\u043d \u0441\u0438\u0440\u044d\u0439", "ss": "Likhasi Lelikhulu", "af": "Tuisblad", "tn": "Main Page", "vi": "Trang Ch\u00ednh", "is": "Fors\u00ed\u00f0a", "am": "\u12cb\u1293\u12cd \u1308\u133d", "it": "Pagina principale", "vo": "Cifapad", "ii": "\ua028\ua3fe\ua320", "ay": "Nayriri u\u00f1stawi", "as": "\u09ac\u09c7\u099f\u09c1\u09aa\u09be\u09a4", "ar": "\u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629", "lbe": "\u0410\u0433\u044c\u0430\u043c\u043c\u0443\u0440 \u043b\u0430\u0436\u0438\u043d", "km": "\u1791\u17c6\u1796\u17d0\u179a\u178a\u17be\u1798", "io": "Frontispico", "av": "\u0411\u0435\u0442I\u0435\u0440\u0430\u0431 \u0433\u044c\u0443\u043c\u0435\u0440", "ia": "Pagina principal", "haw": "Ka papa kinohi", "az": "Ana S\u0259hif\u0259", "ie": "Principal p\u00e1gine", "id": "Halaman Utama", "nds-nl": "Veurblad", "pap": "P\u00e1gina Prinsipal", "ks": "\u0627\u06c1\u0645 \u0635\u064e\u0641\u06c1\u0655", "nl": "Hoofdpagina", "nn": "Hovudside", "no": "Portal:Forside", "na": "Bwiema peij", "nah": "Cal\u012bxatl", "ne": "\u092e\u0941\u0916\u094d\u092f \u092a\u0943\u0937\u094d\u0920", "lij": "Pagina prin\u00e7ip\u00e2", "csb": "Prz\u00e9dn\u00f4 starna", "tyv": "\u041a\u043e\u043b \u0430\u0440\u044b\u043d", "ny": "Tsamba Lalikulu", "nap": "Paggena prencepale", "myv": "\u041f\u0440\u044f\u0432\u0442\u043b\u043e\u043f\u0430", "ig": "Ih\u00fc Mbu", "pag": "Arapan ya Bolong", "zu": "Ikhasi Elikhulu", "kw": "Folen dre", "pam": "Pun Bulung", "nv": "\u00cdiyis\u00ed\u00ed Naaltsoos", "sn": "Peji Rekutanga", "kab": "Asebter amenzawi", "fr": "Wikip\u00e9dia:Accueil principal", "mrj": "\u0422\u04f9\u043d\u0433 \u04f9\u043b\u04f9\u0448\u0442\u04d3\u0448", "zh-yue": "\u982d\u7248", "fy": "Haadside", "pnt": "\u0391\u03c1\u03c7\u03b9\u03ba\u03cc\u03bd \u03c3\u03b5\u03bb\u03af\u03b4\u03b1", "fa": "\u0635\u0641\u062d\u0647\u0654 \u0627\u0635\u0644\u06cc", "rw": "Intangiriro", "ff": "Hello ja\u0253\u0253orgo", "fi": "Wikipedia:Etusivu", "mzn": "\u06af\u062a \u0635\u0641\u062d\u0647", "ab": "\u0418\u0445\u0430\u0434\u043e\u0443 \u0430\u0434\u0430\u049f\u044c\u0430", "sa": "\u092e\u0941\u0916\u094d\u092f\u092a\u0943\u0937\u094d\u0920\u092e\u094d", "zh-classical": "\u7dad\u57fa\u5927\u5178:\u5377\u9996", "fo": "Fors\u00ed\u00f0a", "bcl": "Panginot na Pahina", "ka": "\u10db\u10d7\u10d0\u10d5\u10d0\u10e0\u10d8 \u10d2\u10d5\u10d4\u10e0\u10d3\u10d8", "nov": "Chefi pagine", "ckb": "\u062f\u06d5\u0633\u062a\u067e\u06ce\u06a9", "kk": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442", "sr": "\u0413\u043b\u0430\u0432\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0430", "sq": "Faqja kryesore", "min": "Laman Utamo", "ko": "Project:\ub300\ubb38", "sv": "Portal:Huvudsida", "su": "Tepas", "kl": "Saqqaa", "sk": "Hlavn\u00e1 str\u00e1nka", "kr": "Main Page", "si": "\u0db8\u0dd4\u0dbd\u0dca \u0db4\u0dd2\u0da7\u0dd4\u0dc0", "sh": "Glavna stranica / \u0413\u043b\u0430\u0432\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "so": "Bogga Hore", "kv": "\u041c\u0435\u0434\u0448\u04e7\u0440 \u043b\u0438\u0441\u0442 \u0431\u043e\u043a", "ku": "Destp\u00eak", "sl": "Glavna stran", "sc": "P\u00e0gina printzipale", "ky": "\u0411\u0430\u0448\u0431\u0430\u0440\u0430\u043a", "sd": "\u0645\u064f\u06a9 \u0635\u0641\u062d\u0648", "sg": "G\u00e4 nz\u00f6n\u00ee", "sw": "Mwanzo", "se": "Port\u00e1la:Ovdasiidu", "pdc": "Haaptblatt"}
\ No newline at end of file
diff --git a/Wikipedia/assets/preview.css b/Wikipedia/assets/preview.css
new file mode 100644
index 00000000000..927f9c4a13b
--- /dev/null
+++ b/Wikipedia/assets/preview.css
@@ -0,0 +1,2 @@
+html,body,div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,textarea,button,select,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;background:none}table,caption,tbody,tfoot,thead,tr,th,td{font-size:100%}.beta *,.stable *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div#centralNotice{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}button{border:none;background-color:transparent}body{line-height:1;-webkit-tap-highlight-color:transparent}input{line-height:normal}ol,ul{list-style:none}table{border-collapse:collapse}html{-webkit-text-size-adjust:none;font-size:100%}body{font-family:"Helvetica Neue","Helvetica","Nimbus Sans L","Arial","Liberation Sans",sans-serif;line-height:1.4;color:#252525;background:#fff}.content{line-height:1.65;margin:.8em 16px 0;word-wrap:break-word}@media all and (max-width:280px){body{font-size:.8em}.content{margin:0 12px}}.nomobile{display:none !important}.content .thumb{margin:.6em 0}.content .thumb .thumbinner{margin:0 auto;max-width:100% !important}.content .thumb .thumbinner > div{float:none !important;width:auto !important;clear:both !important}.content .thumb .noresize{width:100%;overflow-x:auto}.content .thumb .noresize img{max-width:none !important}.content .thumbcaption{margin:.5em 0 0;font-size:.8em;line-height:1.5;padding:0 !important;color:#555;width:auto !important}.content .thumbborder{border:1px solid #CCC}.content img{vertical-align:middle}.content .floatright{clear:right;float:right;margin:0 0 .6em .6em}.content .floatleft{clear:left;float:left;margin:0 .6em .6em 0}.content a > img{max-width:100% !important;height:auto !important}.content div.magnify{display:none}ul.gallery{list-style:none;max-width:100%}ul.gallery .gallerybox{display:inline-block;vertical-align:top;max-width:100%}ul.gallery .gallerybox .thumb img{display:block}ul.gallery .gallerybox > div{max-width:100%}ul.gallery .gallerybox > div > .thumb{max-width:100%}ul.gallery .gallerybox .gallerytext{overflow:hidden;padding:2px 4px;word-wrap:break-word;font-size:.8em}#section_0{line-height:1.3}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{line-height:1.3;font-family:"Linux Libertine",Georgia,Times,serif;padding:.5em 0}.pre-content h1,.content h1{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.7em;-ms-word-break:normal;word-break:normal;word-wrap:break-word}h2{font-size:1.5em}h3{font-size:1.2em;font-weight:bold}h4{font-weight:bold}blockquote{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.1em;quotes:"\201C" "\201D";padding:1em 25px 1em 30px;position:relative;overflow:hidden}blockquote:before{content:open-quote;font-size:3em;position:absolute;left:0;top:0}blockquote:after{content:close-quote;font-size:3em;line-height:1;position:absolute;right:0;bottom:0}.content ol ol,.content ol ul,.content ul ol,.content ul ul{margin-left:1em}.content ul{list-style:square inside}.content ul>li>ul{list-style-type:disc}.content ul>li>ul>li>ul{list-style-type:circle}.content ol{list-style:decimal inside}dl{margin-left:1em}dl dt{font-weight:bold}.hlist > ul li,ul.hlist li{display:inline-block;margin-right:8px}a{text-decoration:none;color:#002bb8}a:visited{color:#5a3696}a:active{color:#faa700}a:hover{text-decoration:underline}a.new,a.new:visited,a.new:hover{color:#CC0000}a.external{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVElEQVR42n3PgQkAIAhEUXdqJ3dqJ3e6IoTPUSQcgj4EQ5IlUiLE0Jil3PECXhcHGBhZ8kg4hwxAu3MZeCGeyFnAXp4hqNQPnt7QL0nADpD6wHccLvnAKksq8iiaAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z)!ie;background-image:-webkit-linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:-webkit-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:-o-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z);background-repeat:no-repeat;background-position:center right;padding-right:13px}.content .return-link,.content #mw-mf-last-modified{display:block;font-size:.9em;margin-top:1.5em}.plainlinks a{background:none !important;padding:0 !important}.content p{margin:.5em 0 1em 0}strong,b{font-weight:bold}em,i{font-style:italic}code,pre{font-family:monospace;border:solid 1px #CCC;white-space:pre-wrap}code{padding:0.2em 0.5em}pre{padding:1em}sup{vertical-align:super}sub{vertical-align:sub}sub,sup{font-size:0.75em;line-height:1}.content table{margin:1em 0;overflow:auto;overflow-y:hidden;overflow-x:auto;display:block;width:100% !important}.content table caption{display:block;text-align:left}.content table.wikitable{background-color:transparent !important;border:none !important}.content table.wikitable tr{border-bottom:1px solid #EEE !important}.content table.wikitable tr:last-child{border-bottom:none !important}.content table.wikitable th,.content table.wikitable td{border-right:1px solid #EEE !important;padding:.2em}.content table.wikitable td:last-child,.content table.wikitable th:last-child{border-right:none !important}.client-js .alpha .infobox{display:none}.content .mbox-small,.content .tmbox,.content .ambox,.content #coordinates,.content .navbox,.content .vertical-navbox,.content .topicon,.content .metadata{display:none !important}.content table{float:none !important;margin-left:0 !important;margin-right:0 !important}.content table.infobox{font-size:90%;position:relative;border:none;margin-bottom:2em;text-align:left;background-color:#F9F9F9}.content table.infobox th,.content table.infobox td{vertical-align:top;border:none;border-bottom:1px solid #DDD;padding:.2em}.content table.infobox tr:last-child th,.content table.infobox tr:last-child td{border:none}#filetoc,.editsection,.mw-editsection{display:none}.skin-minerva .portal-column-left-wide,.skin-minerva .portal-column-left,.skin-minerva .portal-column-right,.skin-minerva .portal-column-right-narrow{float:none;width:100%}.collapsible td{width:auto !important}.references-column-count{-moz-column-width:35em;-webkit-column-width:35em;column-width:35em}.references li:target{background-color:#ddeeff}.hatnote,.dablink,.rellink{padding:0 0 .6em 0;color:#777;font-size:.8em;font-style:italic}.quotebox{margin:0 0 0.8em !important;width:auto !important}@media all and (max-width:768px){.gallery .gallerybox{width:100% !important}.gallery .gallerybox div{width:100% !important}}.edit-page{display:none}.hide-when-compact{display:none}.mobile-float-reset{float:none !important;width:100% !important}#content .vertical-navbox,#content .navbox{display:none}@media all and (min-width:768px){#content .vertical-navbox,#content .navbox{display:inherit}}@media screen,handheld{.citation *.printonly{display:none}}.citation{word-wrap:break-word}.navbar{display:inline;font-size:88%;font-weight:normal}.navbar ul{display:inline;white-space:nowrap}.navbar li{word-spacing:-0.125em}.navbar.mini li span{font-variant:small-caps}.infobox .navbar{font-size:100%}.navbox .navbar{display:block;font-size:100%}.navbox-title .navbar{float:left;text-align:left;margin-right:0.5em;width:6em}.hlist dl,.hlist ol,.hlist ul{margin:0;padding:0}.hlist dd,.hlist dt,.hlist li{margin:0;display:inline}.hlist dl dl,.hlist dl ol,.hlist dl ul,.hlist ol dl,.hlist ol ol,.hlist ol ul,.hlist ul dl,.hlist ul ol,.hlist ul ul{display:inline}#content .hlist dt:after{content:":"}#content .hlist dd:after,#content .hlist li:after{content:" · ";font-weight:bold}#content .hlist dd:last-child:after,#content .hlist dt:last-child:after,#content .hlist li:last-child:after{content:none}#content .hlist dd dd:first-child:before,#content .hlist dd dt:first-child:before,#content .hlist dd li:first-child:before,#content .hlist dt dd:first-child:before,#content .hlist dt dt:first-child:before,#content .hlist dt li:first-child:before,#content .hlist li dd:first-child:before,#content .hlist li dt:first-child:before,#content .hlist li li:first-child:before{content:" (";font-weight:normal}#content .hlist dd dd:last-child:after,#content .hlist dd dt:last-child:after,#content .hlist dd li:last-child:after,#content .hlist dt dd:last-child:after,#content .hlist dt dt:last-child:after,#content .hlist dt li:last-child:after,#content .hlist li dd:last-child:after,#content .hlist li dt:last-child:after,#content .hlist li li:last-child:after{content:") ";font-weight:normal}#content .hlist ol{counter-reset:list-item}#content .hlist ol > li{counter-increment:list-item}#content .hlist ol > li:before{content:" " counter(list-item) " "}#content .hlist dd ol > li:first-child:before,#content .hlist dt ol > li:first-child:before,#content .hlist li ol > li:first-child:before{content:" (" counter(list-item) " "}.plainlist ul{list-style:none}.compact-ambox table .mbox-image,.compact-ambox table .mbox-imageright,.compact-ambox table .mbox-empty-cell{display:none}.compact-ambox table.ambox{border:none;border-collapse:collapse;background:transparent;margin:0 0 0 1.6em !important;padding:0 !important;width:auto;display:block}.compact-ambox table.mbox-small-left{font-size:100%;width:auto;margin:0}.compact-ambox table .mbox-text{padding:0 !important;margin:0 !important}.compact-ambox table .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:square;list-style-image:url(data:image/gif;base64,R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4SpADs=)}.compact-ambox .hide-when-compact{display:none}.rellink,.dablink,.hatnote{font-style:italic}.rellink i,.dablink i,.hatnote i{font-style:normal}div.rellink,div.dablink,div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.geo-default,.geo-dms,.geo-dec{display:inline}.geo-nondefault,.geo-multi-punct{display:none}.longitude,.latitude{white-space:nowrap}.nowrap,.nowraplinks a,.nowraplinks .selflink,sup.reference a{white-space:nowrap}.wrap,.wraplinks a{white-space:normal}.sysop-show,.accountcreator-show,.autoconfirmed-show{display:none}#li-coordinates{background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/80px-Edge-firefox.png);float:right;display:none;-webkit-background-size:auto 30px;background-size:auto 30px}.client-js .content_block.coordinates{display:none;text-align:right;margin-bottom:0.5em;font-size:smaller}.client-js .content_block.coordinates .latitude{display:none;padding-left:20px;background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/50px-Edge-firefox.png);background-repeat:no-repeat;-webkit-background-size:auto 15px;background-size:auto 15px}.alpha #li-coordinates{display:list-item}.client-js .beta .content_block.coordinates{display:block}.client-js .beta .content_block.coordinates .latitude{display:inline}.topicon{display:none}td .sortkey,th .sortkey{display:none;speak:none}.transborder{border:solid transparent}.references-column-count{-moz-column-count:1 !important;-webkit-column-count:1 !important;column-count:1 !important}.mwe-math-fallback-image-inline{display:inline-block;max-width:100%;vertical-align:middle}.mwe-math-fallback-image-display{display:block;max-width:100%;margin-left:auto !important;margin-right:auto !important}.mwe-math-fallback-source-inline{display:inline;max-width:100%;vertical-align:middle}.mwe-math-fallback-source-display{display:block;max-width:100%;margin-left:auto;margin-right:auto}
+/* cache key: enwiki:resourceloader:filter:minify-css:7:a4965ff7ab46fafee29461e23b5c1d38 */
\ No newline at end of file
diff --git a/Wikipedia/assets/preview.html b/Wikipedia/assets/preview.html
new file mode 100644
index 00000000000..1fac96b6e31
--- /dev/null
+++ b/Wikipedia/assets/preview.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #INJECTION_POINT#
+
+
+
\ No newline at end of file
diff --git a/Wikipedia/assets/styleoverrides.css b/Wikipedia/assets/styleoverrides.css
new file mode 100644
index 00000000000..23275947020
--- /dev/null
+++ b/Wikipedia/assets/styleoverrides.css
@@ -0,0 +1 @@
+a:hover{text-decoration:none !important}.hatnote{display:none}.content{margin-top:0px}.content_block{clear:both;overflow-X:auto}#edit_section_button_0{margin-top:6px}#section_heading_and_content_block_0{margin-top:13px}
\ No newline at end of file
diff --git a/Wikipedia/assets/styles.css b/Wikipedia/assets/styles.css
new file mode 100644
index 00000000000..02f28d67c62
--- /dev/null
+++ b/Wikipedia/assets/styles.css
@@ -0,0 +1,2 @@
+html,body,div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,textarea,button,select,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;background:none}table,caption,tbody,tfoot,thead,tr,th,td{font-size:100%}.beta *,.stable *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}div#centralNotice{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}button{border:none;background-color:transparent}body{line-height:1;-webkit-tap-highlight-color:transparent}input{line-height:normal}ol,ul{list-style:none}table{border-collapse:collapse}html{-webkit-text-size-adjust:none;font-size:100%}body{font-family:"Helvetica Neue","Helvetica","Nimbus Sans L","Arial","Liberation Sans",sans-serif;line-height:1.4;color:#252525;background:#fff}.content{line-height:1.65;margin:.8em 16px 0;word-wrap:break-word}@media all and (max-width:280px){body{font-size:.8em}.content{margin:0 12px}}.nomobile{display:none !important}.content .thumb{margin:.6em 0}.content .thumb .thumbinner{margin:0 auto;max-width:100% !important}.content .thumb .thumbinner > div{float:none !important;width:auto !important;clear:both !important}.content .thumb .noresize{width:100%;overflow-x:auto}.content .thumb .noresize img{max-width:none !important}.content .thumbcaption{margin:.5em 0 0;font-size:.8em;line-height:1.5;padding:0 !important;color:#555;width:auto !important}.content .thumbborder{border:1px solid #CCC}.content img{vertical-align:middle}.content .floatright{clear:right;float:right;margin:0 0 .6em .6em}.content .floatleft{clear:left;float:left;margin:0 .6em .6em 0}.content a > img{max-width:100% !important;height:auto !important}.content div.magnify{display:none}ul.gallery{list-style:none;max-width:100%}ul.gallery .gallerybox{display:inline-block;vertical-align:top;max-width:100%}ul.gallery .gallerybox .thumb img{display:block}ul.gallery .gallerybox > div{max-width:100%}ul.gallery .gallerybox > div > .thumb{max-width:100%}ul.gallery .gallerybox .gallerytext{overflow:hidden;padding:2px 4px;word-wrap:break-word;font-size:.8em}#section_0{line-height:1.3}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{line-height:1.3;font-family:"Linux Libertine",Georgia,Times,serif;padding:.5em 0}.pre-content h1,.content h1{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.7em;-ms-word-break:normal;word-break:normal;word-wrap:break-word}h2{font-size:1.5em}h3{font-size:1.2em;font-weight:bold}h4{font-weight:bold}blockquote{font-family:"Linux Libertine",Georgia,Times,serif;font-size:1.1em;quotes:"\201C" "\201D";padding:1em 25px 1em 30px;position:relative;overflow:hidden}blockquote:before{content:open-quote;font-size:3em;position:absolute;left:0;top:0}blockquote:after{content:close-quote;font-size:3em;line-height:1;position:absolute;right:0;bottom:0}.content ol ol,.content ol ul,.content ul ol,.content ul ul{margin-left:1em}.content ul{list-style:square inside}.content ul>li>ul{list-style-type:disc}.content ul>li>ul>li>ul{list-style-type:circle}.content ol{list-style:decimal inside}dl{margin-left:1em}dl dt{font-weight:bold}.hlist > ul li,ul.hlist li{display:inline-block;margin-right:8px}a{text-decoration:none;color:#002bb8}a:visited{color:#5a3696}a:active{color:#faa700}a:hover{text-decoration:underline}a.new,a.new:visited,a.new:hover{color:#CC0000}a.external{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVElEQVR42n3PgQkAIAhEUXdqJ3dqJ3e6IoTPUSQcgj4EQ5IlUiLE0Jil3PECXhcHGBhZ8kg4hwxAu3MZeCGeyFnAXp4hqNQPnt7QL0nADpD6wHccLvnAKksq8iiaAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z)!ie;background-image:-webkit-linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:-webkit-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cdefs%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M-.958-4.259c-1.134%200-2.056.922-2.056%202.056%200%20.394.143.736.336%201.049l-.07.056c-.373-.513-.954-.867-1.636-.867-1.134%200-2.056.922-2.056%202.056s.922%202.056%202.056%202.056c.596%200%201.121-.265%201.496-.671-.075.213-.126.433-.126.671%200%201.134.922%202.056%202.056%202.056s2.056-.922%202.056-2.056c0-.476-.189-.896-.462-1.245.813.158%201.627.477%202.224%201.399-.443-.443-.727-1.248-.727-2.336l-.378-.028.35-.014c0-1.087.27-1.893.713-2.336-.575.889-1.354%201.216-2.14%201.385.243-.337.42-.728.42-1.175%200-1.134-.922-2.056-2.056-2.056z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M0-2.828l-2.828%202.828%202.828%202.828%202.828-2.828-2.828-2.828z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3Cmarker%20orient%3D%22auto%22%20overflow%3D%22visible%22%3E%3Cpath%20d%3D%22M10%200l4-4-14%204%2014%204-4-4z%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22%23000%22%20stroke-width%3D%22NaN%22%2F%3E%3C%2Fmarker%3E%3C%2Fdefs%3E%3Cpath%20fill%3D%22%23fff%22%20stroke%3D%22%2306c%22%20d%3D%22M.5%203.518h5.982v5.982h-5.982z%22%2F%3E%3Cpath%20d%3D%22M4.755-.16h5.234v5.39l-1.571%201.544-1.31-1.31-2.725%202.725-2.688-2.688%202.808-2.808-1.31-1.31z%22%20fill%3D%22%2306f%22%2F%3E%3Cpath%20d%3D%22M8.984.845l.022%204.884-1.817-1.817-2.881%202.881-1.227-1.227%202.881-2.881-1.85-1.851z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E);background-image:linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.svg?2015-03-25T18:43:20Z)!ie;background-image:-o-linear-gradient(transparent,transparent),url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/../MobileFrontend/less/content/images/external-link-ltr-icon.png?2015-03-25T18:43:20Z);background-repeat:no-repeat;background-position:center right;padding-right:13px}.content .return-link,.content #mw-mf-last-modified{display:block;font-size:.9em;margin-top:1.5em}.plainlinks a{background:none !important;padding:0 !important}.content p{margin:.5em 0 1em 0}strong,b{font-weight:bold}em,i{font-style:italic}code,pre{font-family:monospace;border:solid 1px #CCC;white-space:pre-wrap}code{padding:0.2em 0.5em}pre{padding:1em}sup{vertical-align:super}sub{vertical-align:sub}sub,sup{font-size:0.75em;line-height:1}.content table{margin:1em 0;overflow:auto;overflow-y:hidden;overflow-x:auto;display:block;width:100% !important}.content table caption{display:block;text-align:left}.content table.wikitable{background-color:transparent !important;border:none !important}.content table.wikitable tr{border-bottom:1px solid #EEE !important}.content table.wikitable tr:last-child{border-bottom:none !important}.content table.wikitable th,.content table.wikitable td{border-right:1px solid #EEE !important;padding:.2em}.content table.wikitable td:last-child,.content table.wikitable th:last-child{border-right:none !important}.client-js .alpha .infobox{display:none}.content .mbox-small,.content .tmbox,.content .ambox,.content #coordinates,.content .navbox,.content .vertical-navbox,.content .topicon,.content .metadata{display:none !important}.content table{float:none !important;margin-left:0 !important;margin-right:0 !important}.content table.infobox{font-size:90%;position:relative;border:none;margin-bottom:2em;text-align:left;background-color:#F9F9F9}.content table.infobox th,.content table.infobox td{vertical-align:top;border:none;border-bottom:1px solid #DDD;padding:.2em}.content table.infobox tr:last-child th,.content table.infobox tr:last-child td{border:none}#filetoc,.editsection,.mw-editsection{display:none}.skin-minerva .portal-column-left-wide,.skin-minerva .portal-column-left,.skin-minerva .portal-column-right,.skin-minerva .portal-column-right-narrow{float:none;width:100%}.collapsible td{width:auto !important}.references-column-count{-moz-column-width:35em;-webkit-column-width:35em;column-width:35em}.references li:target{background-color:#ddeeff}.hatnote,.dablink,.rellink{padding:0 0 .6em 0;color:#777;font-size:.8em;font-style:italic}.quotebox{margin:0 0 0.8em !important;width:auto !important}@media all and (max-width:768px){.gallery .gallerybox{width:100% !important}.gallery .gallerybox div{width:100% !important}}a.edit_section_button{height:32px;width:32px;margin-left:8px;margin-bottom:8px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAANlBMVEUAAAD///9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW9sbW+FiFraAAAAEXRSTlMAABAgMEBQYHCAkKCwwNDg8InUWv0AAAGfSURBVHhe7djBjsIgFIXhOwjFeltK3/9lJ4J6SG5dHGgyyaRn1dUXlb8slJ+T9//AC7zACxRiLu37EqXsDPCW9ue2cBLo8/7a/RQwFK9OTwDj3k6Hwbk6Mb/EeRDUojyaHzKMgG4pRmy/ehoAXcklT3h+buoGffU8vDJlQJtfuuG5busEY/Xc28N4EPkp7EHwUaODjSkLIr8Iu/VIELkE2Bj9psDzSBuLQoLIxX1sLEfhQHirQ9rwvLAgcoHdejx4b3IJ8PDOcCBysfklJzToipc9Piu2OKFA5LL5o/xUhAZ9Qi7W40Dkspj8as48OGXkYj0ORH73w/yC8OCMXA5y5sE2lwgPh86Bbi3h+i8506Brc3kYjwb9VkL7lh8N+jaXxXg0GBGayW8WCoSXq+dNzjyIXGx+UXhQm1yCyZkHA8JAfvBosF6h21RvU3vb86B+4lCTcxf4rkTV3PZ9IAiTcxcYvnm94P3Qi9IN6rHXDybL5SAD4IHnZQAMxtu8jIA4E+Q8BKr1xkCcybrOcwhOBsE3JOT+4G+WC7zAC7zAXxMIT+qGYJfyAAAAAElFTkSuQmCC);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/styles/../images/edit.png?2015-03-25T18:43:20Z)!ie;background-size:32px 32px;float:right;display:inline-float}.no-editing a.edit_section_button{display:none}.page-protected a.edit_section_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAXVBMVEUAAAD////Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW/Pz8/Pz8/Pz89sbW/Pz89sbW/Pz8/Pz89sbW/Pz89sbW/Pz89sbW/Pz89sbW+fZUWwAAAAHXRSTlMAABAQICAwMEBAUFBgYHBwgJCgoLDAwNDQ4ODw8PGFG8cAAAHOSURBVHhe7dTLcoMwDAVQxVCXJAoByiPUEf//mcW0Gh5KFrbojrtidUYM9wKnnfOP4AEe4AGCT3JvmuHR3BOAXcDrc/jN87wLeBvmnCUIATnZEUyeC/A7UYHWjeDdQ48PSL68eNOA6GgEH9Nh3m9GsFGASOTB6S7wufrHeLCkGfycwLMKrGgBwm8UoKknD/cCTffn7QSmk+cup51A6ybP+hsGmUCQvd7CTiCST2dAB0pPAcr6VQY0oPRgCqpB005eydvTglxnPlYLWvZ4ezqQ65zxsVrwwvPg7SlBJJ4HH6sDc64ze0qwWnroSAHKeSDRDL6JBGX9eB4FKUH2Sj5WC9p+PQ8lyA1BPnYVZ4NBnOssvS4NvhBp4dl+45nAV+Yv2q3nwakMBICyztnWAwgEzcpDWgchABR1Fp5DCAXTlVdtPAuBINevEB5/pQBQ1rneeAZCQaTVPERdQsGMVn97UZdgMJ89UeccIsDaA7V55SHEgD0vDtCJukSAKQM5kvBiwAtxRF3iwPKtFwm2TIi6RIJvvGgwe+UhxIO55ByCAqylZ0ED9luvt6ABU1kXUIHLWru2LVoDOrAk6tu6KLKMJSVohaMAtTnA4BzgAf4Asb6U9nmPcP4AAAAASUVORK5CYII=);background-image:url(//bits.wikimedia.org/static-1.25wmf23/extensions/MobileApp/styles/../images/edit-locked.png?2015-03-25T18:43:20Z)!ie}#mainpage a.edit_section_button{display:none}.content-rtl a.edit_section_button{float:left;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.hide-when-compact{display:none}.mobile-float-reset{float:none !important;width:100% !important}#content .vertical-navbox,#content .navbox{display:none}@media all and (min-width:768px){#content .vertical-navbox,#content .navbox{display:inherit}}@media screen,handheld{.citation *.printonly{display:none}}.citation{word-wrap:break-word}.navbar{display:inline;font-size:88%;font-weight:normal}.navbar ul{display:inline;white-space:nowrap}.navbar li{word-spacing:-0.125em}.navbar.mini li span{font-variant:small-caps}.infobox .navbar{font-size:100%}.navbox .navbar{display:block;font-size:100%}.navbox-title .navbar{float:left;text-align:left;margin-right:0.5em;width:6em}.hlist dl,.hlist ol,.hlist ul{margin:0;padding:0}.hlist dd,.hlist dt,.hlist li{margin:0;display:inline}.hlist dl dl,.hlist dl ol,.hlist dl ul,.hlist ol dl,.hlist ol ol,.hlist ol ul,.hlist ul dl,.hlist ul ol,.hlist ul ul{display:inline}#content .hlist dt:after{content:":"}#content .hlist dd:after,#content .hlist li:after{content:" · ";font-weight:bold}#content .hlist dd:last-child:after,#content .hlist dt:last-child:after,#content .hlist li:last-child:after{content:none}#content .hlist dd dd:first-child:before,#content .hlist dd dt:first-child:before,#content .hlist dd li:first-child:before,#content .hlist dt dd:first-child:before,#content .hlist dt dt:first-child:before,#content .hlist dt li:first-child:before,#content .hlist li dd:first-child:before,#content .hlist li dt:first-child:before,#content .hlist li li:first-child:before{content:" (";font-weight:normal}#content .hlist dd dd:last-child:after,#content .hlist dd dt:last-child:after,#content .hlist dd li:last-child:after,#content .hlist dt dd:last-child:after,#content .hlist dt dt:last-child:after,#content .hlist dt li:last-child:after,#content .hlist li dd:last-child:after,#content .hlist li dt:last-child:after,#content .hlist li li:last-child:after{content:") ";font-weight:normal}#content .hlist ol{counter-reset:list-item}#content .hlist ol > li{counter-increment:list-item}#content .hlist ol > li:before{content:" " counter(list-item) " "}#content .hlist dd ol > li:first-child:before,#content .hlist dt ol > li:first-child:before,#content .hlist li ol > li:first-child:before{content:" (" counter(list-item) " "}.plainlist ul{list-style:none}.compact-ambox table .mbox-image,.compact-ambox table .mbox-imageright,.compact-ambox table .mbox-empty-cell{display:none}.compact-ambox table.ambox{border:none;border-collapse:collapse;background:transparent;margin:0 0 0 1.6em !important;padding:0 !important;width:auto;display:block}.compact-ambox table.mbox-small-left{font-size:100%;width:auto;margin:0}.compact-ambox table .mbox-text{padding:0 !important;margin:0 !important}.compact-ambox table .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:square;list-style-image:url(data:image/gif;base64,R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4SpADs=)}.compact-ambox .hide-when-compact{display:none}.rellink,.dablink,.hatnote{font-style:italic}.rellink i,.dablink i,.hatnote i{font-style:normal}div.rellink,div.dablink,div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.geo-default,.geo-dms,.geo-dec{display:inline}.geo-nondefault,.geo-multi-punct{display:none}.longitude,.latitude{white-space:nowrap}.nowrap,.nowraplinks a,.nowraplinks .selflink,sup.reference a{white-space:nowrap}.wrap,.wraplinks a{white-space:normal}.sysop-show,.accountcreator-show,.autoconfirmed-show{display:none}#li-coordinates{background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/80px-Edge-firefox.png);float:right;display:none;-webkit-background-size:auto 30px;background-size:auto 30px}.client-js .content_block.coordinates{display:none;text-align:right;margin-bottom:0.5em;font-size:smaller}.client-js .content_block.coordinates .latitude{display:none;padding-left:20px;background-image:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Edge-firefox.png/50px-Edge-firefox.png);background-repeat:no-repeat;-webkit-background-size:auto 15px;background-size:auto 15px}.alpha #li-coordinates{display:list-item}.client-js .beta .content_block.coordinates{display:block}.client-js .beta .content_block.coordinates .latitude{display:inline}.topicon{display:none}td .sortkey,th .sortkey{display:none;speak:none}.transborder{border:solid transparent}.references-column-count{-moz-column-count:1 !important;-webkit-column-count:1 !important;column-count:1 !important}.mwe-math-fallback-image-inline{display:inline-block;max-width:100%;vertical-align:middle}.mwe-math-fallback-image-display{display:block;max-width:100%;margin-left:auto !important;margin-right:auto !important}.mwe-math-fallback-source-inline{display:inline;max-width:100%;vertical-align:middle}.mwe-math-fallback-source-display{display:block;max-width:100%;margin-left:auto;margin-right:auto}
+/* cache key: enwiki:resourceloader:filter:minify-css:7:67a0d8153da9a7bf015e5690cc4bcb8f */
\ No newline at end of file
diff --git a/fastlane/SnapshotHelper.js b/fastlane/SnapshotHelper.js
index fbfc1283dca..a54a5041840 100644
--- a/fastlane/SnapshotHelper.js
+++ b/fastlane/SnapshotHelper.js
@@ -1,4 +1,3 @@
-/* jshint ignore:start */
function wait_for_loading_indicator_to_be_finished()
{
try {
diff --git a/fastlane/snapshot-iPad.js b/fastlane/snapshot-iPad.js
index 1b83f3610c7..8a63a565e56 100644
--- a/fastlane/snapshot-iPad.js
+++ b/fastlane/snapshot-iPad.js
@@ -1,4 +1,3 @@
-/* jshint ignore:start */
#import "SnapshotHelper.js"
var target = UIATarget.localTarget();
diff --git a/fastlane/snapshot.js b/fastlane/snapshot.js
index 1b83f3610c7..8a63a565e56 100644
--- a/fastlane/snapshot.js
+++ b/fastlane/snapshot.js
@@ -1,4 +1,3 @@
-/* jshint ignore:start */
#import "SnapshotHelper.js"
var target = UIATarget.localTarget();
diff --git a/scripts/make-css-assets.bash b/scripts/make-css-assets.bash
deleted file mode 100755
index d39c16ab3bf..00000000000
--- a/scripts/make-css-assets.bash
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-#echo $PWD
-
-PREFIX="http://bits.wikimedia.org/en.wikipedia.org/load.php?debug=false&lang=en&only=styles&skin=vector&modules="
-
-cd "wikipedia/assets/" && {
- curl -L -f -o 'styles.css' "${PREFIX}mobile.app.pagestyles.ios"
- curl -L -f -o 'abusefilter.css' "${PREFIX}mobile.app.pagestyles.ios"
- curl -L -f -o 'preview.css' "${PREFIX}mobile.app.preview"
-}
-
diff --git a/scripts/run-cocoapods.sh b/scripts/run-cocoapods.sh
deleted file mode 100755
index 0bf12bfe3e0..00000000000
--- a/scripts/run-cocoapods.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-rm -rf "Cocoapods/Pods"
-cd "Cocoapods"
-pod install --no-integrate
diff --git a/scripts/run-grunt.sh b/scripts/run-grunt.sh
deleted file mode 100755
index be5a9ce8a40..00000000000
--- a/scripts/run-grunt.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-PATH=${PATH}:/usr/local/bin
-
-cd "www/" && {
- npm install
- grunt
-}
-