diff --git a/apps/maarch_entreprise/indexing_searching/choose_file.php b/apps/maarch_entreprise/indexing_searching/choose_file.php
index c65f38c4f23687ecf35abd1a0d4bb75eec0c3b02..55fe88aaffacb544e025ecb65161e5357688a75e 100644
--- a/apps/maarch_entreprise/indexing_searching/choose_file.php
+++ b/apps/maarch_entreprise/indexing_searching/choose_file.php
@@ -108,7 +108,7 @@ $_SESSION['with_file'] = false;
             $upFileOK = true;
         }
     } elseif ($_REQUEST['with_file'] == 'false') {
-        $_SESSION['upfile'] = array();
+        $_SESSION['upfile'] = [];
         $upFileOK = true;
     }
     //if ($upFileOK) {
@@ -150,22 +150,22 @@ $_SESSION['with_file'] = false;
             <?php
             if (!empty($_SESSION['upfile']['local_path']) && empty($_SESSION['error'])) { ?>
                 <i class="fa fa-check-square fa-2x" title="<?php echo _DOWNLOADED_FILE; ?>"></i>
-                <input type="button" id="fileButton" onclick="$$('#file')[0].click();" class="button"
+                <input type="button" id="fileButton" onclick="$j('#file').click();" class="button"
                        value="<?php if($_REQUEST['with_file'] == 'true'){ echo _WITHOUT_FILE; } else {echo _DOWNLOADED_FILE;}?>"
                        style="width: 90%;margin: 0px;margin-top: -2px;font-size: 15px;text-align: center;">
             <?php } else { ?>
                 <i class="fa fa-remove fa-2x" title="<?php echo _NO_FILE_SELECTED; ?>"></i>
-                <input type="button" id="fileButton" onclick="$$('#file')[0].click()" class="button" value="<?php echo _CHOOSE_FILE; ?>" style="width: 90%;margin: 0px;margin-top: -2px;font-size: 15px;text-align: center;">
+                <input type="button" id="fileButton" onclick="$j('#file').click()" class="button" value="<?php echo _CHOOSE_FILE; ?>" style="width: 90%;margin: 0px;margin-top: -2px;font-size: 15px;text-align: center;">
             <?php } ?>
             </label>
             <?php
             if($_REQUEST['with_file'] == 'true'){ ?>
-                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$$('#with_file')[0].click();" title="<?php echo _WITHOUT_FILE; ?> (actif)" style="cursor:pointer;"></i>
+                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$j('#with_file').click();" title="<?php echo _WITHOUT_FILE; ?> (actif)" style="cursor:pointer;"></i>
             <?php }else{ ?>
-                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$$('#with_file2')[0].click();" title="<?php echo _WITHOUT_FILE; ?>" style="cursor:pointer;"></i>
+                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$j('#with_file')[0].value='true';$j('#with_file2').click();" title="<?php echo _WITHOUT_FILE; ?>" style="cursor:pointer;"></i>
             <?php } ?>
 
-            <input type="file" name="file" id="file" onchange="$('with_file').value='false';this.form.method = 'post';this.form.submit();"
+            <input type="file" name="file" id="file" onchange="$j('#with_file')[0].value='false';this.form.method = 'post';this.form.submit();"
                    value="<?php $_REQUEST['with_file'] = 'false';
                             if (isset($_SESSION['file_path'])) {
                                 echo $_SESSION['file_path'];
diff --git a/apps/maarch_entreprise/js/angular/app/signature-book.component.js b/apps/maarch_entreprise/js/angular/app/signature-book.component.js
index a8f2bce7d962412fa7c84714f53bf002c3ad2154..51c82af6b7f54d5f3f6394c44fa5f95f4a743875 100644
--- a/apps/maarch_entreprise/js/angular/app/signature-book.component.js
+++ b/apps/maarch_entreprise/js/angular/app/signature-book.component.js
@@ -131,9 +131,11 @@ var SignatureBookComponent = (function () {
                 setTimeout(function () {
                     $j("#rightPanelContent").niceScroll({ touchbehavior: false, cursorcolor: "#666", cursoropacitymax: 0.6, cursorwidth: 4 });
                     $j(".pjSign").niceScroll({ touchbehavior: false, cursorcolor: "#666", cursoropacitymax: 0.6, cursorwidth: 4 });
-                    $j("#obsVersion").tooltipster({
-                        interactive: true
-                    });
+                    if ($j(".tooltipstered").length == 0) {
+                        $j("#obsVersion").tooltipster({
+                            interactive: true
+                        });
+                    }
                 }, 0);
             });
         });
diff --git a/apps/maarch_entreprise/js/angular/app/signature-book.component.ts b/apps/maarch_entreprise/js/angular/app/signature-book.component.ts
index 4ef86928681f538726fb42012c45db120e262584..0596ac42ab4d01e3cfe484182f703ea41a5270b8 100644
--- a/apps/maarch_entreprise/js/angular/app/signature-book.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/signature-book.component.ts
@@ -141,9 +141,11 @@ export class SignatureBookComponent implements OnInit {
                     setTimeout(() => {
                         $j("#rightPanelContent").niceScroll({touchbehavior:false, cursorcolor:"#666", cursoropacitymax:0.6, cursorwidth:4});
                         $j(".pjSign").niceScroll({touchbehavior:false, cursorcolor:"#666", cursoropacitymax:0.6, cursorwidth:4});
-                        $j("#obsVersion").tooltipster({
-                            interactive: true
-                        });
+                        if ($j(".tooltipstered").length == 0) {
+                            $j("#obsVersion").tooltipster({
+                                interactive: true
+                            });
+                        }
                     }, 0);
                 });
         });
diff --git a/apps/maarch_entreprise/js/angular/main.bundle.min.js b/apps/maarch_entreprise/js/angular/main.bundle.min.js
index 8d090a39f1e96b9a03288e38caee8c1e1dafd6c4..bf43f59e9974157a4af39cc0d30ee9aeea8e84fb 100644
--- a/apps/maarch_entreprise/js/angular/main.bundle.min.js
+++ b/apps/maarch_entreprise/js/angular/main.bundle.min.js
@@ -1,36 +1 @@
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.main=t()}}(function(){var t;return function e(t,r,n){function o(s,a){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[s]={exports:{}};t[s][0].call(l.exports,function(e){var r=t[s][1][e];return o(r?r:e)},l,l.exports,e,t,r,n)}return r[s].exports}for(var i="function"==typeof require&&require,s=0;s<n.length;s++)o(n[s]);return o}({1:[function(t,e,r){"use strict";var n=this&&this.__decorate||function(t,e,r,n){var o,i=arguments.length,s=3>i?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(3>i?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s};Object.defineProperty(r,"__esModule",{value:!0});var o=t("@angular/core"),i=function(){function t(){}return t}();i=n([o.Component({selector:"my-app",template:"<router-outlet></router-outlet>"})],i),r.AppComponent=i},{"@angular/core":8}],2:[function(t,e,r){"use strict";var n=this&&this.__decorate||function(t,e,r,n){var o,i=arguments.length,s=3>i?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(3>i?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s};Object.defineProperty(r,"__esModule",{value:!0});var o=t("@angular/core"),i=t("@angular/platform-browser"),s=t("@angular/router"),a=t("@angular/http"),u=t("@angular/forms"),c=t("./app.component"),l=t("./profile.component"),p=t("./signature-book.component"),h=function(){function t(){}return t}();h=n([o.NgModule({imports:[i.BrowserModule,u.FormsModule,s.RouterModule.forRoot([{path:"profile",component:l.ProfileComponent},{path:":basketId/signatureBook/:resId",component:p.SignatureBookComponent},{path:"**",redirectTo:"",pathMatch:"full"}],{useHash:!0}),a.HttpModule],declarations:[c.AppComponent,l.ProfileComponent,p.SignatureBookComponent,p.SafeUrlPipe],bootstrap:[c.AppComponent]})],h),r.AppModule=h},{"./app.component":1,"./profile.component":3,"./signature-book.component":4,"@angular/core":8,"@angular/forms":9,"@angular/http":10,"@angular/platform-browser":12,"@angular/router":13}],3:[function(t,e,r){"use strict";var n=this&&this.__decorate||function(t,e,r,n){var o,i=arguments.length,s=3>i?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(3>i?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0};Object.defineProperty(r,"__esModule",{value:!0});var i=t("@angular/core"),s=t("@angular/http");t("rxjs/add/operator/map");var a=function(){function t(t,e){var r=this;this.http=t,this.zone=e,this.user={lang:{}},this.passwordModel={currentPassword:"",newPassword:"",reNewPassword:""},this.signatureModel={base64:"",base64ForJs:"",name:"",type:"",size:0,label:""},this.mailSignatureModel={selected:0,htmlBody:"",title:""},this.showPassword=!1,this.selectedSignature=-1,this.selectedSignatureLabel="",this.resultInfo="",this.loading=!1,window.angularProfileComponent={componentAfterUpload:function(t){return r.processAfterUpload(t)}}}return t.prototype.prepareProfile=function(){if($j("#inner_content").remove(),$j("#menunav").hide(),$j("#divList").remove(),$j("#magicContactsTable").remove(),$j("#manageBasketsOrderTable").remove(),$j("#container").width("99%"),$j("#content h1")[0]&&$j("#content h1")[0]!=$j("my-app h1")[0]&&$j("#content h1")[0].remove(),Prototype.BrowserFeatures.ElementExtensions){var t=["collapse","dropdown","modal","tooltip","popover","tab"];disablePrototypeJS("show",t),disablePrototypeJS("hide",t)}tinymce.baseURL="../../node_modules/tinymce",tinymce.suffix=".min",tinymce.init({selector:"textarea#emailSignature",statusbar:!1,language:"fr_FR",language_url:"tools/tinymce/langs/fr_FR.js",height:"200",plugins:["textcolor"],external_plugins:{bdesk_photo:"../../apps/maarch_entreprise/tools/tinymce/bdesk_photo/plugin.min.js"},menubar:!1,toolbar:"undo | bold italic underline | alignleft aligncenter alignright | bdesk_photo | forecolor",theme_buttons1_add:"fontselect,fontsizeselect",theme_buttons2_add_before:"cut,copy,paste,pastetext,pasteword,separator,search,replace,separator",theme_buttons2_add:"separator,insertdate,inserttime,preview,separator,forecolor,backcolor",theme_buttons3_add_before:"tablecontrols,separator",theme_buttons3_add:"separator,print,separator,ltr,rtl,separator,fullscreen,separator,insertlayer,moveforward,movebackward,absolut",theme_toolbar_align:"left",theme_advanced_toolbar_location:"top",theme_styles:"Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1"})},t.prototype.updateBreadcrumb=function(t){$j("#ariane")[0]&&($j("#ariane")[0].innerHTML="<a href='index.php?reinit=true'>"+t+"</a> > Profil")},t.prototype.ngOnInit=function(){var t=this;this.prepareProfile(),this.updateBreadcrumb(angularGlobals.applicationName),this.coreUrl=angularGlobals.coreUrl,this.loading=!0,this.http.get(this.coreUrl+"rest/user/profile").map(function(t){return t.json()}).subscribe(function(e){t.user=e,t.loading=!1})},t.prototype.processAfterUpload=function(t){var e=this;this.zone.run(function(){return e.resfreshUpload(t)})},t.prototype.resfreshUpload=function(t){this.signatureModel.size<=2e6?(this.signatureModel.base64=t.replace(/^data:.*?;base64,/,""),this.signatureModel.base64ForJs=t):(this.signatureModel.name="",this.signatureModel.size=0,this.signatureModel.type="",this.signatureModel.base64="",this.signatureModel.base64ForJs="",this.resultInfo="Taille maximum de fichier dépassée (2 MB)",$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))},t.prototype.displayPassword=function(){this.showPassword=!this.showPassword},t.prototype.clickOnUploader=function(t){$j("#"+t).click()},t.prototype.uploadSignatureTrigger=function(t){if(t.target.files&&t.target.files[0]){var e=new FileReader;this.signatureModel.name=t.target.files[0].name,this.signatureModel.size=t.target.files[0].size,this.signatureModel.type=t.target.files[0].type,""==this.signatureModel.label&&(this.signatureModel.label=this.signatureModel.name),e.readAsDataURL(t.target.files[0]),e.onload=function(t){window.angularProfileComponent.componentAfterUpload(t.target.result)}}},t.prototype.displaySignatureEditionForm=function(t){this.selectedSignature=t,this.selectedSignatureLabel=this.user.signatures[t].signature_label},t.prototype.changeEmailSignature=function(){var t=$j("#emailSignaturesSelect").prop("selectedIndex");this.mailSignatureModel.selected=t,t>0?(tinymce.get("emailSignature").setContent(this.user.emailSignatures[t-1].html_body),this.mailSignatureModel.title=this.user.emailSignatures[t-1].title):(tinymce.get("emailSignature").setContent(""),this.mailSignatureModel.title="")},t.prototype.getAbsenceInfos=function(){var t=this;this.http.get(this.coreUrl+"rest/currentUser/baskets/absence").map(function(t){return t.json()}).subscribe(function(){t.loading=!1})},t.prototype.updatePassword=function(){var t=this;this.http.put(this.coreUrl+"rest/currentUser/password",this.passwordModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.showPassword=!1,t.passwordModel={currentPassword:"",newPassword:"",reNewPassword:""},t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.submitEmailSignature=function(){var t=this;this.mailSignatureModel.htmlBody=tinymce.get("emailSignature").getContent(),this.http.post(this.coreUrl+"rest/currentUser/emailSignature",this.mailSignatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures=e.emailSignatures,t.mailSignatureModel={selected:0,htmlBody:"",title:""},tinymce.get("emailSignature").setContent(""),t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.updateEmailSignature=function(){var t=this;this.mailSignatureModel.htmlBody=tinymce.get("emailSignature").getContent();var e=this.user.emailSignatures[this.mailSignatureModel.selected-1].id;this.http.put(this.coreUrl+"rest/currentUser/emailSignature/"+e,this.mailSignatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures[t.mailSignatureModel.selected-1].title=e.emailSignature.title,t.user.emailSignatures[t.mailSignatureModel.selected-1].html_body=e.emailSignature.html_body,t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.deleteEmailSignature=function(){var t=this,e=confirm("Voulez-vous vraiment supprimer la signature de mail ?");if(e){var r=this.user.emailSignatures[this.mailSignatureModel.selected-1].id;this.http["delete"](this.coreUrl+"rest/currentUser/emailSignature/"+r).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures=e.emailSignatures,t.mailSignatureModel={selected:0,htmlBody:"",title:""},tinymce.get("emailSignature").setContent(""),t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})}},t.prototype.submitSignature=function(){var t=this;this.http.post(this.coreUrl+"rest/currentUser/signature",this.signatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.signatures=e.signatures,t.signatureModel={base64:"",base64ForJs:"",name:"",type:"",size:0,label:""},t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.updateSignature=function(){var t=this,e=this.user.signatures[this.selectedSignature].id;this.http.put(this.coreUrl+"rest/currentUser/signature/"+e,{label:this.selectedSignatureLabel}).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.signatures[t.selectedSignature].signature_label=e.signature.signature_label,t.selectedSignature=-1,t.selectedSignatureLabel="",t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.deleteSignature=function(t){var e=this,r=confirm("Voulez-vous vraiment supprimer la signature ?");r&&this.http["delete"](this.coreUrl+"rest/currentUser/signature/"+t).map(function(t){return t.json()}).subscribe(function(t){t.errors?(e.resultInfo=t.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(e.user.signatures=t.signatures,e.resultInfo=t.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.onSubmit=function(){var t=this;this.http.put(this.coreUrl+"rest/user/profile",this.user).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))},function(t){alert(t.statusText)})},t.prototype.absenceModal=function(){createModal(this.user.absence,"modal_redirect","auto","950px"),autocomplete(this.user.countBasketsForAbsence,"index.php?display=true&module=basket&page=autocomplete_users_list")},t}();a=n([i.Component({templateUrl:angularGlobals.profileView,styleUrls:["../../node_modules/bootstrap/dist/css/bootstrap.min.css","js/angular/app/Css/profile.component.css"]}),o("design:paramtypes",[s.Http,i.NgZone])],a),r.ProfileComponent=a},{"@angular/core":8,"@angular/http":10,"rxjs/add/operator/map":24}],4:[function(t,e,r){"use strict";var n=this&&this.__decorate||function(t,e,r,n){var o,i=arguments.length,s=3>i?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(3>i?o(s):i>3?o(e,r,s):o(e,r))||s);return i>3&&s&&Object.defineProperty(e,r,s),s},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0};Object.defineProperty(r,"__esModule",{value:!0});var i=t("@angular/core"),s=t("@angular/http"),a=t("@angular/platform-browser"),u=t("@angular/router");t("rxjs/add/operator/map");var c=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)},t}();c=n([i.Pipe({name:"safeUrl"}),o("design:paramtypes",[a.DomSanitizer])],c),r.SafeUrlPipe=c;var l=function(){function t(t,e,r,n){var o=this;this.http=t,this.route=e,this.router=r,this.zone=n,this.signatureBook={currentAction:{},consigne:"",documents:[],attachments:[],resList:[],resListIndex:0,lang:{}},this.rightSelectedThumbnail=0,this.leftSelectedThumbnail=0,this.rightViewerLink="",this.leftViewerLink="",this.headerTab=1,this.showTopRightPanel=!1,this.showTopLeftPanel=!1,this.showResLeftPanel=!0,this.showLeftPanel=!0,this.showRightPanel=!0,this.showAttachmentPanel=!1,this.showSignaturesPanel=!1,this.loading=!1,this.loadingSign=!1,this.leftContentWidth="44%",this.rightContentWidth="44%",this.notesViewerLink="",this.visaViewerLink="",this.histViewerLink="",this.linksViewerLink="",this.attachmentsViewerLink="",window.angularSignatureBookComponent={componentAfterAttach:function(t){return o.processAfterAttach(t)},componentAfterAction:function(){return o.processAfterAction()},componentAfterNotes:function(){return o.processAfterNotes()}}}return t.prototype.prepareSignatureBook=function(){$j("#inner_content").remove(),$j("#header").remove(),$j("#viewBasketsTitle").remove(),$j("#homePageWelcomeTitle").remove(),$j("#footer").remove(),$j("#container").width("99%")},t.prototype.ngOnInit=function(){var t=this;this.prepareSignatureBook(),this.coreUrl=angularGlobals.coreUrl,this.loading=!0,this.route.params.subscribe(function(e){t.resId=+e.resId,t.basketId=e.basketId,lockDocument(t.resId),setInterval(function(){lockDocument(t.resId)},5e4),t.http.get(t.coreUrl+"rest/"+t.basketId+"/signatureBook/"+t.resId).map(function(t){return t.json()}).subscribe(function(e){return e.error?(location.hash="",void(location.search="")):(t.signatureBook=e,t.headerTab=1,t.leftSelectedThumbnail=0,t.rightSelectedThumbnail=0,t.leftViewerLink="",t.rightViewerLink="",t.showLeftPanel=!0,t.showRightPanel=!0,t.showResLeftPanel=!0,t.showTopLeftPanel=!1,t.showTopRightPanel=!1,t.showAttachmentPanel=!1,t.notesViewerLink="index.php?display=true&module=notes&page=notes&identifier="+t.resId+"&origin=document&coll_id=letterbox_coll&load&size=full",t.visaViewerLink="index.php?display=true&page=show_visa_tab&module=visa&resId="+t.resId+"&collId=letterbox_coll&visaStep=true",t.histViewerLink="index.php?display=true&page=show_history_tab&resId="+t.resId+"&collId=letterbox_coll",t.linksViewerLink="index.php?display=true&page=show_links_tab&id="+t.resId,t.attachmentsViewerLink="index.php?display=true&module=attachments&page=frame_list_attachments&resId="+t.resId+"&noModification=true&template_selected=documents_list_attachments_simple&load&attach_type_exclude=converted_pdf,print_folder",t.leftContentWidth="44%",t.rightContentWidth="44%",t.signatureBook.documents[0]&&(t.leftViewerLink=t.signatureBook.documents[0].viewerLink,"outgoing"==t.signatureBook.documents[0].category_id&&(t.headerTab=3)),t.signatureBook.attachments[0]&&(t.rightViewerLink=t.signatureBook.attachments[0].viewerLink),t.displayPanel("RESLEFT"),t.loading=!1,void setTimeout(function(){$j("#rightPanelContent").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),$j(".pjSign").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),$j("#obsVersion").tooltipster({interactive:!0})},0))})})},t.prototype.ngOnDestroy=function(){delete window.angularSignatureBookComponent},t.prototype.processAfterAttach=function(t){var e=this;this.zone.run(function(){return e.refreshAttachments(t)})},t.prototype.processAfterNotes=function(){var t=this;this.zone.run(function(){return t.refreshNotes()})},t.prototype.processAfterAction=function(){for(var t=this,e=-1,r=this.signatureBook.resList.length,n=0;r>n;n++)this.signatureBook.resList[n].res_id==this.resId&&(this.signatureBook.resList[n+1]?e=this.signatureBook.resList[n+1].res_id:n>0&&(e=this.signatureBook.resList[n-1].res_id));unlockDocument(this.resId),e>=0?($j("#send").removeAttr("disabled"),$j("#send").css("opacity","1"),this.zone.run(function(){return t.changeLocation(e,"action")})):this.zone.run(function(){return t.backToBasket()})},t.prototype.changeSignatureBookLeftContent=function(t){this.headerTab=t,this.showTopLeftPanel=!1},t.prototype.changeRightViewer=function(t){this.showAttachmentPanel=!1,this.rightViewerLink=this.signatureBook.attachments[t].viewerLink,this.rightSelectedThumbnail=t},t.prototype.changeLeftViewer=function(t){this.leftViewerLink=this.signatureBook.documents[t].viewerLink,this.leftSelectedThumbnail=t},t.prototype.displayPanel=function(t){var e=this;"TOPRIGHT"==t?this.showTopRightPanel=!this.showTopRightPanel:"TOPLEFT"==t?this.showTopLeftPanel=!this.showTopLeftPanel:"LEFT"==t?(this.showLeftPanel=!this.showLeftPanel,this.showResLeftPanel=!1,this.showLeftPanel?(this.rightContentWidth="48%",this.leftContentWidth="48%",$j("#hideLeftContent").css("background","#CEE9F1")):(this.rightContentWidth="96%",$j("#hideLeftContent").css("background","none"))):"RESLEFT"==t?(this.showResLeftPanel=!this.showResLeftPanel,this.showResLeftPanel?(this.rightContentWidth="44%",this.leftContentWidth="44%",0==this.signatureBook.resList.length&&this.http.get(this.coreUrl+"rest/"+this.basketId+"/signatureBook/resList").map(function(t){return t.json()}).subscribe(function(t){e.signatureBook.resList=t.resList,e.signatureBook.resList.forEach(function(t,r){t.res_id==e.resId&&(e.signatureBook.resListIndex=r)}),setTimeout(function(){$j("#resListContent").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),$j("#resListContent").scrollTop(0),$j("#resListContent").scrollTop($j(".resListContentFrameSelected").offset().top-42)},0)})):(this.rightContentWidth="48%",this.leftContentWidth="48%")):"MIDDLE"==t&&(this.showRightPanel=!this.showRightPanel,this.showResLeftPanel=!1,this.showRightPanel?(this.rightContentWidth="48%",this.leftContentWidth="48%",$j("#contentLeft").css("border-right","solid 1px")):(this.leftContentWidth="96%",$j("#contentLeft").css("border-right","none")))},t.prototype.displayAttachmentPanel=function(){this.showAttachmentPanel=!this.showAttachmentPanel,this.rightSelectedThumbnail=0,this.signatureBook.attachments[0]&&(this.rightViewerLink=this.signatureBook.attachments[0].viewerLink)},t.prototype.refreshAttachments=function(t){var e=this;"rightContent"==t?this.http.get(this.coreUrl+"rest/signatureBook/"+this.resId+"/incomingMailAttachments").map(function(t){return t.json()}).subscribe(function(t){e.signatureBook.documents=t}):this.http.get(this.coreUrl+"rest/signatureBook/"+this.resId+"/attachments").map(function(t){return t.json()}).subscribe(function(r){var n=0;if("add"==t){var o=!1;r.forEach(function(t,r){o||e.signatureBook.attachments[r]&&t.res_id==e.signatureBook.attachments[r].res_id||(n=r,o=!0)})}else if("edit"==t){var i=e.signatureBook.attachments[e.rightSelectedThumbnail].res_id;r.forEach(function(t,e){t.res_id==i&&(n=e)})}e.signatureBook.attachments=r,"add"==t||"edit"==t?e.changeRightViewer(n):"del"==t&&e.changeRightViewer(0)})},t.prototype.addAttachmentIframe=function(){showAttachmentsForm("index.php?display=true&module=attachments&page=attachments_content&docId="+this.resId)},t.prototype.editAttachmentIframe=function(t){if(t.canModify&&"SIGN"!=t.status){var e;0==t.res_id?e=t.res_id_version:0==t.res_id_version&&(e=t.res_id),modifyAttachmentsForm("index.php?display=true&module=attachments&page=attachments_content&id="+e+"&relation="+t.relation+"&docId="+this.resId,"98%","auto")}},t.prototype.delAttachment=function(t){var e=this;if(t.canDelete){if(this.signatureBook.attachments.length<=1)var r=confirm("Attention, ceci est votre dernière pièce jointe pour ce courrier, voulez-vous vraiment la supprimer ?");else var r=confirm("Voulez-vous vraiment supprimer la pièce jointe ?");if(r){var n;0==t.res_id?n=t.res_id_version:0==t.res_id_version&&(n=t.res_id),this.http.get("index.php?display=true&module=attachments&page=del_attachment&id="+n+"&relation="+t.relation+"&rest=true").subscribe(function(){e.refreshAttachments("del")})}}},t.prototype.refreshNotes=function(){var t=this;this.http.get(this.coreUrl+"rest/res/"+this.resId+"/notes/count").map(function(t){return t.json()}).subscribe(function(e){t.signatureBook.nbNotes=e})},t.prototype.signFile=function(t,e){var r=this;if(!this.loadingSign&&this.signatureBook.canSign){this.loadingSign=!0;var n="index.php?display=true&module=visa&page=sign_file&collId=letterbox_coll&resIdMaster="+this.resId+"&signatureId="+e.id;0==t.res_id?n+="outgoing_mail"==t.attachment_type&&"outgoing"==this.signatureBook.documents[0].category_id?"&isVersion&isOutgoing&id="+t.res_id_version:"&isVersion&id="+t.res_id_version:0==t.res_id_version&&(n+="outgoing_mail"==t.attachment_type&&"outgoing"==this.signatureBook.documents[0].category_id?"&isOutgoing&id="+t.res_id:"&id="+t.res_id),this.http.get(n,e).map(function(t){return t.json()}).subscribe(function(t){if(0==t.status){r.rightViewerLink="index.php?display=true&module=attachments&page=view_attachment&res_id_master="+r.resId+"&id="+t.new_id+"&isVersion=false",r.signatureBook.attachments[r.rightSelectedThumbnail].viewerLink=r.rightViewerLink,r.signatureBook.attachments[r.rightSelectedThumbnail].status="SIGN",r.signatureBook.attachments[r.rightSelectedThumbnail].idToDl=t.new_id;var e=!0;r.signatureBook.attachments.forEach(function(t){t.sign&&"SIGN"!=t.status&&(e=!1)}),r.signatureBook.resList.length>0&&(r.signatureBook.resList[r.signatureBook.resListIndex].allSigned=e)}else alert(t.error);r.showSignaturesPanel=!1,r.loadingSign=!1})}},t.prototype.unsignFile=function(t){var e,r,n,o=this;0==t.res_id?(r=t.res_id_version,e="res_version_attachments",n="true"):0==t.res_id_version&&(r=t.res_id,e="res_attachments",n="false"),this.http.put(this.coreUrl+"rest/"+e+"/"+r+"/unsign",{},{}).map(function(t){return t.json()}).subscribe(function(e){"OK"==e.status?(o.rightViewerLink="index.php?display=true&module=attachments&page=view_attachment&res_id_master="+o.resId+"&id="+t.viewerNoSignId+"&isVersion="+n,o.signatureBook.attachments[o.rightSelectedThumbnail].viewerLink=o.rightViewerLink,o.signatureBook.attachments[o.rightSelectedThumbnail].status="A_TRA",o.signatureBook.attachments[o.rightSelectedThumbnail].idToDl=r,o.signatureBook.resList.length>0&&(o.signatureBook.resList[o.signatureBook.resListIndex].allSigned=!1)):alert(e.error)})},t.prototype.backToBasket=function(){unlockDocument(this.resId),location.hash="",location.reload()},t.prototype.backToDetails=function(){unlockDocument(this.resId),location.hash="",location.search="?page=details&dir=indexing_searching&id="+this.resId},t.prototype.changeLocation=function(t,e){var r=this;this.http.get(this.coreUrl+"rest/res/"+t+"/lock").map(function(t){return t.json()}).subscribe(function(n){if(n.lock)"view"==e?alert("Courrier verouillé par "+n.lockBy):"action"==e&&(alert("Courrier suivant verouillé par "+n.lockBy),r.backToBasket());else{var o="/"+r.basketId+"/signatureBook/"+t;r.router.navigate([o])}})},t.prototype.validForm=function(){var t=this;""!=$j("#signatureBookActions option:selected")[0].value?(unlockDocument(this.resId),0==this.signatureBook.resList.length&&this.http.get(this.coreUrl+"rest/"+this.basketId+"/signatureBook/resList").map(function(t){return t.json()}).subscribe(function(e){t.signatureBook.resList=e.resList,valid_action_form("empty","index.php?display=true&page=manage_action&module=core",t.signatureBook.currentAction.id,t.resId,"res_letterbox","null","letterbox_coll","page",!1,[$j("#signatureBookActions option:selected")[0].value])})):alert("Aucune action choisie")},t}();l=n([i.Component({templateUrl:angularGlobals["signature-bookView"]}),o("design:paramtypes",[s.Http,u.ActivatedRoute,u.Router,i.NgZone])],l),r.SignatureBookComponent=l},{"@angular/core":8,"@angular/http":10,"@angular/platform-browser":12,"@angular/router":13,"rxjs/add/operator/map":24}],5:[function(t,e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("@angular/platform-browser-dynamic"),o=t("@angular/core"),i=t("./app/app.module");o.enableProdMode(),n.platformBrowserDynamic().bootstrapModule(i.AppModule)},{"./app/app.module":2,"@angular/core":8,"@angular/platform-browser-dynamic":11}],6:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/core")):"function"==typeof t&&t.amd?t(["exports","@angular/core"],i):i((o.ng=o.ng||{},o.ng.common=o.ng.common||{}),o.ng.core)}(this,function(t,e){"use strict";function r(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}function n(t){return t.replace(/\/index.html$/,"")}function o(t,e,r){var n="="+t;if(e.indexOf(n)>-1)return n;if(n=r.getPluralCategory(t),e.indexOf(n)>-1)return n;if(e.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+t+'"')}function i(t,e){"string"==typeof e&&(e=parseInt(e,10));var r=e,n=r.toString().replace(/^[^.]*\.?/,""),o=Math.floor(Math.abs(r)),i=n.length,s=parseInt(n,10),a=parseInt(r.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0,u=t.split("-")[0].toLowerCase();switch(u){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===r?H.One:H.Other;case"agq":case"bas":case"cu":case"dav":case"dje":case"dua":case"dyo":case"ebu":case"ewo":case"guz":case"kam":case"khq":case"ki":case"kln":case"kok":case"ksf":case"lrc":case"lu":case"luo":case"luy":case"mer":case"mfe":case"mgh":case"mua":case"mzn":case"nmg":case"nus":case"qu":case"rn":case"rw":case"sbp":case"twq":case"vai":case"yav":case"yue":case"zgh":case"ak":case"ln":case"mg":case"pa":case"ti":return r===Math.floor(r)&&r>=0&&1>=r?H.One:H.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===o||1===r?H.One:H.Other;case"ar":return 0===r?H.Zero:1===r?H.One:2===r?H.Two:r%100===Math.floor(r%100)&&r%100>=3&&10>=r%100?H.Few:r%100===Math.floor(r%100)&&r%100>=11&&99>=r%100?H.Many:H.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===o&&0===i?H.One:H.Other;case"be":return r%10===1&&r%100!==11?H.One:r%10===Math.floor(r%10)&&r%10>=2&&4>=r%10&&!(r%100>=12&&14>=r%100)?H.Few:r%10===0||r%10===Math.floor(r%10)&&r%10>=5&&9>=r%10||r%100===Math.floor(r%100)&&r%100>=11&&14>=r%100?H.Many:H.Other;case"br":return r%10===1&&r%100!==11&&r%100!==71&&r%100!==91?H.One:r%10===2&&r%100!==12&&r%100!==72&&r%100!==92?H.Two:r%10===Math.floor(r%10)&&(r%10>=3&&4>=r%10||r%10===9)&&!(r%100>=10&&19>=r%100||r%100>=70&&79>=r%100||r%100>=90&&99>=r%100)?H.Few:0!==r&&r%1e6===0?H.Many:H.Other;case"bs":case"hr":case"sr":return 0===i&&o%10===1&&o%100!==11||s%10===1&&s%100!==11?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&4>=o%10&&!(o%100>=12&&14>=o%100)||s%10===Math.floor(s%10)&&s%10>=2&&4>=s%10&&!(s%100>=12&&14>=s%100)?H.Few:H.Other;case"cs":case"sk":return 1===o&&0===i?H.One:o===Math.floor(o)&&o>=2&&4>=o&&0===i?H.Few:0!==i?H.Many:H.Other;case"cy":return 0===r?H.Zero:1===r?H.One:2===r?H.Two:3===r?H.Few:6===r?H.Many:H.Other;case"da":return 1===r||0!==a&&(0===o||1===o)?H.One:H.Other;case"dsb":case"hsb":return 0===i&&o%100===1||s%100===1?H.One:0===i&&o%100===2||s%100===2?H.Two:0===i&&o%100===Math.floor(o%100)&&o%100>=3&&4>=o%100||s%100===Math.floor(s%100)&&s%100>=3&&4>=s%100?H.Few:H.Other;case"ff":case"fr":case"hy":case"kab":return 0===o||1===o?H.One:H.Other;case"fil":return 0===i&&(1===o||2===o||3===o)||0===i&&o%10!==4&&o%10!==6&&o%10!==9||0!==i&&s%10!==4&&s%10!==6&&s%10!==9?H.One:H.Other;case"ga":return 1===r?H.One:2===r?H.Two:r===Math.floor(r)&&r>=3&&6>=r?H.Few:r===Math.floor(r)&&r>=7&&10>=r?H.Many:H.Other;case"gd":return 1===r||11===r?H.One:2===r||12===r?H.Two:r===Math.floor(r)&&(r>=3&&10>=r||r>=13&&19>=r)?H.Few:H.Other;case"gv":return 0===i&&o%10===1?H.One:0===i&&o%10===2?H.Two:0!==i||o%100!==0&&o%100!==20&&o%100!==40&&o%100!==60&&o%100!==80?0!==i?H.Many:H.Other:H.Few;case"he":return 1===o&&0===i?H.One:2===o&&0===i?H.Two:0!==i||r>=0&&10>=r||r%10!==0?H.Other:H.Many;case"is":return 0===a&&o%10===1&&o%100!==11||0!==a?H.One:H.Other;case"ksh":return 0===r?H.Zero:1===r?H.One:H.Other;case"kw":case"naq":case"se":case"smn":return 1===r?H.One:2===r?H.Two:H.Other;case"lag":return 0===r?H.Zero:0!==o&&1!==o||0===r?H.Other:H.One;case"lt":return r%10!==1||r%100>=11&&19>=r%100?r%10===Math.floor(r%10)&&r%10>=2&&9>=r%10&&!(r%100>=11&&19>=r%100)?H.Few:0!==s?H.Many:H.Other:H.One;case"lv":case"prg":return r%10===0||r%100===Math.floor(r%100)&&r%100>=11&&19>=r%100||2===i&&s%100===Math.floor(s%100)&&s%100>=11&&19>=s%100?H.Zero:r%10===1&&r%100!==11||2===i&&s%10===1&&s%100!==11||2!==i&&s%10===1?H.One:H.Other;
-
-case"mk":return 0===i&&o%10===1||s%10===1?H.One:H.Other;case"mt":return 1===r?H.One:0===r||r%100===Math.floor(r%100)&&r%100>=2&&10>=r%100?H.Few:r%100===Math.floor(r%100)&&r%100>=11&&19>=r%100?H.Many:H.Other;case"pl":return 1===o&&0===i?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&4>=o%10&&!(o%100>=12&&14>=o%100)?H.Few:0===i&&1!==o&&o%10===Math.floor(o%10)&&o%10>=0&&1>=o%10||0===i&&o%10===Math.floor(o%10)&&o%10>=5&&9>=o%10||0===i&&o%100===Math.floor(o%100)&&o%100>=12&&14>=o%100?H.Many:H.Other;case"pt":return r===Math.floor(r)&&r>=0&&2>=r&&2!==r?H.One:H.Other;case"ro":return 1===o&&0===i?H.One:0!==i||0===r||1!==r&&r%100===Math.floor(r%100)&&r%100>=1&&19>=r%100?H.Few:H.Other;case"ru":case"uk":return 0===i&&o%10===1&&o%100!==11?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&4>=o%10&&!(o%100>=12&&14>=o%100)?H.Few:0===i&&o%10===0||0===i&&o%10===Math.floor(o%10)&&o%10>=5&&9>=o%10||0===i&&o%100===Math.floor(o%100)&&o%100>=11&&14>=o%100?H.Many:H.Other;case"shi":return 0===o||1===r?H.One:r===Math.floor(r)&&r>=2&&10>=r?H.Few:H.Other;case"si":return 0===r||1===r||0===o&&1===s?H.One:H.Other;case"sl":return 0===i&&o%100===1?H.One:0===i&&o%100===2?H.Two:0===i&&o%100===Math.floor(o%100)&&o%100>=3&&4>=o%100||0!==i?H.Few:H.Other;case"tzm":return r===Math.floor(r)&&r>=0&&1>=r||r===Math.floor(r)&&r>=11&&99>=r?H.One:H.Other;default:return H.Other}}function s(t){return t.name||typeof t}function a(t,r){return Error("InvalidPipeArgument: '"+r+"' for pipe '"+e.ɵstringify(t)+"'")}function u(t){return t?t[0].toUpperCase()+t.substr(1).toLowerCase():t}function c(t){return function(e,r){var n=t(e,r);return 1==n.length?"0"+n:n}}function l(t){return function(e,r){return t(e,r).split(" ")[1]}}function p(t){return function(e,r){return t(e,r).split(" ")[0]}}function h(t,e,r){return new Intl.DateTimeFormat(e,r).format(t).replace(/[\u200e\u200f]/g,"")}function f(t){var e={hour:"2-digit",hour12:!1,timeZoneName:t};return function(t,r){var n=h(t,r,e);return n?n.substring(3):""}}function d(t,e){return t.hour12=e,t}function m(t,e){var r={};return r[t]=2===e?"2-digit":"numeric",r}function y(t,e){var r={};return r[t]=4>e?e>1?"short":"narrow":"long",r}function v(t){return Object.assign.apply(Object,[{}].concat(t))}function g(t){return function(e,r){return h(e,r,t)}}function _(t,e,r){var n=vt[t];if(n)return n(e,r);var o=t,i=_t.get(o);if(!i){i=[];var s=void 0;yt.exec(t);for(var a=t;a;)s=yt.exec(a),s?(i=i.concat(s.slice(1)),a=i.pop()):(i.push(a),a=null);_t.set(o,i)}return i.reduce(function(t,n){var o=gt[n];return t+(o?o(e,r):b(n))},"")}function b(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}function w(t,e,r,n,o,i,s){if(void 0===i&&(i=null),void 0===s&&(s=!1),null==r)return null;if(r="string"==typeof r&&E(r)?+r:r,"number"!=typeof r)throw a(t,r);var u=void 0,c=void 0,l=void 0;if(n!==dt.Currency&&(u=1,c=0,l=3),o){var p=o.match(wt);if(null===p)throw new Error(o+" is not a valid digit info for number pipes");null!=p[1]&&(u=C(p[1])),null!=p[3]&&(c=C(p[3])),null!=p[5]&&(l=C(p[5]))}return mt.format(r,e,n,{minimumIntegerDigits:u,minimumFractionDigits:c,maximumFractionDigits:l,currency:i,currencyAsSymbol:s})}function C(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}function E(t){return!isNaN(t-parseFloat(t))}function S(t){return null==t||""===t}function x(t){return t instanceof Date&&!isNaN(t.valueOf())}function T(t){var e=new Date(0),r=0,n=0,o=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(r=P(t[9]+t[10]),n=P(t[9]+t[11])),o.call(e,P(t[1]),P(t[2])-1,P(t[3]));var s=P(t[4]||"0")-r,a=P(t[5]||"0")-n,u=P(t[6]||"0"),c=Math.round(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,a,u,c),e}function P(t){return parseInt(t,10)}function A(t){return t===Nt}function O(t){return t===Dt}function M(t){return t===jt}function R(t){return t===Lt}var k=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},I=function(){function t(){}return t.prototype.getBaseHrefFromDOM=function(){},t.prototype.onPopState=function(){},t.prototype.onHashChange=function(){},t.prototype.pathname=function(){},t.prototype.search=function(){},t.prototype.hash=function(){},t.prototype.replaceState=function(){},t.prototype.pushState=function(){},t.prototype.forward=function(){},t.prototype.back=function(){},t}(),N=new e.InjectionToken("Location Initialized"),D=function(){function t(){}return t.prototype.path=function(){},t.prototype.prepareExternalUrl=function(){},t.prototype.pushState=function(){},t.prototype.replaceState=function(){},t.prototype.forward=function(){},t.prototype.back=function(){},t.prototype.onPopState=function(){},t.prototype.getBaseHref=function(){},t}(),j=new e.InjectionToken("appBaseHref"),L=function(){function t(r){var o=this;this._subject=new e.EventEmitter,this._platformStrategy=r;var i=this._platformStrategy.getBaseHref();this._baseHref=t.stripTrailingSlash(n(i)),this._platformStrategy.onPopState(function(t){o._subject.emit({url:o.path(!0),pop:!0,type:t.type})})}return t.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},t.prototype.isCurrentPathEqualTo=function(e,r){return void 0===r&&(r=""),this.path()==this.normalize(e+t.normalizeQueryParams(r))},t.prototype.normalize=function(e){return t.stripTrailingSlash(r(this._baseHref,n(e)))},t.prototype.prepareExternalUrl=function(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},t.prototype.go=function(t,e){void 0===e&&(e=""),this._platformStrategy.pushState(null,"",t,e)},t.prototype.replaceState=function(t,e){void 0===e&&(e=""),this._platformStrategy.replaceState(null,"",t,e)},t.prototype.forward=function(){this._platformStrategy.forward()},t.prototype.back=function(){this._platformStrategy.back()},t.prototype.subscribe=function(t,e,r){return this._subject.subscribe({next:t,error:e,complete:r})},t.normalizeQueryParams=function(t){return t&&"?"!==t[0]?"?"+t:t},t.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var r=0;return t.endsWith("/")&&r++,e.startsWith("/")&&r++,2==r?t+e.substring(1):1==r?t+e:t+"/"+e},t.stripTrailingSlash=function(t){return t.replace(/\/$/,"")},t}();L.decorators=[{type:e.Injectable}],L.ctorParameters=function(){return[{type:D}]};var V=function(t){function e(e,r){var n=t.call(this)||this;return n._platformLocation=e,n._baseHref="",null!=r&&(n._baseHref=r),n}return k(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e},e.prototype.prepareExternalUrl=function(t){var e=L.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},e.prototype.pushState=function(t,e,r,n){var o=this.prepareExternalUrl(r+L.normalizeQueryParams(n));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(t,e,o)},e.prototype.replaceState=function(t,e,r,n){var o=this.prepareExternalUrl(r+L.normalizeQueryParams(n));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,o)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(D);V.decorators=[{type:e.Injectable}],V.ctorParameters=function(){return[{type:I},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[j]}]}]};var F=function(t){function e(e,r){var n=t.call(this)||this;if(n._platformLocation=e,null==r&&(r=n._platformLocation.getBaseHrefFromDOM()),null==r)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return n._baseHref=r,n}return k(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.prepareExternalUrl=function(t){return L.joinWithSlash(this._baseHref,t)},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+L.normalizeQueryParams(this._platformLocation.search),r=this._platformLocation.hash;return r&&t?""+e+r:e},e.prototype.pushState=function(t,e,r,n){var o=this.prepareExternalUrl(r+L.normalizeQueryParams(n));this._platformLocation.pushState(t,e,o)},e.prototype.replaceState=function(t,e,r,n){var o=this.prepareExternalUrl(r+L.normalizeQueryParams(n));this._platformLocation.replaceState(t,e,o)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(D);F.decorators=[{type:e.Injectable}],F.ctorParameters=function(){return[{type:I},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[j]}]}]};var U=function(){function t(){}return t.prototype.getPluralCategory=function(){},t}(),B=function(t){function e(e){var r=t.call(this)||this;return r.locale=e,r}return k(e,t),e.prototype.getPluralCategory=function(t){var e=i(this.locale,t);switch(e){case H.Zero:return"zero";case H.One:return"one";case H.Two:return"two";case H.Few:return"few";case H.Many:return"many";default:return"other"}},e}(U);B.decorators=[{type:e.Injectable}],B.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var H={};H.Zero=0,H.One=1,H.Two=2,H.Few=3,H.Many=4,H.Other=5,H[H.Zero]="Zero",H[H.One]="One",H[H.Two]="Two",H[H.Few]="Few",H[H.Many]="Many",H[H.Other]="Other";var q=function(){function t(t,e,r,n){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=r,this._renderer=n,this._initialClasses=[]}return Object.defineProperty(t.prototype,"klass",{set:function(t){this._applyInitialClasses(!0),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyInitialClasses(!1),this._applyClasses(this._rawClass,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClass",{set:function(t){this._cleanupClasses(this._rawClass),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(e.ɵisListLikeIterable(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._iterableDiffer){var t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},t.prototype._cleanupClasses=function(t){this._applyClasses(t,!0),this._applyInitialClasses(!1)},t.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},t.prototype._applyIterableChanges=function(t){var r=this;t.forEachAddedItem(function(t){if("string"!=typeof t.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+e.ɵstringify(t.item));r._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){return r._toggleClass(t.item,!1)})},t.prototype._applyInitialClasses=function(t){var e=this;this._initialClasses.forEach(function(r){return e._toggleClass(r,!t)})},t.prototype._applyClasses=function(t,e){var r=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return r._toggleClass(t,!e)}):Object.keys(t).forEach(function(n){null!=t[n]&&r._toggleClass(n,!e)}))},t.prototype._toggleClass=function(t,e){var r=this;t=t.trim(),t&&t.split(/\s+/g).forEach(function(t){r._renderer.setElementClass(r._ngEl.nativeElement,t,!!e)})},t}();q.decorators=[{type:e.Directive,args:[{selector:"[ngClass]"}]}],q.ctorParameters=function(){return[{type:e.IterableDiffers},{type:e.KeyValueDiffers},{type:e.ElementRef},{type:e.Renderer}]},q.propDecorators={klass:[{type:e.Input,args:["class"]}],ngClass:[{type:e.Input}]};var z=function(){function t(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}return t.prototype.ngOnChanges=function(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var r=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=r.get(e.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var o=this._moduleRef?this._moduleRef.componentFactoryResolver:r.get(e.ComponentFactoryResolver),i=o.resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(i,this._viewContainerRef.length,r,this.ngComponentOutletContent)}},t.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},t}();z.decorators=[{type:e.Directive,args:[{selector:"[ngComponentOutlet]"}]}],z.ctorParameters=function(){return[{type:e.ViewContainerRef}]},z.propDecorators={ngComponentOutlet:[{type:e.Input}],ngComponentOutletInjector:[{type:e.Input}],ngComponentOutletContent:[{type:e.Input}],ngComponentOutletNgModuleFactory:[{type:e.Input}]};var G=function(){function t(t,e,r,n){this.$implicit=t,this.ngForOf=e,this.index=r,this.count=n}return Object.defineProperty(t.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"even",{get:function(){return this.index%2===0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),t}(),W=function(){function t(t,e,r){this._viewContainer=t,this._template=e,this._differs=r,this._differ=null}return Object.defineProperty(t.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(t){e.isDevMode()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(t)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTemplate",{set:function(t){t&&(this._template=t)},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){if("ngForOf"in t){var e=t.ngForOf.currentValue;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(r){throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+s(e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}},t.prototype.ngDoCheck=function(){if(this._differ){var t=this._differ.diff(this.ngForOf);t&&this._applyChanges(t)}},t.prototype._applyChanges=function(t){var e=this,r=[];t.forEachOperation(function(t,n,o){if(null==t.previousIndex){var i=e._viewContainer.createEmbeddedView(e._template,new G(null,e.ngForOf,-1,-1),o),s=new $(t,i);r.push(s)}else if(null==o)e._viewContainer.remove(n);else{var i=e._viewContainer.get(n);e._viewContainer.move(i,o);var s=new $(t,i);r.push(s)}});for(var n=0;n<r.length;n++)this._perViewChange(r[n].view,r[n].record);for(var n=0,o=this._viewContainer.length;o>n;n++){var i=this._viewContainer.get(n);i.context.index=n,i.context.count=o}t.forEachIdentityChange(function(t){var r=e._viewContainer.get(t.currentIndex);r.context.$implicit=t.item})},t.prototype._perViewChange=function(t,e){t.context.$implicit=e.item},t}();W.decorators=[{type:e.Directive,args:[{selector:"[ngFor][ngForOf]"}]}],W.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:e.IterableDiffers}]},W.propDecorators={ngForOf:[{type:e.Input}],ngForTrackBy:[{type:e.Input}],ngForTemplate:[{type:e.Input}]};var $=function(){function t(t,e){this.record=t,this.view=e}return t}(),K=W,Q=function(){function t(t,e){this._viewContainer=t,this._context=new X,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}return Object.defineProperty(t.prototype,"ngIf",{set:function(t){this._context.$implicit=this._context.ngIf=t,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfThen",{set:function(t){this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfElse",{set:function(t){this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),t.prototype._updateView=function(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))},t}();Q.decorators=[{type:e.Directive,args:[{selector:"[ngIf]"}]}],Q.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef}]},Q.propDecorators={ngIf:[{type:e.Input}],ngIfThen:[{type:e.Input}],ngIfElse:[{type:e.Input}]};var X=function(){function t(){this.$implicit=null,this.ngIf=null}return t}(),Z=function(){function t(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}return t.prototype.create=function(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)},t.prototype.destroy=function(){this._created=!1,this._viewContainerRef.clear()},t.prototype.enforceState=function(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()},t}(),Y=function(){function t(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}return Object.defineProperty(t.prototype,"ngSwitch",{set:function(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)},enumerable:!0,configurable:!0}),t.prototype._addCase=function(){return this._caseCount++},t.prototype._addDefault=function(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)},t.prototype._matchCase=function(t){var e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e},t.prototype._updateDefaultCases=function(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(var e=0;e<this._defaultViews.length;e++){var r=this._defaultViews[e];r.enforceState(t)}}},t}();Y.decorators=[{type:e.Directive,args:[{selector:"[ngSwitch]"}]}],Y.ctorParameters=function(){return[]},Y.propDecorators={ngSwitch:[{type:e.Input}]};var J=function(){function t(t,e,r){this.ngSwitch=r,r._addCase(),this._view=new Z(t,e)}return t.prototype.ngDoCheck=function(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))},t}();J.decorators=[{type:e.Directive,args:[{selector:"[ngSwitchCase]"}]}],J.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:Y,decorators:[{type:e.Host}]}]},J.propDecorators={ngSwitchCase:[{type:e.Input}]};var tt=function(){function t(t,e,r){r._addDefault(new Z(t,e))}return t}();tt.decorators=[{type:e.Directive,args:[{selector:"[ngSwitchDefault]"}]}],tt.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:Y,decorators:[{type:e.Host}]}]};var et=function(){function t(t){this._localization=t,this._caseViews={}}return Object.defineProperty(t.prototype,"ngPlural",{set:function(t){this._switchValue=t,this._updateView()},enumerable:!0,configurable:!0}),t.prototype.addCase=function(t,e){this._caseViews[t]=e},t.prototype._updateView=function(){this._clearViews();var t=Object.keys(this._caseViews),e=o(this._switchValue,t,this._localization);this._activateView(this._caseViews[e])},t.prototype._clearViews=function(){this._activeView&&this._activeView.destroy()},t.prototype._activateView=function(t){t&&(this._activeView=t,this._activeView.create())},t}();et.decorators=[{type:e.Directive,args:[{selector:"[ngPlural]"}]}],et.ctorParameters=function(){return[{type:U}]},et.propDecorators={ngPlural:[{type:e.Input}]};var rt=function(){function t(t,e,r,n){this.value=t;var o=!isNaN(Number(t));n.addCase(o?"="+t:t,new Z(r,e))}return t}();rt.decorators=[{type:e.Directive,args:[{selector:"[ngPluralCase]"}]}],rt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Attribute,args:["ngPluralCase"]}]},{type:e.TemplateRef},{type:e.ViewContainerRef},{type:et,decorators:[{type:e.Host}]}]};var nt=function(){function t(t,e,r){this._differs=t,this._ngEl=e,this._renderer=r}return Object.defineProperty(t.prototype,"ngStyle",{set:function(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._differ){var t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}},t.prototype._applyChanges=function(t){var e=this;t.forEachRemovedItem(function(t){return e._setStyle(t.key,null)}),t.forEachAddedItem(function(t){return e._setStyle(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._setStyle(t.key,t.currentValue)})},t.prototype._setStyle=function(t,e){var r=t.split("."),n=r[0],o=r[1];e=null!=e&&o?""+e+o:e,this._renderer.setElementStyle(this._ngEl.nativeElement,n,e)},t}();nt.decorators=[{type:e.Directive,args:[{selector:"[ngStyle]"}]}],nt.ctorParameters=function(){return[{type:e.KeyValueDiffers},{type:e.ElementRef},{type:e.Renderer}]},nt.propDecorators={ngStyle:[{type:e.Input}]};var ot=function(){function t(t){this._viewContainerRef=t}return Object.defineProperty(t.prototype,"ngOutletContext",{set:function(t){this.ngTemplateOutletContext=t},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(){this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this.ngTemplateOutlet&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext))},t}();ot.decorators=[{type:e.Directive,args:[{selector:"[ngTemplateOutlet]"}]}],ot.ctorParameters=function(){return[{type:e.ViewContainerRef}]},ot.propDecorators={ngTemplateOutletContext:[{type:e.Input}],ngTemplateOutlet:[{type:e.Input}],ngOutletContext:[{type:e.Input}]};var it=[q,z,W,Q,ot,nt,Y,J,tt,et,rt],st=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},t.prototype.dispose=function(t){t.unsubscribe()},t.prototype.onDestroy=function(t){t.unsubscribe()},t}(),at=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},t.prototype.dispose=function(){},t.prototype.onDestroy=function(){},t}(),ut=new at,ct=new st,lt=function(){function t(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}return t.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},t.prototype.transform=function(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,e.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)},t.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(r){return e._updateLatestValue(t,r)})},t.prototype._selectStrategy=function(r){if(e.ɵisPromise(r))return ut;if(e.ɵisObservable(r))return ct;throw a(t,r)},t.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},t.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},t}();lt.decorators=[{type:e.Pipe,args:[{name:"async",pure:!1}]}],lt.ctorParameters=function(){return[{type:e.ChangeDetectorRef}]};var pt=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.toLowerCase()},t}();pt.decorators=[{type:e.Pipe,args:[{name:"lowercase"}]}],pt.ctorParameters=function(){return[]};var ht=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.split(/\b/g).map(function(t){return u(t)}).join("")},t}();ht.decorators=[{type:e.Pipe,args:[{name:"titlecase"}]}],ht.ctorParameters=function(){return[]};var ft=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.toUpperCase()},t}();ft.decorators=[{type:e.Pipe,args:[{name:"uppercase"}]}],ft.ctorParameters=function(){return[]};var dt={};dt.Decimal=0,dt.Percent=1,dt.Currency=2,dt[dt.Decimal]="Decimal",dt[dt.Percent]="Percent",dt[dt.Currency]="Currency";var mt=function(){function t(){}return t.format=function(t,e,r,n){var o=void 0===n?{}:n,i=o.minimumIntegerDigits,s=o.minimumFractionDigits,a=o.maximumFractionDigits,u=o.currency,c=o.currencyAsSymbol,l=void 0===c?!1:c,p={minimumIntegerDigits:i,minimumFractionDigits:s,maximumFractionDigits:a,style:dt[r].toLowerCase()};return r==dt.Currency&&(p.currency="string"==typeof u?u:void 0,p.currencyDisplay=l?"symbol":"code"),new Intl.NumberFormat(e,p).format(t)},t}(),yt=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,vt={yMMMdjms:g(v([m("year",1),y("month",3),m("day",1),m("hour",1),m("minute",1),m("second",1)])),yMdjm:g(v([m("year",1),m("month",1),m("day",1),m("hour",1),m("minute",1)])),yMMMMEEEEd:g(v([m("year",1),y("month",4),y("weekday",4),m("day",1)])),yMMMMd:g(v([m("year",1),y("month",4),m("day",1)])),yMMMd:g(v([m("year",1),y("month",3),m("day",1)])),yMd:g(v([m("year",1),m("month",1),m("day",1)])),jms:g(v([m("hour",1),m("second",1),m("minute",1)])),jm:g(v([m("hour",1),m("minute",1)]))},gt={yyyy:g(m("year",4)),yy:g(m("year",2)),y:g(m("year",1)),MMMM:g(y("month",4)),MMM:g(y("month",3)),MM:g(m("month",2)),M:g(m("month",1)),LLLL:g(y("month",4)),L:g(y("month",1)),dd:g(m("day",2)),d:g(m("day",1)),HH:c(p(g(d(m("hour",2),!1)))),H:p(g(d(m("hour",1),!1))),hh:c(p(g(d(m("hour",2),!0)))),h:p(g(d(m("hour",1),!0))),jj:g(m("hour",2)),j:g(m("hour",1)),mm:c(g(m("minute",2))),m:g(m("minute",1)),ss:c(g(m("second",2))),s:g(m("second",1)),sss:g(m("second",3)),EEEE:g(y("weekday",4)),EEE:g(y("weekday",3)),EE:g(y("weekday",2)),E:g(y("weekday",1)),a:l(g(d(m("hour",1),!0))),Z:f("short"),z:f("long"),ww:g({}),w:g({}),G:g(y("era",1)),GG:g(y("era",2)),GGG:g(y("era",3)),GGGG:g(y("era",4))},_t=new Map,bt=function(){function t(){}return t.format=function(t,e,r){return _(r,t,e)},t}(),wt=/^(\d+)?\.((\d+)(-(\d+))?)?$/,Ct=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,r){return w(t,this._locale,e,dt.Decimal,r)},t}();Ct.decorators=[{type:e.Pipe,args:[{name:"number"}]}],Ct.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var Et=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,r){return w(t,this._locale,e,dt.Percent,r)},t}();Et.decorators=[{type:e.Pipe,args:[{name:"percent"}]}],Et.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var St=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,r,n,o){return void 0===r&&(r="USD"),void 0===n&&(n=!1),w(t,this._locale,e,dt.Currency,o,r,n)},t}();St.decorators=[{type:e.Pipe,args:[{name:"currency"}]}],St.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var xt=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Tt=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,r){void 0===r&&(r="mediumDate");var n;if(S(e)||e!==e)return null;if("string"==typeof e&&(e=e.trim()),x(e))n=e;else if(E(e))n=new Date(parseFloat(e));else if("string"==typeof e&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){var o=e.split("-").map(function(t){return parseInt(t,10)}),i=o[0],s=o[1],u=o[2];n=new Date(i,s-1,u)}else n=new Date(e);if(!x(n)){var c=void 0;if("string"!=typeof e||!(c=e.match(xt)))throw a(t,e);n=T(c)}return bt.format(n,this._locale,t._ALIASES[r]||r)},t}();Tt._ALIASES={medium:"yMMMdjms","short":"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},Tt.decorators=[{type:e.Pipe,args:[{name:"date",pure:!0}]}],Tt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var Pt=/#/g,At=function(){function t(t){this._localization=t}return t.prototype.transform=function(e,r){if(null==e)return"";if("object"!=typeof r||null===r)throw a(t,r);var n=o(e,Object.keys(r),this._localization);return r[n].replace(Pt,e.toString())},t}();At.decorators=[{type:e.Pipe,args:[{name:"i18nPlural",pure:!0}]}],At.ctorParameters=function(){return[{type:U}]};var Ot=function(){function t(){}return t.prototype.transform=function(e,r){if(null==e)return"";if("object"!=typeof r||"string"!=typeof e)throw a(t,r);return r.hasOwnProperty(e)?r[e]:r.hasOwnProperty("other")?r.other:""},t}();Ot.decorators=[{type:e.Pipe,args:[{name:"i18nSelect",pure:!0}]}],Ot.ctorParameters=function(){return[]};var Mt=function(){function t(){}return t.prototype.transform=function(t){return JSON.stringify(t,null,2)},t}();Mt.decorators=[{type:e.Pipe,args:[{name:"json",pure:!1}]}],Mt.ctorParameters=function(){return[]};var Rt=function(){function t(){}return t.prototype.transform=function(e,r,n){if(null==e)return e;if(!this.supports(e))throw a(t,e);return e.slice(r,n)},t.prototype.supports=function(t){return"string"==typeof t||Array.isArray(t)},t}();Rt.decorators=[{type:e.Pipe,args:[{name:"slice",pure:!1}]}],Rt.ctorParameters=function(){return[]};var kt=[lt,ft,pt,Mt,Rt,Ct,Et,ht,St,Tt,At,Ot],It=function(){function t(){}return t}();It.decorators=[{type:e.NgModule,args:[{declarations:[it,kt],exports:[it,kt],providers:[{provide:U,useClass:B}]}]}],It.ctorParameters=function(){return[]};var Nt="browser",Dt="server",jt="browserWorkerApp",Lt="browserWorkerUi",Vt=new e.Version("4.1.0");t.NgLocaleLocalization=B,t.NgLocalization=U,t.CommonModule=It,t.NgClass=q,t.NgFor=K,t.NgForOf=W,t.NgForOfContext=G,t.NgIf=Q,t.NgIfContext=X,t.NgPlural=et,t.NgPluralCase=rt,t.NgStyle=nt,t.NgSwitch=Y,t.NgSwitchCase=J,t.NgSwitchDefault=tt,t.NgTemplateOutlet=ot,t.NgComponentOutlet=z,t.AsyncPipe=lt,t.DatePipe=Tt,t.I18nPluralPipe=At,t.I18nSelectPipe=Ot,t.JsonPipe=Mt,t.LowerCasePipe=pt,t.CurrencyPipe=St,t.DecimalPipe=Ct,t.PercentPipe=Et,t.SlicePipe=Rt,t.UpperCasePipe=ft,t.TitleCasePipe=ht,t.ɵPLATFORM_BROWSER_ID=Nt,t.ɵPLATFORM_SERVER_ID=Dt,t.ɵPLATFORM_WORKER_APP_ID=jt,t.ɵPLATFORM_WORKER_UI_ID=Lt,t.isPlatformBrowser=A,t.isPlatformServer=O,t.isPlatformWorkerApp=M,t.isPlatformWorkerUi=R,t.VERSION=Vt,t.PlatformLocation=I,t.LOCATION_INITIALIZED=N,t.LocationStrategy=D,t.APP_BASE_HREF=j,t.HashLocationStrategy=V,t.PathLocationStrategy=F,t.Location=L,t.ɵa=it,t.ɵb=kt,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8}],7:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/core")):"function"==typeof t&&t.amd?t(["exports","@angular/core"],i):i((o.ng=o.ng||{},o.ng.compiler=o.ng.compiler||{}),o.ng.core)}(this,function(t,e){"use strict";function r(t,e,r){void 0===r&&(r=null);var n=[],o=t.visit?function(e){return t.visit(e,r)||e.visit(t,r);
-
-}:function(e){return e.visit(t,r)};return e.forEach(function(t){var e=o(t);e&&n.push(e)}),n}function n(t){if(":"!=t[0])return[null,t];var e=t.indexOf(":",1);if(-1==e)throw new Error('Unsupported format "'+t+'" expecting ":namespace:name"');return[t.slice(1,e),t.slice(e+1)]}function o(t){return"ng-container"===n(t)[1]}function i(t){return"ng-content"===n(t)[1]}function s(t){return"ng-template"===n(t)[1]}function a(t){return null===t?null:n(t)[0]}function u(t,e){return t?":"+t+":"+e:e}function c(t){return bo[t.toLowerCase()]||wo}function l(t){return t.replace(Ao,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[1].toUpperCase()})}function p(t,e){return f(t,":",e)}function h(t,e){return f(t,".",e)}function f(t,e,r){var n=t.indexOf(e);return-1==n?r:[t.slice(0,n).trim(),t.slice(n+1).trim()]}function d(t,e,r){return Array.isArray(t)?e.visitArray(t,r):b(t)?e.visitStringMap(t,r):null==t||"string"==typeof t||"number"==typeof t||"boolean"==typeof t?e.visitPrimitive(t,r):e.visitOther(t,r)}function m(t){return null!==t&&void 0!==t}function y(t){return void 0===t?null:t}function v(t){var e=Error(t);return e[Ro]=!0,e}function g(t){return t[Ro]}function _(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(t){return"object"==typeof t&&null!==t&&Object.getPrototypeOf(t)===ko}function w(t){for(var e="",r=0;r<t.length;r++){var n=t.charCodeAt(r);if(n>=55296&&56319>=n&&t.length>r+1){var o=t.charCodeAt(r+1);o>=56320&&57343>=o&&(r++,n=(n-55296<<10)+o-56320+65536)}127>=n?e+=String.fromCharCode(n):2047>=n?e+=String.fromCharCode(n>>6&31|192,63&n|128):65535>=n?e+=String.fromCharCode(n>>12|224,n>>6&63|128,63&n|128):2097151>=n&&(e+=String.fromCharCode(n>>18&7|240,n>>12&63|128,n>>6&63|128,63&n|128))}return e}function C(t){return t.replace(/\W/g,"_")}function E(t){if(!t||!t.reference)return null;var r=t.reference;if(r instanceof mo)return r.name;if(r.__anonymousType)return r.__anonymousType;var n=e.ɵstringify(r);return n.indexOf("(")>=0?(n="anonymous_"+Go++,r.__anonymousType=n):n=C(n),n}function S(t){var r=t.reference;return r instanceof mo?r.filePath:e.ɵreflector.importUri(r)}function x(t,e){return"View_"+E({reference:t})+"_"+e}function T(t){return"RenderType_"+E({reference:t})}function P(t){return"HostView_"+E({reference:t})}function A(t){return"Wrapper_"+E({reference:t})}function O(t){return E({reference:t})+"NgFactory"}function M(t){return null!=t.value?C(t.value):E(t.identifier)}function R(t){return null!=t.identifier?t.identifier.reference:t.value}function k(t,r,n){var o=Eo.parse(r.selector)[0].getMatchingElementTemplate();return Qo.create({isHost:!0,type:{reference:t,diDeps:[],lifecycleHooks:[]},template:new Ko({encapsulation:e.ViewEncapsulation.None,template:o,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[],animations:[],isInline:!0,externalStylesheets:[],interpolation:null}),exportAs:null,changeDetection:e.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},isComponent:!0,selector:"*",providers:[],viewProviders:[],queries:[],viewQueries:[],componentViewType:n,rendererType:{id:"__Host__",encapsulation:e.ViewEncapsulation.None,styles:[],data:{}},entryComponents:[],componentFactory:null})}function I(t){return t||[]}function N(t){return t.reduce(function(t,e){var r=Array.isArray(e)?N(e):e;return t.concat(r)},[])}function D(t){return t.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function j(t,e,r){var n;return n=r.isInline?e.type.reference instanceof mo?e.type.reference.filePath+"."+e.type.reference.name+".html":E(t)+"/"+E(e.type)+".html":r.templateUrl,D(n)}function L(t,e){var r=t.moduleUrl.split(/\/\\/g),n=r[r.length-1];return D("css/"+e+n+".ngstyle.js")}function V(t){return D(E(t.type)+"/module.ngfactory.js")}function F(t,e){return D(E(t)+"/"+E(e.type)+".ngfactory.js")}function U(t){return t>=Oi&&Ni>=t||t==Ps}function B(t){return t>=rs&&ns>=t}function H(t){return t>=ds&&Es>=t||t>=os&&us>=t}function q(t){return t>=ds&&ys>=t||t>=os&&ss>=t||B(t)}function z(){return function(t){return t}}function G(t,r){if(e.isDevMode()&&null!=r){if(!Array.isArray(r))throw new Error("Expected '"+t+"' to be an array of strings.");for(var n=0;n<r.length;n+=1)if("string"!=typeof r[n])throw new Error("Expected '"+t+"' to be an array of strings.")}}function W(t,r){if(!(null==r||Array.isArray(r)&&2==r.length))throw new Error("Expected '"+t+"' to be an array, [start, end].");if(e.isDevMode()&&null!=r){var n=r[0],o=r[1];Os.forEach(function(t){if(t.test(n)||t.test(o))throw new Error("['"+n+"', '"+o+"'] contains unusable interpolation symbol.")})}}function $(t,e){return new Ds(t,ks.Character,e,String.fromCharCode(e))}function K(t,e){return new Ds(t,ks.Identifier,0,e)}function Q(t,e){return new Ds(t,ks.Keyword,0,e)}function X(t,e){return new Ds(t,ks.Operator,0,e)}function Z(t,e){return new Ds(t,ks.String,0,e)}function Y(t,e){return new Ds(t,ks.Number,e,"")}function J(t,e){return new Ds(t,ks.Error,0,e)}function tt(t){return t>=ds&&Es>=t||t>=os&&us>=t||t==fs||t==Vi}function et(t){if(0==t.length)return!1;var e=new Ls(t);if(!tt(e.peek))return!1;for(e.advance();e.peek!==Ai;){if(!rt(e.peek))return!1;e.advance()}return!0}function rt(t){return H(t)||B(t)||t==fs||t==Vi}function nt(t){return t==ms||t==is}function ot(t){return t==$i||t==Gi}function it(t){return t===Bi||t===ji||t===As}function st(t){switch(t){case vs:return Mi;case ys:return ki;case gs:return Ii;case _s:return Oi;case ws:return Ri;default:return t}}function at(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}function ut(t){var e=_(t.start)+"([\\s\\S]*?)"+_(t.end);return new RegExp(e,"g")}function ct(t,e){var r=S(e),n=null!=r?"in "+t+" "+E(e)+" in "+r:"in "+t+" "+E(e),o=new zs("",n);return new Gs(new qs(o,-1,-1,-1),new qs(o,-1,-1,-1))}function lt(t,e,r){void 0===r&&(r=null);var n=[],o=t.visit?function(e){return t.visit(e,r)||e.visit(t,r)}:function(e){return e.visit(t,r)};return e.forEach(function(t){var e=o(t);e&&n.push(e)}),n}function pt(t,e,r,n,o){return void 0===n&&(n=!1),void 0===o&&(o=Rs),new sa(new zs(t,e),r,n,o).tokenize()}function ht(t){var e=t===Ai?"EOF":String.fromCharCode(t);return'Unexpected character "'+e+'"'}function ft(t){return'Unknown entity "'+t+'" - use the "&#<decimal>;" or  "&#x<hex>;" syntax'}function dt(t){return!U(t)||t===Ai}function mt(t){return U(t)||t===ts||t===Qi||t===Bi||t===ji||t===Ji}function yt(t){return(ds>t||t>Es)&&(os>t||t>us)&&(rs>t||t>ns)}function vt(t){return t==Zi||t==Ai||!q(t)}function gt(t){return t==Zi||t==Ai||!H(t)}function _t(t,e,r){var n=r?t.indexOf(r.start,e)==e:!1;return t.charCodeAt(e)==Ss&&!n}function bt(t){return t===Ji||H(t)}function wt(t,e){return Ct(t)==Ct(e)}function Ct(t){return t>=ds&&Es>=t?t-ds+os:t}function Et(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var o=t[n];r&&r.type==ta.TEXT&&o.type==ta.TEXT?(r.parts[0]+=o.parts[0],r.sourceSpan.end=o.sourceSpan.end):(r=o,e.push(r))}return e}function St(t,e){return t.length>0&&t[t.length-1]===e}function xt(t){var e=new Ea(Ca,t);return function(t,r,n,o){return e.toI18nMessage(t,r,n,o)}}function Tt(t){return t.split(Sa)[2]}function Pt(t,e,r,n){var o=new Ia(r,n);return o.extract(t,e)}function At(t,e,r,n,o){var i=new Ia(n,o);return i.merge(t,e,r)}function Ot(t){return!!(t instanceof Js&&t.value&&t.value.startsWith("i18n"))}function Mt(t){return!!(t instanceof Js&&t.value&&"/i18n"===t.value)}function Rt(t){return t.attrs.find(function(t){return t.name===Ta})||null}function kt(t){if(!t)return{meaning:"",description:"",id:""};var e=t.indexOf(Ma),r=t.indexOf(Oa),n=e>-1?[t.slice(0,e),t.slice(e+2)]:[t,""],o=n[0],i=n[1],s=r>-1?[o.slice(0,r),o.slice(r+1)]:["",o],a=s[0],u=s[1];return{meaning:a,description:u,id:i}}function It(){return Da}function Nt(t){return t.id||Lt(jt(t.nodes).join("")+("["+t.meaning+"]"))}function Dt(t){if(t.id)return t.id;var e=new Fa,r=t.nodes.map(function(t){return t.visit(e,null)});return Ut(r.join(""),t.meaning)}function jt(t){return t.map(function(t){return t.visit(Va,null)})}function Lt(t){var e=w(t),r=Qt(e,Ua.Big),n=8*e.length,o=new Array(80),i=[1732584193,4023233417,2562383102,271733878,3285377520],s=i[0],a=i[1],u=i[2],c=i[3],l=i[4];r[n>>5]|=128<<24-n%32,r[(n+64>>9<<4)+15]=n;for(var p=0;p<r.length;p+=16){for(var h=[s,a,u,c,l],f=h[0],d=h[1],m=h[2],y=h[3],v=h[4],g=0;80>g;g++){o[g]=16>g?r[p+g]:$t(o[g-3]^o[g-8]^o[g-14]^o[g-16],1);var _=Vt(g,a,u,c),b=_[0],C=_[1],E=[$t(s,5),b,l,C,o[g]].reduce(qt);S=[c,u,$t(a,30),s,E],l=S[0],c=S[1],u=S[2],a=S[3],s=S[4]}x=[qt(s,f),qt(a,d),qt(u,m),qt(c,y),qt(l,v)],s=x[0],a=x[1],u=x[2],c=x[3],l=x[4]}return te(Yt([s,a,u,c,l]));var S,x}function Vt(t,e,r,n){return 20>t?[e&r|~e&n,1518500249]:40>t?[e^r^n,1859775393]:60>t?[e&r|e&n|r&n,2400959708]:[e^r^n,3395469782]}function Ft(t){var e=w(t),r=[Bt(e,0),Bt(e,102072)],n=r[0],o=r[1];return 0!=n||0!=o&&1!=o||(n=319790063^n,o=-1801410264^o),[n,o]}function Ut(t,e){var r=Ft(t),n=r[0],o=r[1];if(e){var i=Ft(e),s=i[0],a=i[1];u=Gt(Kt([n,o],1),[s,a]),n=u[0],o=u[1]}return ee(Yt([2147483647&n,o]));var u}function Bt(t,e){var r,n=[2654435769,2654435769],o=n[0],i=n[1],s=t.length;for(r=0;s>=r+12;r+=12)o=qt(o,Zt(t,r,Ua.Little)),i=qt(i,Zt(t,r+4,Ua.Little)),e=qt(e,Zt(t,r+8,Ua.Little)),a=Ht([o,i,e]),o=a[0],i=a[1],e=a[2];return o=qt(o,Zt(t,r,Ua.Little)),i=qt(i,Zt(t,r+4,Ua.Little)),e=qt(e,s),e=qt(e,Zt(t,r+8,Ua.Little)<<8),Ht([o,i,e])[2];var a}function Ht(t){var e=t[0],r=t[1],n=t[2];return e=Wt(e,r),e=Wt(e,n),e^=n>>>13,r=Wt(r,n),r=Wt(r,e),r^=e<<8,n=Wt(n,e),n=Wt(n,r),n^=r>>>13,e=Wt(e,r),e=Wt(e,n),e^=n>>>12,r=Wt(r,n),r=Wt(r,e),r^=e<<16,n=Wt(n,e),n=Wt(n,r),n^=r>>>5,e=Wt(e,r),e=Wt(e,n),e^=n>>>3,r=Wt(r,n),r=Wt(r,e),r^=e<<10,n=Wt(n,e),n=Wt(n,r),n^=r>>>15,[e,r,n]}function qt(t,e){return zt(t,e)[1]}function zt(t,e){var r=(65535&t)+(65535&e),n=(t>>>16)+(e>>>16)+(r>>>16);return[n>>>16,n<<16|65535&r]}function Gt(t,e){var r=t[0],n=t[1],o=e[0],i=e[1],s=zt(n,i),a=s[0],u=s[1],c=qt(qt(r,o),a);return[c,u]}function Wt(t,e){var r=(65535&t)-(65535&e),n=(t>>16)-(e>>16)+(r>>16);return n<<16|65535&r}function $t(t,e){return t<<e|t>>>32-e}function Kt(t,e){var r=t[0],n=t[1],o=r<<e|n>>>32-e,i=n<<e|r>>>32-e;return[o,i]}function Qt(t,e){for(var r=Array(t.length+3>>>2),n=0;n<r.length;n++)r[n]=Zt(t,4*n,e);return r}function Xt(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function Zt(t,e,r){var n=0;if(r===Ua.Big)for(var o=0;4>o;o++)n+=Xt(t,e+o)<<24-8*o;else for(var o=0;4>o;o++)n+=Xt(t,e+o)<<8*o;return n}function Yt(t){return t.reduce(function(t,e){return t+Jt(e)},"")}function Jt(t){for(var e="",r=0;4>r;r++)e+=String.fromCharCode(t>>>8*(3-r)&255);return e}function te(t){for(var e="",r=0;r<t.length;r++){var n=Xt(t,r);e+=(n>>>4).toString(16)+(15&n).toString(16)}return e.toLowerCase()}function ee(t){for(var e="",r="1",n=t.length-1;n>=0;n--)e=re(e,ne(Xt(t,n),r)),r=ne(256,r);return e.split("").reverse().join("")}function re(t,e){for(var r="",n=Math.max(t.length,e.length),o=0,i=0;n>o||i;o++){var s=i+ +(t[o]||0)+ +(e[o]||0);s>=10?(i=1,r+=s-10):(i=0,r+=s)}return r}function ne(t,e){for(var r="",n=e;0!==t;t>>>=1)1&t&&(r=re(r,n)),n=re(n,n);return r}function oe(t){return t.map(function(t){return t.visit(za)}).join("")}function ie(t){return Xa.reduce(function(t,e){return t.replace(e[0],e[1])},t)}function se(t){switch(t.toLowerCase()){case"br":return"lb";case"img":return"image";default:return"x-"+t}}function ae(t){switch(t.toLowerCase()){case"br":case"b":case"i":case"u":return"fmt";case"img":return"image";case"a":return"link";default:return"other"}}function ue(t){return Dt(t)}function ce(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function le(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){var n=r();return Object.defineProperty(t,e,{enumerable:!0,value:n}),n},set:function(){throw new Error("Could not overwrite an XTB translation")}})}function pe(t){switch(t=(t||"xlf").toLowerCase()){case"xmb":return new Mu;case"xtb":return new ju;case"xliff2":case"xlf2":return new bu;case"xliff":case"xlf":default:return new au}}function he(t,e,r){return void 0===e&&(e=null),void 0===r&&(r="src"),null==e?"@angular/"+t:"@angular/"+t+"/"+r+"/"+e}function fe(t){var r=t.name;return e.ɵreflector.resolveIdentifier(r,t.moduleUrl,null,t.runtime)}function de(t){return{reference:fe(t)}}function me(t){return{identifier:t}}function ye(t){return me(de(t))}function ve(t){var e=new Ku;return new Wu(lt(e,t),e.isExpanded,e.errors)}function ge(t,e){var r=t.cases.map(function(t){-1!=Gu.indexOf(t.value)||t.value.match(/^=\d+$/)||e.push(new $u(t.valueSourceSpan,'Plural cases should be "=<number>" or one of '+Gu.join(", ")));var r=ve(t.expression);return e.push.apply(e,r.errors),new Ys("ng-template",[new Zs("ngPluralCase",""+t.value,t.valueSourceSpan)],r.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),n=new Zs("[ngPlural]",t.switchValue,t.switchValueSourceSpan);return new Ys("ng-container",[n],r,t.sourceSpan,t.sourceSpan,t.sourceSpan)}function _e(t,e){var r=t.cases.map(function(t){var r=ve(t.expression);return e.push.apply(e,r.errors),"other"===t.value?new Ys("ng-template",[new Zs("ngSwitchDefault","",t.valueSourceSpan)],r.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan):new Ys("ng-template",[new Zs("ngSwitchCase",""+t.value,t.valueSourceSpan)],r.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),n=new Zs("[ngSwitch]",t.switchValue,t.switchValueSourceSpan);return new Ys("ng-container",[n],r,t.sourceSpan,t.sourceSpan,t.sourceSpan)}function be(t,e){var r=e.useExisting,n=e.useValue,o=e.deps;return{token:t.token,useClass:t.useClass,useExisting:r,useFactory:t.useFactory,useValue:n,deps:o,multi:t.multi}}function we(t,e){var r=e.eager,n=e.providers;return new lo(t.token,t.multiProvider,t.eager||r,n,t.providerType,t.lifecycleHooks,t.sourceSpan)}function Ce(t,e,r){var n=new Map;t.forEach(function(t){var o={token:{identifier:t.type},useClass:t.type};Ee([o],t.isComponent?po.Component:po.Directive,!0,e,r,n)});var o=t.filter(function(t){return t.isComponent}).concat(t.filter(function(t){return!t.isComponent}));return o.forEach(function(t){Ee(t.providers,po.PublicService,!1,e,r,n),Ee(t.viewProviders,po.PrivateService,!1,e,r,n)}),n}function Ee(t,e,r,n,o,i){t.forEach(function(t){var s=i.get(R(t.token));if(null!=s&&!!s.multiProvider!=!!t.multi&&o.push(new Qu("Mixing multi and non multi provider is not possible for token "+M(s.token),n)),s)t.multi||(s.providers.length=0),s.providers.push(t);else{var a=t.token.identifier&&t.token.identifier.lifecycleHooks?t.token.identifier.lifecycleHooks:[],u=!(t.useClass||t.useExisting||t.useFactory);s=new lo(t.token,!!t.multi,r||u,[t],e,a,n),i.set(R(t.token),s)}})}function Se(t){var e=1,r=new Map;return t.viewQueries&&t.viewQueries.forEach(function(t){return Te(r,{meta:t,queryId:e++})}),r}function xe(t,e){var r=t,n=new Map;return e.forEach(function(t){t.queries&&t.queries.forEach(function(t){return Te(n,{meta:t,queryId:r++})})}),n}function Te(t,e){e.meta.selectors.forEach(function(r){var n=t.get(R(r));n||(n=[],t.set(R(r),n)),n.push(e)})}function Pe(t){if(null==t||0===t.length||"/"==t[0])return!1;var e=t.match(nc);return null===e||"package"==e[1]||"asset"==e[1]}function Ae(t,e,r){var n=[],o=r.replace(rc,"").replace(ec,function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];var i=r[1]||r[2];return Pe(i)?(n.push(t.resolve(e,i)),""):r[0]});return new tc(o,n)}function Oe(t){return"@"==t[0]}function Me(t,r,n,o){var i=[];return Eo.parse(r).forEach(function(e){var r=e.element?[e.element]:t.allKnownElementNames(),s=new Set(e.notSelectors.filter(function(t){return t.isElementSelector()}).map(function(t){return t.element})),a=r.filter(function(t){return!s.has(t)});i.push.apply(i,a.map(function(e){return t.securityContext(e,n,o)}))}),0===i.length?[e.SecurityContext.NONE]:Array.from(new Set(i)).sort()}function Re(t){var e=null,r=null,n=null,o=!1,s=null;t.attrs.forEach(function(t){var i=t.name.toLowerCase();i==fc?e=t.value:i==yc?r=t.value:i==mc?n=t.value:t.name==bc?o=!0:t.name==wc&&t.value.length>0&&(s=t.value)}),e=ke(e);var a=t.name.toLowerCase(),u=Cc.OTHER;return i(a)?u=Cc.NG_CONTENT:a==gc?u=Cc.STYLE:a==_c?u=Cc.SCRIPT:a==dc&&n==vc&&(u=Cc.STYLESHEET),new Ec(u,e,r,o,s)}function ke(t){return null===t||0===t.length?"*":t}function Ie(t){return function(e){return-1!==t.indexOf(e.msg)?(Hc[e.msg]=(Hc[e.msg]||0)+1,Hc[e.msg]<=1):!0}}function Ne(t){return t.trim().split(/\s+/g)}function De(t,e){var r=new Eo,o=n(t)[1];r.setElement(o);for(var i=0;i<e.length;i++){var s=e[i][0],a=n(s)[1],u=e[i][1];if(r.addAttribute(a,u),s.toLowerCase()==Vc){var c=Ne(u);c.forEach(function(t){return r.addClassName(t)})}}return r}function je(t){return t instanceof Ks&&0==t.value.trim().length}function Le(t){var e=new Map;return t.forEach(function(t){e.get(t.type.reference)||e.set(t.type.reference,t)}),Array.from(e.values())}function Ve(t){return t instanceof Si&&(t=t.ast),t instanceof ii}function Fe(t,e,r){if(s(t.name))return!0;var o=n(t.name)[1];return o.toLowerCase()===Dc&&e&&o.toLowerCase()===Dc?(r(Uc,t.sourceSpan),!0):!1}function Ue(){return new el}function Be(){return new el(".")}function He(t){var e=ze(t);return e&&e[nl.Scheme]||""}function qe(t,e,r,n,o,i,s){var a=[];return null!=t&&a.push(t+":"),null!=r&&(a.push("//"),null!=e&&a.push(e+"@"),a.push(r),null!=n&&a.push(":"+n)),null!=o&&a.push(o),null!=i&&a.push("?"+i),null!=s&&a.push("#"+s),a.join("")}function ze(t){return t.match(rl)}function Ge(t){if("/"==t)return"/";for(var e="/"==t[0]?"/":"",r="/"===t[t.length-1]?"/":"",n=t.split("/"),o=[],i=0,s=0;s<n.length;s++){var a=n[s];switch(a){case"":case".":break;case"..":o.length>0?o.pop():i++;break;default:o.push(a)}}if(""==e){for(;i-->0;)o.unshift("..");0===o.length&&o.push(".")}return e+o.join("/")+r}function We(t){var e=t[nl.Path];return e=null==e?"":Ge(e),t[nl.Path]=e,qe(t[nl.Scheme],t[nl.UserInfo],t[nl.Domain],t[nl.Port],e,t[nl.QueryData],t[nl.Fragment])}function $e(t,e){var r=ze(encodeURI(e)),n=ze(t);if(null!=r[nl.Scheme])return We(r);r[nl.Scheme]=n[nl.Scheme];for(var o=nl.Scheme;o<=nl.Port;o++)null==r[o]&&(r[o]=n[o]);if("/"==r[nl.Path][0])return We(r);var i=n[nl.Path];null==i&&(i="/");var s=i.lastIndexOf("/");return i=i.substring(0,s+1)+r[nl.Path],r[nl.Path]=i,We(r)}function Ke(t){return t instanceof e.Directive}function Qe(t,e){for(var r=t.length-1;r>=0;r--)if(e(t[r]))return t[r];return null}function Xe(t){var e=Je(t);return e[0]+".ngfactory"+e[1]}function Ze(t){return t.replace(cl,".")}function Ye(t){return cl.test(t)}function Je(t){if(t.endsWith(".d.ts"))return[t.slice(0,-5),".ts"];var e=t.lastIndexOf(".");return-1!==e?[t.substring(0,e),t.substring(e)]:[t,""]}function tr(t){var e=t.replace(ul,"");return e+".ngsummary.json"}function er(t,r){return e.ɵreflector.hasLifecycleHook(r,rr(t))}function rr(t){switch(t){case e.ɵLifecycleHooks.OnInit:return"ngOnInit";case e.ɵLifecycleHooks.OnDestroy:return"ngOnDestroy";case e.ɵLifecycleHooks.DoCheck:return"ngDoCheck";case e.ɵLifecycleHooks.OnChanges:return"ngOnChanges";case e.ɵLifecycleHooks.AfterContentInit:return"ngAfterContentInit";case e.ɵLifecycleHooks.AfterContentChecked:return"ngAfterContentChecked";case e.ɵLifecycleHooks.AfterViewInit:return"ngAfterViewInit";case e.ɵLifecycleHooks.AfterViewChecked:return"ngAfterViewChecked"}}function nr(t){return t instanceof e.NgModule}function or(t){return t instanceof e.Pipe}function ir(t,r){if(void 0===r&&(r=[]),t)for(var n=0;n<t.length;n++){var o=e.resolveForwardRef(t[n]);Array.isArray(o)?ir(o,r):r.push(o)}return r}function sr(t){return t?Array.from(new Set(t)):[]}function ar(t){return sr(ir(t))}function ur(t){return t instanceof mo||t instanceof e.Type}function cr(t,e,r){if(e instanceof mo)return t.resourceUri(e);var n=r.moduleId;if("string"==typeof n){var o=He(n);return o?n:"package:"+n+Po}if(null!==n&&void 0!==n)throw v('moduleId should be a string in "'+pr(e)+"\". See https://goo.gl/wIDDiL for more information.\nIf you're using Webpack you should inline the template and the styles, see https://goo.gl/X2J8zc.");return t.importUri(e)}function lr(t,e){d(t,new ml,e)}function pr(t){return t instanceof mo?t.name+" in "+t.filePath:e.ɵstringify(t)}function hr(t){var r=Error("Can't compile synchronously as "+e.ɵstringify(t)+" is still being loaded!");return r[e.ɵERROR_COMPONENT_TYPE]=t,r}function fr(t){var e=new vp;return e.visitAllStatements(t,null),e.varNames}function dr(t,e){if(!e)return t;var r=new gp(e);return t.visitStatement(r,null)}function mr(t,e){if(!e)return t;var r=new gp(e);return t.visitExpression(r,null)}function yr(t,e,r){return new Ol(t,e,r)}function vr(t,e,r){return void 0===e&&(e=null),new Vl(t,null,e,r)}function gr(t,e,r){return void 0===e&&(e=null),void 0===r&&(r=null),null!=t?_r(vr(t,e,null),r):null}function _r(t,e){return void 0===e&&(e=null),null!=t?new bl(t,e):null}function br(t,e,r){return new $l(t,e,r)}function wr(t,e,r){return void 0===e&&(e=null),void 0===r&&(r=!1),new Ql(t.map(function(t){return new Kl(t[0],t[1],r)}),e,null)}function Cr(t,e){return new Ul(t,e)}function Er(t,e,r,n){return new ql(t,e,r,n)}function Sr(t,e,r){return new Ll(t,e,r)}function xr(t){var e=t.parentArgs||[],r=t.parent?[Yl.callFn(e).toStmt()]:[],n=Tr(Array.isArray(t.builders)?t.builders:[t.builders]),o=new cp(null,t.ctorParams||[],r.concat(n.ctorStmts));return new pp(t.name,t.parent||null,n.fields,n.getters,o,n.methods,t.modifiers||[],t.sourceSpan)}function Tr(t){return{fields:[].concat.apply([],t.map(function(t){return t.fields||[]})),methods:[].concat.apply([],t.map(function(t){return t.methods||[]})),getters:[].concat.apply([],t.map(function(t){return t.getters||[]})),ctorStmts:[].concat.apply([],t.map(function(t){return t.ctorStmts||[]}))}}function Pr(t,e){return void 0===e&&(e=null),d(t,new bp,e)}function Ar(t){return null!=t.value?Sr(t.value):vr(t.identifier)}function Or(t){var e="";t=w(t);for(var r=0;r<t.length;){var n=t.charCodeAt(r++),o=t.charCodeAt(r++),i=t.charCodeAt(r++);e+=Rr(n>>2),e+=Rr((3&n)<<4|(isNaN(o)?0:o>>4)),e+=isNaN(o)?"=":Rr((15&o)<<2|i>>6),e+=isNaN(o)||isNaN(i)?"=":Rr(63&i)}return e}function Mr(t){t=0>t?(-t<<1)+1:t<<1;var e="";do{var r=31&t;t>>=5,t>0&&(r=32|r),e+=Rr(r)}while(t>0);return e}function Rr(t){if(0>t||t>=64)throw new Error("Can only encode value in the range [0, 63]");return Mp[t]}function kr(t,e,r){if(void 0===r&&(r=!0),null==t)return null;var n=t.replace(Rp,function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return"$"==t[0]?e?"\\$":"$":"\n"==t[0]?"\\n":"\r"==t[0]?"\\r":"\\"+t[0]}),o=r||!kp.test(n);return o?"'"+n+"'":n}function Ir(t){for(var e="",r=0;t>r;r++)e+=Ip;return e}function Nr(t){var e=new Bp(Fp,{fileNameToModuleName:function(t){return t},getImportAs:function(){return null},getTypeArity:function(){return null}}),r=Lp.createRoot([]),n=Array.isArray(t)?t:[t];return n.forEach(function(t){if(t instanceof rp)t.visitStatement(e,r);else if(t instanceof Pl)t.visitExpression(e,r);else{if(!(t instanceof vl))throw new Error("Don't know how to print debug info for "+t);t.visitType(e,r)}}),r.toSource()}function Dr(t,e){for(var r=0,n=e;r<n.length;r++){var o=n[r];Hp[o.toLowerCase()]=t}}function jr(t){switch(t){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}function Lr(t){return t.replace(dh,"")}function Vr(t){var e=t.match(mh);return e?e[0]:""}function Fr(t,e){var r=Ur(t),n=0;return r.escapedString.replace(yh,function(){for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];var i=t[2],s="",a=t[4],u="";a&&a.startsWith("{"+bh)&&(s=r.blocks[n++],a=a.substring(bh.length+1),u="{");var c=e(new wh(i,s));return""+t[1]+c.selector+t[3]+u+c.content+a})}function Ur(t){for(var e=t.split(vh),r=[],n=[],o=0,i=[],s=0;s<e.length;s++){var a=e[s];a==_h&&o--,o>0?i.push(a):(i.length>0&&(n.push(i.join("")),r.push(bh),i=[]),r.push(a)),a==gh&&o++}return i.length>0&&(n.push(i.join("")),r.push(bh)),new Ch(r.join(""),n)}function Br(t){var e="styles";return t&&(e+="_"+E(t.type)),e}function Hr(t,e,r,n){t||(t=new jh);var o=qr({createLiteralArrayConverter:function(){return function(t){return br(t)}},createLiteralMapConverter:function(t){return function(e){return wr(t.map(function(t,r){return[t,e[r]]}))}},createPipeConverter:function(t){throw new Error("Illegal State: Actions are not allowed to contain pipes. Pipe: "+t)}},r),i=new Dh(t,e,n),s=[];Yr(o.visit(i,Ih.Statement),s),Kr(i.temporaryCount,n,s);var a=s.length-1,u=null;if(a>=0){var c=s[a],l=en(c);l&&(u=tn(n),s[a]=u.set(l.cast(El).notIdentical(Sr(!1))).toDeclStmt(null,[ep.Final]))}return new Rh(s,u)}function qr(t,e){return Gr(t,e)}function zr(t,e,r,n){t||(t=new jh);var o=Jr(n),i=[],s=new Dh(t,e,n),a=r.visit(s,Ih.Expression);if(s.temporaryCount)for(var u=0;u<s.temporaryCount;u++)i.push($r(n,u));return i.push(o.set(a).toDeclStmt(null,[ep.Final])),new kh(i,o)}function Gr(t,e){var r=new Nh(t);return e.visit(r)}function Wr(t,e){return"tmp_"+t+"_"+e}function $r(t,e){return new np(Wr(t,e),Jl)}function Kr(t,e,r){for(var n=t-1;n>=0;n--)r.unshift($r(e,n))}function Qr(t,e){if(t!==Ih.Statement)throw new Error("Expected a statement, but saw "+e)}function Xr(t,e){if(t!==Ih.Expression)throw new Error("Expected an expression, but saw "+e)}function Zr(t,e){return t===Ih.Statement?e.toStmt():e}function Yr(t,e){Array.isArray(t)?t.forEach(function(t){return Yr(t,e)}):e.push(t)}function Jr(t){return yr("currVal_"+t)}function tn(t){return yr("pd_"+t)}function en(t){return t instanceof ip?t.expr:t instanceof sp?t.value:null}function rn(t){return t.multiProvider?nn(t.providers):on(t.providerType,t.providers[0])}function nn(t){function e(t,e){return e.map(function(e,o){var i="p"+t+"_"+o;return n.push(new Hl(i,El)),r.push(an(e)),yr(i)})}var r=[],n=[],o=t.map(function(t,r){var n;if(t.useClass){var o=e(r,t.deps||t.useClass.diDeps);n=vr(t.useClass).instantiate(o)}else if(t.useFactory){var o=e(r,t.deps||t.useFactory.diDeps);n=vr(t.useFactory).callFn(o)}else if(t.useExisting){var o=e(r,[{token:t.useExisting}]);n=o[0]}else n=Pr(t.useValue);return n}),i=Er(n,[new sp(br(o))],Sl);return{providerExpr:i,flags:512,depsExpr:br(r)}}function on(t,e){var r,n,o;t===po.Directive||t===po.Component?(r=vr(e.useClass),n=8192,o=e.deps||e.useClass.diDeps):e.useClass?(r=vr(e.useClass),n=256,o=e.deps||e.useClass.diDeps):e.useFactory?(r=vr(e.useFactory),n=512,o=e.deps||e.useFactory.diDeps):e.useExisting?(r=Jl,n=1024,o=[{token:e.useExisting}]):(r=Pr(e.useValue),n=128,o=[]);var i=br(o.map(function(t){return an(t)}));return{providerExpr:r,flags:n,depsExpr:i}}function sn(t){return t.identifier?vr(t.identifier):Sr(t.value)}function an(t){var e=t.isValue?Pr(t.value):sn(t.token),r=0;return t.isSkipSelf&&(r|=1),t.isOptional&&(r|=2),t.isValue&&(r|=8),0===r?e:br([Sr(r),e])}function un(t){var e=t[t.length-1];return e instanceof ao?e.hasViewContainer:e instanceof so?o(e.name)&&e.children.length?un(e.children):e.hasViewContainer:e instanceof ho}function cn(t){var r=0;switch(t){case e.ɵLifecycleHooks.AfterContentChecked:r=1048576;break;case e.ɵLifecycleHooks.AfterContentInit:r=524288;break;case e.ɵLifecycleHooks.AfterViewChecked:r=4194304;break;case e.ɵLifecycleHooks.AfterViewInit:r=2097152;break;case e.ɵLifecycleHooks.DoCheck:r=131072;break;case e.ɵLifecycleHooks.OnChanges:r=262144;break;case e.ɵLifecycleHooks.OnDestroy:r=65536;break;case e.ɵLifecycleHooks.OnInit:r=32768}return r}function ln(t,e){switch(t.type){case fo.Attribute:return br([Sr(1),Sr(t.name),Sr(t.securityContext)]);case fo.Property:return br([Sr(8),Sr(t.name),Sr(t.securityContext)]);case fo.Animation:var r=8|(e&&e.directive.isComponent?32:16);return br([Sr(r),Sr("@"+t.name),Sr(t.securityContext)]);case fo.Class:return br([Sr(2),Sr(t.name),Jl]);case fo.Style:return br([Sr(4),Sr(t.name),Sr(t.unit)])}}function pn(t){var e=Object.create(null);return t.attrs.forEach(function(t){e[t.name]=t.value}),t.directives.forEach(function(t){Object.keys(t.directive.hostAttributes).forEach(function(r){var n=t.directive.hostAttributes[r],o=e[r];e[r]=null!=o?hn(r,o,n):n})}),br(Object.keys(e).sort().map(function(t){return br([Sr(t),Sr(e[t])])}))}function hn(t,e,r){return t==Vh||t==Fh?e+" "+r:r}function fn(t,e){return Gh.callFn(e.length>10?[zh,Sr(t),Sr(1),br(e)]:[zh,Sr(t),Sr(0)].concat(e))}function dn(t,e,r){return vr(de(zu.unwrapValue)).callFn([zh,Sr(t),Sr(e),r])}function mn(t,e){return void 0===e&&(e=new Map),t.forEach(function(t){var r=new Set,n=new Set,o=void 0;t instanceof so?(mn(t.children,e),t.children.forEach(function(t){var o=e.get(t);o.staticQueryIds.forEach(function(t){return r.add(t)}),o.dynamicQueryIds.forEach(function(t){return n.add(t)})}),o=t.queryMatches):t instanceof ao&&(mn(t.children,e),t.children.forEach(function(t){var r=e.get(t);r.staticQueryIds.forEach(function(t){return n.add(t)}),r.dynamicQueryIds.forEach(function(t){return n.add(t)})}),o=t.queryMatches),o&&o.forEach(function(t){return r.add(t.queryId)}),n.forEach(function(t){return r["delete"](t)}),e.set(t,{staticQueryIds:r,dynamicQueryIds:n})}),e}function yn(t){var e=new Set,r=new Set;return Array.from(t.values()).forEach(function(t){t.staticQueryIds.forEach(function(t){return e.add(t)}),t.dynamicQueryIds.forEach(function(t){return r.add(t)})}),r.forEach(function(t){return e["delete"](t)}),{staticQueryIds:e,dynamicQueryIds:r}}function vn(t){var e=t.find(function(t){return t.directive.isComponent});if(e&&e.directive.entryComponents.length){var r=e.directive.entryComponents.map(function(t){return vr({reference:t.componentFactory})}),n=ye(zu.ComponentFactoryResolver),o={diDeps:[{isValue:!0,value:br(r)},{token:n,isSkipSelf:!0,isOptional:!0},{token:ye(zu.NgModuleRef)}],lifecycleHooks:[],reference:fe(zu.CodegenComponentFactoryResolver)};return new lo(n,!1,!0,[{token:n,multi:!1,useClass:o}],po.PrivateService,[],e.sourceSpan)}return null}function gn(t,e){return t.isAnimation?{name:"@"+t.name+"."+t.phase,target:e&&e.directive.isComponent?"component":null}:t}function _n(t,e,r){var n=0;return n|=!r||!t.staticQueryIds.has(e)&&t.dynamicQueryIds.has(e)?268435456:134217728}function bn(t,e,r,n){var o=new Zh(e,t);r.forEach(function(t){return o.addOrMergeSummary({symbol:t.symbol,metadata:t.metadata})});for(var i=0;i<o.symbols.length;i++){var s=o.symbols[i];if(t.isLibraryFile(s.filePath)){var a=t.resolveSummary(s);if(!a){var u=e.resolveSymbol(s);u&&(a={symbol:u.symbol,metadata:u.metadata})}a&&o.addOrMergeSummary(a)}}return n.forEach(function(e){if(o.addOrMergeSummary({symbol:e.type.reference,metadata:null,type:e}),e.summaryKind===Wo.NgModule){var r=e;r.exportedDirectives.concat(r.exportedPipes).forEach(function(e){var r=e.reference;if(t.isLibraryFile(r.filePath)){var n=t.resolveSummary(r);n&&o.addOrMergeSummary(n)}})}}),o.serialize()}function wn(t,e){var r=new Yh(t);return r.deserialize(e)}function Cn(t,e,r){return e.dependencies.forEach(function(e){e.valuePlaceholder.reference=t.getStaticSymbol(En(e.moduleUrl,e.isShimmed,r),e.name)}),e.statements}function En(t,e,r){return""+t+(e?".shim":"")+".ngstyle"+r}function Sn(t){if(!t.isComponent)throw new Error("Could not compile '"+E(t.type)+"' because it is not a component.")}function xn(t,e,r){var n=On(t,e,r),o=n.ngModules,i=n.symbolsMissingModule;return Pn(t,o,i,r)}function Tn(t,e,r){var n=xn(t,e,r);if(n.symbolsMissingModule&&n.symbolsMissingModule.length){var o=n.symbolsMissingModule.map(function(t){return"Cannot determine the module for class "+t.name+" in "+t.filePath+"! Add "+t.name+" to the NgModule to fix it."});throw v(o.join("\n"))}return n}function Pn(t,e,r,n){var o=new Map;e.forEach(function(t){return o.set(t.type.reference,t)});var i=new Map,s=new Map,a=new Map,u=new Map,c=new Map,l=new Set;t.forEach(function(t){var e=t.filePath;l.add(e),n.isInjectable(t)&&c.set(e,(c.get(e)||[]).concat(t))}),e.forEach(function(t){var e=t.type.reference.filePath;l.add(e),s.set(e,(s.get(e)||[]).concat(t.type.reference)),t.declaredDirectives.forEach(function(e){var r=e.reference.filePath;l.add(r),a.set(r,(a.get(r)||[]).concat(e.reference)),
-i.set(e.reference,t)}),t.declaredPipes.forEach(function(e){var r=e.reference.filePath;l.add(r),u.set(r,(u.get(r)||[]).concat(e.reference)),i.set(e.reference,t)})});var p=[];return l.forEach(function(t){var e=a.get(t)||[],r=u.get(t)||[],n=s.get(t)||[],o=c.get(t)||[];p.push({srcUrl:t,directives:e,pipes:r,ngModules:n,injectables:o})}),{ngModuleByPipeOrDirective:i,files:p,ngModules:e,symbolsMissingModule:r}}function An(t,e,r){var n=[];return e.filter(function(t){return r.isSourceFile(t)}).forEach(function(e){t.getSymbolsOf(e).forEach(function(e){var r=t.resolveSymbol(e),o=r.metadata;o&&"error"!=o.__symbolic&&n.push(r.symbol)})}),n}function On(t,e,r){var n=new Map,o=[],i=new Set,s=function(t){if(n.has(t)||!e.isSourceFile(t.filePath))return!1;var o=r.getNgModuleMetadata(t,!1);return o&&(n.set(o.type.reference,o),o.declaredDirectives.forEach(function(t){return i.add(t.reference)}),o.declaredPipes.forEach(function(t){return i.add(t.reference)}),o.transitiveModule.modules.forEach(function(t){return s(t.reference)})),!!o};t.forEach(function(t){s(t)||!r.isDirective(t)&&!r.isPipe(t)||o.push(t)});var a=o.filter(function(t){return!i.has(t)});return{ngModules:Array.from(n.values()),symbolsMissingModule:a}}function Mn(t){return"object"==typeof t&&t.name&&t.filePath}function Rn(t){return t&&"ignore"==t.__symbolic}function kn(t){switch(t.message){case"Reference to non-exported class":if(t.context&&t.context.className)return"Reference to a non-exported class "+t.context.className+". Consider exporting the class";break;case"Variable not initialized":return"Only initialized variables and constants can be referenced because the value of this variable is needed by the template compiler";case"Destructuring not supported":return"Referencing an exported destructured variable or constant is not supported by the template compiler. Consider simplifying this to avoid destructuring";case"Could not resolve type":if(t.context&&t.context.typeName)return"Could not resolve type "+t.context.typeName;break;case"Function call not supported":var e=t.context&&t.context.name?"Calling function '"+t.context.name+"', f":"F";return e+"unction calls are not supported. Consider replacing the function or lambda with a reference to an exported function";case"Reference to a local symbol":if(t.context&&t.context.name)return"Reference to a local (non-exported) symbol '"+t.context.name+"'. Consider exporting the symbol"}return t.message}function In(t){return"Error encountered resolving symbol values statically. "+kn(t)}function Nn(t,e){if(!t)return{};var r={};return Object.keys(t).forEach(function(n){var o=e(t[n],n);Rn(o)||(rf.test(n)?Object.defineProperty(r,n,{enumerable:!1,configurable:!0,value:o}):r[n]=o)}),r}function Dn(t){return null===t||"function"!=typeof t&&"object"!=typeof t}function jn(t,e,r,n){var o=new Error(t);return o.fileName=e,o.line=r,o.column=n,o}function Ln(t){return t.startsWith("___")?t.substr(1):t}function Vn(t,r){var n=r.translations||"",o=Be(),i=new yo,s=new pf(t,i),a=new lf(t,i,s),u=new of(s,a);tf.install(u);var c=new e.ɵConsole,l=new Hu(new Fu,n,r.i18nFormat,e.MissingTranslationStrategy.Warning,c),p=new ti({defaultEncapsulation:e.ViewEncapsulation.Emulated,useJit:!1,enableLegacyTemplate:r.enableLegacyTemplate!==!1}),h=new ol({get:function(e){return t.loadResource(e)}},o,l,p),f=new Us(new Ns),d=new Qp,m=new Wc(p,f,d,l,c,[]),y=new dl(p,new ll(u),new al(u),new pl(u),s,d,h,c,i,u),v={getImportAs:function(t){return a.getImportAs(t)},fileNameToModuleName:function(e,r){return t.fileNameToModuleName(e,r)},getTypeArity:function(t){return a.getTypeArity(t)}},g=new Hh(p,d),_=new Jh(p,t,y,m,new Oh(o),g,new Ep,new Up(v),s,r.locale||null,r.i18nFormat||null,r.genFilePreamble||null,a);return{compiler:_,reflector:u}}function Fn(t,e){var r=t.concat([new sp(br(e.map(function(t){return yr(t)})))]),n=new hf(null,null,null,new Map),o=new df,i=o.visitAllStatements(r,n);return null!=i?i.value:null}function Un(t,e,r,n,o){for(var i=n.createChildWihtLocalVars(),s=0;s<t.length;s++)i.vars.set(t[s],e[s]);var a=o.visitAllStatements(r,i);return a?a.value:null}function Bn(t,e,r){var n={};t.getters.forEach(function(o){n[o.name]={configurable:!1,get:function(){var n=new hf(e,this,t.name,e.vars);return Un([],[],o.body,n,r)}}}),t.methods.forEach(function(o){var i=o.params.map(function(t){return t.name});n[o.name]={writable:!1,configurable:!1,value:function(){for(var n=[],s=0;s<arguments.length;s++)n[s]=arguments[s];var a=new hf(e,this,t.name,e.vars);return Un(i,n,o.body,a,r)}}});var o=t.constructorMethod.params.map(function(t){return t.name}),i=function(){for(var n=this,i=[],s=0;s<arguments.length;s++)i[s]=arguments[s];var a=new hf(e,this,t.name,e.vars);t.fields.forEach(function(t){n[t.name]=void 0}),Un(o,i,t.constructorMethod.body,a,r)},s=t.parent?t.parent.visitExpression(r,e):Object;return i.prototype=Object.create(s.prototype,n),i}function Hn(t,e,r,n){return function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return Un(t,o,e,r,n)}}function qn(t,r,n){var o=r.toSource()+"\n//# sourceURL="+t,i=[],s=[];for(var a in n)i.push(a),s.push(n[a]);if(e.isDevMode()){var u=(new(Function.bind.apply(Function,[void 0].concat(i.concat("return null;"))))).toString(),c=u.slice(0,u.indexOf("return null;")).split("\n").length-1;o+="\n"+r.toSourceMapGenerator(t,t,c).toJsComment()}return(new(Function.bind.apply(Function,[void 0].concat(i.concat(o))))).apply(void 0,s)}function zn(t,e,r){var n=new gf,o=Lp.createRoot(r),i=new sp(br(r.map(function(t){return yr(t)})));return n.visitAllStatements(e.concat([i]),o),qn(t,o,n.getArgs())}function Gn(t){if(!t.isComponent)throw new Error("Could not compile '"+E(t.type)+"' because it is not a component.")}function Wn(t,e,r,n,o){return new Hu(t,e,r,n.missingTranslation,o)}function $n(){e.ɵreflector.reflectionCapabilities=new e.ɵReflectionCapabilities}function Kn(t){return{useJit:Qn(t.map(function(t){return t.useJit})),defaultEncapsulation:Qn(t.map(function(t){return t.defaultEncapsulation})),providers:Xn(t.map(function(t){return t.providers})),missingTranslation:Qn(t.map(function(t){return t.missingTranslation}))}}function Qn(t){for(var e=t.length-1;e>=0;e--)if(void 0!==t[e])return t[e];return void 0}function Xn(t){var e=[];return t.forEach(function(t){return t&&e.push.apply(e,t)}),e}var Zn=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},Yn=new e.Version("4.1.0"),Jn=function(){function t(t,e,r){this.value=t,this.ngContentIndex=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),to=function(){function t(t,e,r){this.value=t,this.ngContentIndex=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitBoundText(this,e)},t}(),eo=function(){function t(t,e,r){this.name=t,this.value=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitAttr(this,e)},t}(),ro=function(){function t(t,e,r,n,o,i){this.name=t,this.type=e,this.securityContext=r,this.value=n,this.unit=o,this.sourceSpan=i}return t.prototype.visit=function(t,e){return t.visitElementProperty(this,e)},Object.defineProperty(t.prototype,"isAnimation",{get:function(){return this.type===fo.Animation},enumerable:!0,configurable:!0}),t}(),no=function(){function t(t,e,r,n,o){this.name=t,this.target=e,this.phase=r,this.handler=n,this.sourceSpan=o}return t.calcFullName=function(t,e,r){return e?e+":"+t:r?"@"+t+"."+r:t},t.prototype.visit=function(t,e){return t.visitEvent(this,e)},Object.defineProperty(t.prototype,"fullName",{get:function(){return t.calcFullName(this.name,this.target,this.phase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimation",{get:function(){return!!this.phase},enumerable:!0,configurable:!0}),t}(),oo=function(){function t(t,e,r){this.name=t,this.value=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitReference(this,e)},t}(),io=function(){function t(t,e,r){this.name=t,this.value=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitVariable(this,e)},t}(),so=function(){function t(t,e,r,n,o,i,s,a,u,c,l,p,h){this.name=t,this.attrs=e,this.inputs=r,this.outputs=n,this.references=o,this.directives=i,this.providers=s,this.hasViewContainer=a,this.queryMatches=u,this.children=c,this.ngContentIndex=l,this.sourceSpan=p,this.endSourceSpan=h}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t}(),ao=function(){function t(t,e,r,n,o,i,s,a,u,c,l){this.attrs=t,this.outputs=e,this.references=r,this.variables=n,this.directives=o,this.providers=i,this.hasViewContainer=s,this.queryMatches=a,this.children=u,this.ngContentIndex=c,this.sourceSpan=l}return t.prototype.visit=function(t,e){return t.visitEmbeddedTemplate(this,e)},t}(),uo=function(){function t(t,e,r,n){this.directiveName=t,this.templateName=e,this.value=r,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitDirectiveProperty(this,e)},t}(),co=function(){function t(t,e,r,n,o,i){this.directive=t,this.inputs=e,this.hostProperties=r,this.hostEvents=n,this.contentQueryStartId=o,this.sourceSpan=i}return t.prototype.visit=function(t,e){return t.visitDirective(this,e)},t}(),lo=function(){function t(t,e,r,n,o,i,s){this.token=t,this.multiProvider=e,this.eager=r,this.providers=n,this.providerType=o,this.lifecycleHooks=i,this.sourceSpan=s}return t.prototype.visit=function(){return null},t}(),po={};po.PublicService=0,po.PrivateService=1,po.Component=2,po.Directive=3,po.Builtin=4,po[po.PublicService]="PublicService",po[po.PrivateService]="PrivateService",po[po.Component]="Component",po[po.Directive]="Directive",po[po.Builtin]="Builtin";var ho=function(){function t(t,e,r){this.index=t,this.ngContentIndex=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitNgContent(this,e)},t}(),fo={};fo.Property=0,fo.Attribute=1,fo.Class=2,fo.Style=3,fo.Animation=4,fo[fo.Property]="Property",fo[fo.Attribute]="Attribute",fo[fo.Class]="Class",fo[fo.Style]="Style",fo[fo.Animation]="Animation";var mo=function(){function t(t,e,r){this.filePath=t,this.name=e,this.members=r}return t.prototype.assertNoMembers=function(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got "+JSON.stringify(this)+".")},t}(),yo=function(){function t(){this.cache=new Map}return t.prototype.get=function(t,e,r){r=r||[];var n=r.length?"."+r.join("."):"",o='"'+t+'".'+e+n,i=this.cache.get(o);return i||(i=new mo(t,e,r),this.cache.set(o,i)),i},t}(),vo={};vo.RAW_TEXT=0,vo.ESCAPABLE_RAW_TEXT=1,vo.PARSABLE_DATA=2,vo[vo.RAW_TEXT]="RAW_TEXT",vo[vo.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",vo[vo.PARSABLE_DATA]="PARSABLE_DATA";var go={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞","int":"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"‎",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"‏",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"‍",zwnj:"‌"},_o=function(){function t(t){var e=void 0===t?{}:t,r=e.closedByChildren,n=e.requiredParents,o=e.implicitNamespacePrefix,i=e.contentType,s=void 0===i?vo.PARSABLE_DATA:i,a=e.closedByParent,u=void 0===a?!1:a,c=e.isVoid,l=void 0===c?!1:c,p=e.ignoreFirstLf,h=void 0===p?!1:p,f=this;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,r&&r.length>0&&r.forEach(function(t){return f.closedByChildren[t]=!0}),this.isVoid=l,this.closedByParent=u||l,n&&n.length>0&&(this.requiredParents={},this.parentToAdd=n[0],n.forEach(function(t){return f.requiredParents[t]=!0})),this.implicitNamespacePrefix=o||null,this.contentType=s,this.ignoreFirstLf=h}return t.prototype.requireExtraParent=function(t){if(!this.requiredParents)return!1;if(!t)return!0;var e=t.toLowerCase(),r="template"===e||"ng-template"===t;return!r&&1!=this.requiredParents[e]},t.prototype.isClosedByChild=function(t){return this.isVoid||t.toLowerCase()in this.closedByChildren},t}(),bo={base:new _o({isVoid:!0}),meta:new _o({isVoid:!0}),area:new _o({isVoid:!0}),embed:new _o({isVoid:!0}),link:new _o({isVoid:!0}),img:new _o({isVoid:!0}),input:new _o({isVoid:!0}),param:new _o({isVoid:!0}),hr:new _o({isVoid:!0}),br:new _o({isVoid:!0}),source:new _o({isVoid:!0}),track:new _o({isVoid:!0}),wbr:new _o({isVoid:!0}),p:new _o({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new _o({closedByChildren:["tbody","tfoot"]}),tbody:new _o({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new _o({closedByChildren:["tbody"],closedByParent:!0}),tr:new _o({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new _o({closedByChildren:["td","th"],closedByParent:!0}),th:new _o({closedByChildren:["td","th"],closedByParent:!0}),col:new _o({requiredParents:["colgroup"],isVoid:!0}),svg:new _o({implicitNamespacePrefix:"svg"}),math:new _o({implicitNamespacePrefix:"math"}),li:new _o({closedByChildren:["li"],closedByParent:!0}),dt:new _o({closedByChildren:["dt","dd"]}),dd:new _o({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new _o({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new _o({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new _o({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new _o({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new _o({closedByChildren:["optgroup"],closedByParent:!0}),option:new _o({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new _o({ignoreFirstLf:!0}),listing:new _o({ignoreFirstLf:!0}),style:new _o({contentType:vo.RAW_TEXT}),script:new _o({contentType:vo.RAW_TEXT}),title:new _o({contentType:vo.ESCAPABLE_RAW_TEXT}),textarea:new _o({contentType:vo.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},wo=new _o,Co=new RegExp("(\\:not\\()|([-\\w]+)|(?:\\.([-\\w]+))|(?:\\[([-.\\w*]+)(?:=([\"']?)([^\\]\"']*)\\5)?\\])|(\\))|(\\s*,\\s*)","g"),Eo=function(){function t(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}return t.parse=function(e){var r,n=[],o=function(t,e){e.notSelectors.length>0&&!e.element&&0==e.classNames.length&&0==e.attrs.length&&(e.element="*"),t.push(e)},i=new t,s=i,a=!1;for(Co.lastIndex=0;r=Co.exec(e);){if(r[1]){if(a)throw new Error("Nesting :not is not allowed in a selector");a=!0,s=new t,i.notSelectors.push(s)}if(r[2]&&s.setElement(r[2]),r[3]&&s.addClassName(r[3]),r[4]&&s.addAttribute(r[4],r[6]),r[7]&&(a=!1,s=i),r[8]){if(a)throw new Error("Multiple selectors in :not are not supported");o(n,i),i=s=new t}}return o(n,i),n},t.prototype.isElementSelector=function(){return this.hasElementSelector()&&0==this.classNames.length&&0==this.attrs.length&&0===this.notSelectors.length},t.prototype.hasElementSelector=function(){return!!this.element},t.prototype.setElement=function(t){void 0===t&&(t=null),this.element=t},t.prototype.getMatchingElementTemplate=function(){for(var t=this.element||"div",e=this.classNames.length>0?' class="'+this.classNames.join(" ")+'"':"",r="",n=0;n<this.attrs.length;n+=2){var o=this.attrs[n],i=""!==this.attrs[n+1]?'="'+this.attrs[n+1]+'"':"";r+=" "+o+i}return c(t).isVoid?"<"+t+e+r+"/>":"<"+t+e+r+"></"+t+">"},t.prototype.addAttribute=function(t,e){void 0===e&&(e=""),this.attrs.push(t,e&&e.toLowerCase()||"")},t.prototype.addClassName=function(t){this.classNames.push(t.toLowerCase())},t.prototype.toString=function(){var t=this.element||"";if(this.classNames&&this.classNames.forEach(function(e){return t+="."+e}),this.attrs)for(var e=0;e<this.attrs.length;e+=2){var r=this.attrs[e],n=this.attrs[e+1];t+="["+r+(n?"="+n:"")+"]"}return this.notSelectors.forEach(function(e){return t+=":not("+e+")"}),t},t}(),So=function(){function t(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}return t.createNotMatcher=function(e){var r=new t;return r.addSelectables(e,null),r},t.prototype.addSelectables=function(t,e){var r=null;t.length>1&&(r=new xo(t),this._listContexts.push(r));for(var n=0;n<t.length;n++)this._addSelectable(t[n],e,r)},t.prototype._addSelectable=function(t,e,r){var n=this,o=t.element,i=t.classNames,s=t.attrs,a=new To(t,e,r);if(o){var u=0===s.length&&0===i.length;u?this._addTerminal(n._elementMap,o,a):n=this._addPartial(n._elementPartialMap,o)}if(i)for(var c=0;c<i.length;c++){var u=0===s.length&&c===i.length-1,l=i[c];u?this._addTerminal(n._classMap,l,a):n=this._addPartial(n._classPartialMap,l)}if(s)for(var c=0;c<s.length;c+=2){var u=c===s.length-2,p=s[c],h=s[c+1];if(u){var f=n._attrValueMap,d=f.get(p);d||(d=new Map,f.set(p,d)),this._addTerminal(d,h,a)}else{var m=n._attrValuePartialMap,y=m.get(p);y||(y=new Map,m.set(p,y)),n=this._addPartial(y,h)}}},t.prototype._addTerminal=function(t,e,r){var n=t.get(e);n||(n=[],t.set(e,n)),n.push(r)},t.prototype._addPartial=function(e,r){var n=e.get(r);return n||(n=new t,e.set(r,n)),n},t.prototype.match=function(t,e){for(var r=!1,n=t.element,o=t.classNames,i=t.attrs,s=0;s<this._listContexts.length;s++)this._listContexts[s].alreadyMatched=!1;if(r=this._matchTerminal(this._elementMap,n,t,e)||r,r=this._matchPartial(this._elementPartialMap,n,t,e)||r,o)for(var s=0;s<o.length;s++){var a=o[s];r=this._matchTerminal(this._classMap,a,t,e)||r,r=this._matchPartial(this._classPartialMap,a,t,e)||r}if(i)for(var s=0;s<i.length;s+=2){var u=i[s],c=i[s+1],l=this._attrValueMap.get(u);c&&(r=this._matchTerminal(l,"",t,e)||r),r=this._matchTerminal(l,c,t,e)||r;var p=this._attrValuePartialMap.get(u);c&&(r=this._matchPartial(p,"",t,e)||r),r=this._matchPartial(p,c,t,e)||r}return r},t.prototype._matchTerminal=function(t,e,r,n){if(!t||"string"!=typeof e)return!1;var o=t.get(e)||[],i=t.get("*");if(i&&(o=o.concat(i)),0===o.length)return!1;for(var s,a=!1,u=0;u<o.length;u++)s=o[u],a=s.finalize(r,n)||a;return a},t.prototype._matchPartial=function(t,e,r,n){if(!t||"string"!=typeof e)return!1;var o=t.get(e);return o?o.match(r,n):!1},t}(),xo=function(){function t(t){this.selectors=t,this.alreadyMatched=!1}return t}(),To=function(){function t(t,e,r){this.selector=t,this.cbContext=e,this.listContext=r,this.notSelectors=t.notSelectors}return t.prototype.finalize=function(t,e){var r=!0;if(this.notSelectors.length>0&&(!this.listContext||!this.listContext.alreadyMatched)){var n=So.createNotMatcher(this.notSelectors);r=!n.match(t,null)}return!r||!e||this.listContext&&this.listContext.alreadyMatched||(this.listContext&&(this.listContext.alreadyMatched=!0),e(this.selector,this.cbContext)),r},t}(),Po="",Ao=/-+([a-z0-9])/g,Oo=function(){function t(){}return t.prototype.visitArray=function(t,e){var r=this;return t.map(function(t){return d(t,r,e)})},t.prototype.visitStringMap=function(t,e){var r=this,n={};return Object.keys(t).forEach(function(o){n[o]=d(t[o],r,e)}),n},t.prototype.visitPrimitive=function(t){return t},t.prototype.visitOther=function(t){return t},t}(),Mo=function(){function t(t,e){void 0===e&&(e=null),this.syncResult=t,this.asyncResult=e,e||(this.asyncResult=Promise.resolve(t))}return t}(),Ro="ngSyntaxError",ko=Object.getPrototypeOf({}),Io=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/,No=function(){function t(t,e){void 0===t&&(t=null),void 0===e&&(e=null),this.name=t,this.definitions=e}return t}(),Do=function(){function t(){}return t}(),jo=function(t){function e(e,r){var n=t.call(this)||this;return n.stateNameExpr=e,n.styles=r,n}return Zn(e,t),e}(Do),Lo=function(t){function e(e,r){var n=t.call(this)||this;return n.stateChangeExpr=e,n.steps=r,n}return Zn(e,t),e}(Do),Vo=function(){function t(){}return t}(),Fo=function(t){function e(e){void 0===e&&(e=[]);var r=t.call(this)||this;return r.steps=e,r}return Zn(e,t),e}(Vo),Uo=function(t){function e(e,r){void 0===r&&(r=null);var n=t.call(this)||this;return n.offset=e,n.styles=r,n}return Zn(e,t),e}(Vo),Bo=function(t){function e(e,r){void 0===e&&(e=0),void 0===r&&(r=null);var n=t.call(this)||this;return n.timings=e,n.styles=r,n}return Zn(e,t),e}(Vo),Ho=function(t){function e(e){void 0===e&&(e=null);var r=t.call(this)||this;return r.steps=e,r}return Zn(e,t),e}(Vo),qo=function(t){function e(e){return void 0===e&&(e=null),t.call(this,e)||this}return Zn(e,t),e}(Ho),zo=function(t){function e(e){return void 0===e&&(e=null),t.call(this,e)||this}return Zn(e,t),e}(Ho),Go=0,Wo={};Wo.Pipe=0,Wo.Directive=1,Wo.NgModule=2,Wo.Injectable=3,Wo[Wo.Pipe]="Pipe",Wo[Wo.Directive]="Directive",Wo[Wo.NgModule]="NgModule",Wo[Wo.Injectable]="Injectable";var $o=function(){function t(t){var e=void 0===t?{}:t,r=e.moduleUrl,n=e.styles,o=e.styleUrls;this.moduleUrl=r||null,this.styles=I(n),this.styleUrls=I(o)}return t}(),Ko=function(){function t(t){var e=t.encapsulation,r=t.template,n=t.templateUrl,o=t.styles,i=t.styleUrls,s=t.externalStylesheets,a=t.animations,u=t.ngContentSelectors,c=t.interpolation,l=t.isInline;if(this.encapsulation=e,this.template=r,this.templateUrl=n,this.styles=I(o),this.styleUrls=I(i),this.externalStylesheets=I(s),this.animations=a?N(a):[],this.ngContentSelectors=u||[],c&&2!=c.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=c,this.isInline=l}return t.prototype.toSummary=function(){return{animations:this.animations.map(function(t){return t.name}),ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation}},t}(),Qo=function(){function t(t){var e=t.isHost,r=t.type,n=t.isComponent,o=t.selector,i=t.exportAs,s=t.changeDetection,a=t.inputs,u=t.outputs,c=t.hostListeners,l=t.hostProperties,p=t.hostAttributes,h=t.providers,f=t.viewProviders,d=t.queries,m=t.viewQueries,y=t.entryComponents,v=t.template,g=t.componentViewType,_=t.rendererType,b=t.componentFactory;this.isHost=!!e,this.type=r,this.isComponent=n,this.selector=o,this.exportAs=i,this.changeDetection=s,this.inputs=a,this.outputs=u,this.hostListeners=c,this.hostProperties=l,this.hostAttributes=p,this.providers=I(h),this.viewProviders=I(f),this.queries=I(d),this.viewQueries=I(m),this.entryComponents=I(y),this.template=v,this.componentViewType=g,this.rendererType=_,this.componentFactory=b}return t.create=function(e){var r=e.isHost,n=e.type,o=e.isComponent,i=e.selector,s=e.exportAs,a=e.changeDetection,u=e.inputs,c=e.outputs,l=e.host,h=e.providers,f=e.viewProviders,d=e.queries,m=e.viewQueries,y=e.entryComponents,v=e.template,g=e.componentViewType,_=e.rendererType,b=e.componentFactory,w={},C={},E={};null!=l&&Object.keys(l).forEach(function(t){var e=l[t],r=t.match(Io);null===r?E[t]=e:null!=r[1]?C[r[1]]=e:null!=r[2]&&(w[r[2]]=e)});var S={};null!=u&&u.forEach(function(t){var e=p(t,[t,t]);S[e[0]]=e[1]});var x={};return null!=c&&c.forEach(function(t){var e=p(t,[t,t]);x[e[0]]=e[1]}),new t({isHost:r,type:n,isComponent:!!o,selector:i,exportAs:s,changeDetection:a,inputs:S,outputs:x,hostListeners:w,hostProperties:C,hostAttributes:E,providers:h,viewProviders:f,queries:d,viewQueries:m,entryComponents:y,template:v,componentViewType:g,rendererType:_,componentFactory:b})},t.prototype.toSummary=function(){return{summaryKind:Wo.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}},t}(),Xo=function(){function t(t){var e=t.type,r=t.name,n=t.pure;this.type=e,this.name=r,this.pure=!!n}return t.prototype.toSummary=function(){return{summaryKind:Wo.Pipe,type:this.type,name:this.name,pure:this.pure}},t}(),Zo=function(){function t(t){var e=t.type,r=t.providers,n=t.declaredDirectives,o=t.exportedDirectives,i=t.declaredPipes,s=t.exportedPipes,a=t.entryComponents,u=t.bootstrapComponents,c=t.importedModules,l=t.exportedModules,p=t.schemas,h=t.transitiveModule,f=t.id;this.type=e||null,this.declaredDirectives=I(n),this.exportedDirectives=I(o),this.declaredPipes=I(i),this.exportedPipes=I(s),this.providers=I(r),this.entryComponents=I(a),this.bootstrapComponents=I(u),this.importedModules=I(c),this.exportedModules=I(l),this.schemas=I(p),this.id=f||null,this.transitiveModule=h||null}return t.prototype.toSummary=function(){var t=this.transitiveModule;return{summaryKind:Wo.NgModule,type:this.type,entryComponents:t.entryComponents,providers:t.providers,modules:t.modules,exportedDirectives:t.exportedDirectives,exportedPipes:t.exportedPipes}},t}(),Yo=function(){function t(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}return t.prototype.addProvider=function(t,e){this.providers.push({provider:t,module:e})},t.prototype.addDirective=function(t){this.directivesSet.has(t.reference)||(this.directivesSet.add(t.reference),this.directives.push(t))},t.prototype.addExportedDirective=function(t){this.exportedDirectivesSet.has(t.reference)||(this.exportedDirectivesSet.add(t.reference),this.exportedDirectives.push(t))},t.prototype.addPipe=function(t){this.pipesSet.has(t.reference)||(this.pipesSet.add(t.reference),this.pipes.push(t))},t.prototype.addExportedPipe=function(t){this.exportedPipesSet.has(t.reference)||(this.exportedPipesSet.add(t.reference),this.exportedPipes.push(t))},t.prototype.addModule=function(t){this.modulesSet.has(t.reference)||(this.modulesSet.add(t.reference),this.modules.push(t))},t.prototype.addEntryComponent=function(t){this.entryComponentsSet.has(t.componentType)||(this.entryComponentsSet.add(t.componentType),this.entryComponents.push(t))},t}(),Jo=function(){function t(t,e){var r=e.useClass,n=e.useValue,o=e.useExisting,i=e.useFactory,s=e.deps,a=e.multi;this.token=t,this.useClass=r||null,this.useValue=n,this.useExisting=o,this.useFactory=i||null,this.dependencies=s||null,this.multi=!!a}return t}(),ti=function(){function t(t){var r=void 0===t?{}:t,n=r.defaultEncapsulation,o=void 0===n?e.ViewEncapsulation.Emulated:n,i=r.useJit,s=void 0===i?!0:i,a=r.missingTranslation,u=r.enableLegacyTemplate;this.defaultEncapsulation=o,this.useJit=!!s,this.missingTranslation=a||null,this.enableLegacyTemplate=u!==!1}return t}(),ei=function(){function t(t,e,r,n){this.input=e,this.errLocation=r,this.ctxLocation=n,this.message="Parser Error: "+t+" "+r+" ["+e+"] in "+n}return t}(),ri=function(){function t(t,e){this.start=t,this.end=e}return t}(),ni=function(){function t(t){this.span=t}return t.prototype.visit=function(t,e){return void 0===e&&(e=null),null},t.prototype.toString=function(){return"AST"},t}(),oi=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.prefix=r,i.uninterpretedExpression=n,i.location=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitQuote(this,e)},e.prototype.toString=function(){return"Quote"},e}(ni),ii=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.visit=function(t,e){void 0===e&&(e=null)},e}(ni),si=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitImplicitReceiver(this,e)},e}(ni),ai=function(t){function e(e,r){var n=t.call(this,e)||this;return n.expressions=r,n}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitChain(this,e)},e}(ni),ui=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.condition=r,i.trueExp=n,i.falseExp=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitConditional(this,e)},e}(ni),ci=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.receiver=r,o.name=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyRead(this,e)},e}(ni),li=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.receiver=r,i.name=n,i.value=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyWrite(this,e)},e}(ni),pi=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.receiver=r,o.name=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafePropertyRead(this,e)},e}(ni),hi=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.obj=r,o.key=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedRead(this,e)},e}(ni),fi=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.obj=r,i.key=n,i.value=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedWrite(this,e)},e}(ni),di=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.exp=r,i.name=n,i.args=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPipe(this,e)},e}(ni),mi=function(t){function e(e,r){var n=t.call(this,e)||this;return n.value=r,n}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralPrimitive(this,e)},e}(ni),yi=function(t){function e(e,r){var n=t.call(this,e)||this;return n.expressions=r,n}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralArray(this,e)},e}(ni),vi=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.keys=r,o.values=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralMap(this,e)},e}(ni),gi=function(t){function e(e,r,n){
-var o=t.call(this,e)||this;return o.strings=r,o.expressions=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitInterpolation(this,e)},e}(ni),_i=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.operation=r,i.left=n,i.right=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitBinary(this,e)},e}(ni),bi=function(t){function e(e,r){var n=t.call(this,e)||this;return n.expression=r,n}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPrefixNot(this,e)},e}(ni),wi=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.receiver=r,i.name=n,i.args=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitMethodCall(this,e)},e}(ni),Ci=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;return i.receiver=r,i.name=n,i.args=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafeMethodCall(this,e)},e}(ni),Ei=function(t){function e(e,r,n){var o=t.call(this,e)||this;return o.target=r,o.args=n,o}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitFunctionCall(this,e)},e}(ni),Si=function(t){function e(e,r,n,o){var i=t.call(this,new ri(0,null==r?0:r.length))||this;return i.ast=e,i.source=r,i.location=n,i.errors=o,i}return Zn(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),this.ast.visit(t,e)},e.prototype.toString=function(){return this.source+" in "+this.location},e}(ni),xi=function(){function t(t,e,r,n,o){this.span=t,this.key=e,this.keyIsVar=r,this.name=n,this.expression=o}return t}(),Ti=function(){function t(){}return t.prototype.visitBinary=function(t){return t.left.visit(this),t.right.visit(this),null},t.prototype.visitChain=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitConditional=function(t){return t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this),null},t.prototype.visitPipe=function(t,e){return t.exp.visit(this),this.visitAll(t.args,e),null},t.prototype.visitFunctionCall=function(t,e){return t.target.visit(this),this.visitAll(t.args,e),null},t.prototype.visitImplicitReceiver=function(){return null},t.prototype.visitInterpolation=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitKeyedRead=function(t){return t.obj.visit(this),t.key.visit(this),null},t.prototype.visitKeyedWrite=function(t){return t.obj.visit(this),t.key.visit(this),t.value.visit(this),null},t.prototype.visitLiteralArray=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitLiteralMap=function(t,e){return this.visitAll(t.values,e)},t.prototype.visitLiteralPrimitive=function(){return null},t.prototype.visitMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},t.prototype.visitPrefixNot=function(t){return t.expression.visit(this),null},t.prototype.visitPropertyRead=function(t){return t.receiver.visit(this),null},t.prototype.visitPropertyWrite=function(t){return t.receiver.visit(this),t.value.visit(this),null},t.prototype.visitSafePropertyRead=function(t){return t.receiver.visit(this),null},t.prototype.visitSafeMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},t.prototype.visitAll=function(t,e){var r=this;return t.forEach(function(t){return t.visit(r,e)}),null},t.prototype.visitQuote=function(){return null},t}(),Pi=function(){function t(){}return t.prototype.visitImplicitReceiver=function(t){return t},t.prototype.visitInterpolation=function(t){return new gi(t.span,t.strings,this.visitAll(t.expressions))},t.prototype.visitLiteralPrimitive=function(t){return new mi(t.span,t.value)},t.prototype.visitPropertyRead=function(t){return new ci(t.span,t.receiver.visit(this),t.name)},t.prototype.visitPropertyWrite=function(t){return new li(t.span,t.receiver.visit(this),t.name,t.value.visit(this))},t.prototype.visitSafePropertyRead=function(t){return new pi(t.span,t.receiver.visit(this),t.name)},t.prototype.visitMethodCall=function(t){return new wi(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitSafeMethodCall=function(t){return new Ci(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitFunctionCall=function(t){return new Ei(t.span,t.target.visit(this),this.visitAll(t.args))},t.prototype.visitLiteralArray=function(t){return new yi(t.span,this.visitAll(t.expressions))},t.prototype.visitLiteralMap=function(t){return new vi(t.span,t.keys,this.visitAll(t.values))},t.prototype.visitBinary=function(t){return new _i(t.span,t.operation,t.left.visit(this),t.right.visit(this))},t.prototype.visitPrefixNot=function(t){return new bi(t.span,t.expression.visit(this))},t.prototype.visitConditional=function(t){return new ui(t.span,t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this))},t.prototype.visitPipe=function(t){return new di(t.span,t.exp.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitKeyedRead=function(t){return new hi(t.span,t.obj.visit(this),t.key.visit(this))},t.prototype.visitKeyedWrite=function(t){return new fi(t.span,t.obj.visit(this),t.key.visit(this),t.value.visit(this))},t.prototype.visitAll=function(t){for(var e=new Array(t.length),r=0;r<t.length;++r)e[r]=t[r].visit(this);return e},t.prototype.visitChain=function(t){return new ai(t.span,this.visitAll(t.expressions))},t.prototype.visitQuote=function(t){return new oi(t.span,t.prefix,t.uninterpretedExpression,t.location)},t}(),Ai=0,Oi=9,Mi=10,Ri=11,ki=12,Ii=13,Ni=32,Di=33,ji=34,Li=35,Vi=36,Fi=37,Ui=38,Bi=39,Hi=40,qi=41,zi=42,Gi=43,Wi=44,$i=45,Ki=46,Qi=47,Xi=58,Zi=59,Yi=60,Ji=61,ts=62,es=63,rs=48,ns=57,os=65,is=69,ss=70,as=88,us=90,cs=91,ls=92,ps=93,hs=94,fs=95,ds=97,ms=101,ys=102,vs=110,gs=114,_s=116,bs=117,ws=118,Cs=120,Es=122,Ss=123,xs=124,Ts=125,Ps=160,As=96,Os=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//],Ms=function(){function t(t,e){this.start=t,this.end=e}return t.fromArray=function(e){return e?(W("interpolation",e),new t(e[0],e[1])):Rs},t}(),Rs=new Ms("{{","}}"),ks={};ks.Character=0,ks.Identifier=1,ks.Keyword=2,ks.String=3,ks.Operator=4,ks.Number=5,ks.Error=6,ks[ks.Character]="Character",ks[ks.Identifier]="Identifier",ks[ks.Keyword]="Keyword",ks[ks.String]="String",ks[ks.Operator]="Operator",ks[ks.Number]="Number",ks[ks.Error]="Error";var Is=["var","let","as","null","undefined","true","false","if","else","this"],Ns=function(){function t(){}return t.prototype.tokenize=function(t){for(var e=new Ls(t),r=[],n=e.scanToken();null!=n;)r.push(n),n=e.scanToken();return r},t}();Ns.decorators=[{type:z}],Ns.ctorParameters=function(){return[]};var Ds=function(){function t(t,e,r,n){this.index=t,this.type=e,this.numValue=r,this.strValue=n}return t.prototype.isCharacter=function(t){return this.type==ks.Character&&this.numValue==t},t.prototype.isNumber=function(){return this.type==ks.Number},t.prototype.isString=function(){return this.type==ks.String},t.prototype.isOperator=function(t){return this.type==ks.Operator&&this.strValue==t},t.prototype.isIdentifier=function(){return this.type==ks.Identifier},t.prototype.isKeyword=function(){return this.type==ks.Keyword},t.prototype.isKeywordLet=function(){return this.type==ks.Keyword&&"let"==this.strValue},t.prototype.isKeywordAs=function(){return this.type==ks.Keyword&&"as"==this.strValue},t.prototype.isKeywordNull=function(){return this.type==ks.Keyword&&"null"==this.strValue},t.prototype.isKeywordUndefined=function(){return this.type==ks.Keyword&&"undefined"==this.strValue},t.prototype.isKeywordTrue=function(){return this.type==ks.Keyword&&"true"==this.strValue},t.prototype.isKeywordFalse=function(){return this.type==ks.Keyword&&"false"==this.strValue},t.prototype.isKeywordThis=function(){return this.type==ks.Keyword&&"this"==this.strValue},t.prototype.isError=function(){return this.type==ks.Error},t.prototype.toNumber=function(){return this.type==ks.Number?this.numValue:-1},t.prototype.toString=function(){switch(this.type){case ks.Character:case ks.Identifier:case ks.Keyword:case ks.Operator:case ks.String:case ks.Error:return this.strValue;case ks.Number:return this.numValue.toString();default:return null}},t}(),js=new Ds(-1,ks.Character,0,""),Ls=function(){function t(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}return t.prototype.advance=function(){this.peek=++this.index>=this.length?Ai:this.input.charCodeAt(this.index)},t.prototype.scanToken=function(){for(var t=this.input,e=this.length,r=this.peek,n=this.index;Ni>=r;){if(++n>=e){r=Ai;break}r=t.charCodeAt(n)}if(this.peek=r,this.index=n,n>=e)return null;if(tt(r))return this.scanIdentifier();if(B(r))return this.scanNumber(n);var o=n;switch(r){case Ki:return this.advance(),B(this.peek)?this.scanNumber(o):$(o,Ki);case Hi:case qi:case Ss:case Ts:case cs:case ps:case Wi:case Xi:case Zi:return this.scanCharacter(o,r);case Bi:case ji:return this.scanString();case Li:case Gi:case $i:case zi:case Qi:case Fi:case hs:return this.scanOperator(o,String.fromCharCode(r));case es:return this.scanComplexOperator(o,"?",Ki,".");case Yi:case ts:return this.scanComplexOperator(o,String.fromCharCode(r),Ji,"=");case Di:case Ji:return this.scanComplexOperator(o,String.fromCharCode(r),Ji,"=",Ji,"=");case Ui:return this.scanComplexOperator(o,"&",Ui,"&");case xs:return this.scanComplexOperator(o,"|",xs,"|");case Ps:for(;U(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+String.fromCharCode(r)+"]",0)},t.prototype.scanCharacter=function(t,e){return this.advance(),$(t,e)},t.prototype.scanOperator=function(t,e){return this.advance(),X(t,e)},t.prototype.scanComplexOperator=function(t,e,r,n,o,i){this.advance();var s=e;return this.peek==r&&(this.advance(),s+=n),null!=o&&this.peek==o&&(this.advance(),s+=i),X(t,s)},t.prototype.scanIdentifier=function(){var t=this.index;for(this.advance();rt(this.peek);)this.advance();var e=this.input.substring(t,this.index);return Is.indexOf(e)>-1?Q(t,e):K(t,e)},t.prototype.scanNumber=function(t){var e=this.index===t;for(this.advance();;){if(B(this.peek));else if(this.peek==Ki)e=!1;else{if(!nt(this.peek))break;if(this.advance(),ot(this.peek)&&this.advance(),!B(this.peek))return this.error("Invalid exponent",-1);e=!1}this.advance()}var r=this.input.substring(t,this.index),n=e?at(r):parseFloat(r);return Y(t,n)},t.prototype.scanString=function(){var t=this.index,e=this.peek;this.advance();for(var r="",n=this.index,o=this.input;this.peek!=e;)if(this.peek==ls){r+=o.substring(n,this.index),this.advance();var i=void 0;if(this.peek=this.peek,this.peek==bs){var s=o.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(s))return this.error("Invalid unicode escape [\\u"+s+"]",0);i=parseInt(s,16);for(var a=0;5>a;a++)this.advance()}else i=st(this.peek),this.advance();r+=String.fromCharCode(i),n=this.index}else{if(this.peek==Ai)return this.error("Unterminated quote",0);this.advance()}var u=o.substring(n,this.index);return this.advance(),Z(t,r+u)},t.prototype.error=function(t,e){var r=this.index+e;return J(r,"Lexer Error: "+t+" at column "+r+" in expression ["+this.input+"]")},t}(),Vs=function(){function t(t,e,r){this.strings=t,this.expressions=e,this.offsets=r}return t}(),Fs=function(){function t(t,e,r){this.templateBindings=t,this.warnings=e,this.errors=r}return t}(),Us=function(){function t(t){this._lexer=t,this.errors=[]}return t.prototype.parseAction=function(t,e,r){void 0===r&&(r=Rs),this._checkNoInterpolation(t,e,r);var n=this._stripComments(t),o=this._lexer.tokenize(this._stripComments(t)),i=new Bs(t,e,o,n.length,!0,this.errors,t.length-n.length).parseChain();return new Si(i,t,e,this.errors)},t.prototype.parseBinding=function(t,e,r){void 0===r&&(r=Rs);var n=this._parseBindingAst(t,e,r);return new Si(n,t,e,this.errors)},t.prototype.parseSimpleBinding=function(t,e,r){void 0===r&&(r=Rs);var n=this._parseBindingAst(t,e,r),o=Hs.check(n);return o.length>0&&this._reportError("Host binding expression cannot contain "+o.join(" "),t,e),new Si(n,t,e,this.errors)},t.prototype._reportError=function(t,e,r,n){this.errors.push(new ei(t,e,r,n))},t.prototype._parseBindingAst=function(t,e,r){var n=this._parseQuote(t,e);if(null!=n)return n;this._checkNoInterpolation(t,e,r);var o=this._stripComments(t),i=this._lexer.tokenize(o);return new Bs(t,e,i,o.length,!1,this.errors,t.length-o.length).parseChain()},t.prototype._parseQuote=function(t,e){if(null==t)return null;var r=t.indexOf(":");if(-1==r)return null;var n=t.substring(0,r).trim();if(!et(n))return null;var o=t.substring(r+1);return new oi(new ri(0,t.length),n,o,e)},t.prototype.parseTemplateBindings=function(t,e,r){var n=this._lexer.tokenize(e);if(t){var o=this._lexer.tokenize(t).map(function(t){return t.index=0,t});n.unshift.apply(n,o)}return new Bs(e,r,n,e.length,!1,this.errors,0).parseTemplateBindings()},t.prototype.parseInterpolation=function(t,e,r){void 0===r&&(r=Rs);var n=this.splitInterpolation(t,e,r);if(null==n)return null;for(var o=[],i=0;i<n.expressions.length;++i){var s=n.expressions[i],a=this._stripComments(s),u=this._lexer.tokenize(this._stripComments(n.expressions[i])),c=new Bs(t,e,u,a.length,!1,this.errors,n.offsets[i]+(s.length-a.length)).parseChain();o.push(c)}return new Si(new gi(new ri(0,null==t?0:t.length),n.strings,o),t,e,this.errors)},t.prototype.splitInterpolation=function(t,e,r){void 0===r&&(r=Rs);var n=ut(r),o=t.split(n);if(o.length<=1)return null;for(var i=[],s=[],a=[],u=0,c=0;c<o.length;c++){var l=o[c];c%2===0?(i.push(l),u+=l.length):l.trim().length>0?(u+=r.start.length,s.push(l),a.push(u),u+=l.length+r.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,"at column "+this._findInterpolationErrorColumn(o,c,r)+" in",e),s.push("$implict"),a.push(u))}return new Vs(i,s,a)},t.prototype.wrapLiteralPrimitive=function(t,e){return new Si(new mi(new ri(0,null==t?0:t.length),t),t,e,this.errors)},t.prototype._stripComments=function(t){var e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t},t.prototype._commentStart=function(t){for(var e=null,r=0;r<t.length-1;r++){var n=t.charCodeAt(r),o=t.charCodeAt(r+1);if(n===Qi&&o==Qi&&null==e)return r;e===n?e=null:null==e&&it(n)&&(e=n)}return null},t.prototype._checkNoInterpolation=function(t,e,r){var n=ut(r),o=t.split(n);o.length>1&&this._reportError("Got interpolation ("+r.start+r.end+") where expression was expected",t,"at column "+this._findInterpolationErrorColumn(o,1,r)+" in",e)},t.prototype._findInterpolationErrorColumn=function(t,e,r){for(var n="",o=0;e>o;o++)n+=o%2===0?t[o]:""+r.start+t[o]+r.end;return n.length},t}();Us.decorators=[{type:z}],Us.ctorParameters=function(){return[{type:Ns}]};var Bs=function(){function t(t,e,r,n,o,i,s){this.input=t,this.location=e,this.tokens=r,this.inputLength=n,this.parseAction=o,this.errors=i,this.offset=s,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}return t.prototype.peek=function(t){var e=this.index+t;return e<this.tokens.length?this.tokens[e]:js},Object.defineProperty(t.prototype,"next",{get:function(){return this.peek(0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputIndex",{get:function(){return this.index<this.tokens.length?this.next.index+this.offset:this.inputLength+this.offset},enumerable:!0,configurable:!0}),t.prototype.span=function(t){return new ri(t,this.inputIndex)},t.prototype.advance=function(){this.index++},t.prototype.optionalCharacter=function(t){return this.next.isCharacter(t)?(this.advance(),!0):!1},t.prototype.peekKeywordLet=function(){return this.next.isKeywordLet()},t.prototype.peekKeywordAs=function(){return this.next.isKeywordAs()},t.prototype.expectCharacter=function(t){this.optionalCharacter(t)||this.error("Missing expected "+String.fromCharCode(t))},t.prototype.optionalOperator=function(t){return this.next.isOperator(t)?(this.advance(),!0):!1},t.prototype.expectOperator=function(t){this.optionalOperator(t)||this.error("Missing expected operator "+t)},t.prototype.expectIdentifierOrKeyword=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier or keyword"),"")},t.prototype.expectIdentifierOrKeywordOrString=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()||t.isString()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier, keyword, or string"),"")},t.prototype.parseChain=function(){for(var t=[],e=this.inputIndex;this.index<this.tokens.length;){var r=this.parsePipe();if(t.push(r),this.optionalCharacter(Zi))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(Zi););else this.index<this.tokens.length&&this.error("Unexpected token '"+this.next+"'")}return 0==t.length?new ii(this.span(e)):1==t.length?t[0]:new ai(this.span(e),t)},t.prototype.parsePipe=function(){var t=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{for(var e=this.expectIdentifierOrKeyword(),r=[];this.optionalCharacter(Xi);)r.push(this.parseExpression());t=new di(this.span(t.span.start),t,e,r)}while(this.optionalOperator("|"))}return t},t.prototype.parseExpression=function(){return this.parseConditional()},t.prototype.parseConditional=function(){var t=this.inputIndex,e=this.parseLogicalOr();if(this.optionalOperator("?")){var r=this.parsePipe(),n=void 0;if(this.optionalCharacter(Xi))n=this.parsePipe();else{var o=this.inputIndex,i=this.input.substring(t,o);this.error("Conditional expression "+i+" requires all 3 expressions"),n=new ii(this.span(t))}return new ui(this.span(t),e,r,n)}return e},t.prototype.parseLogicalOr=function(){for(var t=this.parseLogicalAnd();this.optionalOperator("||");){var e=this.parseLogicalAnd();t=new _i(this.span(t.span.start),"||",t,e)}return t},t.prototype.parseLogicalAnd=function(){for(var t=this.parseEquality();this.optionalOperator("&&");){var e=this.parseEquality();t=new _i(this.span(t.span.start),"&&",t,e)}return t},t.prototype.parseEquality=function(){for(var t=this.parseRelational();this.next.type==ks.Operator;){var e=this.next.strValue;switch(e){case"==":case"===":case"!=":case"!==":this.advance();var r=this.parseRelational();t=new _i(this.span(t.span.start),e,t,r);continue}break}return t},t.prototype.parseRelational=function(){for(var t=this.parseAdditive();this.next.type==ks.Operator;){var e=this.next.strValue;switch(e){case"<":case">":case"<=":case">=":this.advance();var r=this.parseAdditive();t=new _i(this.span(t.span.start),e,t,r);continue}break}return t},t.prototype.parseAdditive=function(){for(var t=this.parseMultiplicative();this.next.type==ks.Operator;){var e=this.next.strValue;switch(e){case"+":case"-":this.advance();var r=this.parseMultiplicative();t=new _i(this.span(t.span.start),e,t,r);continue}break}return t},t.prototype.parseMultiplicative=function(){for(var t=this.parsePrefix();this.next.type==ks.Operator;){var e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();var r=this.parsePrefix();t=new _i(this.span(t.span.start),e,t,r);continue}break}return t},t.prototype.parsePrefix=function(){if(this.next.type==ks.Operator){var t=this.inputIndex,e=this.next.strValue,r=void 0;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),r=this.parsePrefix(),new _i(this.span(t),e,new mi(new ri(t,t),0),r);case"!":return this.advance(),r=this.parsePrefix(),new bi(this.span(t),r)}}return this.parseCallChain()},t.prototype.parseCallChain=function(){for(var t=this.parsePrimary();;)if(this.optionalCharacter(Ki))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(cs)){this.rbracketsExpected++;var e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(ps),this.optionalOperator("=")){var r=this.parseConditional();t=new fi(this.span(t.span.start),t,e,r)}else t=new hi(this.span(t.span.start),t,e)}else{if(!this.optionalCharacter(Hi))return t;this.rparensExpected++;var n=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(qi),t=new Ei(this.span(t.span.start),t,n)}},t.prototype.parsePrimary=function(){var t=this.inputIndex;if(this.optionalCharacter(Hi)){this.rparensExpected++;var e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(qi),e}if(this.next.isKeywordNull())return this.advance(),new mi(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new mi(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new mi(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new mi(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new si(this.span(t));if(this.optionalCharacter(cs)){this.rbracketsExpected++;var r=this.parseExpressionList(ps);return this.rbracketsExpected--,this.expectCharacter(ps),new yi(this.span(t),r)}if(this.next.isCharacter(Ss))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new si(this.span(t)),!1);if(this.next.isNumber()){var n=this.next.toNumber();return this.advance(),new mi(this.span(t),n)}if(this.next.isString()){var o=this.next.toString();return this.advance(),new mi(this.span(t),o)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new ii(this.span(t))):(this.error("Unexpected token "+this.next),new ii(this.span(t)))},t.prototype.parseExpressionList=function(t){var e=[];if(!this.next.isCharacter(t))do e.push(this.parsePipe());while(this.optionalCharacter(Wi));return e},t.prototype.parseLiteralMap=function(){var t=[],e=[],r=this.inputIndex;if(this.expectCharacter(Ss),!this.optionalCharacter(Ts)){this.rbracesExpected++;do{var n=this.expectIdentifierOrKeywordOrString();t.push(n),this.expectCharacter(Xi),e.push(this.parsePipe())}while(this.optionalCharacter(Wi));this.rbracesExpected--,this.expectCharacter(Ts)}return new vi(this.span(r),t,e)},t.prototype.parseAccessMemberOrMethodCall=function(t,e){void 0===e&&(e=!1);var r=t.span.start,n=this.expectIdentifierOrKeyword();if(this.optionalCharacter(Hi)){this.rparensExpected++;var o=this.parseCallArguments();this.expectCharacter(qi),this.rparensExpected--;var i=this.span(r);return e?new Ci(i,t,n,o):new wi(i,t,n,o)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new ii(this.span(r))):new pi(this.span(r),t,n);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new ii(this.span(r));var s=this.parseConditional();return new li(this.span(r),t,n,s)}return new ci(this.span(r),t,n)},t.prototype.parseCallArguments=function(){if(this.next.isCharacter(qi))return[];var t=[];do t.push(this.parsePipe());while(this.optionalCharacter(Wi));return t},t.prototype.expectTemplateBindingKey=function(){var t="",e=!1;do t+=this.expectIdentifierOrKeywordOrString(),e=this.optionalOperator("-"),e&&(t+="-");while(e);return t.toString()},t.prototype.parseTemplateBindings=function(){for(var t=[],e=null,r=[];this.index<this.tokens.length;){var n=this.inputIndex,o=this.peekKeywordLet();o&&this.advance();var i=this.expectTemplateBindingKey(),s=i;o||(null==e?e=s:s=e+s[0].toUpperCase()+s.substring(1)),this.optionalCharacter(Xi);var a=null,u=null;if(o)a=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.peekKeywordAs()){var c=this.inputIndex;this.advance(),a=i,s=this.expectTemplateBindingKey(),o=!0}else if(this.next!==js&&!this.peekKeywordLet()){var l=this.inputIndex,p=this.parsePipe(),h=this.input.substring(l-this.offset,this.inputIndex-this.offset);u=new Si(p,h,this.location,this.errors)}if(t.push(new xi(this.span(n),s,o,a,u)),this.peekKeywordAs()&&!o){var c=this.inputIndex;this.advance();var f=this.expectTemplateBindingKey();t.push(new xi(this.span(c),f,!0,s,null))}this.optionalCharacter(Zi)||this.optionalCharacter(Wi)}return new Fs(t,r,this.errors)},t.prototype.error=function(t,e){void 0===e&&(e=null),this.errors.push(new ei(t,this.input,this.locationText(e),this.location)),this.skip()},t.prototype.locationText=function(t){return void 0===t&&(t=null),null==t&&(t=this.index),t<this.tokens.length?"at column "+(this.tokens[t].index+1)+" in":"at the end of the expression"},t.prototype.skip=function(){for(var t=this.next;this.index<this.tokens.length&&!t.isCharacter(Zi)&&(this.rparensExpected<=0||!t.isCharacter(qi))&&(this.rbracesExpected<=0||!t.isCharacter(Ts))&&(this.rbracketsExpected<=0||!t.isCharacter(ps));)this.next.isError()&&this.errors.push(new ei(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next},t}(),Hs=function(){function t(){this.errors=[]}return t.check=function(e){var r=new t;return e.visit(r),r.errors},t.prototype.visitImplicitReceiver=function(){},t.prototype.visitInterpolation=function(){},t.prototype.visitLiteralPrimitive=function(){},t.prototype.visitPropertyRead=function(){},t.prototype.visitPropertyWrite=function(){},t.prototype.visitSafePropertyRead=function(){},t.prototype.visitMethodCall=function(){},t.prototype.visitSafeMethodCall=function(){},t.prototype.visitFunctionCall=function(){},t.prototype.visitLiteralArray=function(t){this.visitAll(t.expressions)},t.prototype.visitLiteralMap=function(t){this.visitAll(t.values)},t.prototype.visitBinary=function(){},t.prototype.visitPrefixNot=function(){},t.prototype.visitConditional=function(){},t.prototype.visitPipe=function(){this.errors.push("pipes")},t.prototype.visitKeyedRead=function(){},t.prototype.visitKeyedWrite=function(){},t.prototype.visitAll=function(t){var e=this;return t.map(function(t){return t.visit(e)})},t.prototype.visitChain=function(){},t.prototype.visitQuote=function(){},t}(),qs=function(){function t(t,e,r,n){this.file=t,this.offset=e,this.line=r,this.col=n}return t.prototype.toString=function(){return null!=this.offset?this.file.url+"@"+this.line+":"+this.col:this.file.url},t.prototype.moveBy=function(e){for(var r=this.file.content,n=r.length,o=this.offset,i=this.line,s=this.col;o>0&&0>e;){o--,e++;var a=r.charCodeAt(o);if(a==Mi){i--;var u=r.substr(0,o-1).lastIndexOf(String.fromCharCode(Mi));s=u>0?o-u:o}else s--}for(;n>o&&e>0;){var a=r.charCodeAt(o);o++,e--,a==Mi?(i++,s=0):s++}return new t(this.file,o,i,s)},t.prototype.getContext=function(t,e){var r=this.file.content,n=this.offset;if(null!=n){n>r.length-1&&(n=r.length-1);for(var o=n,i=0,s=0;t>i&&n>0&&(n--,i++,"\n"!=r[n]||++s!=e););for(i=0,s=0;t>i&&o<r.length-1&&(o++,i++,"\n"!=r[o]||++s!=e););return{before:r.substring(n,this.offset),after:r.substring(this.offset,o+1)}}return null},t}(),zs=function(){function t(t,e){this.content=t,this.url=e}return t}(),Gs=function(){function t(t,e,r){void 0===r&&(r=null),this.start=t,this.end=e,this.details=r}return t.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},t}(),Ws={};Ws.WARNING=0,Ws.ERROR=1,Ws[Ws.WARNING]="WARNING",Ws[Ws.ERROR]="ERROR";var $s=function(){function t(t,e,r){void 0===r&&(r=Ws.ERROR),this.span=t,this.msg=e,this.level=r}return t.prototype.toString=function(){var t=this.span.start.getContext(100,3),e=t?' ("'+t.before+"["+Ws[this.level]+" ->]"+t.after+'")':"",r=this.span.details?", "+this.span.details:"";return""+this.msg+e+": "+this.span.start+r},t}(),Ks=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),Qs=function(){function t(t,e,r,n,o){this.switchValue=t,this.type=e,this.cases=r,this.sourceSpan=n,this.switchValueSourceSpan=o}return t.prototype.visit=function(t,e){return t.visitExpansion(this,e)},t}(),Xs=function(){function t(t,e,r,n,o){this.value=t,this.expression=e,this.sourceSpan=r,this.valueSourceSpan=n,this.expSourceSpan=o}return t.prototype.visit=function(t,e){return t.visitExpansionCase(this,e)},t}(),Zs=function(){function t(t,e,r,n){this.name=t,this.value=e,this.sourceSpan=r,this.valueSpan=n}return t.prototype.visit=function(t,e){return t.visitAttribute(this,e)},t}(),Ys=function(){function t(t,e,r,n,o,i){void 0===o&&(o=null),void 0===i&&(i=null),this.name=t,this.attrs=e,this.children=r,this.sourceSpan=n,this.startSourceSpan=o,this.endSourceSpan=i}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t}(),Js=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitComment(this,e)},t}(),ta={};ta.TAG_OPEN_START=0,ta.TAG_OPEN_END=1,ta.TAG_OPEN_END_VOID=2,ta.TAG_CLOSE=3,ta.TEXT=4,ta.ESCAPABLE_RAW_TEXT=5,ta.RAW_TEXT=6,ta.COMMENT_START=7,ta.COMMENT_END=8,ta.CDATA_START=9,ta.CDATA_END=10,ta.ATTR_NAME=11,ta.ATTR_VALUE=12,ta.DOC_TYPE=13,ta.EXPANSION_FORM_START=14,ta.EXPANSION_CASE_VALUE=15,ta.EXPANSION_CASE_EXP_START=16,ta.EXPANSION_CASE_EXP_END=17,ta.EXPANSION_FORM_END=18,ta.EOF=19,ta[ta.TAG_OPEN_START]="TAG_OPEN_START",ta[ta.TAG_OPEN_END]="TAG_OPEN_END",ta[ta.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",ta[ta.TAG_CLOSE]="TAG_CLOSE",ta[ta.TEXT]="TEXT",ta[ta.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",ta[ta.RAW_TEXT]="RAW_TEXT",ta[ta.COMMENT_START]="COMMENT_START",ta[ta.COMMENT_END]="COMMENT_END",ta[ta.CDATA_START]="CDATA_START",ta[ta.CDATA_END]="CDATA_END",ta[ta.ATTR_NAME]="ATTR_NAME",ta[ta.ATTR_VALUE]="ATTR_VALUE",ta[ta.DOC_TYPE]="DOC_TYPE",ta[ta.EXPANSION_FORM_START]="EXPANSION_FORM_START",ta[ta.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",ta[ta.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",ta[ta.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",ta[ta.EXPANSION_FORM_END]="EXPANSION_FORM_END",ta[ta.EOF]="EOF";var ea=function(){function t(t,e,r){this.type=t,this.parts=e,this.sourceSpan=r}return t}(),ra=function(t){function e(e,r,n){var o=t.call(this,n,e)||this;return o.tokenType=r,o}return Zn(e,t),e}($s),na=function(){function t(t,e){this.tokens=t,this.errors=e}return t}(),oa=/\r\n?/g,ia=function(){function t(t){this.error=t}return t}(),sa=function(){function t(t,e,r,n){void 0===n&&(n=Rs),this._file=t,this._getTagDefinition=e,this._tokenizeIcu=r,this._interpolationConfig=n,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}return t.prototype._processCarriageReturns=function(t){return t.replace(oa,"\n")},t.prototype.tokenize=function(){for(;this._peek!==Ai;){var t=this._getLocation();try{this._attemptCharCode(Yi)?this._attemptCharCode(Di)?this._attemptCharCode(cs)?this._consumeCdata(t):this._attemptCharCode($i)?this._consumeComment(t):this._consumeDocType(t):this._attemptCharCode(Qi)?this._consumeTagClose(t):this._consumeTagOpen(t):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(e){if(!(e instanceof ia))throw e;this.errors.push(e.error)}}return this._beginToken(ta.EOF),this._endToken([]),new na(Et(this.tokens),this.errors)},t.prototype._tokenizeExpansionForm=function(){if(_t(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if(bt(this._peek)&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._peek===Ts){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1},t.prototype._getLocation=function(){return new qs(this._file,this._index,this._line,this._column)},t.prototype._getSpan=function(t,e){return void 0===t&&(t=this._getLocation()),void 0===e&&(e=this._getLocation()),new Gs(t,e)},t.prototype._beginToken=function(t,e){void 0===e&&(e=this._getLocation()),this._currentTokenStart=e,this._currentTokenType=t},t.prototype._endToken=function(t,e){void 0===e&&(e=this._getLocation());var r=new ea(this._currentTokenType,t,new Gs(this._currentTokenStart,e));return this.tokens.push(r),this._currentTokenStart=null,this._currentTokenType=null,r},t.prototype._createError=function(t,e){this._isInExpansionForm()&&(t+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');
-
-var r=new ra(t,this._currentTokenType,e);return this._currentTokenStart=null,this._currentTokenType=null,new ia(r)},t.prototype._advance=function(){if(this._index>=this._length)throw this._createError(ht(Ai),this._getSpan());this._peek===Mi?(this._line++,this._column=0):this._peek!==Mi&&this._peek!==Ii&&this._column++,this._index++,this._peek=this._index>=this._length?Ai:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?Ai:this._input.charCodeAt(this._index+1)},t.prototype._attemptCharCode=function(t){return this._peek===t?(this._advance(),!0):!1},t.prototype._attemptCharCodeCaseInsensitive=function(t){return wt(this._peek,t)?(this._advance(),!0):!1},t.prototype._requireCharCode=function(t){var e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(ht(this._peek),this._getSpan(e,e))},t.prototype._attemptStr=function(t){var e=t.length;if(this._index+e>this._length)return!1;for(var r=this._savePosition(),n=0;e>n;n++)if(!this._attemptCharCode(t.charCodeAt(n)))return this._restorePosition(r),!1;return!0},t.prototype._attemptStrCaseInsensitive=function(t){for(var e=0;e<t.length;e++)if(!this._attemptCharCodeCaseInsensitive(t.charCodeAt(e)))return!1;return!0},t.prototype._requireStr=function(t){var e=this._getLocation();if(!this._attemptStr(t))throw this._createError(ht(this._peek),this._getSpan(e))},t.prototype._attemptCharCodeUntilFn=function(t){for(;!t(this._peek);)this._advance()},t.prototype._requireCharCodeUntilFn=function(t,e){var r=this._getLocation();if(this._attemptCharCodeUntilFn(t),this._index-r.offset<e)throw this._createError(ht(this._peek),this._getSpan(r,r))},t.prototype._attemptUntilChar=function(t){for(;this._peek!==t;)this._advance()},t.prototype._readChar=function(t){if(t&&this._peek===Ui)return this._decodeEntity();var e=this._index;return this._advance(),this._input[e]},t.prototype._decodeEntity=function(){var t=this._getLocation();if(this._advance(),!this._attemptCharCode(Li)){var e=this._savePosition();if(this._attemptCharCodeUntilFn(gt),this._peek!=Zi)return this._restorePosition(e),"&";this._advance();var r=this._input.substring(t.offset+1,this._index-1),n=go[r];if(!n)throw this._createError(ft(r),this._getSpan(t));return n}var o=this._attemptCharCode(Cs)||this._attemptCharCode(as),i=this._getLocation().offset;if(this._attemptCharCodeUntilFn(vt),this._peek!=Zi)throw this._createError(ht(this._peek),this._getSpan());this._advance();var s=this._input.substring(i,this._index-1);try{var a=parseInt(s,o?16:10);return String.fromCharCode(a)}catch(u){var c=this._input.substring(t.offset+1,this._index-1);throw this._createError(ft(c),this._getSpan(t))}},t.prototype._consumeRawText=function(t,e,r){var n,o=this._getLocation();this._beginToken(t?ta.ESCAPABLE_RAW_TEXT:ta.RAW_TEXT,o);for(var i=[];;){if(n=this._getLocation(),this._attemptCharCode(e)&&r())break;for(this._index>n.offset&&i.push(this._input.substring(n.offset,this._index));this._peek!==e;)i.push(this._readChar(t))}return this._endToken([this._processCarriageReturns(i.join(""))],n)},t.prototype._consumeComment=function(t){var e=this;this._beginToken(ta.COMMENT_START,t),this._requireCharCode($i),this._endToken([]);var r=this._consumeRawText(!1,$i,function(){return e._attemptStr("->")});this._beginToken(ta.COMMENT_END,r.sourceSpan.end),this._endToken([])},t.prototype._consumeCdata=function(t){var e=this;this._beginToken(ta.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);var r=this._consumeRawText(!1,ps,function(){return e._attemptStr("]>")});this._beginToken(ta.CDATA_END,r.sourceSpan.end),this._endToken([])},t.prototype._consumeDocType=function(t){this._beginToken(ta.DOC_TYPE,t),this._attemptUntilChar(ts),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])},t.prototype._consumePrefixAndName=function(){for(var t=this._index,e=null;this._peek!==Xi&&!yt(this._peek);)this._advance();var r;this._peek===Xi?(this._advance(),e=this._input.substring(t,this._index-1),r=this._index):r=t,this._requireCharCodeUntilFn(mt,this._index===r?1:0);var n=this._input.substring(r,this._index);return[e,n]},t.prototype._consumeTagOpen=function(t){var e,r,n=this._savePosition();try{if(!H(this._peek))throw this._createError(ht(this._peek),this._getSpan());var o=this._index;for(this._consumeTagOpenStart(t),e=this._input.substring(o,this._index),r=e.toLowerCase(),this._attemptCharCodeUntilFn(dt);this._peek!==Qi&&this._peek!==ts;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(dt),this._attemptCharCode(Ji)&&(this._attemptCharCodeUntilFn(dt),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(dt);this._consumeTagOpenEnd()}catch(i){if(i instanceof ia)return this._restorePosition(n),this._beginToken(ta.TEXT,t),void this._endToken(["<"]);throw i}var s=this._getTagDefinition(e).contentType;s===vo.RAW_TEXT?this._consumeRawTextWithTagClose(r,!1):s===vo.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(r,!0)},t.prototype._consumeRawTextWithTagClose=function(t,e){var r=this,n=this._consumeRawText(e,Yi,function(){return r._attemptCharCode(Qi)?(r._attemptCharCodeUntilFn(dt),r._attemptStrCaseInsensitive(t)?(r._attemptCharCodeUntilFn(dt),r._attemptCharCode(ts)):!1):!1});this._beginToken(ta.TAG_CLOSE,n.sourceSpan.end),this._endToken([null,t])},t.prototype._consumeTagOpenStart=function(t){this._beginToken(ta.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},t.prototype._consumeAttributeName=function(){this._beginToken(ta.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},t.prototype._consumeAttributeValue=function(){this._beginToken(ta.ATTR_VALUE);var t;if(this._peek===Bi||this._peek===ji){var e=this._peek;this._advance();for(var r=[];this._peek!==e;)r.push(this._readChar(!0));t=r.join(""),this._advance()}else{var n=this._index;this._requireCharCodeUntilFn(mt,1),t=this._input.substring(n,this._index)}this._endToken([this._processCarriageReturns(t)])},t.prototype._consumeTagOpenEnd=function(){var t=this._attemptCharCode(Qi)?ta.TAG_OPEN_END_VOID:ta.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(ts),this._endToken([])},t.prototype._consumeTagClose=function(t){this._beginToken(ta.TAG_CLOSE,t),this._attemptCharCodeUntilFn(dt);var e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(dt),this._requireCharCode(ts),this._endToken(e)},t.prototype._consumeExpansionFormStart=function(){this._beginToken(ta.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(Ss),this._endToken([]),this._expansionCaseStack.push(ta.EXPANSION_FORM_START),this._beginToken(ta.RAW_TEXT,this._getLocation());var t=this._readUntil(Wi);this._endToken([t],this._getLocation()),this._requireCharCode(Wi),this._attemptCharCodeUntilFn(dt),this._beginToken(ta.RAW_TEXT,this._getLocation());var e=this._readUntil(Wi);this._endToken([e],this._getLocation()),this._requireCharCode(Wi),this._attemptCharCodeUntilFn(dt)},t.prototype._consumeExpansionCaseStart=function(){this._beginToken(ta.EXPANSION_CASE_VALUE,this._getLocation());var t=this._readUntil(Ss).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._beginToken(ta.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(Ss),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._expansionCaseStack.push(ta.EXPANSION_CASE_EXP_START)},t.prototype._consumeExpansionCaseEnd=function(){this._beginToken(ta.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(Ts),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._expansionCaseStack.pop()},t.prototype._consumeExpansionFormEnd=function(){this._beginToken(ta.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(Ts),this._endToken([]),this._expansionCaseStack.pop()},t.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(ta.TEXT,t);var e=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])},t.prototype._isTextEnd=function(){if(this._peek===Yi||this._peek===Ai)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(_t(this._input,this._index,this._interpolationConfig))return!0;if(this._peek===Ts&&this._isInExpansionCase())return!0}return!1},t.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},t.prototype._readUntil=function(t){var e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)},t.prototype._restorePosition=function(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];var e=t[4];e<this.tokens.length&&(this.tokens=this.tokens.slice(0,e))},t.prototype._isInExpansionCase=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ta.EXPANSION_CASE_EXP_START},t.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ta.EXPANSION_FORM_START},t}(),aa=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return o.elementName=e,o}return Zn(e,t),e.create=function(t,r,n){return new e(t,r,n)},e}($s),ua=function(){function t(t,e){this.rootNodes=t,this.errors=e}return t}(),ca=function(){function t(t){this.getTagDefinition=t}return t.prototype.parse=function(t,e,r,n){void 0===r&&(r=!1),void 0===n&&(n=Rs);var o=pt(t,e,this.getTagDefinition,r,n),i=new la(o.tokens,this.getTagDefinition).build();return new ua(i.rootNodes,o.errors.concat(i.errors))},t}(),la=function(){function t(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return t.prototype.build=function(){for(;this._peek.type!==ta.EOF;)this._peek.type===ta.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===ta.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===ta.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===ta.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===ta.TEXT||this._peek.type===ta.RAW_TEXT||this._peek.type===ta.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===ta.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new ua(this._rootNodes,this._errors)},t.prototype._advance=function(){var t=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],t},t.prototype._advanceIf=function(t){return this._peek.type===t?this._advance():null},t.prototype._consumeCdata=function(){this._consumeText(this._advance()),this._advanceIf(ta.CDATA_END)},t.prototype._consumeComment=function(t){var e=this._advanceIf(ta.RAW_TEXT);this._advanceIf(ta.COMMENT_END);var r=null!=e?e.parts[0].trim():null;this._addToParent(new Js(r,t.sourceSpan))},t.prototype._consumeExpansion=function(t){for(var e=this._advance(),r=this._advance(),n=[];this._peek.type===ta.EXPANSION_CASE_VALUE;){var o=this._parseExpansionCase();if(!o)return;n.push(o)}if(this._peek.type!==ta.EXPANSION_FORM_END)return void this._errors.push(aa.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));var i=new Gs(t.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new Qs(e.parts[0],r.parts[0],n,i,e.sourceSpan)),this._advance()},t.prototype._parseExpansionCase=function(){var e=this._advance();if(this._peek.type!==ta.EXPANSION_CASE_EXP_START)return this._errors.push(aa.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;var r=this._advance(),n=this._collectExpansionExpTokens(r);if(!n)return null;var o=this._advance();n.push(new ea(ta.EOF,[],o.sourceSpan));var i=new t(n,this.getTagDefinition).build();if(i.errors.length>0)return this._errors=this._errors.concat(i.errors),null;var s=new Gs(e.sourceSpan.start,o.sourceSpan.end),a=new Gs(r.sourceSpan.start,o.sourceSpan.end);return new Xs(e.parts[0],i.rootNodes,s,e.sourceSpan,a)},t.prototype._collectExpansionExpTokens=function(t){for(var e=[],r=[ta.EXPANSION_CASE_EXP_START];;){if((this._peek.type===ta.EXPANSION_FORM_START||this._peek.type===ta.EXPANSION_CASE_EXP_START)&&r.push(this._peek.type),this._peek.type===ta.EXPANSION_CASE_EXP_END){if(!St(r,ta.EXPANSION_CASE_EXP_START))return this._errors.push(aa.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(r.pop(),0==r.length)return e}if(this._peek.type===ta.EXPANSION_FORM_END){if(!St(r,ta.EXPANSION_FORM_START))return this._errors.push(aa.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;r.pop()}if(this._peek.type===ta.EOF)return this._errors.push(aa.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}},t.prototype._consumeText=function(t){var e=t.parts[0];if(e.length>0&&"\n"==e[0]){var r=this._getParentElement();null!=r&&0==r.children.length&&this.getTagDefinition(r.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new Ks(e,t.sourceSpan))},t.prototype._closeVoidElement=function(){if(this._elementStack.length>0){var t=this._elementStack[this._elementStack.length-1];this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()}},t.prototype._consumeStartTag=function(t){for(var e=t.parts[0],r=t.parts[1],n=[];this._peek.type===ta.ATTR_NAME;)n.push(this._consumeAttr(this._advance()));var o=this._getElementFullName(e,r,this._getParentElement()),i=!1;if(this._peek.type===ta.TAG_OPEN_END_VOID){this._advance(),i=!0;var s=this.getTagDefinition(o);s.canSelfClose||null!==a(o)||s.isVoid||this._errors.push(aa.create(o,t.sourceSpan,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))}else this._peek.type===ta.TAG_OPEN_END&&(this._advance(),i=!1);var u=this._peek.sourceSpan.start,c=new Gs(t.sourceSpan.start,u),l=new Ys(o,n,[],c,c,void 0);this._pushElement(l),i&&(this._popElement(o),l.endSourceSpan=c)},t.prototype._pushElement=function(t){if(this._elementStack.length>0){var e=this._elementStack[this._elementStack.length-1];this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop()}var r=this.getTagDefinition(t.name),n=this._getParentElementSkippingContainers(),o=n.parent,i=n.container;if(o&&r.requireExtraParent(o.name)){var s=new Ys(r.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(o,i,s)}this._addToParent(t),this._elementStack.push(t)},t.prototype._consumeEndTag=function(t){var e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid)this._errors.push(aa.create(e,t.sourceSpan,'Void elements do not have end tags "'+t.parts[1]+'"'));else if(!this._popElement(e)){var r='Unexpected closing tag "'+e+'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags';this._errors.push(aa.create(e,t.sourceSpan,r))}},t.prototype._popElement=function(t){for(var e=this._elementStack.length-1;e>=0;e--){var r=this._elementStack[e];if(r.name==t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(r.name).closedByParent)return!1}return!1},t.prototype._consumeAttr=function(t){var e=u(t.parts[0],t.parts[1]),r=t.sourceSpan.end,n="",o=void 0;if(this._peek.type===ta.ATTR_VALUE){var i=this._advance();n=i.parts[0],r=i.sourceSpan.end,o=i.sourceSpan}return new Zs(e,n,new Gs(t.sourceSpan.start,r),o)},t.prototype._getParentElement=function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null},t.prototype._getParentElementSkippingContainers=function(){for(var t=null,e=this._elementStack.length-1;e>=0;e--){if(!o(this._elementStack[e].name))return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:this._elementStack[this._elementStack.length-1],container:t}},t.prototype._addToParent=function(t){var e=this._getParentElement();null!=e?e.children.push(t):this._rootNodes.push(t)},t.prototype._insertBeforeContainer=function(t,e,r){if(e){if(t){var n=t.children.indexOf(e);t.children[n]=r}else this._rootNodes.push(r);r.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,r)}else this._addToParent(r),this._elementStack.push(r)},t.prototype._getElementFullName=function(t,e,r){return null==t&&(t=this.getTagDefinition(e).implicitNamespacePrefix,null==t&&null!=r&&(t=a(r.name))),u(t,e)},t}(),pa=function(){function t(t,e,r,n,o,i){this.nodes=t,this.placeholders=e,this.placeholderToMessage=r,this.meaning=n,this.description=o,this.id=i,this.sources=t.length?[{filePath:t[0].sourceSpan.start.file.url,startLine:t[0].sourceSpan.start.line+1,startCol:t[0].sourceSpan.start.col+1,endLine:t[t.length-1].sourceSpan.end.line+1,endCol:t[0].sourceSpan.start.col+1}]:[]}return t}(),ha=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),fa=function(){function t(t,e){this.children=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitContainer(this,e)},t}(),da=function(){function t(t,e,r,n){this.expression=t,this.type=e,this.cases=r,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitIcu(this,e)},t}(),ma=function(){function t(t,e,r,n,o,i,s){this.tag=t,this.attrs=e,this.startName=r,this.closeName=n,this.children=o,this.isVoid=i,this.sourceSpan=s}return t.prototype.visit=function(t,e){return t.visitTagPlaceholder(this,e)},t}(),ya=function(){function t(t,e,r){this.value=t,this.name=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitPlaceholder(this,e)},t}(),va=function(){function t(t,e,r){this.value=t,this.name=e,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitIcuPlaceholder(this,e)},t}(),ga=function(){function t(){}return t.prototype.visitText=function(t){return new ha(t.value,t.sourceSpan)},t.prototype.visitContainer=function(t,e){var r=this,n=t.children.map(function(t){return t.visit(r,e)});return new fa(n,t.sourceSpan)},t.prototype.visitIcu=function(t,e){var r=this,n={};Object.keys(t.cases).forEach(function(o){return n[o]=t.cases[o].visit(r,e)});var o=new da(t.expression,t.type,n,t.sourceSpan);return o.expressionPlaceholder=t.expressionPlaceholder,o},t.prototype.visitTagPlaceholder=function(t,e){var r=this,n=t.children.map(function(t){return t.visit(r,e)});return new ma(t.tag,t.attrs,t.startName,t.closeName,n,t.isVoid,t.sourceSpan)},t.prototype.visitPlaceholder=function(t){return new ya(t.value,t.name,t.sourceSpan)},t.prototype.visitIcuPlaceholder=function(t){return new va(t.value,t.name,t.sourceSpan)},t}(),_a=function(){function t(){}return t.prototype.visitText=function(){},t.prototype.visitContainer=function(t){var e=this;t.children.forEach(function(t){return t.visit(e)})},t.prototype.visitIcu=function(t){var e=this;Object.keys(t.cases).forEach(function(r){t.cases[r].visit(e)})},t.prototype.visitTagPlaceholder=function(t){var e=this;t.children.forEach(function(t){return t.visit(e)})},t.prototype.visitPlaceholder=function(){},t.prototype.visitIcuPlaceholder=function(){},t}(),ba={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"},wa=function(){function t(){this._placeHolderNameCounts={},this._signatureToName={}}return t.prototype.getStartTagPlaceholderName=function(t,e,r){var n=this._hashTag(t,e,r);if(this._signatureToName[n])return this._signatureToName[n];var o=t.toUpperCase(),i=ba[o]||"TAG_"+o,s=this._generateUniqueName(r?i:"START_"+i);return this._signatureToName[n]=s,s},t.prototype.getCloseTagPlaceholderName=function(t){var e=this._hashClosingTag(t);if(this._signatureToName[e])return this._signatureToName[e];var r=t.toUpperCase(),n=ba[r]||"TAG_"+r,o=this._generateUniqueName("CLOSE_"+n);return this._signatureToName[e]=o,o},t.prototype.getPlaceholderName=function(t,e){var r=t.toUpperCase(),n="PH: "+r+"="+e;if(this._signatureToName[n])return this._signatureToName[n];var o=this._generateUniqueName(r);return this._signatureToName[n]=o,o},t.prototype.getUniquePlaceholder=function(t){return this._generateUniqueName(t.toUpperCase())},t.prototype._hashTag=function(t,e,r){var n="<"+t,o=Object.keys(e).sort().map(function(t){return" "+t+"="+e[t]}).join(""),i=r?"/>":"></"+t+">";return n+o+i},t.prototype._hashClosingTag=function(t){return this._hashTag("/"+t,{},!1)},t.prototype._generateUniqueName=function(t){var e=this._placeHolderNameCounts.hasOwnProperty(t);if(!e)return this._placeHolderNameCounts[t]=1,t;var r=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=r+1,t+"_"+r},t}(),Ca=new Us(new Ns),Ea=function(){function t(t,e){this._expressionParser=t,this._interpolationConfig=e}return t.prototype.toI18nMessage=function(t,e,r,n){this._isIcu=1==t.length&&t[0]instanceof Qs,this._icuDepth=0,this._placeholderRegistry=new wa,this._placeholderToContent={},this._placeholderToMessage={};var o=lt(this,t,{});return new pa(o,this._placeholderToContent,this._placeholderToMessage,e,r,n)},t.prototype.visitElement=function(t){var e=lt(this,t.children),r={};t.attrs.forEach(function(t){r[t.name]=t.value});var n=c(t.name).isVoid,o=this._placeholderRegistry.getStartTagPlaceholderName(t.name,r,n);this._placeholderToContent[o]=t.sourceSpan.toString();var i="";return n||(i=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[i]="</"+t.name+">"),new ma(t.name,r,o,i,e,n,t.sourceSpan)},t.prototype.visitAttribute=function(t){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitText=function(t){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitComment=function(){return null},t.prototype.visitExpansion=function(e){var r=this;this._icuDepth++;var n={},o=new da(e.switchValue,e.type,n,e.sourceSpan);if(e.cases.forEach(function(t){n[t.value]=new fa(t.expression.map(function(t){return t.visit(r,{})}),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){var i=this._placeholderRegistry.getUniquePlaceholder("VAR_"+e.type);return o.expressionPlaceholder=i,this._placeholderToContent[i]=e.switchValue,o}var s=this._placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString()),a=new t(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[s]=a.toI18nMessage([e],"","",""),new va(o,s,e.sourceSpan)},t.prototype.visitExpansionCase=function(){throw new Error("Unreachable code")},t.prototype._visitTextWithInterpolation=function(t,e){var r=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!r)return new ha(t,e);for(var n=[],o=new fa(n,e),i=this._interpolationConfig,s=i.start,a=i.end,u=0;u<r.strings.length-1;u++){var c=r.expressions[u],l=Tt(c)||"INTERPOLATION",p=this._placeholderRegistry.getPlaceholderName(l,c);r.strings[u].length&&n.push(new ha(r.strings[u],e)),n.push(new ya(c,p,e)),this._placeholderToContent[p]=s+c+a}var h=r.strings.length-1;return r.strings[h].length&&n.push(new ha(r.strings[h],e)),o},t}(),Sa=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*("|')([\s\S]*?)\1[\s\S]*\)/g,xa=function(t){function e(e,r){return t.call(this,e,r)||this}return Zn(e,t),e}($s),Ta="i18n",Pa="i18n-",Aa=/^i18n:?/,Oa="|",Ma="@@",Ra=function(){function t(t,e){this.messages=t,this.errors=e}return t}(),ka={};ka.Extract=0,ka.Merge=1,ka[ka.Extract]="Extract",ka[ka.Merge]="Merge";var Ia=function(){function t(t,e){this._implicitTags=t,this._implicitAttrs=e}return t.prototype.extract=function(t,e){var r=this;return this._init(ka.Extract,e),t.forEach(function(t){return t.visit(r,null)}),this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new Ra(this._messages,this._errors)},t.prototype.merge=function(t,e,r){this._init(ka.Merge,r),this._translations=e;var n=new Ys("wrapper",[],t,void 0,void 0,void 0),o=n.visit(this,null);return this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new ua(o.children,this._errors)},t.prototype.visitExpansionCase=function(t,e){var r=lt(this,t.expression,e);return this._mode===ka.Merge?new Xs(t.value,r,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan):void 0},t.prototype.visitExpansion=function(t,e){this._mayBeAddBlockChildren(t);var r=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([t]),this._inIcu=!0);var n=lt(this,t.cases,e);return this._mode===ka.Merge&&(t=new Qs(t.switchValue,t.type,n,t.sourceSpan,t.switchValueSourceSpan)),this._inIcu=r,t},t.prototype.visitComment=function(t){var e=Ot(t);if(e&&this._isInTranslatableSection)return void this._reportError(t,"Could not start a block inside a translatable section");var r=Mt(t);if(r&&!this._inI18nBlock)return void this._reportError(t,"Trying to close an unopened block");if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(r){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(t,this._blockChildren),this._inI18nBlock=!1;var n=this._addMessage(this._blockChildren,this._blockMeaningAndDesc),o=this._translateMessage(t,n);return lt(this,o)}return void this._reportError(t,"I18N blocks should not cross element boundaries")}}else e&&(this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=t.value.replace(Aa,"").trim(),this._openTranslatableSection(t))},t.prototype.visitText=function(t){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(t),t},t.prototype.visitElement=function(t,e){var r=this;this._mayBeAddBlockChildren(t),this._depth++;var n=this._inI18nNode,o=this._inImplicitNode,i=[],s=void 0,a=Rt(t),u=a?a.value:"",c=this._implicitTags.some(function(e){return t.name===e})&&!this._inIcu&&!this._isInTranslatableSection,l=!o&&c;if(this._inImplicitNode=o||c,this._isInTranslatableSection||this._inIcu)(a||l)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this._mode==ka.Extract&&lt(this,t.children);else{if(a||l){this._inI18nNode=!0;var p=this._addMessage(t.children,u);s=this._translateMessage(t,p)}if(this._mode==ka.Extract){var h=a||l;h&&this._openTranslatableSection(t),lt(this,t.children),h&&this._closeTranslatableSection(t,t.children)}}if(this._mode===ka.Merge){var f=s||t.children;f.forEach(function(t){var n=t.visit(r,e);n&&!r._isInTranslatableSection&&(i=i.concat(n))})}if(this._visitAttributesOf(t),this._depth--,this._inI18nNode=n,this._inImplicitNode=o,this._mode===ka.Merge){var d=this._translateAttributes(t);return new Ys(t.name,d,i,t.sourceSpan,t.startSourceSpan,t.endSourceSpan)}return null},t.prototype.visitAttribute=function(){throw new Error("unreachable code")},t.prototype._init=function(t,e){this._mode=t,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=xt(e)},t.prototype._visitAttributesOf=function(t){var e=this,r={},n=this._implicitAttrs[t.name]||[];t.attrs.filter(function(t){return t.name.startsWith(Pa)}).forEach(function(t){return r[t.name.slice(Pa.length)]=t.value}),t.attrs.forEach(function(t){t.name in r?e._addMessage([t],r[t.name]):n.some(function(e){return t.name===e})&&e._addMessage([t])})},t.prototype._addMessage=function(t,e){if(0==t.length||1==t.length&&t[0]instanceof Zs&&!t[0].value)return null;var r=kt(e),n=r.meaning,o=r.description,i=r.id,s=this._createI18nMessage(t,n,o,i);return this._messages.push(s),s},t.prototype._translateMessage=function(t,e){if(e&&this._mode===ka.Merge){var r=this._translations.get(e);if(r)return r;this._reportError(t,'Translation unavailable for message id="'+this._translations.digest(e)+'"')}return[]},t.prototype._translateAttributes=function(t){var e=this,r=t.attrs,n={};r.forEach(function(t){t.name.startsWith(Pa)&&(n[t.name.slice(Pa.length)]=kt(t.value))});var o=[];return r.forEach(function(r){if(r.name!==Ta&&!r.name.startsWith(Pa))if(r.value&&""!=r.value&&n.hasOwnProperty(r.name)){var i=n[r.name],s=i.meaning,a=i.description,u=i.id,c=e._createI18nMessage([r],s,a,u),l=e._translations.get(c);if(l)if(0==l.length)o.push(new Zs(r.name,"",r.sourceSpan));else if(l[0]instanceof Ks){var p=l[0].value;o.push(new Zs(r.name,p,r.sourceSpan))}else e._reportError(t,'Unexpected translation for attribute "'+r.name+'" (id="'+(u||e._translations.digest(c))+'")');else e._reportError(t,'Translation unavailable for attribute "'+r.name+'" (id="'+(u||e._translations.digest(c))+'")')}else o.push(r)}),o},t.prototype._mayBeAddBlockChildren=function(t){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(t)},t.prototype._openTranslatableSection=function(t){this._isInTranslatableSection?this._reportError(t,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length},Object.defineProperty(t.prototype,"_isInTranslatableSection",{get:function(){return void 0!==this._msgCountAtSectionStart},enumerable:!0,configurable:!0}),t.prototype._closeTranslatableSection=function(t,e){if(!this._isInTranslatableSection)return void this._reportError(t,"Unexpected section end");var r=this._msgCountAtSectionStart,n=e.reduce(function(t,e){return t+(e instanceof Js?0:1)},0);if(1==n)for(var o=this._messages.length-1;o>=r;o--){var i=this._messages[o].nodes;if(!(1==i.length&&i[0]instanceof ha)){this._messages.splice(o,1);break}}this._msgCountAtSectionStart=void 0},t.prototype._reportError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Na=function(){function t(){this.closedByParent=!1,this.contentType=vo.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return t.prototype.requireExtraParent=function(){return!1},t.prototype.isClosedByChild=function(){return!1},t}(),Da=new Na,ja=function(t){function e(){return t.call(this,It)||this}return Zn(e,t),e.prototype.parse=function(e,r,n){return void 0===n&&(n=!1),t.prototype.parse.call(this,e,r,n)},e}(ca),La=function(){function t(){}return t.prototype.visitText=function(t){return t.value},t.prototype.visitContainer=function(t){var e=this;return"["+t.children.map(function(t){return t.visit(e)}).join(", ")+"]"},t.prototype.visitIcu=function(t){var e=this,r=Object.keys(t.cases).map(function(r){return r+" {"+t.cases[r].visit(e)+"}"});return"{"+t.expression+", "+t.type+", "+r.join(", ")+"}"},t.prototype.visitTagPlaceholder=function(t){var e=this;return t.isVoid?'<ph tag name="'+t.startName+'"/>':'<ph tag name="'+t.startName+'">'+t.children.map(function(t){return t.visit(e)}).join(", ")+'</ph name="'+t.closeName+'">'},t.prototype.visitPlaceholder=function(t){return t.value?'<ph name="'+t.name+'">'+t.value+"</ph>":'<ph name="'+t.name+'"/>'},t.prototype.visitIcuPlaceholder=function(t){return'<ph icu name="'+t.name+'">'+t.value.visit(this)+"</ph>"},t}(),Va=new La,Fa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.visitIcu=function(t){var e=this,r=Object.keys(t.cases).map(function(r){return r+" {"+t.cases[r].visit(e)+"}"});return"{"+t.type+", "+r.join(", ")+"}"},e}(La),Ua={};Ua.Little=0,Ua.Big=1,Ua[Ua.Little]="Little",Ua[Ua.Big]="Big";var Ba=function(){function t(){}return t.prototype.write=function(){},t.prototype.load=function(){},t.prototype.digest=function(){},
-t.prototype.createNameMapper=function(){return null},t}(),Ha=function(t){function e(e,r){var n=t.call(this)||this;return n.mapName=r,n.internalToPublic={},n.publicToNextId={},n.publicToInternal={},e.nodes.forEach(function(t){return t.visit(n)}),n}return Zn(e,t),e.prototype.toPublicName=function(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null},e.prototype.toInternalName=function(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null},e.prototype.visitText=function(){return null},e.prototype.visitTagPlaceholder=function(e,r){this.visitPlaceholderName(e.startName),t.prototype.visitTagPlaceholder.call(this,e,r),this.visitPlaceholderName(e.closeName)},e.prototype.visitPlaceholder=function(t){this.visitPlaceholderName(t.name)},e.prototype.visitIcuPlaceholder=function(t){this.visitPlaceholderName(t.name)},e.prototype.visitPlaceholderName=function(t){if(t&&!this.internalToPublic.hasOwnProperty(t)){var e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){var r=this.publicToNextId[e];this.publicToNextId[e]=r+1,e=e+"_"+r}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}},e}(_a),qa=function(){function t(){}return t.prototype.visitTag=function(t){var e=this,r=this._serializeAttributes(t.attrs);if(0==t.children.length)return"<"+t.name+r+"/>";var n=t.children.map(function(t){return t.visit(e)});return"<"+t.name+r+">"+n.join("")+"</"+t.name+">"},t.prototype.visitText=function(t){return t.value},t.prototype.visitDeclaration=function(t){return"<?xml"+this._serializeAttributes(t.attrs)+" ?>"},t.prototype._serializeAttributes=function(t){var e=Object.keys(t).map(function(e){return e+'="'+t[e]+'"'}).join(" ");return e.length>0?" "+e:""},t.prototype.visitDoctype=function(t){return"<!DOCTYPE "+t.rootTag+" [\n"+t.dtd+"\n]>"},t}(),za=new qa,Ga=function(){function t(t){var e=this;this.attrs={},Object.keys(t).forEach(function(r){e.attrs[r]=ie(t[r])})}return t.prototype.visit=function(t){return t.visitDeclaration(this)},t}(),Wa=function(){function t(t,e){this.rootTag=t,this.dtd=e}return t.prototype.visit=function(t){return t.visitDoctype(this)},t}(),$a=function(){function t(t,e,r){void 0===e&&(e={}),void 0===r&&(r=[]);var n=this;this.name=t,this.children=r,this.attrs={},Object.keys(e).forEach(function(t){n.attrs[t]=ie(e[t])})}return t.prototype.visit=function(t){return t.visitTag(this)},t}(),Ka=function(){function t(t){this.value=ie(t)}return t.prototype.visit=function(t){return t.visitText(this)},t}(),Qa=function(t){function e(e){return void 0===e&&(e=0),t.call(this,"\n"+new Array(e+1).join(" "))||this}return Zn(e,t),e}(Ka),Xa=[[/&/g,"&amp;"],[/"/g,"&quot;"],[/'/g,"&apos;"],[/</g,"&lt;"],[/>/g,"&gt;"]],Za="1.2",Ya="urn:oasis:names:tc:xliff:document:1.2",Ja="en",tu="x",eu="file",ru="source",nu="target",ou="trans-unit",iu="context-group",su="context",au=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.write=function(t,e){var r=new uu,n=[];t.forEach(function(t){var e=[];t.sources.forEach(function(t){var r=new $a(iu,{purpose:"location"});r.children.push(new Qa(10),new $a(su,{"context-type":"sourcefile"},[new Ka(t.filePath)]),new Qa(10),new $a(su,{"context-type":"linenumber"},[new Ka(""+t.startLine)]),new Qa(8)),e.push(new Qa(8),r)});var o=new $a(ou,{id:t.id,datatype:"html"});(i=o.children).push.apply(i,[new Qa(8),new $a(ru,{},r.serialize(t.nodes)),new Qa(8),new $a(nu)].concat(e)),t.description&&o.children.push(new Qa(8),new $a("note",{priority:"1",from:"description"},[new Ka(t.description)])),t.meaning&&o.children.push(new Qa(8),new $a("note",{priority:"1",from:"meaning"},[new Ka(t.meaning)])),o.children.push(new Qa(6)),n.push(new Qa(6),o);var i});var o=new $a("body",{},n.concat([new Qa(4)])),i=new $a("file",{"source-language":e||Ja,datatype:"plaintext",original:"ng2.template"},[new Qa(4),o,new Qa(2)]),s=new $a("xliff",{version:Za,xmlns:Ya},[new Qa(2),i,new Qa]);return oe([new Ga({version:"1.0",encoding:"UTF-8"}),new Qa,s,new Qa])},e.prototype.load=function(t,e){var r=new cu,n=r.parse(t,e),o=n.locale,i=n.msgIdToHtml,s=n.errors,a={},u=new lu;if(Object.keys(i).forEach(function(t){var r=u.convert(i[t],e),n=r.i18nNodes,o=r.errors;s.push.apply(s,o),a[t]=n}),s.length)throw new Error("xliff parse errors:\n"+s.join("\n"));return{locale:o,i18nNodesByMsgId:a}},e.prototype.digest=function(t){return Nt(t)},e}(Ba),uu=function(){function t(){}return t.prototype.visitText=function(t){return[new Ka(t.value)]},t.prototype.visitContainer=function(t){var e=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(e))}),r},t.prototype.visitIcu=function(t){var e=this,r=[new Ka("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(n){r.push.apply(r,[new Ka(n+" {")].concat(t.cases[n].visit(e),[new Ka("} ")]))}),r.push(new Ka("}")),r},t.prototype.visitTagPlaceholder=function(t){var e=se(t.tag),r=new $a(tu,{id:t.startName,ctype:e});if(t.isVoid)return[r];var n=new $a(tu,{id:t.closeName,ctype:e});return[r].concat(this.serialize(t.children),[n])},t.prototype.visitPlaceholder=function(t){return[new $a(tu,{id:t.name})]},t.prototype.visitIcuPlaceholder=function(t){return[new $a(tu,{id:t.name})]},t.prototype.serialize=function(t){var e=this;return[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),cu=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._unitMlString=null,this._msgIdToHtml={};var r=(new ja).parse(t,e,!1);return this._errors=r.errors,lt(this,r.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t){switch(t.name){case ou:this._unitMlString=null;var e=t.attrs.find(function(t){return"id"===t.name});if(e){var r=e.value;this._msgIdToHtml.hasOwnProperty(r)?this._addError(t,"Duplicated translations for msg "+r):(lt(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[r]=this._unitMlString:this._addError(t,"Message "+r+" misses a translation"))}else this._addError(t,"<"+ou+'> misses the "id" attribute');break;case ru:break;case nu:var n=t.startSourceSpan.end.offset,o=t.endSourceSpan.start.offset,i=t.startSourceSpan.start.file.content,s=i.slice(n,o);this._unitMlString=s;break;case eu:var a=t.attrs.find(function(t){return"target-language"===t.name});a&&(this._locale=a.value),lt(this,t.children,null);break;default:lt(this,t.children,null)}},t.prototype.visitAttribute=function(){},t.prototype.visitText=function(){},t.prototype.visitComment=function(){},t.prototype.visitExpansion=function(){},t.prototype.visitExpansionCase=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),lu=function(){function t(){}return t.prototype.convert=function(t,e){var r=(new ja).parse(t,e,!0);this._errors=r.errors;var n=this._errors.length>0||0==r.rootNodes.length?[]:lt(this,r.rootNodes);return{i18nNodes:n,errors:this._errors}},t.prototype.visitText=function(t){return new ha(t.value,t.sourceSpan)},t.prototype.visitElement=function(t){if(t.name===tu){var e=t.attrs.find(function(t){return"id"===t.name});if(e)return new ya("",e.value,t.sourceSpan);this._addError(t,"<"+tu+'> misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitExpansion=function(t){var e={};return lt(this,t.cases).forEach(function(r){e[r.value]=new fa(r.nodes,t.sourceSpan)}),new da(t.switchValue,t.type,e,t.sourceSpan)},t.prototype.visitExpansionCase=function(t){return{value:t.value,nodes:lt(this,t.expression)}},t.prototype.visitComment=function(){},t.prototype.visitAttribute=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),pu="2.0",hu="urn:oasis:names:tc:xliff:document:2.0",fu="en",du="ph",mu="pc",yu="xliff",vu="source",gu="target",_u="unit",bu=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.write=function(t,e){var r=new wu,n=[];t.forEach(function(t){var e=new $a(_u,{id:t.id});if(t.description||t.meaning){var o=new $a("notes");t.description&&o.children.push(new Qa(8),new $a("note",{category:"description"},[new Ka(t.description)])),t.meaning&&o.children.push(new Qa(8),new $a("note",{category:"meaning"},[new Ka(t.meaning)])),o.children.push(new Qa(6)),e.children.push(new Qa(6),o)}var i=new $a("segment");i.children.push(new Qa(8),new $a(vu,{},r.serialize(t.nodes)),new Qa(6)),e.children.push(new Qa(6),i,new Qa(4)),n.push(new Qa(4),e)});var o=new $a("file",{original:"ng.template",id:"ngi18n"},n.concat([new Qa(2)])),i=new $a(yu,{version:pu,xmlns:hu,srcLang:e||fu},[new Qa(2),o,new Qa]);return oe([new Ga({version:"1.0",encoding:"UTF-8"}),new Qa,i,new Qa])},e.prototype.load=function(t,e){var r=new Cu,n=r.parse(t,e),o=n.locale,i=n.msgIdToHtml,s=n.errors,a={},u=new Eu;if(Object.keys(i).forEach(function(t){var r=u.convert(i[t],e),n=r.i18nNodes,o=r.errors;s.push.apply(s,o),a[t]=n}),s.length)throw new Error("xliff2 parse errors:\n"+s.join("\n"));return{locale:o,i18nNodesByMsgId:a}},e.prototype.digest=function(t){return Dt(t)},e}(Ba),wu=function(){function t(){}return t.prototype.visitText=function(t){return[new Ka(t.value)]},t.prototype.visitContainer=function(t){var e=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(e))}),r},t.prototype.visitIcu=function(t){var e=this,r=[new Ka("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(n){r.push.apply(r,[new Ka(n+" {")].concat(t.cases[n].visit(e),[new Ka("} ")]))}),r.push(new Ka("}")),r},t.prototype.visitTagPlaceholder=function(t){var e=this,r=ae(t.tag);if(t.isVoid){var n=new $a(du,{id:(this._nextPlaceholderId++).toString(),equiv:t.startName,type:r,disp:"<"+t.tag+"/>"});return[n]}var o=new $a(mu,{id:(this._nextPlaceholderId++).toString(),equivStart:t.startName,equivEnd:t.closeName,type:r,dispStart:"<"+t.tag+">",dispEnd:"</"+t.tag+">"}),i=[].concat.apply([],t.children.map(function(t){return t.visit(e)}));return i.length?i.forEach(function(t){return o.children.push(t)}):o.children.push(new Ka("")),[o]},t.prototype.visitPlaceholder=function(t){return[new $a(du,{id:(this._nextPlaceholderId++).toString(),equiv:t.name,disp:"{{"+t.value+"}}"})]},t.prototype.visitIcuPlaceholder=function(){return[new $a(du,{id:(this._nextPlaceholderId++).toString()})]},t.prototype.serialize=function(t){var e=this;return this._nextPlaceholderId=0,[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),Cu=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._unitMlString=null,this._msgIdToHtml={};var r=(new ja).parse(t,e,!1);return this._errors=r.errors,lt(this,r.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t){switch(t.name){case _u:this._unitMlString=null;var e=t.attrs.find(function(t){return"id"===t.name});if(e){var r=e.value;this._msgIdToHtml.hasOwnProperty(r)?this._addError(t,"Duplicated translations for msg "+r):(lt(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[r]=this._unitMlString:this._addError(t,"Message "+r+" misses a translation"))}else this._addError(t,"<"+_u+'> misses the "id" attribute');break;case vu:break;case gu:var n=t.startSourceSpan.end.offset,o=t.endSourceSpan.start.offset,i=t.startSourceSpan.start.file.content,s=i.slice(n,o);this._unitMlString=s;break;case yu:var a=t.attrs.find(function(t){return"trgLang"===t.name});a&&(this._locale=a.value);var u=t.attrs.find(function(t){return"version"===t.name});if(u){var c=u.value;"2.0"!==c?this._addError(t,"The XLIFF file version "+c+" is not compatible with XLIFF 2.0 serializer"):lt(this,t.children,null)}break;default:lt(this,t.children,null)}},t.prototype.visitAttribute=function(){},t.prototype.visitText=function(){},t.prototype.visitComment=function(){},t.prototype.visitExpansion=function(){},t.prototype.visitExpansionCase=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Eu=function(){function t(){}return t.prototype.convert=function(t,e){var r=(new ja).parse(t,e,!0);this._errors=r.errors;var n=this._errors.length>0||0==r.rootNodes.length?[]:[].concat.apply([],lt(this,r.rootNodes));return{i18nNodes:n,errors:this._errors}},t.prototype.visitText=function(t){return new ha(t.value,t.sourceSpan)},t.prototype.visitElement=function(t){var e=this;switch(t.name){case du:var r=t.attrs.find(function(t){return"equiv"===t.name});if(r)return[new ya("",r.value,t.sourceSpan)];this._addError(t,"<"+du+'> misses the "equiv" attribute');break;case mu:var n=t.attrs.find(function(t){return"equivStart"===t.name}),o=t.attrs.find(function(t){return"equivEnd"===t.name});if(n){if(o){var i=n.value,s=o.value,a=[];return a.concat.apply(a,[new ya("",i,t.sourceSpan)].concat(t.children.map(function(t){return t.visit(e,null)}),[new ya("",s,t.sourceSpan)]))}this._addError(t,"<"+du+'> misses the "equivEnd" attribute')}else this._addError(t,"<"+du+'> misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null},t.prototype.visitExpansion=function(t){var e={};return lt(this,t.cases).forEach(function(r){e[r.value]=new fa(r.nodes,t.sourceSpan)}),new da(t.switchValue,t.type,e,t.sourceSpan)},t.prototype.visitExpansionCase=function(t){return{value:t.value,nodes:[].concat.apply([],lt(this,t.expression))}},t.prototype.visitComment=function(){},t.prototype.visitAttribute=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Su="messagebundle",xu="msg",Tu="ph",Pu="ex",Au="source",Ou='<!ELEMENT messagebundle (msg)*>\n<!ATTLIST messagebundle class CDATA #IMPLIED>\n\n<!ELEMENT msg (#PCDATA|ph|source)*>\n<!ATTLIST msg id CDATA #IMPLIED>\n<!ATTLIST msg seq CDATA #IMPLIED>\n<!ATTLIST msg name CDATA #IMPLIED>\n<!ATTLIST msg desc CDATA #IMPLIED>\n<!ATTLIST msg meaning CDATA #IMPLIED>\n<!ATTLIST msg obsolete (obsolete) #IMPLIED>\n<!ATTLIST msg xml:space (default|preserve) "default">\n<!ATTLIST msg is_hidden CDATA #IMPLIED>\n\n<!ELEMENT source (#PCDATA)>\n\n<!ELEMENT ph (#PCDATA|ex)*>\n<!ATTLIST ph name CDATA #REQUIRED>\n\n<!ELEMENT ex (#PCDATA)>',Mu=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.write=function(t){var e=new ku,r=new Ru,n=new $a(Su);return t.forEach(function(t){var e={id:t.id};t.description&&(e.desc=t.description),t.meaning&&(e.meaning=t.meaning);var o=[];t.sources.forEach(function(t){o.push(new $a(Au,{},[new Ka(t.filePath+":"+t.startLine+(t.endLine!==t.startLine?","+t.endLine:""))]))}),n.children.push(new Qa(2),new $a(xu,e,o.concat(r.serialize(t.nodes))))}),n.children.push(new Qa),oe([new Ga({version:"1.0",encoding:"UTF-8"}),new Qa,new Wa(Su,Ou),new Qa,e.addDefaultExamples(n),new Qa])},e.prototype.load=function(){throw new Error("Unsupported")},e.prototype.digest=function(t){return ue(t)},e.prototype.createNameMapper=function(t){return new Ha(t,ce)},e}(Ba),Ru=function(){function t(){}return t.prototype.visitText=function(t){return[new Ka(t.value)]},t.prototype.visitContainer=function(t){var e=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(e))}),r},t.prototype.visitIcu=function(t){var e=this,r=[new Ka("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(n){r.push.apply(r,[new Ka(n+" {")].concat(t.cases[n].visit(e),[new Ka("} ")]))}),r.push(new Ka("}")),r},t.prototype.visitTagPlaceholder=function(t){var e=new $a(Pu,{},[new Ka("<"+t.tag+">")]),r=new $a(Tu,{name:t.startName},[e]);if(t.isVoid)return[r];var n=new $a(Pu,{},[new Ka("</"+t.tag+">")]),o=new $a(Tu,{name:t.closeName},[n]);return[r].concat(this.serialize(t.children),[o])},t.prototype.visitPlaceholder=function(t){return[new $a(Tu,{name:t.name})]},t.prototype.visitIcuPlaceholder=function(t){return[new $a(Tu,{name:t.name})]},t.prototype.serialize=function(t){var e=this;return[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),ku=function(){function t(){}return t.prototype.addDefaultExamples=function(t){return t.visit(this),t},t.prototype.visitTag=function(t){var e=this;if(t.name===Tu){if(!t.children||0==t.children.length){var r=new Ka(t.attrs.name||"...");t.children=[new $a(Pu,{},[r])]}}else t.children&&t.children.forEach(function(t){return t.visit(e)})},t.prototype.visitText=function(){},t.prototype.visitDeclaration=function(){},t.prototype.visitDoctype=function(){},t}(),Iu="translationbundle",Nu="translation",Du="ph",ju=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.write=function(){throw new Error("Unsupported")},e.prototype.load=function(t,e){var r=new Lu,n=r.parse(t,e),o=n.locale,i=n.msgIdToHtml,s=n.errors,a={},u=new Vu;if(Object.keys(i).forEach(function(t){var r=function(){var r=u.convert(i[t],e),n=r.i18nNodes,o=r.errors;if(o.length)throw new Error("xtb parse errors:\n"+o.join("\n"));return n};le(a,t,r)}),s.length)throw new Error("xtb parse errors:\n"+s.join("\n"));return{locale:o,i18nNodesByMsgId:a}},e.prototype.digest=function(t){return ue(t)},e.prototype.createNameMapper=function(t){return new Ha(t,ce)},e}(Ba),Lu=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._bundleDepth=0,this._msgIdToHtml={};var r=(new ja).parse(t,e,!1);return this._errors=r.errors,lt(this,r.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t){switch(t.name){case Iu:this._bundleDepth++,this._bundleDepth>1&&this._addError(t,"<"+Iu+"> elements can not be nested");var e=t.attrs.find(function(t){return"lang"===t.name});e&&(this._locale=e.value),lt(this,t.children,null),this._bundleDepth--;break;case Nu:var r=t.attrs.find(function(t){return"id"===t.name});if(r){var n=r.value;if(this._msgIdToHtml.hasOwnProperty(n))this._addError(t,"Duplicated translations for msg "+n);else{var o=t.startSourceSpan.end.offset,i=t.endSourceSpan.start.offset,s=t.startSourceSpan.start.file.content,a=s.slice(o,i);this._msgIdToHtml[n]=a}}else this._addError(t,"<"+Nu+'> misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}},t.prototype.visitAttribute=function(){},t.prototype.visitText=function(){},t.prototype.visitComment=function(){},t.prototype.visitExpansion=function(){},t.prototype.visitExpansionCase=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Vu=function(){function t(){}return t.prototype.convert=function(t,e){var r=(new ja).parse(t,e,!0);this._errors=r.errors;var n=this._errors.length>0||0==r.rootNodes.length?[]:lt(this,r.rootNodes);return{i18nNodes:n,errors:this._errors}},t.prototype.visitText=function(t){return new ha(t.value,t.sourceSpan)},t.prototype.visitExpansion=function(t){var e={};return lt(this,t.cases).forEach(function(r){e[r.value]=new fa(r.nodes,t.sourceSpan)}),new da(t.switchValue,t.type,e,t.sourceSpan)},t.prototype.visitExpansionCase=function(t){return{value:t.value,nodes:lt(this,t.expression)}},t.prototype.visitElement=function(t){if(t.name===Du){var e=t.attrs.find(function(t){return"name"===t.name});if(e)return new ya("",e.value,t.sourceSpan);this._addError(t,"<"+Du+'> misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitComment=function(){},t.prototype.visitAttribute=function(){},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Fu=function(t){function e(){return t.call(this,c)||this}return Zn(e,t),e.prototype.parse=function(e,r,n,o){return void 0===n&&(n=!1),void 0===o&&(o=Rs),t.prototype.parse.call(this,e,r,n,o)},e}(ca);Fu.decorators=[{type:z}],Fu.ctorParameters=function(){return[]};var Uu=function(){function t(t,r,n,o,i,s){void 0===t&&(t={}),void 0===i&&(i=e.MissingTranslationStrategy.Warning),this._i18nNodesByMsgId=t,this.digest=n,this.mapperFactory=o,this._i18nToHtml=new Bu(t,r,n,o,i,s)}return t.load=function(e,r,n,o,i){var s=n.load(e,r),a=s.locale,u=s.i18nNodesByMsgId,c=function(t){return n.digest(t)},l=function(t){return n.createNameMapper(t)};return new t(u,a,c,l,o,i)},t.prototype.get=function(t){var e=this._i18nToHtml.convert(t);if(e.errors.length)throw new Error(e.errors.join("\n"));return e.nodes},t.prototype.has=function(t){return this.digest(t)in this._i18nNodesByMsgId},t}(),Bu=function(){function t(t,e,r,n,o,i){void 0===t&&(t={}),this._i18nNodesByMsgId=t,this._locale=e,this._digest=r,this._mapperFactory=n,this._missingTranslationStrategy=o,this._console=i,this._contextStack=[],this._errors=[]}return t.prototype.convert=function(t){this._contextStack.length=0,this._errors.length=0;var e=this._convertToText(t),r=t.nodes[0].sourceSpan.start.file.url,n=(new Fu).parse(e,r,!0);return{nodes:n.rootNodes,errors:this._errors.concat(n.errors)}},t.prototype.visitText=function(t){return t.value},t.prototype.visitContainer=function(t){var e=this;return t.children.map(function(t){return t.visit(e)}).join("")},t.prototype.visitIcu=function(t){var e=this,r=Object.keys(t.cases).map(function(r){return r+" {"+t.cases[r].visit(e)+"}"}),n=this._srcMsg.placeholders.hasOwnProperty(t.expression)?this._srcMsg.placeholders[t.expression]:t.expression;return"{"+n+", "+t.type+", "+r.join(" ")+"}"},t.prototype.visitPlaceholder=function(t){var e=this._mapper(t.name);return this._srcMsg.placeholders.hasOwnProperty(e)?this._srcMsg.placeholders[e]:this._srcMsg.placeholderToMessage.hasOwnProperty(e)?this._convertToText(this._srcMsg.placeholderToMessage[e]):(this._addError(t,'Unknown placeholder "'+t.name+'"'),"")},t.prototype.visitTagPlaceholder=function(t){var e=this,r=""+t.tag,n=Object.keys(t.attrs).map(function(e){return e+'="'+t.attrs[e]+'"'}).join(" ");if(t.isVoid)return"<"+r+" "+n+"/>";var o=t.children.map(function(t){return t.visit(e)}).join("");return"<"+r+" "+n+">"+o+"</"+r+">"},t.prototype.visitIcuPlaceholder=function(t){return this._convertToText(this._srcMsg.placeholderToMessage[t.name])},t.prototype._convertToText=function(t){var r,n=this,o=this._digest(t),i=this._mapperFactory?this._mapperFactory(t):null;if(this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(o))r=this._i18nNodesByMsgId[o],this._mapper=function(t){return i?i.toInternalName(t):t};else{if(this._missingTranslationStrategy===e.MissingTranslationStrategy.Error){var s=this._locale?' for locale "'+this._locale+'"':"";this._addError(t.nodes[0],'Missing translation for message "'+o+'"'+s)}else if(this._console&&this._missingTranslationStrategy===e.MissingTranslationStrategy.Warning){var s=this._locale?' for locale "'+this._locale+'"':"";this._console.warn('Missing translation for message "'+o+'"'+s)}r=t.nodes,this._mapper=function(t){return t}}var a=r.map(function(t){return t.visit(n)}).join(""),u=this._contextStack.pop();return this._srcMsg=u.msg,this._mapper=u.mapper,a},t.prototype._addError=function(t,e){this._errors.push(new xa(t.sourceSpan,e))},t}(),Hu=function(){function t(t,r,n,o,i){if(void 0===o&&(o=e.MissingTranslationStrategy.Warning),this._htmlParser=t,r){var s=pe(n);this._translationBundle=Uu.load(r,"i18n",s,o,i)}}return t.prototype.parse=function(t,e,r,n){void 0===r&&(r=!1),void 0===n&&(n=Rs);var o=this._htmlParser.parse(t,e,r,n);return this._translationBundle?o.errors.length?new ua(o.rootNodes,o.errors):At(o.rootNodes,this._translationBundle,n,[],{}):o},t}(),qu=he("core"),zu=function(){function t(){}return t}();zu.ANALYZE_FOR_ENTRY_COMPONENTS={name:"ANALYZE_FOR_ENTRY_COMPONENTS",moduleUrl:qu,runtime:e.ANALYZE_FOR_ENTRY_COMPONENTS},zu.ElementRef={name:"ElementRef",moduleUrl:qu,runtime:e.ElementRef},zu.NgModuleRef={name:"NgModuleRef",moduleUrl:qu,runtime:e.NgModuleRef},zu.ViewContainerRef={name:"ViewContainerRef",moduleUrl:qu,runtime:e.ViewContainerRef},zu.ChangeDetectorRef={name:"ChangeDetectorRef",moduleUrl:qu,runtime:e.ChangeDetectorRef},zu.QueryList={name:"QueryList",moduleUrl:qu,runtime:e.QueryList},zu.TemplateRef={name:"TemplateRef",moduleUrl:qu,runtime:e.TemplateRef},zu.CodegenComponentFactoryResolver={name:"ɵCodegenComponentFactoryResolver",moduleUrl:qu,runtime:e.ɵCodegenComponentFactoryResolver},zu.ComponentFactoryResolver={name:"ComponentFactoryResolver",moduleUrl:qu,runtime:e.ComponentFactoryResolver},zu.ComponentFactory={name:"ComponentFactory",moduleUrl:qu,runtime:e.ComponentFactory},zu.ComponentRef={name:"ComponentRef",moduleUrl:qu,runtime:e.ComponentRef},zu.NgModuleFactory={name:"NgModuleFactory",moduleUrl:qu,runtime:e.NgModuleFactory},zu.NgModuleInjector={name:"ɵNgModuleInjector",moduleUrl:qu,runtime:e.ɵNgModuleInjector},zu.RegisterModuleFactoryFn={name:"ɵregisterModuleFactory",moduleUrl:qu,runtime:e.ɵregisterModuleFactory},zu.Injector={name:"Injector",moduleUrl:qu,runtime:e.Injector},zu.ViewEncapsulation={name:"ViewEncapsulation",moduleUrl:qu,runtime:e.ViewEncapsulation},zu.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleUrl:qu,runtime:e.ChangeDetectionStrategy},zu.SecurityContext={name:"SecurityContext",moduleUrl:qu,runtime:e.SecurityContext},zu.LOCALE_ID={name:"LOCALE_ID",moduleUrl:qu,runtime:e.LOCALE_ID},zu.TRANSLATIONS_FORMAT={name:"TRANSLATIONS_FORMAT",moduleUrl:qu,runtime:e.TRANSLATIONS_FORMAT},zu.inlineInterpolate={name:"ɵinlineInterpolate",moduleUrl:qu,runtime:e.ɵinlineInterpolate},zu.interpolate={name:"ɵinterpolate",moduleUrl:qu,runtime:e.ɵinterpolate},zu.EMPTY_ARRAY={name:"ɵEMPTY_ARRAY",moduleUrl:qu,runtime:e.ɵEMPTY_ARRAY},zu.EMPTY_MAP={name:"ɵEMPTY_MAP",moduleUrl:qu,runtime:e.ɵEMPTY_MAP},zu.Renderer={name:"Renderer",moduleUrl:qu,runtime:e.Renderer},zu.viewDef={name:"ɵvid",moduleUrl:qu,runtime:e.ɵvid},zu.elementDef={name:"ɵeld",moduleUrl:qu,runtime:e.ɵeld},zu.anchorDef={name:"ɵand",moduleUrl:qu,runtime:e.ɵand},zu.textDef={name:"ɵted",moduleUrl:qu,runtime:e.ɵted},zu.directiveDef={name:"ɵdid",moduleUrl:qu,runtime:e.ɵdid},zu.providerDef={name:"ɵprd",moduleUrl:qu,runtime:e.ɵprd},zu.queryDef={name:"ɵqud",moduleUrl:qu,runtime:e.ɵqud},zu.pureArrayDef={name:"ɵpad",moduleUrl:qu,runtime:e.ɵpad},zu.pureObjectDef={name:"ɵpod",moduleUrl:qu,runtime:e.ɵpod},zu.purePipeDef={name:"ɵppd",moduleUrl:qu,runtime:e.ɵppd},zu.pipeDef={name:"ɵpid",moduleUrl:qu,runtime:e.ɵpid},zu.nodeValue={name:"ɵnov",moduleUrl:qu,runtime:e.ɵnov},zu.ngContentDef={name:"ɵncd",moduleUrl:qu,runtime:e.ɵncd},zu.unwrapValue={name:"ɵunv",moduleUrl:qu,runtime:e.ɵunv},zu.createRendererType2={name:"ɵcrt",moduleUrl:qu,runtime:e.ɵcrt},zu.RendererType2={name:"RendererType2",moduleUrl:qu,runtime:null},zu.ViewDefinition={name:"ɵViewDefinition",moduleUrl:qu,runtime:null},zu.createComponentFactory={name:"ɵccf",moduleUrl:qu,runtime:e.ɵccf};var Gu=["zero","one","two","few","many","other"],Wu=function(){function t(t,e,r){this.nodes=t,this.expanded=e,this.errors=r}return t}(),$u=function(t){function e(e,r){return t.call(this,e,r)||this}return Zn(e,t),e}($s),Ku=function(){function t(){this.isExpanded=!1,this.errors=[]}return t.prototype.visitElement=function(t){return new Ys(t.name,t.attrs,lt(this,t.children),t.sourceSpan,t.startSourceSpan,t.endSourceSpan)},t.prototype.visitAttribute=function(t){return t},t.prototype.visitText=function(t){return t},t.prototype.visitComment=function(t){return t},t.prototype.visitExpansion=function(t){return this.isExpanded=!0,"plural"==t.type?ge(t,this.errors):_e(t,this.errors)},t.prototype.visitExpansionCase=function(){throw new Error("Should not be reached")},t}(),Qu=function(t){function e(e,r){return t.call(this,r,e)||this}return Zn(e,t),e}($s),Xu=function(){function t(t){var e=this;this.component=t,this.errors=[],this.viewQueries=Se(t),this.viewProviders=new Map,t.viewProviders.forEach(function(t){null==e.viewProviders.get(R(t.token))&&e.viewProviders.set(R(t.token),!0)})}return t}(),Zu=function(){function t(t,e,r,n,o,i,s,a,u){var c=this;this.viewContext=t,this._parent=e,this._isViewRoot=r,this._directiveAsts=n,this._sourceSpan=u,this._transformedProviders=new Map,this._seenProviders=new Map,this._hasViewContainer=!1,this._queriedTokens=new Map,this._attrs={},o.forEach(function(t){return c._attrs[t.name]=t.value});var l=n.map(function(t){return t.directive});if(this._allProviders=Ce(l,u,t.errors),this._contentQueries=xe(a,l),Array.from(this._allProviders.values()).forEach(function(t){c._addQueryReadsTo(t.token,t.token,c._queriedTokens)}),s){var p=ye(zu.TemplateRef);this._addQueryReadsTo(p,p,this._queriedTokens)}i.forEach(function(t){var e=t.value||ye(zu.ElementRef);c._addQueryReadsTo({value:t.name},e,c._queriedTokens)}),this._queriedTokens.get(fe(zu.ViewContainerRef))&&(this._hasViewContainer=!0),Array.from(this._allProviders.values()).forEach(function(t){var e=t.eager||c._queriedTokens.get(R(t.token));e&&c._getOrCreateLocalProvider(t.providerType,t.token,!0)})}return t.prototype.afterElement=function(){var t=this;Array.from(this._allProviders.values()).forEach(function(e){t._getOrCreateLocalProvider(e.providerType,e.token,!1)})},Object.defineProperty(t.prototype,"transformProviders",{get:function(){return Array.from(this._transformedProviders.values())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transformedDirectiveAsts",{get:function(){var t=this.transformProviders.map(function(t){return t.token.identifier}),e=this._directiveAsts.slice();return e.sort(function(e,r){return t.indexOf(e.directive.type)-t.indexOf(r.directive.type)}),e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transformedHasViewContainer",{get:function(){return this._hasViewContainer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryMatches",{get:function(){var t=[];return this._queriedTokens.forEach(function(e){t.push.apply(t,e)}),t},enumerable:!0,configurable:!0}),t.prototype._addQueryReadsTo=function(t,e,r){this._getQueriesFor(t).forEach(function(t){var n=t.meta.read||e,o=R(n),i=r.get(o);i||(i=[],r.set(o,i)),i.push({queryId:t.queryId,value:n})})},t.prototype._getQueriesFor=function(t){for(var e,r=[],n=this,o=0;null!==n;)e=n._contentQueries.get(R(t)),e&&r.push.apply(r,e.filter(function(t){return t.meta.descendants||1>=o})),n._directiveAsts.length>0&&o++,n=n._parent;return e=this.viewContext.viewQueries.get(R(t)),e&&r.push.apply(r,e),r},t.prototype._getOrCreateLocalProvider=function(t,e,r){var n=this,o=this._allProviders.get(R(e));if(!o||(t===po.Directive||t===po.PublicService)&&o.providerType===po.PrivateService||(t===po.PrivateService||t===po.PublicService)&&o.providerType===po.Builtin)return null;var i=this._transformedProviders.get(R(e));if(i)return i;if(null!=this._seenProviders.get(R(e)))return this.viewContext.errors.push(new Qu("Cannot instantiate cyclic dependency! "+M(e),this._sourceSpan)),null;this._seenProviders.set(R(e),!0);var s=o.providers.map(function(t){var e=t.useValue,i=t.useExisting,s=void 0;if(null!=t.useExisting){var a=n._getDependency(o.providerType,{token:t.useExisting},r);null!=a.token?i=a.token:(i=null,e=a.value)}else if(t.useFactory){var u=t.deps||t.useFactory.diDeps;s=u.map(function(t){return n._getDependency(o.providerType,t,r)})}else if(t.useClass){var u=t.deps||t.useClass.diDeps;s=u.map(function(t){return n._getDependency(o.providerType,t,r)})}return be(t,{useExisting:i,useValue:e,deps:s})});return i=we(o,{eager:r,providers:s}),this._transformedProviders.set(R(e),i),i},t.prototype._getLocalDependency=function(t,e,r){if(void 0===r&&(r=!1),e.isAttribute){var n=this._attrs[e.token.value];return{isValue:!0,value:null==n?null:n}}if(null!=e.token){if(t===po.Directive||t===po.Component){if(R(e.token)===fe(zu.Renderer)||R(e.token)===fe(zu.ElementRef)||R(e.token)===fe(zu.ChangeDetectorRef)||R(e.token)===fe(zu.TemplateRef))return e;R(e.token)===fe(zu.ViewContainerRef)&&(this._hasViewContainer=!0)}if(R(e.token)===fe(zu.Injector))return e;if(null!=this._getOrCreateLocalProvider(t,e.token,r))return e}return null},t.prototype._getDependency=function(t,e,r){void 0===r&&(r=!1);var n=this,o=r,i=null;if(e.isSkipSelf||(i=this._getLocalDependency(t,e,r)),e.isSelf)!i&&e.isOptional&&(i={isValue:!0,value:null});else{for(;!i&&n._parent;){var s=n;n=n._parent,s._isViewRoot&&(o=!1),
-i=n._getLocalDependency(po.PublicService,e,o)}i||(i=!e.isHost||this.viewContext.component.isHost||this.viewContext.component.type.reference===R(e.token)||null!=this.viewContext.viewProviders.get(R(e.token))?e:e.isOptional?i={isValue:!0,value:null}:null)}return i||this.viewContext.errors.push(new Qu("No provider for "+M(e.token),this._sourceSpan)),i},t}(),Yu=function(){function t(t,e,r){var n=this;this._transformedProviders=new Map,this._seenProviders=new Map,this._errors=[],this._allProviders=new Map,t.transitiveModule.modules.forEach(function(t){var e={token:{identifier:t},useClass:t};Ee([e],po.PublicService,!0,r,n._errors,n._allProviders)}),Ee(t.transitiveModule.providers.map(function(t){return t.provider}).concat(e),po.PublicService,!1,r,this._errors,this._allProviders)}return t.prototype.parse=function(){var t=this;if(Array.from(this._allProviders.values()).forEach(function(e){t._getOrCreateLocalProvider(e.token,e.eager)}),this._errors.length>0){var e=this._errors.join("\n");throw new Error("Provider parse errors:\n"+e)}return Array.from(this._transformedProviders.values())},t.prototype._getOrCreateLocalProvider=function(t,e){var r=this,n=this._allProviders.get(R(t));if(!n)return null;var o=this._transformedProviders.get(R(t));if(o)return o;if(null!=this._seenProviders.get(R(t)))return this._errors.push(new Qu("Cannot instantiate cyclic dependency! "+M(t),n.sourceSpan)),null;this._seenProviders.set(R(t),!0);var i=n.providers.map(function(t){var o=t.useValue,i=t.useExisting,s=void 0;if(null!=t.useExisting){var a=r._getDependency({token:t.useExisting},e,n.sourceSpan);null!=a.token?i=a.token:(i=null,o=a.value)}else if(t.useFactory){var u=t.deps||t.useFactory.diDeps;s=u.map(function(t){return r._getDependency(t,e,n.sourceSpan)})}else if(t.useClass){var u=t.deps||t.useClass.diDeps;s=u.map(function(t){return r._getDependency(t,e,n.sourceSpan)})}return be(t,{useExisting:i,useValue:o,deps:s})});return o=we(n,{eager:e,providers:i}),this._transformedProviders.set(R(t),o),o},t.prototype._getDependency=function(t,e,r){void 0===e&&(e=!1);var n=!1;t.isSkipSelf||null==t.token||(R(t.token)===fe(zu.Injector)||R(t.token)===fe(zu.ComponentFactoryResolver)?n=!0:null!=this._getOrCreateLocalProvider(t.token,e)&&(n=!0));var o=t;return t.isSelf&&!n&&(t.isOptional?o={isValue:!0,value:null}:this._errors.push(new Qu("No provider for "+M(t.token),r))),o},t}(),Ju=function(){function t(){}return t.prototype.hasProperty=function(){},t.prototype.hasElement=function(){},t.prototype.securityContext=function(){},t.prototype.allKnownElementNames=function(){},t.prototype.getMappedPropName=function(){},t.prototype.getDefaultComponentElementName=function(){},t.prototype.validateProperty=function(){},t.prototype.validateAttribute=function(){},t.prototype.normalizeAnimationStyleProperty=function(){},t.prototype.normalizeAnimationStyleValue=function(){},t}(),tc=function(){function t(t,e){this.style=t,this.styleUrls=e}return t}(),ec=/@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g,rc=/\/\*.+?\*\//g,nc=/^([^:\/?#]+):/,oc=".",ic="attr",sc="class",ac="style",uc="animate-",cc={};cc.DEFAULT=0,cc.LITERAL_ATTR=1,cc.ANIMATION=2,cc[cc.DEFAULT]="DEFAULT",cc[cc.LITERAL_ATTR]="LITERAL_ATTR",cc[cc.ANIMATION]="ANIMATION";var lc=function(){function t(t,e,r,n){this.name=t,this.expression=e,this.type=r,this.sourceSpan=n}return Object.defineProperty(t.prototype,"isLiteral",{get:function(){return this.type===cc.LITERAL_ATTR},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimation",{get:function(){return this.type===cc.ANIMATION},enumerable:!0,configurable:!0}),t}(),pc=function(){function t(t,e,r,n,o){var i=this;this._exprParser=t,this._interpolationConfig=e,this._schemaRegistry=r,this._targetErrors=o,this.pipesByName=new Map,this._usedPipes=new Map,n.forEach(function(t){return i.pipesByName.set(t.name,t)})}return t.prototype.getUsedPipes=function(){return Array.from(this._usedPipes.values())},t.prototype.createDirectiveHostPropertyAsts=function(t,e,r){var n=this;if(t.hostProperties){var o=[];return Object.keys(t.hostProperties).forEach(function(e){var i=t.hostProperties[e];"string"==typeof i?n.parsePropertyBinding(e,i,!0,r,[],o):n._reportError('Value of the host property binding "'+e+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",r)}),o.map(function(t){return n.createElementPropertyAst(e,t)})}return null},t.prototype.createDirectiveHostEventAsts=function(t,e){var r=this;if(t.hostListeners){var n=[];return Object.keys(t.hostListeners).forEach(function(o){var i=t.hostListeners[o];"string"==typeof i?r.parseEvent(o,i,e,[],n):r._reportError('Value of the host listener "'+o+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",e)}),n}return null},t.prototype.parseInterpolation=function(t,e){var r=e.start.toString();try{var n=this._exprParser.parseInterpolation(t,r,this._interpolationConfig);return n&&this._reportExpressionParserErrors(n.errors,e),this._checkPipes(n,e),n}catch(o){return this._reportError(""+o,e),this._exprParser.wrapLiteralPrimitive("ERROR",r)}},t.prototype.parseInlineTemplateBinding=function(t,e,r,n,o,i){for(var s=this._parseTemplateBindings(t,e,r),a=0;a<s.length;a++){var u=s[a];u.keyIsVar?i.push(new io(u.key,u.name,r)):u.expression?this._parsePropertyAst(u.key,u.expression,r,n,o):(n.push([u.key,""]),this.parseLiteralAttr(u.key,null,r,n,o))}},t.prototype._parseTemplateBindings=function(t,e,r){var n=this,o=r.start.toString();try{var i=this._exprParser.parseTemplateBindings(t,e,o);return this._reportExpressionParserErrors(i.errors,r),i.templateBindings.forEach(function(t){t.expression&&n._checkPipes(t.expression,r)}),i.warnings.forEach(function(t){n._reportError(t,r,Ws.WARNING)}),i.templateBindings}catch(s){return this._reportError(""+s,r),[]}},t.prototype.parseLiteralAttr=function(t,e,r,n,o){Oe(t)?(t=t.substring(1),e&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',r,Ws.ERROR),this._parseAnimation(t,e,r,n,o)):o.push(new lc(t,this._exprParser.wrapLiteralPrimitive(e,""),cc.LITERAL_ATTR,r))},t.prototype.parsePropertyBinding=function(t,e,r,n,o,i){var s=!1;t.startsWith(uc)?(s=!0,t=t.substring(uc.length)):Oe(t)&&(s=!0,t=t.substring(1)),s?this._parseAnimation(t,e,n,o,i):this._parsePropertyAst(t,this._parseBinding(e,r,n),n,o,i)},t.prototype.parsePropertyInterpolation=function(t,e,r,n,o){var i=this.parseInterpolation(e,r);return i?(this._parsePropertyAst(t,i,r,n,o),!0):!1},t.prototype._parsePropertyAst=function(t,e,r,n,o){n.push([t,e.source]),o.push(new lc(t,e,cc.DEFAULT,r))},t.prototype._parseAnimation=function(t,e,r,n,o){var i=this._parseBinding(e||"null",!1,r);n.push([t,i.source]),o.push(new lc(t,i,cc.ANIMATION,r))},t.prototype._parseBinding=function(t,e,r){var n=r.start.toString();try{var o=e?this._exprParser.parseSimpleBinding(t,n,this._interpolationConfig):this._exprParser.parseBinding(t,n,this._interpolationConfig);return o&&this._reportExpressionParserErrors(o.errors,r),this._checkPipes(o,r),o}catch(i){return this._reportError(""+i,r),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype.createElementPropertyAst=function(t,r){if(r.isAnimation)return new ro(r.name,fo.Animation,e.SecurityContext.NONE,r.expression,null,r.sourceSpan);var n=null,o=void 0,i=null,s=r.name.split(oc),a=void 0;if(s.length>1)if(s[0]==ic){i=s[1],this._validatePropertyOrAttributeName(i,r.sourceSpan,!0),a=Me(this._schemaRegistry,t,i,!0);var c=i.indexOf(":");if(c>-1){var l=i.substring(0,c),p=i.substring(c+1);i=u(l,p)}o=fo.Attribute}else s[0]==sc?(i=s[1],o=fo.Class,a=[e.SecurityContext.NONE]):s[0]==ac&&(n=s.length>2?s[2]:null,i=s[1],o=fo.Style,a=[e.SecurityContext.STYLE]);return null===i&&(i=this._schemaRegistry.getMappedPropName(r.name),a=Me(this._schemaRegistry,t,i,!1),o=fo.Property,this._validatePropertyOrAttributeName(i,r.sourceSpan,!1)),new ro(i,o,a[0],r.expression,n,r.sourceSpan)},t.prototype.parseEvent=function(t,e,r,n,o){Oe(t)?(t=t.substr(1),this._parseAnimationEvent(t,e,r,o)):this._parseEvent(t,e,r,n,o)},t.prototype._parseAnimationEvent=function(t,e,r,n){var o=h(t,[t,""]),i=o[0],s=o[1].toLowerCase();if(s)switch(s){case"start":case"done":var a=this._parseAction(e,r);n.push(new no(i,null,s,a,r));break;default:this._reportError('The provided animation output phase value "'+s+'" for "@'+i+'" is not supported (use start or done)',r)}else this._reportError("The animation trigger output event (@"+i+") is missing its phase value name (start or done are currently supported)",r)},t.prototype._parseEvent=function(t,e,r,n,o){var i=p(t,[null,t]),s=i[0],a=i[1],u=this._parseAction(e,r);n.push([t,u.source]),o.push(new no(a,s,null,u,r))},t.prototype._parseAction=function(t,e){var r=e.start.toString();try{var n=this._exprParser.parseAction(t,r,this._interpolationConfig);return n&&this._reportExpressionParserErrors(n.errors,e),!n||n.ast instanceof ii?(this._reportError("Empty expressions are not allowed",e),this._exprParser.wrapLiteralPrimitive("ERROR",r)):(this._checkPipes(n,e),n)}catch(o){return this._reportError(""+o,e),this._exprParser.wrapLiteralPrimitive("ERROR",r)}},t.prototype._reportError=function(t,e,r){void 0===r&&(r=Ws.ERROR),this._targetErrors.push(new $s(e,t,r))},t.prototype._reportExpressionParserErrors=function(t,e){for(var r=0,n=t;r<n.length;r++){var o=n[r];this._reportError(o.message,e)}},t.prototype._checkPipes=function(t,e){var r=this;if(t){var n=new hc;t.visit(n),n.pipes.forEach(function(t,n){var o=r.pipesByName.get(n);o?r._usedPipes.set(n,o):r._reportError("The pipe '"+n+"' could not be found",new Gs(e.start.moveBy(t.span.start),e.start.moveBy(t.span.end)))})}},t.prototype._validatePropertyOrAttributeName=function(t,e,r){var n=r?this._schemaRegistry.validateAttribute(t):this._schemaRegistry.validateProperty(t);n.error&&this._reportError(n.msg,e,Ws.ERROR)},t}(),hc=function(t){function e(){var e=t.apply(this,arguments)||this;return e.pipes=new Map,e}return Zn(e,t),e.prototype.visitPipe=function(t,e){return this.pipes.set(t.name,t),t.exp.visit(this),this.visitAll(t.args,e),null},e}(Ti),fc="select",dc="link",mc="rel",yc="href",vc="stylesheet",gc="style",_c="script",bc="ngNonBindable",wc="ngProjectAs",Cc={};Cc.NG_CONTENT=0,Cc.STYLE=1,Cc.STYLESHEET=2,Cc.SCRIPT=3,Cc.OTHER=4,Cc[Cc.NG_CONTENT]="NG_CONTENT",Cc[Cc.STYLE]="STYLE",Cc[Cc.STYLESHEET]="STYLESHEET",Cc[Cc.SCRIPT]="SCRIPT",Cc[Cc.OTHER]="OTHER";var Ec=function(){function t(t,e,r,n,o){this.type=t,this.selectAttr=e,this.hrefAttr=r,this.nonBindable=n,this.projectAs=o}return t}(),Sc=/^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/,xc=1,Tc=2,Pc=3,Ac=4,Oc=5,Mc=6,Rc=7,kc=8,Ic=9,Nc=10,Dc="template",jc="template",Lc="*",Vc="class",Fc=Eo.parse("*")[0],Uc="The <template> element is deprecated. Use <ng-template> instead",Bc="The template attribute is deprecated. Use an ng-template element instead.",Hc={},qc=new e.InjectionToken("TemplateTransforms"),zc=function(t){function e(e,r,n){return t.call(this,r,e,n)||this}return Zn(e,t),e}($s),Gc=function(){function t(t,e,r){this.templateAst=t,this.usedPipes=e,this.errors=r}return t}(),Wc=function(){function t(t,e,r,n,o,i){this._config=t,this._exprParser=e,this._schemaRegistry=r,this._htmlParser=n,this._console=o,this.transforms=i}return t.prototype.parse=function(t,e,r,n,o,i){var s=this.tryParse(t,e,r,n,o,i),a=s.errors.filter(function(t){return t.level===Ws.WARNING}).filter(Ie([Bc,Uc])),u=s.errors.filter(function(t){return t.level===Ws.ERROR});if(a.length>0&&this._console.warn("Template parse warnings:\n"+a.join("\n")),u.length>0){var c=u.join("\n");throw v("Template parse errors:\n"+c)}return{template:s.templateAst,pipes:s.usedPipes}},t.prototype.tryParse=function(t,e,r,n,o,i){return this.tryParseHtml(this.expandHtml(this._htmlParser.parse(e,i,!0,this.getInterpolationConfig(t))),t,r,n,o)},t.prototype.tryParseHtml=function(t,e,n,o,i){var s,a=t.errors,u=[];if(t.rootNodes.length>0){var c=Le(n),l=Le(o),p=new Xu(e),h=void 0;e.template&&e.template.interpolation&&(h={start:e.template.interpolation[0],end:e.template.interpolation[1]});var f=new pc(this._exprParser,h,this._schemaRegistry,l,a),d=new $c(this._config,p,c,f,this._schemaRegistry,i,a);s=lt(d,t.rootNodes,Zc),a.push.apply(a,p.errors),u.push.apply(u,f.getUsedPipes())}else s=[];return this._assertNoReferenceDuplicationOnTemplate(s,a),a.length>0?new Gc(s,u,a):(this.transforms&&this.transforms.forEach(function(t){s=r(t,s)}),new Gc(s,u,a))},t.prototype.expandHtml=function(t,e){void 0===e&&(e=!1);var r=t.errors;if(0==r.length||e){var n=ve(t.rootNodes);r.push.apply(r,n.errors),t=new ua(n.nodes,r)}return t},t.prototype.getInterpolationConfig=function(t){return t.template?Ms.fromArray(t.template.interpolation):void 0},t.prototype._assertNoReferenceDuplicationOnTemplate=function(t,e){var r=[];t.filter(function(t){return!!t.references}).forEach(function(t){return t.references.forEach(function(t){var n=t.name;if(r.indexOf(n)<0)r.push(n);else{var o=new zc('Reference "#'+n+'" is defined several times',t.sourceSpan,Ws.ERROR);e.push(o)}})})},t}();Wc.decorators=[{type:z}],Wc.ctorParameters=function(){return[{type:ti},{type:Us},{type:Ju},{type:Hu},{type:e.ɵConsole},{type:Array,decorators:[{type:e.Optional},{type:e.Inject,args:[qc]}]}]};var $c=function(){function t(t,e,r,n,o,i,s){var a=this;this.config=t,this.providerViewContext=e,this._bindingParser=n,this._schemaRegistry=o,this._schemas=i,this._targetErrors=s,this.selectorMatcher=new So,this.directivesIndex=new Map,this.ngContentCount=0,this.contentQueryStartId=e.component.viewQueries.length+1,r.forEach(function(t,e){var r=Eo.parse(t.selector);a.selectorMatcher.addSelectables(r,t),a.directivesIndex.set(t,e)})}return t.prototype.visitExpansion=function(){return null},t.prototype.visitExpansionCase=function(){return null},t.prototype.visitText=function(t,e){var r=e.findNgContentIndex(Fc),n=this._bindingParser.parseInterpolation(t.value,t.sourceSpan);return n?new to(n,r,t.sourceSpan):new Jn(t.value,r,t.sourceSpan)},t.prototype.visitAttribute=function(t){return new eo(t.name,t.value,t.sourceSpan)},t.prototype.visitComment=function(){return null},t.prototype.visitElement=function(t,e){var r=this,n=this.contentQueryStartId,o=t.name,i=Re(t);if(i.type===Cc.SCRIPT||i.type===Cc.STYLE)return null;if(i.type===Cc.STYLESHEET&&Pe(i.hrefAttr))return null;var s=[],a=[],u=[],c=[],l=[],p=[],h=[],f=[],d=!1,m=[],y=Fe(t,this.config.enableLegacyTemplate,function(t,e){return r._reportError(t,e,Ws.WARNING)});t.attrs.forEach(function(t){var e,n,o=r._parseAttr(y,t,s,a,l,u,c),i=r._normalizeAttributeName(t.name);r.config.enableLegacyTemplate&&i==jc?(r._reportError(Bc,t.sourceSpan,Ws.WARNING),e=t.value):i.startsWith(Lc)&&(e=t.value,n=i.substring(Lc.length)+":");var v=null!=e;v&&(d&&r._reportError("Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *",t.sourceSpan),d=!0,r._bindingParser.parseInlineTemplateBinding(n,e,t.sourceSpan,h,p,f)),o||v||(m.push(r.visitAttribute(t,null)),s.push([t.name,t.value]))});var v=De(o,s),g=this._parseDirectives(this.selectorMatcher,v),_=g.directives,b=g.matchElement,w=[],C=new Set,E=this._createDirectiveAsts(y,t.name,_,a,u,t.sourceSpan,w,C),S=this._createElementPropertyAsts(t.name,a,C),x=e.isTemplateElement||d,T=new Zu(this.providerViewContext,e.providerContext,x,E,m,w,y,n,t.sourceSpan),P=lt(i.nonBindable?Yc:this,t.children,Xc.create(y,E,y?e.providerContext:T));T.afterElement();var A,O=null!=i.projectAs?Eo.parse(i.projectAs)[0]:v,M=e.findNgContentIndex(O);if(i.type===Cc.NG_CONTENT)t.children&&!t.children.every(je)&&this._reportError("<ng-content> element cannot have content.",t.sourceSpan),A=new ho(this.ngContentCount++,d?null:M,t.sourceSpan);else if(y)this._assertAllEventsPublishedByDirectives(E,l),this._assertNoComponentsNorElementBindingsOnTemplate(E,S,t.sourceSpan),A=new ao(m,l,w,c,T.transformedDirectiveAsts,T.transformProviders,T.transformedHasViewContainer,T.queryMatches,P,d?null:M,t.sourceSpan);else{this._assertElementExists(b,t),this._assertOnlyOneComponent(E,t.sourceSpan);var R=d?null:e.findNgContentIndex(O);A=new so(o,m,S,l,w,T.transformedDirectiveAsts,T.transformProviders,T.transformedHasViewContainer,T.queryMatches,P,d?null:R,t.sourceSpan,t.endSourceSpan||null)}if(d){var k=this.contentQueryStartId,I=De(Dc,h),N=this._parseDirectives(this.selectorMatcher,I).directives,D=new Set,j=this._createDirectiveAsts(!0,t.name,N,p,[],t.sourceSpan,[],D),L=this._createElementPropertyAsts(t.name,p,D);this._assertNoComponentsNorElementBindingsOnTemplate(j,L,t.sourceSpan);var V=new Zu(this.providerViewContext,e.providerContext,e.isTemplateElement,j,[],[],!0,k,t.sourceSpan);V.afterElement(),A=new ao([],[],[],f,V.transformedDirectiveAsts,V.transformProviders,V.transformedHasViewContainer,V.queryMatches,[A],M,t.sourceSpan)}return A},t.prototype._parseAttr=function(t,e,r,n,o,i,s){var a=this._normalizeAttributeName(e.name),u=e.value,c=e.sourceSpan,l=a.match(Sc),p=!1;if(null!==l)if(p=!0,null!=l[xc])this._bindingParser.parsePropertyBinding(l[Rc],u,!1,c,r,n);else if(l[Tc])if(t){var h=l[Rc];this._parseVariable(h,u,c,s)}else this._reportError('"let-" is only supported on template elements.',c);else if(l[Pc]){var h=l[Rc];this._parseReference(h,u,c,i)}else l[Ac]?this._bindingParser.parseEvent(l[Rc],u,c,r,o):l[Oc]?(this._bindingParser.parsePropertyBinding(l[Rc],u,!1,c,r,n),this._parseAssignmentEvent(l[Rc],u,c,r,o)):l[Mc]?this._bindingParser.parseLiteralAttr(a,u,c,r,n):l[kc]?(this._bindingParser.parsePropertyBinding(l[kc],u,!1,c,r,n),this._parseAssignmentEvent(l[kc],u,c,r,o)):l[Ic]?this._bindingParser.parsePropertyBinding(l[Ic],u,!1,c,r,n):l[Nc]&&this._bindingParser.parseEvent(l[Nc],u,c,r,o);else p=this._bindingParser.parsePropertyInterpolation(a,u,c,r,n);return p||this._bindingParser.parseLiteralAttr(a,u,c,r,n),p},t.prototype._normalizeAttributeName=function(t){return/^data-/i.test(t)?t.substring(5):t},t.prototype._parseVariable=function(t,e,r,n){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in variable names',r),n.push(new io(t,e,r))},t.prototype._parseReference=function(t,e,r,n){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in reference names',r),n.push(new Qc(t,e,r))},t.prototype._parseAssignmentEvent=function(t,e,r,n,o){this._bindingParser.parseEvent(t+"Change",e+"=$event",r,n,o)},t.prototype._parseDirectives=function(t,e){var r=this,n=new Array(this.directivesIndex.size),o=!1;return t.match(e,function(t,e){n[r.directivesIndex.get(e)]=e,o=o||t.hasElementSelector()}),{directives:n.filter(function(t){return!!t}),matchElement:o}},t.prototype._createDirectiveAsts=function(t,e,r,n,o,i,s,a){var u=this,c=new Set,l=null,p=r.map(function(t){var r=new Gs(i.start,i.end,"Directive "+E(t.type));t.isComponent&&(l=t);var p=[],h=u._bindingParser.createDirectiveHostPropertyAsts(t,e,r);h=u._checkPropertiesInSchema(e,h);var f=u._bindingParser.createDirectiveHostEventAsts(t,r);u._createDirectivePropertyAsts(t.inputs,n,p,a),o.forEach(function(e){(0===e.value.length&&t.isComponent||t.exportAs==e.value)&&(s.push(new oo(e.name,me(t.type),e.sourceSpan)),c.add(e.name))});var d=u.contentQueryStartId;return u.contentQueryStartId+=t.queries.length,new co(t,p,h,f,d,r)});return o.forEach(function(e){if(e.value.length>0)c.has(e.name)||u._reportError('There is no directive with "exportAs" set to "'+e.value+'"',e.sourceSpan);else if(!l){var r=null;t&&(r=ye(zu.TemplateRef)),s.push(new oo(e.name,r,e.sourceSpan))}}),p},t.prototype._createDirectivePropertyAsts=function(t,e,r,n){if(t){var o=new Map;e.forEach(function(t){var e=o.get(t.name);(!e||e.isLiteral)&&o.set(t.name,t)}),Object.keys(t).forEach(function(e){var i=t[e],s=o.get(i);s&&(n.add(s.name),Ve(s.expression)||r.push(new uo(e,s.name,s.expression,s.sourceSpan)))})}},t.prototype._createElementPropertyAsts=function(t,e,r){var n=this,o=[];return e.forEach(function(e){e.isLiteral||r.has(e.name)||o.push(n._bindingParser.createElementPropertyAst(t,e))}),this._checkPropertiesInSchema(t,o)},t.prototype._findComponentDirectives=function(t){return t.filter(function(t){return t.directive.isComponent})},t.prototype._findComponentDirectiveNames=function(t){return this._findComponentDirectives(t).map(function(t){return E(t.directive.type)})},t.prototype._assertOnlyOneComponent=function(t,e){var r=this._findComponentDirectiveNames(t);r.length>1&&this._reportError("More than one component matched on this element.\nMake sure that only one component's selector can match a given element.\nConflicting components: "+r.join(","),e)},t.prototype._assertElementExists=function(t,e){var r=e.name.replace(/^:xhtml:/,"");if(!t&&!this._schemaRegistry.hasElement(r,this._schemas)){var n="'"+r+"' is not a known element:\n";n+="1. If '"+r+"' is an Angular component, then verify that it is part of this module.\n",n+=r.indexOf("-")>-1?"2. If '"+r+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.":"2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.",this._reportError(n,e.sourceSpan)}},t.prototype._assertNoComponentsNorElementBindingsOnTemplate=function(t,e,r){var n=this,o=this._findComponentDirectiveNames(t);o.length>0&&this._reportError("Components on an embedded template: "+o.join(","),r),e.forEach(function(t){n._reportError("Property binding "+t.name+' not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "@NgModule.declarations".',r)})},t.prototype._assertAllEventsPublishedByDirectives=function(t,e){var r=this,n=new Set;t.forEach(function(t){Object.keys(t.directive.outputs).forEach(function(e){var r=t.directive.outputs[e];n.add(r)})}),e.forEach(function(t){null==t.target&&n.has(t.name)||r._reportError("Event binding "+t.fullName+' not emitted by any directive on an embedded template. Make sure that the event name is spelled correctly and all directives are listed in the "@NgModule.declarations".',t.sourceSpan)})},t.prototype._checkPropertiesInSchema=function(t,e){var r=this;return e.filter(function(e){if(e.type===fo.Property&&!r._schemaRegistry.hasProperty(t,e.name,r._schemas)){var n="Can't bind to '"+e.name+"' since it isn't a known property of '"+t+"'.";t.startsWith("ng-")?n+="\n1. If '"+e.name+"' is an Angular directive, then add 'CommonModule' to the '@NgModule.imports' of this component.\n2. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.":t.indexOf("-")>-1&&(n+="\n1. If '"+t+"' is an Angular component and it has '"+e.name+"' input, then verify that it is part of this module."+("\n2. If '"+t+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.")+"\n3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component."),r._reportError(n,e.sourceSpan)}return!Ve(e.value)})},t.prototype._reportError=function(t,e,r){void 0===r&&(r=Ws.ERROR),this._targetErrors.push(new $s(e,t,r))},t}(),Kc=function(){function t(){}return t.prototype.visitElement=function(t,e){var r=Re(t);if(r.type===Cc.SCRIPT||r.type===Cc.STYLE||r.type===Cc.STYLESHEET)return null;var n=t.attrs.map(function(t){return[t.name,t.value]}),o=De(t.name,n),i=e.findNgContentIndex(o),s=lt(this,t.children,Zc);return new so(t.name,lt(this,t.attrs),[],[],[],[],[],!1,[],s,i,t.sourceSpan,t.endSourceSpan)},t.prototype.visitComment=function(){return null},t.prototype.visitAttribute=function(t){return new eo(t.name,t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){var r=e.findNgContentIndex(Fc);return new Jn(t.value,r,t.sourceSpan)},t.prototype.visitExpansion=function(t){return t},t.prototype.visitExpansionCase=function(t){return t},t}(),Qc=function(){function t(t,e,r){this.name=t,this.value=e,this.sourceSpan=r}return t}(),Xc=function(){function t(t,e,r,n){this.isTemplateElement=t,this._ngContentIndexMatcher=e,this._wildcardNgContentIndex=r,this.providerContext=n}return t.create=function(e,r,n){var o=new So,i=null,s=r.find(function(t){return t.directive.isComponent});if(s)for(var a=s.directive.template.ngContentSelectors,u=0;u<a.length;u++){var c=a[u];"*"===c?i=u:o.addSelectables(Eo.parse(a[u]),u)}return new t(e,o,i,n)},t.prototype.findNgContentIndex=function(t){var e=[];return this._ngContentIndexMatcher.match(t,function(t,r){e.push(r)}),e.sort(),null!=this._wildcardNgContentIndex&&e.push(this._wildcardNgContentIndex),e.length>0?e[0]:null},t}(),Zc=new Xc(!0,new So,null,null),Yc=new Kc,Jc=function(){function t(){}return t.prototype.get=function(){return null},t}(),tl={provide:e.PACKAGE_ROOT_URL,useValue:"/"},el=function(){function t(t){void 0===t&&(t=null),this._packagePrefix=t}return t.prototype.resolve=function(t,e){var r=e;null!=t&&t.length>0&&(r=$e(t,r));var n=ze(r),o=this._packagePrefix;if(null!=o&&null!=n&&"package"==n[nl.Scheme]){var i=n[nl.Path];return o=o.replace(/\/+$/,""),i=i.replace(/^\/+/,""),o+"/"+i}return r},t}();el.decorators=[{type:z}],el.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.PACKAGE_ROOT_URL]}]}]};var rl=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),nl={};nl.Scheme=1,nl.UserInfo=2,nl.Domain=3,nl.Port=4,nl.Path=5,nl.QueryData=6,nl.Fragment=7,nl[nl.Scheme]="Scheme",nl[nl.UserInfo]="UserInfo",nl[nl.Domain]="Domain",nl[nl.Port]="Port",nl[nl.Path]="Path",nl[nl.QueryData]="QueryData",nl[nl.Fragment]="Fragment";var ol=function(){function t(t,e,r,n){this._resourceLoader=t,this._urlResolver=e,this._htmlParser=r,this._config=n,this._resourceLoaderCache=new Map}return t.prototype.clearCache=function(){this._resourceLoaderCache.clear()},t.prototype.clearCacheFor=function(t){var e=this;if(t.isComponent){var r=t.template;this._resourceLoaderCache["delete"](r.templateUrl),r.externalStylesheets.forEach(function(t){e._resourceLoaderCache["delete"](t.moduleUrl)})}},t.prototype._fetch=function(t){var e=this._resourceLoaderCache.get(t);return e||(e=this._resourceLoader.get(t),this._resourceLoaderCache.set(t,e)),e},t.prototype.normalizeTemplate=function(t){var r=this,n=null,o=void 0;if(m(t.template)){if(m(t.templateUrl))throw v("'"+e.ɵstringify(t.componentType)+"' component cannot define both template and templateUrl");if("string"!=typeof t.template)throw v("The template specified for component "+e.ɵstringify(t.componentType)+" is not a string");n=this.normalizeTemplateSync(t),o=Promise.resolve(n)}else{if(!m(t.templateUrl))throw v("No template specified for component "+e.ɵstringify(t.componentType));if("string"!=typeof t.templateUrl)throw v("The templateUrl specified for component "+e.ɵstringify(t.componentType)+" is not a string");o=this.normalizeTemplateAsync(t)}return n&&0===n.styleUrls.length?new Mo(n):new Mo(null,o.then(function(t){return r.normalizeExternalStylesheets(t)}))},t.prototype.normalizeTemplateSync=function(t){return this.normalizeLoadedTemplate(t,t.template,t.moduleUrl)},t.prototype.normalizeTemplateAsync=function(t){var e=this,r=this._urlResolver.resolve(t.moduleUrl,t.templateUrl);return this._fetch(r).then(function(n){return e.normalizeLoadedTemplate(t,n,r)})},t.prototype.normalizeLoadedTemplate=function(t,r,n){var o=!!t.template,i=Ms.fromArray(t.interpolation),s=this._htmlParser.parse(r,j({reference:t.ngModuleType},{type:{reference:t.componentType}},{isInline:o,templateUrl:n}),!0,i);if(s.errors.length>0){var a=s.errors.join("\n");throw v("Template parse errors:\n"+a)}var u=this.normalizeStylesheet(new $o({styles:t.styles,styleUrls:t.styleUrls,moduleUrl:t.moduleUrl})),c=new il;lt(c,s.rootNodes);var l=this.normalizeStylesheet(new $o({styles:c.styles,styleUrls:c.styleUrls,moduleUrl:n})),p=t.encapsulation;null==p&&(p=this._config.defaultEncapsulation);var h=u.styles.concat(l.styles),f=u.styleUrls.concat(l.styleUrls);return p===e.ViewEncapsulation.Emulated&&0===h.length&&0===f.length&&(p=e.ViewEncapsulation.None),new Ko({encapsulation:p,template:r,templateUrl:n,styles:h,styleUrls:f,ngContentSelectors:c.ngContentSelectors,animations:t.animations,interpolation:t.interpolation,isInline:o,externalStylesheets:[]})},t.prototype.normalizeExternalStylesheets=function(t){return this._loadMissingExternalStylesheets(t.styleUrls).then(function(e){return new Ko({encapsulation:t.encapsulation,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,externalStylesheets:e,ngContentSelectors:t.ngContentSelectors,animations:t.animations,interpolation:t.interpolation,isInline:t.isInline})})},t.prototype._loadMissingExternalStylesheets=function(t,e){var r=this;return void 0===e&&(e=new Map),Promise.all(t.filter(function(t){return!e.has(t)}).map(function(t){return r._fetch(t).then(function(n){var o=r.normalizeStylesheet(new $o({styles:[n],moduleUrl:t}));return e.set(t,o),r._loadMissingExternalStylesheets(o.styleUrls,e)})})).then(function(){return Array.from(e.values())})},t.prototype.normalizeStylesheet=function(t){var e=this,r=t.moduleUrl,n=t.styleUrls.filter(Pe).map(function(t){return e._urlResolver.resolve(r,t)}),o=t.styles.map(function(t){var o=Ae(e._urlResolver,r,t);return n.push.apply(n,o.styleUrls),o.style});return new $o({styles:o,styleUrls:n,moduleUrl:r})},t}();ol.decorators=[{type:z}],ol.ctorParameters=function(){return[{type:Jc},{type:el},{type:Fu},{type:ti}]};var il=function(){function t(){this.ngContentSelectors=[],this.styles=[],this.styleUrls=[],this.ngNonBindableStackCount=0}return t.prototype.visitElement=function(t){var e=Re(t);switch(e.type){case Cc.NG_CONTENT:0===this.ngNonBindableStackCount&&this.ngContentSelectors.push(e.selectAttr);break;case Cc.STYLE:var r="";t.children.forEach(function(t){t instanceof Ks&&(r+=t.value)}),this.styles.push(r);break;case Cc.STYLESHEET:this.styleUrls.push(e.hrefAttr)}return e.nonBindable&&this.ngNonBindableStackCount++,lt(this,t.children),e.nonBindable&&this.ngNonBindableStackCount--,null},t.prototype.visitExpansion=function(t){lt(this,t.cases)},t.prototype.visitExpansionCase=function(t){lt(this,t.expression)},t.prototype.visitComment=function(){return null},t.prototype.visitAttribute=function(){return null},t.prototype.visitText=function(){return null},t}(),sl=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},al=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isDirective=function(t){var r=this._reflector.annotations(e.resolveForwardRef(t));return r&&r.some(Ke)},t.prototype.resolve=function(t,r){void 0===r&&(r=!0);var n=this._reflector.annotations(e.resolveForwardRef(t));if(n){var o=Qe(n,Ke);if(o){var i=this._reflector.propMetadata(t);return this._mergeWithPropertyMetadata(o,i,t)}}if(r)throw new Error("No Directive annotation found on "+e.ɵstringify(t));return null},t.prototype._mergeWithPropertyMetadata=function(t,r,n){var o=[],i=[],s={},a={};return Object.keys(r).forEach(function(t){var n=Qe(r[t],function(t){return t instanceof e.Input});n&&o.push(n.bindingPropertyName?t+": "+n.bindingPropertyName:t);var u=Qe(r[t],function(t){return t instanceof e.Output});u&&i.push(u.bindingPropertyName?t+": "+u.bindingPropertyName:t);var c=r[t].filter(function(t){return t&&t instanceof e.HostBinding});c.forEach(function(e){if(e.hostPropertyName){var r=e.hostPropertyName[0];if("("===r)throw new Error("@HostBinding can not bind to events. Use @HostListener instead.");if("["===r)throw new Error("@HostBinding parameter should be a property name, 'class.<name>', or 'attr.<name>'.");s["["+e.hostPropertyName+"]"]=t}else s["["+t+"]"]=t});var l=r[t].filter(function(t){return t&&t instanceof e.HostListener});l.forEach(function(e){var r=e.args||[];s["("+e.eventName+")"]=t+"("+r.join(",")+")"});var p=Qe(r[t],function(t){return t instanceof e.Query});p&&(a[t]=p)}),this._merge(t,o,i,s,a,n);
-
-},t.prototype._extractPublicName=function(t){return p(t,[null,t])[1].trim()},t.prototype._dedupeBindings=function(t){for(var e=new Set,r=[],n=t.length-1;n>=0;n--){var o=t[n],i=this._extractPublicName(o);e.has(i)||(e.add(i),r.push(o))}return r.reverse()},t.prototype._merge=function(t,r,n,o,i){var s=this._dedupeBindings(t.inputs?t.inputs.concat(r):r),a=this._dedupeBindings(t.outputs?t.outputs.concat(n):n),u=t.host?sl({},t.host,o):o,c=t.queries?sl({},t.queries,i):i;return t instanceof e.Component?new e.Component({selector:t.selector,inputs:s,outputs:a,host:u,exportAs:t.exportAs,moduleId:t.moduleId,queries:c,changeDetection:t.changeDetection,providers:t.providers,viewProviders:t.viewProviders,entryComponents:t.entryComponents,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,encapsulation:t.encapsulation,animations:t.animations,interpolation:t.interpolation}):new e.Directive({selector:t.selector,inputs:s,outputs:a,host:u,exportAs:t.exportAs,queries:c,providers:t.providers})},t}();al.decorators=[{type:z}],al.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var ul=/(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/,cl=/\.ngfactory\./,ll=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isNgModule=function(t){return this._reflector.annotations(t).some(nr)},t.prototype.resolve=function(t,r){void 0===r&&(r=!0);var n=Qe(this._reflector.annotations(t),nr);if(n)return n;if(r)throw new Error("No NgModule metadata found for '"+e.ɵstringify(t)+"'.");return null},t}();ll.decorators=[{type:z}],ll.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var pl=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isPipe=function(t){var r=this._reflector.annotations(e.resolveForwardRef(t));return r&&r.some(or)},t.prototype.resolve=function(t,r){void 0===r&&(r=!0);var n=this._reflector.annotations(e.resolveForwardRef(t));if(n){var o=Qe(n,or);if(o)return o}if(r)throw new Error("No Pipe decorator found on "+e.ɵstringify(t));return null},t}();pl.decorators=[{type:z}],pl.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var hl=function(){function t(){}return t.prototype.isLibraryFile=function(){return!1},t.prototype.getLibraryFileName=function(){return null},t.prototype.resolveSummary=function(){return null},t.prototype.getSymbolsOf=function(){return[]},t.prototype.getImportAs=function(t){return t},t}();hl.decorators=[{type:z}],hl.ctorParameters=function(){return[]};var fl=new e.InjectionToken("ErrorCollector"),dl=function(){function t(t,r,n,o,i,s,a,u,c,l,p){void 0===l&&(l=e.ɵreflector),this._config=t,this._ngModuleResolver=r,this._directiveResolver=n,this._pipeResolver=o,this._summaryResolver=i,this._schemaRegistry=s,this._directiveNormalizer=a,this._console=u,this._staticSymbolCache=c,this._reflector=l,this._errorCollector=p,this._nonNormalizedDirectiveCache=new Map,this._directiveCache=new Map,this._summaryCache=new Map,this._pipeCache=new Map,this._ngModuleCache=new Map,this._ngModuleOfTypes=new Map}return t.prototype.clearCacheFor=function(t){var e=this._directiveCache.get(t);this._directiveCache["delete"](t),this._nonNormalizedDirectiveCache["delete"](t),this._summaryCache["delete"](t),this._pipeCache["delete"](t),this._ngModuleOfTypes["delete"](t),this._ngModuleCache.clear(),e&&this._directiveNormalizer.clearCacheFor(e)},t.prototype.clearCache=function(){this._directiveCache.clear(),this._nonNormalizedDirectiveCache.clear(),this._summaryCache.clear(),this._pipeCache.clear(),this._ngModuleCache.clear(),this._ngModuleOfTypes.clear(),this._directiveNormalizer.clearCache()},t.prototype._createProxyClass=function(t,r){var n=null,o=function(){if(!n)throw new Error("Illegal state: Class "+r+" for type "+e.ɵstringify(t)+" is not compiled yet!");return n.apply(this,arguments)};return o.setDelegate=function(t){n=t,o.prototype=t.prototype},o.overriddenName=r,o},t.prototype.getGeneratedClass=function(t,e){return t instanceof mo?this._staticSymbolCache.get(Xe(t.filePath),e):this._createProxyClass(t,e)},t.prototype.getComponentViewClass=function(t){return this.getGeneratedClass(t,x(t,0))},t.prototype.getHostComponentViewClass=function(t){return this.getGeneratedClass(t,P(t))},t.prototype.getHostComponentType=function(t){var e=E({reference:t})+"_Host";if(t instanceof mo)return this._staticSymbolCache.get(t.filePath,e);var r=function(){};return r.overriddenName=e,r},t.prototype.getRendererType=function(t){return t instanceof mo?this._staticSymbolCache.get(Xe(t.filePath),T(t)):{}},t.prototype.getComponentFactory=function(t,r,n,o){if(r instanceof mo)return this._staticSymbolCache.get(Xe(r.filePath),O(r));var i=this.getHostComponentViewClass(r);return e.ɵccf(t,r,i,n,o,[])},t.prototype.initComponentFactory=function(t,e){t instanceof mo||(r=t.ngContentSelectors).push.apply(r,e);var r},t.prototype._loadSummary=function(t,e){var r=this._summaryCache.get(t);if(!r){var n=this._summaryResolver.resolveSummary(t);r=n?n.type:null,this._summaryCache.set(t,r||null)}return r&&r.summaryKind===e?r:null},t.prototype._loadDirectiveMetadata=function(t,r,n){var o=this;if(this._directiveCache.has(r))return null;r=e.resolveForwardRef(r);var i=this.getNonNormalizedDirectiveMetadata(r),s=i.annotation,a=i.metadata,u=function(t){var e=new Qo({isHost:!1,type:a.type,isComponent:a.isComponent,selector:a.selector,exportAs:a.exportAs,changeDetection:a.changeDetection,inputs:a.inputs,outputs:a.outputs,hostListeners:a.hostListeners,hostProperties:a.hostProperties,hostAttributes:a.hostAttributes,providers:a.providers,viewProviders:a.viewProviders,queries:a.queries,viewQueries:a.viewQueries,entryComponents:a.entryComponents,componentViewType:a.componentViewType,rendererType:a.rendererType,componentFactory:a.componentFactory,template:t});return t&&o.initComponentFactory(a.componentFactory,t.ngContentSelectors),o._directiveCache.set(r,e),o._summaryCache.set(r,e.toSummary()),e};if(a.isComponent){var c=a.template,l=this._directiveNormalizer.normalizeTemplate({ngModuleType:t,componentType:r,moduleUrl:cr(this._reflector,r,s),encapsulation:c.encapsulation,template:c.template,templateUrl:c.templateUrl,styles:c.styles,styleUrls:c.styleUrls,animations:c.animations,interpolation:c.interpolation});return l.syncResult?(u(l.syncResult),null):n?(this._reportError(hr(r),r),null):l.asyncResult.then(u)}return u(null),null},t.prototype.getNonNormalizedDirectiveMetadata=function(t){var r=this;if(t=e.resolveForwardRef(t),!t)return null;var n=this._nonNormalizedDirectiveCache.get(t);if(n)return n;var o=this._directiveResolver.resolve(t,!1);if(!o)return null;var i=void 0;if(o instanceof e.Component){G("styles",o.styles),G("styleUrls",o.styleUrls),W("interpolation",o.interpolation);var s=o.animations;i=new Ko({encapsulation:y(o.encapsulation),template:y(o.template),templateUrl:y(o.templateUrl),styles:o.styles||[],styleUrls:o.styleUrls||[],animations:s||[],interpolation:y(o.interpolation),isInline:!!o.template,externalStylesheets:[],ngContentSelectors:[]})}var a=null,u=[],c=[],l=o.selector;o instanceof e.Component?(a=o.changeDetection,o.viewProviders&&(u=this._getProvidersMetadata(o.viewProviders,c,'viewProviders for "'+pr(t)+'"',[],t)),o.entryComponents&&(c=ar(o.entryComponents).map(function(t){return r._getEntryComponentMetadata(t)}).concat(c)),l||(l=this._schemaRegistry.getDefaultComponentElementName())):l||(this._reportError(v("Directive "+pr(t)+" has no selector, please add it!"),t),l="error");var p=[];null!=o.providers&&(p=this._getProvidersMetadata(o.providers,c,'providers for "'+pr(t)+'"',[],t));var h=[],f=[];null!=o.queries&&(h=this._getQueriesMetadata(o.queries,!1,t),f=this._getQueriesMetadata(o.queries,!0,t));var d=Qo.create({isHost:!1,selector:l,exportAs:y(o.exportAs),isComponent:!!i,type:this._getTypeMetadata(t),template:i,changeDetection:a,inputs:o.inputs||[],outputs:o.outputs||[],host:o.host||{},providers:p||[],viewProviders:u||[],queries:h||[],viewQueries:f||[],entryComponents:c,componentViewType:i?this.getComponentViewClass(t):null,rendererType:i?this.getRendererType(t):null,componentFactory:null});return i&&(d.componentFactory=this.getComponentFactory(l,t,d.inputs,d.outputs)),n={metadata:d,annotation:o},this._nonNormalizedDirectiveCache.set(t,n),n},t.prototype.getDirectiveMetadata=function(t){var e=this._directiveCache.get(t);return e||this._reportError(v("Illegal state: getDirectiveMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Directive "+pr(t)+"."),t),e},t.prototype.getDirectiveSummary=function(t){var e=this._loadSummary(t,Wo.Directive);return e||this._reportError(v("Illegal state: Could not load the summary for directive "+pr(t)+"."),t),e},t.prototype.isDirective=function(t){return this._directiveResolver.isDirective(t)},t.prototype.isPipe=function(t){return this._pipeResolver.isPipe(t)},t.prototype.getNgModuleSummary=function(t){var e=this._loadSummary(t,Wo.NgModule);if(!e){var r=this.getNgModuleMetadata(t,!1);e=r?r.toSummary():null,e&&this._summaryCache.set(t,e)}return e},t.prototype.loadNgModuleDirectiveAndPipeMetadata=function(t,e,r){var n=this;void 0===r&&(r=!0);var o=this.getNgModuleMetadata(t,r),i=[];return o&&(o.declaredDirectives.forEach(function(r){var o=n._loadDirectiveMetadata(t,r.reference,e);o&&i.push(o)}),o.declaredPipes.forEach(function(t){return n._loadPipeMetadata(t.reference)})),Promise.all(i)},t.prototype.getNgModuleMetadata=function(t,r){var n=this;void 0===r&&(r=!0),t=e.resolveForwardRef(t);var o=this._ngModuleCache.get(t);if(o)return o;var i=this._ngModuleResolver.resolve(t,r);if(!i)return null;var s=[],a=[],u=[],c=[],l=[],p=[],h=[],f=[],d=[];i.imports&&ar(i.imports).forEach(function(e){var r=void 0;if(ur(e))r=e;else if(e&&e.ngModule){var o=e;r=o.ngModule,o.providers&&p.push.apply(p,n._getProvidersMetadata(o.providers,h,"provider for the NgModule '"+pr(r)+"'",[],e))}if(!r)return void n._reportError(v("Unexpected value '"+pr(e)+"' imported by the module '"+pr(t)+"'"),t);if(!n._checkSelfImport(t,r)){var i=n.getNgModuleSummary(r);return i?void c.push(i):void n._reportError(v("Unexpected "+n._getTypeDescriptor(e)+" '"+pr(e)+"' imported by the module '"+pr(t)+"'. Please add a @NgModule annotation."),t)}}),i.exports&&ar(i.exports).forEach(function(e){if(!ur(e))return void n._reportError(v("Unexpected value '"+pr(e)+"' exported by the module '"+pr(t)+"'"),t);var r=n.getNgModuleSummary(e);r?l.push(r):a.push(n._getIdentifierMetadata(e))});var m=this._getTransitiveNgModuleMetadata(c,l);i.declarations&&ar(i.declarations).forEach(function(e){if(!ur(e))return void n._reportError(v("Unexpected value '"+pr(e)+"' declared by the module '"+pr(t)+"'"),t);var r=n._getIdentifierMetadata(e);if(n._directiveResolver.isDirective(e))m.addDirective(r),s.push(r),n._addTypeToModule(e,t);else{if(!n._pipeResolver.isPipe(e))return void n._reportError(v("Unexpected "+n._getTypeDescriptor(e)+" '"+pr(e)+"' declared by the module '"+pr(t)+"'. Please add a @Pipe/@Directive/@Component annotation."),t);m.addPipe(r),m.pipes.push(r),u.push(r),n._addTypeToModule(e,t)}});var y=[],g=[];return a.forEach(function(e){if(m.directivesSet.has(e.reference))y.push(e),m.addExportedDirective(e);else{if(!m.pipesSet.has(e.reference))return void n._reportError(v("Can't export "+n._getTypeDescriptor(e.reference)+" "+pr(e.reference)+" from "+pr(t)+" as it was neither declared nor imported!"),t);g.push(e),m.addExportedPipe(e)}}),i.providers&&p.push.apply(p,this._getProvidersMetadata(i.providers,h,"provider for the NgModule '"+pr(t)+"'",[],t)),i.entryComponents&&h.push.apply(h,ar(i.entryComponents).map(function(t){return n._getEntryComponentMetadata(t)})),i.bootstrap&&ar(i.bootstrap).forEach(function(e){return ur(e)?void f.push(n._getIdentifierMetadata(e)):void n._reportError(v("Unexpected value '"+pr(e)+"' used in the bootstrap property of module '"+pr(t)+"'"),t)}),h.push.apply(h,f.map(function(t){return n._getEntryComponentMetadata(t.reference)})),i.schemas&&d.push.apply(d,ar(i.schemas)),o=new Zo({type:this._getTypeMetadata(t),providers:p,entryComponents:h,bootstrapComponents:f,schemas:d,declaredDirectives:s,exportedDirectives:y,declaredPipes:u,exportedPipes:g,importedModules:c,exportedModules:l,transitiveModule:m,id:i.id||null}),h.forEach(function(t){return m.addEntryComponent(t)}),p.forEach(function(t){return m.addProvider(t,o.type)}),m.addModule(o.type),this._ngModuleCache.set(t,o),o},t.prototype._checkSelfImport=function(t,e){return t===e?(this._reportError(v("'"+pr(t)+"' module can't import itself"),t),!0):!1},t.prototype._getTypeDescriptor=function(t){return this._directiveResolver.isDirective(t)?"directive":this._pipeResolver.isPipe(t)?"pipe":this._ngModuleResolver.isNgModule(t)?"module":t.provide?"provider":"value"},t.prototype._addTypeToModule=function(t,e){var r=this._ngModuleOfTypes.get(t);return r&&r!==e?void this._reportError(v("Type "+pr(t)+" is part of the declarations of 2 modules: "+pr(r)+" and "+pr(e)+"! "+("Please consider moving "+pr(t)+" to a higher module that imports "+pr(r)+" and "+pr(e)+". ")+("You can also create a new NgModule that exports and includes "+pr(t)+" then import that NgModule in "+pr(r)+" and "+pr(e)+".")),e):void this._ngModuleOfTypes.set(t,e)},t.prototype._getTransitiveNgModuleMetadata=function(t,e){var r=new Yo,n=new Map;return t.concat(e).forEach(function(t){t.modules.forEach(function(t){return r.addModule(t)}),t.entryComponents.forEach(function(t){return r.addEntryComponent(t)});var e=new Set;t.providers.forEach(function(t){var o=R(t.provider.token),i=n.get(o);i||(i=new Set,n.set(o,i));var s=t.module.reference;(e.has(o)||!i.has(s))&&(i.add(s),e.add(o),r.addProvider(t.provider,t.module))})}),e.forEach(function(t){t.exportedDirectives.forEach(function(t){return r.addExportedDirective(t)}),t.exportedPipes.forEach(function(t){return r.addExportedPipe(t)})}),t.forEach(function(t){t.exportedDirectives.forEach(function(t){return r.addDirective(t)}),t.exportedPipes.forEach(function(t){return r.addPipe(t)})}),r},t.prototype._getIdentifierMetadata=function(t){return t=e.resolveForwardRef(t),{reference:t}},t.prototype.isInjectable=function(t){var r=this._reflector.annotations(t);return r.some(function(t){return t.constructor===e.Injectable})},t.prototype.getInjectableSummary=function(t){return{summaryKind:Wo.Injectable,type:this._getTypeMetadata(t,null,!1)}},t.prototype._getInjectableMetadata=function(t,e){void 0===e&&(e=null);var r=this._loadSummary(t,Wo.Injectable);return r?r.type:this._getTypeMetadata(t,e)},t.prototype._getTypeMetadata=function(t,r,n){void 0===r&&(r=null),void 0===n&&(n=!0);var o=this._getIdentifierMetadata(t);return{reference:o.reference,diDeps:this._getDependenciesMetadata(o.reference,r,n),lifecycleHooks:e.ɵLIFECYCLE_HOOKS_VALUES.filter(function(t){return er(t,o.reference)})}},t.prototype._getFactoryMetadata=function(t,r){return void 0===r&&(r=null),t=e.resolveForwardRef(t),{reference:t,diDeps:this._getDependenciesMetadata(t,r)}},t.prototype.getPipeMetadata=function(t){var e=this._pipeCache.get(t);return e||this._reportError(v("Illegal state: getPipeMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Pipe "+pr(t)+"."),t),e||null},t.prototype.getPipeSummary=function(t){var e=this._loadSummary(t,Wo.Pipe);return e||this._reportError(v("Illegal state: Could not load the summary for pipe "+pr(t)+"."),t),e},t.prototype.getOrLoadPipeMetadata=function(t){var e=this._pipeCache.get(t);return e||(e=this._loadPipeMetadata(t)),e},t.prototype._loadPipeMetadata=function(t){t=e.resolveForwardRef(t);var r=this._pipeResolver.resolve(t),n=new Xo({type:this._getTypeMetadata(t),name:r.name,pure:!!r.pure});return this._pipeCache.set(t,n),this._summaryCache.set(t,n.toSummary()),n},t.prototype._getDependenciesMetadata=function(t,r,n){var o=this;void 0===n&&(n=!0);var i=!1,s=r||this._reflector.parameters(t)||[],a=s.map(function(t){var r=!1,n=!1,s=!1,a=!1,u=!1,c=null;return Array.isArray(t)?t.forEach(function(t){t instanceof e.Host?n=!0:t instanceof e.Self?s=!0:t instanceof e.SkipSelf?a=!0:t instanceof e.Optional?u=!0:t instanceof e.Attribute?(r=!0,c=t.attributeName):t instanceof e.Inject?c=t.token:t instanceof e.InjectionToken?c=t:ur(t)&&null==c&&(c=t)}):c=t,null==c?(i=!0,null):{isAttribute:r,isHost:n,isSelf:s,isSkipSelf:a,isOptional:u,token:o._getTokenMetadata(c)}});if(i){var u=a.map(function(t){return t?pr(t.token):"?"}).join(", "),c="Can't resolve all parameters for "+pr(t)+": ("+u+").";n?this._reportError(v(c),t):this._console.warn("Warning: "+c+" This will become an error in Angular v5.x")}return a},t.prototype._getTokenMetadata=function(t){t=e.resolveForwardRef(t);var r;return r="string"==typeof t?{value:t}:{identifier:{reference:t}}},t.prototype._getProvidersMetadata=function(t,r,n,o,i){var s=this;return void 0===o&&(o=[]),t.forEach(function(a,u){if(Array.isArray(a))s._getProvidersMetadata(a,r,n,o);else{a=e.resolveForwardRef(a);var c=void 0;if(a&&"object"==typeof a&&a.hasOwnProperty("provide"))s._validateProvider(a),c=new Jo(a.provide,a);else{if(!ur(a)){if(void 0===a)return void s._reportError(v("Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files."));var l=t.reduce(function(t,e,r){return u>r?t.push(""+pr(e)):r==u?t.push("?"+pr(e)+"?"):r==u+1&&t.push("..."),t},[]).join(", ");return void s._reportError(v("Invalid "+(n?n:"provider")+" - only instances of Provider and Type are allowed, got: ["+l+"]"),i)}c=new Jo(a,{useClass:a})}c.token===fe(zu.ANALYZE_FOR_ENTRY_COMPONENTS)?r.push.apply(r,s._getEntryComponentsFromProvider(c,i)):o.push(s.getProviderMetadata(c))}}),o},t.prototype._validateProvider=function(t){t.hasOwnProperty("useClass")&&null==t.useClass&&this._reportError(v("Invalid provider for "+pr(t.provide)+". useClass cannot be "+t.useClass+".\n           Usually it happens when:\n           1. There's a circular dependency (might be caused by using index.ts (barrel) files).\n           2. Class was used before it was declared. Use forwardRef in this case."))},t.prototype._getEntryComponentsFromProvider=function(t,e){var r=this,n=[],o=[];return t.useFactory||t.useExisting||t.useClass?(this._reportError(v("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports useValue!"),e),[]):t.multi?(lr(t.useValue,o),o.forEach(function(t){var e=r._getEntryComponentMetadata(t.reference,!1);e&&n.push(e)}),n):(this._reportError(v("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports 'multi = true'!"),e),[])},t.prototype._getEntryComponentMetadata=function(t,e){void 0===e&&(e=!0);var r=this.getNonNormalizedDirectiveMetadata(t);if(r&&r.metadata.isComponent)return{componentType:t,componentFactory:r.metadata.componentFactory};var n=this._loadSummary(t,Wo.Directive);if(n&&n.isComponent)return{componentType:t,componentFactory:n.componentFactory};if(e)throw v(t.name+" cannot be used as an entry component.");return null},t.prototype.getProviderMetadata=function(t){var e=void 0,r=null,n=null,o=this._getTokenMetadata(t.token);return t.useClass?(r=this._getInjectableMetadata(t.useClass,t.dependencies),e=r.diDeps,t.token===t.useClass&&(o={identifier:r})):t.useFactory&&(n=this._getFactoryMetadata(t.useFactory,t.dependencies),e=n.diDeps),{token:o,useClass:r,useValue:t.useValue,useFactory:n,useExisting:t.useExisting?this._getTokenMetadata(t.useExisting):void 0,deps:e,multi:t.multi}},t.prototype._getQueriesMetadata=function(t,e,r){var n=this,o=[];return Object.keys(t).forEach(function(i){var s=t[i];s.isViewQuery===e&&o.push(n._getQueryMetadata(s,i,r))}),o},t.prototype._queryVarBindings=function(t){return t.split(/\s*,\s*/)},t.prototype._getQueryMetadata=function(t,e,r){var n,o=this;return"string"==typeof t.selector?n=this._queryVarBindings(t.selector).map(function(t){return o._getTokenMetadata(t)}):t.selector?n=[this._getTokenMetadata(t.selector)]:(this._reportError(v("Can't construct a query for the property \""+e+'" of "'+pr(r)+"\" since the query selector wasn't defined."),r),n=[]),{selectors:n,first:t.first,descendants:t.descendants,propertyName:e,read:t.read?this._getTokenMetadata(t.read):null}},t.prototype._reportError=function(t,e,r){if(!this._errorCollector)throw t;this._errorCollector(t,e),r&&this._errorCollector(t,r)},t}();dl.decorators=[{type:z}],dl.ctorParameters=function(){return[{type:ti},{type:ll},{type:al},{type:pl},{type:hl},{type:Ju},{type:ol},{type:e.ɵConsole},{type:yo,decorators:[{type:e.Optional}]},{type:e.ɵReflectorReader},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[fl]}]}]};var ml=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.visitOther=function(t,e){e.push({reference:t})},e}(Oo),yl={};yl.Const=0,yl[yl.Const]="Const";var vl=function(){function t(t){void 0===t&&(t=null),this.modifiers=t,t||(this.modifiers=[])}return t.prototype.visitType=function(){},t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),gl={};gl.Dynamic=0,gl.Bool=1,gl.String=2,gl.Int=3,gl.Number=4,gl.Function=5,gl.Inferred=6,gl[gl.Dynamic]="Dynamic",gl[gl.Bool]="Bool",gl[gl.String]="String",gl[gl.Int]="Int",gl[gl.Number]="Number",gl[gl.Function]="Function",gl[gl.Inferred]="Inferred";var _l=function(t){function e(e,r){void 0===r&&(r=null);var n=t.call(this,r)||this;return n.name=e,n}return Zn(e,t),e.prototype.visitType=function(t,e){return t.visitBuiltintType(this,e)},e}(vl),bl=function(t){function e(e,r){void 0===r&&(r=null);var n=t.call(this,r)||this;return n.value=e,n}return Zn(e,t),e.prototype.visitType=function(t,e){return t.visitExpressionType(this,e)},e}(vl),wl=function(t){function e(e,r){void 0===r&&(r=null);var n=t.call(this,r)||this;return n.of=e,n}return Zn(e,t),e.prototype.visitType=function(t,e){return t.visitArrayType(this,e)},e}(vl),Cl=function(t){function e(e,r){void 0===r&&(r=null);var n=t.call(this,r)||this;return n.valueType=e||null,n}return Zn(e,t),e.prototype.visitType=function(t,e){return t.visitMapType(this,e)},e}(vl),El=new _l(gl.Dynamic),Sl=new _l(gl.Inferred),xl=new _l(gl.Bool),Tl=(new _l(gl.Int),new _l(gl.Number),new _l(gl.String),new _l(gl.Function),{});Tl.Equals=0,Tl.NotEquals=1,Tl.Identical=2,Tl.NotIdentical=3,Tl.Minus=4,Tl.Plus=5,Tl.Divide=6,Tl.Multiply=7,Tl.Modulo=8,Tl.And=9,Tl.Or=10,Tl.Lower=11,Tl.LowerEquals=12,Tl.Bigger=13,Tl.BiggerEquals=14,Tl[Tl.Equals]="Equals",Tl[Tl.NotEquals]="NotEquals",Tl[Tl.Identical]="Identical",Tl[Tl.NotIdentical]="NotIdentical",Tl[Tl.Minus]="Minus",Tl[Tl.Plus]="Plus",Tl[Tl.Divide]="Divide",Tl[Tl.Multiply]="Multiply",Tl[Tl.Modulo]="Modulo",Tl[Tl.And]="And",Tl[Tl.Or]="Or",Tl[Tl.Lower]="Lower",Tl[Tl.LowerEquals]="LowerEquals",Tl[Tl.Bigger]="Bigger",Tl[Tl.BiggerEquals]="BiggerEquals";var Pl=function(){function t(t,e){this.type=t||null,this.sourceSpan=e||null}return t.prototype.visitExpression=function(){},t.prototype.prop=function(t,e){return new Gl(this,t,null,e)},t.prototype.key=function(t,e,r){return new Wl(this,t,e,r)},t.prototype.callMethod=function(t,e,r){return new Nl(this,t,e,null,r)},t.prototype.callFn=function(t,e){return new Dl(this,t,null,e)},t.prototype.instantiate=function(t,e,r){return new jl(this,t,e,r)},t.prototype.conditional=function(t,e,r){return void 0===e&&(e=null),new Fl(this,t,e,null,r)},t.prototype.equals=function(t,e){return new zl(Tl.Equals,this,t,null,e)},t.prototype.notEquals=function(t,e){return new zl(Tl.NotEquals,this,t,null,e)},t.prototype.identical=function(t,e){return new zl(Tl.Identical,this,t,null,e)},t.prototype.notIdentical=function(t,e){return new zl(Tl.NotIdentical,this,t,null,e)},t.prototype.minus=function(t,e){return new zl(Tl.Minus,this,t,null,e)},t.prototype.plus=function(t,e){return new zl(Tl.Plus,this,t,null,e)},t.prototype.divide=function(t,e){return new zl(Tl.Divide,this,t,null,e)},t.prototype.multiply=function(t,e){return new zl(Tl.Multiply,this,t,null,e)},t.prototype.modulo=function(t,e){return new zl(Tl.Modulo,this,t,null,e)},t.prototype.and=function(t,e){return new zl(Tl.And,this,t,null,e)},t.prototype.or=function(t,e){return new zl(Tl.Or,this,t,null,e)},t.prototype.lower=function(t,e){return new zl(Tl.Lower,this,t,null,e)},t.prototype.lowerEquals=function(t,e){return new zl(Tl.LowerEquals,this,t,null,e)},t.prototype.bigger=function(t,e){return new zl(Tl.Bigger,this,t,null,e)},t.prototype.biggerEquals=function(t,e){return new zl(Tl.BiggerEquals,this,t,null,e)},t.prototype.isBlank=function(t){return this.equals(tp,t)},t.prototype.cast=function(t,e){return new Bl(this,t,e)},t.prototype.toStmt=function(){return new ip(this,null)},t}(),Al={};Al.This=0,Al.Super=1,Al.CatchError=2,Al.CatchStack=3,Al[Al.This]="This",Al[Al.Super]="Super",Al[Al.CatchError]="CatchError",Al[Al.CatchStack]="CatchStack";var Ol=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return"string"==typeof e?(o.name=e,o.builtin=null):(o.name=null,o.builtin=e),o}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadVarExpr(this,e)},e.prototype.set=function(t){if(!this.name)throw new Error("Built in variable "+this.builtin+" can not be assigned to.");return new Ml(this.name,t,null,this.sourceSpan)},e}(Pl),Ml=function(t){function e(e,r,n,o){var i=t.call(this,n||r.type,o)||this;return i.name=e,i.value=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitWriteVarExpr(this,e)},e.prototype.toDeclStmt=function(t,e){return new np(this.name,this.value,t,e,this.sourceSpan)},e}(Pl),Rl=function(t){function e(e,r,n,o,i){var s=t.call(this,o||n.type,i)||this;return s.receiver=e,s.index=r,s.value=n,s}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitWriteKeyExpr(this,e)},e}(Pl),kl=function(t){function e(e,r,n,o,i){var s=t.call(this,o||n.type,i)||this;return s.receiver=e,s.name=r,s.value=n,s}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitWritePropExpr(this,e)},e}(Pl),Il={};Il.ConcatArray=0,Il.SubscribeObservable=1,Il.Bind=2,Il[Il.ConcatArray]="ConcatArray",Il[Il.SubscribeObservable]="SubscribeObservable",Il[Il.Bind]="Bind";var Nl=function(t){function e(e,r,n,o,i){var s=t.call(this,o,i)||this;return s.receiver=e,s.args=n,"string"==typeof r?(s.name=r,s.builtin=null):(s.name=null,s.builtin=r),s}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitInvokeMethodExpr(this,e)},e}(Pl),Dl=function(t){function e(e,r,n,o){var i=t.call(this,n,o)||this;return i.fn=e,i.args=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitInvokeFunctionExpr(this,e)},e}(Pl),jl=function(t){function e(e,r,n,o){var i=t.call(this,n,o)||this;return i.classExpr=e,i.args=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitInstantiateExpr(this,e)},e}(Pl),Ll=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return o.value=e,o}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralExpr(this,e)},e}(Pl),Vl=function(t){function e(e,r,n,o){void 0===n&&(n=null);var i=t.call(this,r,o)||this;return i.value=e,i.typeParams=n,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitExternalExpr(this,e)},e}(Pl),Fl=function(t){function e(e,r,n,o,i){void 0===n&&(n=null);var s=t.call(this,o||r.type,i)||this;return s.condition=e,s.falseCase=n,s.trueCase=r,s}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitConditionalExpr(this,e)},e}(Pl),Ul=function(t){function e(e,r){var n=t.call(this,xl,r)||this;return n.condition=e,n}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitNotExpr(this,e)},e}(Pl),Bl=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return o.value=e,o}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitCastExpr(this,e)},e}(Pl),Hl=function(){function t(t,e){void 0===e&&(e=null),this.name=t,this.type=e}return t}(),ql=function(t){function e(e,r,n,o){var i=t.call(this,n,o)||this;return i.params=e,i.statements=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitFunctionExpr(this,e)},e.prototype.toDeclStmt=function(t,e){return void 0===e&&(e=null),new op(t,this.params,this.statements,this.type,e,this.sourceSpan)},e}(Pl),zl=function(t){function e(e,r,n,o,i){var s=t.call(this,o||r.type,i)||this;return s.operator=e,s.rhs=n,s.lhs=r,s}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitBinaryOperatorExpr(this,e)},e}(Pl),Gl=function(t){function e(e,r,n,o){var i=t.call(this,n,o)||this;return i.receiver=e,i.name=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadPropExpr(this,e)},e.prototype.set=function(t){return new kl(this.receiver,this.name,t,null,this.sourceSpan)},e}(Pl),Wl=function(t){function e(e,r,n,o){var i=t.call(this,n,o)||this;return i.receiver=e,i.index=r,i}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadKeyExpr(this,e)},e.prototype.set=function(t){return new Rl(this.receiver,this.index,t,null,this.sourceSpan)},e}(Pl),$l=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return o.entries=e,o}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralArrayExpr(this,e)},e}(Pl),Kl=function(){function t(t,e,r){void 0===r&&(r=!1),this.key=t,this.value=e,this.quoted=r}return t}(),Ql=function(t){function e(e,r,n){var o=t.call(this,r,n)||this;return o.entries=e,o.valueType=null,r&&(o.valueType=r.valueType),o}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralMapExpr(this,e)},e}(Pl),Xl=function(t){function e(e,r){var n=t.call(this,e[e.length-1].type,r)||this;return n.parts=e,n}return Zn(e,t),e.prototype.visitExpression=function(t,e){return t.visitCommaExpr(this,e)},e}(Pl),Zl=new Ol(Al.This,null,null),Yl=new Ol(Al.Super,null,null),Jl=(new Ol(Al.CatchError,null,null),new Ol(Al.CatchStack,null,null),new Ll(null,null,null)),tp=new Ll(null,Sl,null),ep={};ep.Final=0,ep.Private=1,ep[ep.Final]="Final",ep[ep.Private]="Private";var rp=function(){function t(t,e){this.modifiers=t||[],this.sourceSpan=e||null}return t.prototype.visitStatement=function(){},t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),np=function(t){function e(e,r,n,o,i){void 0===o&&(o=null);var s=t.call(this,o,i)||this;return s.name=e,s.value=r,s.type=n||r.type,s}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareVarStmt(this,e)},e}(rp),op=function(t){function e(e,r,n,o,i,s){void 0===i&&(i=null);var a=t.call(this,i,s)||this;return a.name=e,a.params=r,a.statements=n,a.type=o||null,a}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareFunctionStmt(this,e)},e}(rp),ip=function(t){function e(e,r){var n=t.call(this,null,r)||this;return n.expr=e,n}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitExpressionStmt(this,e)},e}(rp),sp=function(t){function e(e,r){var n=t.call(this,null,r)||this;return n.value=e,n}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitReturnStmt(this,e)},e}(rp),ap=function(){function t(t,e){this.modifiers=e,e||(this.modifiers=[]),this.type=t||null}return t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),up=function(t){function e(e,r,n){void 0===n&&(n=null);var o=t.call(this,r,n)||this;return o.name=e,o}return Zn(e,t),e}(ap),cp=function(t){function e(e,r,n,o,i){void 0===i&&(i=null);var s=t.call(this,o,i)||this;return s.name=e,s.params=r,s.body=n,s}return Zn(e,t),e}(ap),lp=function(t){function e(e,r,n,o){void 0===o&&(o=null);var i=t.call(this,n,o)||this;return i.name=e,i.body=r,i}return Zn(e,t),e}(ap),pp=function(t){function e(e,r,n,o,i,s,a,u){void 0===a&&(a=null);var c=t.call(this,a,u)||this;return c.name=e,c.parent=r,c.fields=n,c.getters=o,c.constructorMethod=i,c.methods=s,c}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareClassStmt(this,e)},e}(rp),hp=function(t){function e(e,r,n,o){void 0===n&&(n=[]);var i=t.call(this,null,o)||this;return i.condition=e,i.trueCase=r,i.falseCase=n,i}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitIfStmt(this,e)},e}(rp),fp=function(t){function e(e,r,n){var o=t.call(this,null,n)||this;
-
-return o.bodyStmts=e,o.catchStmts=r,o}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitTryCatchStmt(this,e)},e}(rp),dp=function(t){function e(e,r){var n=t.call(this,null,r)||this;return n.error=e,n}return Zn(e,t),e.prototype.visitStatement=function(t,e){return t.visitThrowStmt(this,e)},e}(rp),mp=function(){function t(){}return t.prototype.transformExpr=function(t){return t},t.prototype.transformStmt=function(t){return t},t.prototype.visitReadVarExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitWriteVarExpr=function(t,e){return this.transformExpr(new Ml(t.name,t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitWriteKeyExpr=function(t,e){return this.transformExpr(new Rl(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitWritePropExpr=function(t,e){return this.transformExpr(new kl(t.receiver.visitExpression(this,e),t.name,t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitInvokeMethodExpr=function(t,e){var r=t.builtin||t.name;return this.transformExpr(new Nl(t.receiver.visitExpression(this,e),r,this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitInvokeFunctionExpr=function(t,e){return this.transformExpr(new Dl(t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitInstantiateExpr=function(t,e){return this.transformExpr(new jl(t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitExternalExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitConditionalExpr=function(t,e){return this.transformExpr(new Fl(t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitNotExpr=function(t,e){return this.transformExpr(new Ul(t.condition.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitCastExpr=function(t,e){return this.transformExpr(new Bl(t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitFunctionExpr=function(t,e){return this.transformExpr(new ql(t.params,this.visitAllStatements(t.statements,e),t.type,t.sourceSpan),e)},t.prototype.visitBinaryOperatorExpr=function(t,e){return this.transformExpr(new zl(t.operator,t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitReadPropExpr=function(t,e){return this.transformExpr(new Gl(t.receiver.visitExpression(this,e),t.name,t.type,t.sourceSpan),e)},t.prototype.visitReadKeyExpr=function(t,e){return this.transformExpr(new Wl(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralArrayExpr=function(t,e){return this.transformExpr(new $l(this.visitAllExpressions(t.entries,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralMapExpr=function(t,e){var r=this,n=t.entries.map(function(t){return new Kl(t.key,t.value.visitExpression(r,e),t.quoted)}),o=new Cl(t.valueType,null);return this.transformExpr(new Ql(n,o,t.sourceSpan),e)},t.prototype.visitCommaExpr=function(t,e){return this.transformExpr(new Xl(this.visitAllExpressions(t.parts,e),t.sourceSpan),e)},t.prototype.visitAllExpressions=function(t,e){var r=this;return t.map(function(t){return t.visitExpression(r,e)})},t.prototype.visitDeclareVarStmt=function(t,e){return this.transformStmt(new np(t.name,t.value.visitExpression(this,e),t.type,t.modifiers,t.sourceSpan),e)},t.prototype.visitDeclareFunctionStmt=function(t,e){return this.transformStmt(new op(t.name,t.params,this.visitAllStatements(t.statements,e),t.type,t.modifiers,t.sourceSpan),e)},t.prototype.visitExpressionStmt=function(t,e){return this.transformStmt(new ip(t.expr.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitReturnStmt=function(t,e){return this.transformStmt(new sp(t.value.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitDeclareClassStmt=function(t,e){var r=this,n=t.parent.visitExpression(this,e),o=t.getters.map(function(t){return new lp(t.name,r.visitAllStatements(t.body,e),t.type,t.modifiers)}),i=t.constructorMethod&&new cp(t.constructorMethod.name,t.constructorMethod.params,this.visitAllStatements(t.constructorMethod.body,e),t.constructorMethod.type,t.constructorMethod.modifiers),s=t.methods.map(function(t){return new cp(t.name,t.params,r.visitAllStatements(t.body,e),t.type,t.modifiers)});return this.transformStmt(new pp(t.name,n,t.fields,o,i,s,t.modifiers,t.sourceSpan),e)},t.prototype.visitIfStmt=function(t,e){return this.transformStmt(new hp(t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e),t.sourceSpan),e)},t.prototype.visitTryCatchStmt=function(t,e){return this.transformStmt(new fp(this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e),t.sourceSpan),e)},t.prototype.visitThrowStmt=function(t,e){return this.transformStmt(new dp(t.error.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitCommentStmt=function(t,e){return this.transformStmt(t,e)},t.prototype.visitAllStatements=function(t,e){var r=this;return t.map(function(t){return t.visitStatement(r,e)})},t}(),yp=function(){function t(){}return t.prototype.visitReadVarExpr=function(t){return t},t.prototype.visitWriteVarExpr=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitWriteKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e),t},t.prototype.visitWritePropExpr=function(t,e){return t.receiver.visitExpression(this,e),t.value.visitExpression(this,e),t},t.prototype.visitInvokeMethodExpr=function(t,e){return t.receiver.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitInstantiateExpr=function(t,e){return t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitLiteralExpr=function(t){return t},t.prototype.visitExternalExpr=function(t){return t},t.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e),t},t.prototype.visitNotExpr=function(t,e){return t.condition.visitExpression(this,e),t},t.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitFunctionExpr=function(t,e){return this.visitAllStatements(t.statements,e),t},t.prototype.visitBinaryOperatorExpr=function(t,e){return t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t},t.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),t},t.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t},t.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e),t},t.prototype.visitLiteralMapExpr=function(t,e){var r=this;return t.entries.forEach(function(t){return t.value.visitExpression(r,e)}),t},t.prototype.visitCommaExpr=function(t,e){this.visitAllExpressions(t.parts,e)},t.prototype.visitAllExpressions=function(t,e){var r=this;t.forEach(function(t){return t.visitExpression(r,e)})},t.prototype.visitDeclareVarStmt=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitDeclareFunctionStmt=function(t,e){return this.visitAllStatements(t.statements,e),t},t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),t},t.prototype.visitReturnStmt=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitDeclareClassStmt=function(t,e){var r=this;return t.parent.visitExpression(this,e),t.getters.forEach(function(t){return r.visitAllStatements(t.body,e)}),t.constructorMethod&&this.visitAllStatements(t.constructorMethod.body,e),t.methods.forEach(function(t){return r.visitAllStatements(t.body,e)}),t},t.prototype.visitIfStmt=function(t,e){return t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e),t},t.prototype.visitTryCatchStmt=function(t,e){return this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e),t},t.prototype.visitThrowStmt=function(t,e){return t.error.visitExpression(this,e),t},t.prototype.visitCommentStmt=function(t){return t},t.prototype.visitAllStatements=function(t,e){var r=this;t.forEach(function(t){return t.visitStatement(r,e)})},t}(),vp=function(t){function e(){var e=t.apply(this,arguments)||this;return e.varNames=new Set,e}return Zn(e,t),e.prototype.visitDeclareFunctionStmt=function(t){return t},e.prototype.visitDeclareClassStmt=function(t){return t},e.prototype.visitReadVarExpr=function(t){return t.name&&this.varNames.add(t.name),null},e}(yp),gp=function(t){function e(e){var r=t.call(this)||this;return r.sourceSpan=e,r}return Zn(e,t),e.prototype._clone=function(t){var e=Object.create(t.constructor.prototype);for(var r in t)e[r]=t[r];return e},e.prototype.transformExpr=function(t){return t.sourceSpan||(t=this._clone(t),t.sourceSpan=this.sourceSpan),t},e.prototype.transformStmt=function(t){return t.sourceSpan||(t=this._clone(t),t.sourceSpan=this.sourceSpan),t},e}(mp),_p="$quoted$",bp=function(){function t(){}return t.prototype.visitArray=function(t,e){var r=this;return br(t.map(function(t){return d(t,r,null)}),e)},t.prototype.visitStringMap=function(t,e){var r=this,n=[],o=new Set(t&&t[_p]);return Object.keys(t).forEach(function(e){n.push(new Kl(e,d(t[e],r,null),o.has(e)))}),new Ql(n,e)},t.prototype.visitPrimitive=function(t,e){return Sr(t,e)},t.prototype.visitOther=function(t){return t instanceof Pl?t:vr({reference:t})},t}(),wp=function(){function t(t){this.compType=t}return t}(),Cp=function(){function t(t,e,r){this.statements=t,this.ngModuleFactoryVar=e,this.dependencies=r}return t}(),Ep=function(){function t(){}return t.prototype.compile=function(t,e){var r=ct("NgModule",t.type),n=[],o=[],i=t.transitiveModule.entryComponents.map(function(e){return t.bootstrapComponents.some(function(t){return t.reference===e.componentType})&&o.push({reference:e.componentFactory}),n.push(new wp(e.componentType)),{reference:e.componentFactory}}),s=new Sp(t,i,o,r),a=new Yu(t,e,r);a.parse().forEach(function(t){return s.addProvider(t)});var u=s.build(),c=E(t.type)+"NgFactory",l=yr(c).set(vr(de(zu.NgModuleFactory)).instantiate([yr(u.name),vr(t.type)],gr(de(zu.NgModuleFactory),[gr(t.type)],[yl.Const]))).toDeclStmt(null,[ep.Final]),p=[u,l];if(t.id){var h=vr(de(zu.RegisterModuleFactoryFn)).callFn([Sr(t.id),yr(c)]).toStmt();p.push(h)}return new Cp(p,c,n)},t}();Ep.decorators=[{type:z}],Ep.ctorParameters=function(){return[]};var Sp=function(){function t(t,e,r,n){this._ngModuleMeta=t,this._entryComponentFactories=e,this._bootstrapComponentFactories=r,this._sourceSpan=n,this.fields=[],this.getters=[],this.methods=[],this.ctorStmts=[],this._lazyProps=new Map,this._tokens=[],this._instances=new Map,this._createStmts=[],this._destroyStmts=[]}return t.prototype.addProvider=function(t){var r=this,n=t.providers.map(function(t){return r._getProviderValue(t)}),o="_"+M(t.token)+"_"+this._instances.size,i=this._createProviderProperty(o,t,n,t.multiProvider,t.eager);if(-1!==t.lifecycleHooks.indexOf(e.ɵLifecycleHooks.OnDestroy)){var s=i.callMethod("ngOnDestroy",[]);t.eager||(s=this._lazyProps.get(i.name).and(s)),this._destroyStmts.push(s.toStmt())}this._tokens.push(t.token),this._instances.set(R(t.token),i)},t.prototype.build=function(){var t=this,e=this._tokens.map(function(e){var r=t._instances.get(R(e));return new hp(Tp.token.identical(Ar(e)),[new sp(r)])}),r=[new cp("createInternal",[],this._createStmts.concat(new sp(this._instances.get(this._ngModuleMeta.type.reference))),gr(this._ngModuleMeta.type)),new cp("getInternal",[new Hl(Tp.token.name,El),new Hl(Tp.notFoundResult.name,El)],e.concat([new sp(Tp.notFoundResult)]),El),new cp("destroyInternal",[],this._destroyStmts)],n=[yr(xp.parent.name),br(this._entryComponentFactories.map(function(t){return vr(t)})),br(this._bootstrapComponentFactories.map(function(t){return vr(t)}))],o=E(this._ngModuleMeta.type)+"Injector";return xr({name:o,ctorParams:[new Hl(xp.parent.name,gr(de(zu.Injector)))],parent:vr(de(zu.NgModuleInjector),[gr(this._ngModuleMeta.type)]),parentArgs:n,builders:[{methods:r},this]})},t.prototype._getProviderValue=function(t){var e,r=this;if(null!=t.useExisting)e=this._getDependency({token:t.useExisting});else if(null!=t.useFactory){var n=t.deps||t.useFactory.diDeps,o=n.map(function(t){return r._getDependency(t)});e=vr(t.useFactory).callFn(o)}else if(null!=t.useClass){var n=t.deps||t.useClass.diDeps,o=n.map(function(t){return r._getDependency(t)});e=vr(t.useClass).instantiate(o,gr(t.useClass))}else e=Pr(t.useValue);return e},t.prototype._createProviderProperty=function(t,e,r,n,o){var i,s;if(n?(i=br(r),s=new wl(El)):(i=r[0],s=r[0].type),s||(s=El),o)this.fields.push(new up(t,s)),this._createStmts.push(Zl.prop(t).set(i).toStmt());else{var a=Zl.prop("_"+t);this.fields.push(new up(a.name,s));var u=[new hp(a.isBlank(),[a.set(i).toStmt()]),new sp(a)];this.getters.push(new lp(t,u,s)),this._lazyProps.set(t,a)}return Zl.prop(t)},t.prototype._getDependency=function(t){var e=null;if(t.isValue&&(e=Sr(t.value)),t.isSkipSelf||(t.token&&(R(t.token)===fe(zu.Injector)?e=Zl:R(t.token)===fe(zu.ComponentFactoryResolver)&&(e=Zl.prop("componentFactoryResolver"))),e||(e=this._instances.get(R(t.token)))),!e){var r=[Ar(t.token)];t.isOptional&&r.push(Jl),e=xp.parent.callMethod("get",r)}return e},t}(),xp=function(){function t(){}return t}();xp.parent=Zl.prop("parent");var Tp=function(){function t(){}return t}();Tp.token=yr("token"),Tp.notFoundResult=yr("notFoundResult");var Pp=3,Ap="# sourceMappingURL=data:application/json;base64,",Op=function(){function t(t){void 0===t&&(t=null),this.file=t,this.sourcesContent=new Map,this.lines=[],this.lastCol0=0,this.hasMappings=!1}return t.prototype.addSource=function(t,e){return void 0===e&&(e=null),this.sourcesContent.has(t)||this.sourcesContent.set(t,e),this},t.prototype.addLine=function(){return this.lines.push([]),this.lastCol0=0,this},t.prototype.addMapping=function(t,e,r,n){if(!this.currentLine)throw new Error("A line must be added before mappings can be added");if(null!=e&&!this.sourcesContent.has(e))throw new Error('Unknown source file "'+e+'"');if(null==t)throw new Error("The column in the generated code must be provided");if(t<this.lastCol0)throw new Error("Mapping should be added in output order");if(e&&(null==r||null==n))throw new Error("The source location must be provided when a source url is provided");return this.hasMappings=!0,this.lastCol0=t,this.currentLine.push({col0:t,sourceUrl:e,sourceLine0:r,sourceCol0:n}),this},Object.defineProperty(t.prototype,"currentLine",{get:function(){return this.lines.slice(-1)[0]},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){var t=this;if(!this.hasMappings)return null;var e=new Map,r=[],n=[];Array.from(this.sourcesContent.keys()).forEach(function(o,i){e.set(o,i),r.push(o),n.push(t.sourcesContent.get(o)||null)});var o="",i=0,s=0,a=0,u=0;return this.lines.forEach(function(t){i=0,o+=t.map(function(t){var r=Mr(t.col0-i);return i=t.col0,null!=t.sourceUrl&&(r+=Mr(e.get(t.sourceUrl)-s),s=e.get(t.sourceUrl),r+=Mr(t.sourceLine0-a),a=t.sourceLine0,r+=Mr(t.sourceCol0-u),u=t.sourceCol0),r}).join(","),o+=";"}),o=o.slice(0,-1),{file:this.file||"",version:Pp,sourceRoot:"",sources:r,sourcesContent:n,mappings:o}},t.prototype.toJsComment=function(){return this.hasMappings?"//"+Ap+Or(JSON.stringify(this,null,0)):""},t}(),Mp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Rp=/'|\\|\n|\r|\$/g,kp=/^[$A-Z_][0-9A-Z_$]*$/i,Ip="  ",Np=yr("error",null,null),Dp=yr("stack",null,null),jp=function(){function t(t){this.indent=t,this.parts=[],this.srcSpans=[]}return t}(),Lp=function(){function t(t,e){this._exportedVars=t,this._indent=e,this._classes=[],this._lines=[new jp(e)]}return t.createRoot=function(e){return new t(e,0)},Object.defineProperty(t.prototype,"_currentLine",{get:function(){return this._lines[this._lines.length-1]},enumerable:!0,configurable:!0}),t.prototype.isExportedVar=function(t){return-1!==this._exportedVars.indexOf(t)},t.prototype.println=function(t,e){void 0===e&&(e=""),this.print(t||null,e,!0)},t.prototype.lineIsEmpty=function(){return 0===this._currentLine.parts.length},t.prototype.print=function(t,e,r){void 0===r&&(r=!1),e.length>0&&(this._currentLine.parts.push(e),this._currentLine.srcSpans.push(t&&t.sourceSpan||null)),r&&this._lines.push(new jp(this._indent))},t.prototype.removeEmptyLastLine=function(){this.lineIsEmpty()&&this._lines.pop()},t.prototype.incIndent=function(){this._indent++,this._currentLine.indent=this._indent},t.prototype.decIndent=function(){this._indent--,this._currentLine.indent=this._indent},t.prototype.pushClass=function(t){this._classes.push(t)},t.prototype.popClass=function(){return this._classes.pop()},Object.defineProperty(t.prototype,"currentClass",{get:function(){return this._classes.length>0?this._classes[this._classes.length-1]:null},enumerable:!0,configurable:!0}),t.prototype.toSource=function(){return this.sourceLines.map(function(t){return t.parts.length>0?Ir(t.indent)+t.parts.join(""):""}).join("\n")},t.prototype.toSourceMapGenerator=function(t,e,r){void 0===r&&(r=0);for(var n=new Op(e),o=!1,i=function(){o||(n.addSource(t," ").addMapping(0,t,0,0),o=!0)},s=0;r>s;s++)n.addLine(),i();return this.sourceLines.forEach(function(t,e){n.addLine();for(var r=t.srcSpans,s=t.parts,a=t.indent*Ip.length,u=0;u<r.length&&!r[u];)a+=s[u].length,u++;for(u<r.length&&0===e&&0===a?o=!0:i();u<r.length;){var c=r[u],l=c.start.file,p=c.start.line,h=c.start.col;for(n.addSource(l.url,l.content).addMapping(a,l.url,p,h),a+=s[u].length,u++;u<r.length&&(c===r[u]||!r[u]);)a+=s[u].length,u++}}),n},Object.defineProperty(t.prototype,"sourceLines",{get:function(){return this._lines.length&&0===this._lines[this._lines.length-1].parts.length?this._lines.slice(0,-1):this._lines},enumerable:!0,configurable:!0}),t}(),Vp=function(){function t(t){this._escapeDollarInStrings=t}return t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitReturnStmt=function(t,e){return e.print(t,"return "),t.value.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitCastExpr=function(){},t.prototype.visitDeclareClassStmt=function(){},t.prototype.visitIfStmt=function(t,e){e.print(t,"if ("),t.condition.visitExpression(this,e),e.print(t,") {");var r=null!=t.falseCase&&t.falseCase.length>0;return t.trueCase.length<=1&&!r?(e.print(t," "),this.visitAllStatements(t.trueCase,e),e.removeEmptyLastLine(),e.print(t," ")):(e.println(),e.incIndent(),this.visitAllStatements(t.trueCase,e),e.decIndent(),r&&(e.println(t,"} else {"),e.incIndent(),this.visitAllStatements(t.falseCase,e),e.decIndent())),e.println(t,"}"),null},t.prototype.visitTryCatchStmt=function(){},t.prototype.visitThrowStmt=function(t,e){return e.print(t,"throw "),t.error.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitCommentStmt=function(t,e){var r=t.comment.split("\n");return r.forEach(function(r){e.println(t,"// "+r)}),null},t.prototype.visitDeclareVarStmt=function(){},t.prototype.visitWriteVarExpr=function(t,e){var r=e.lineIsEmpty();return r||e.print(t,"("),e.print(t,t.name+" = "),t.value.visitExpression(this,e),r||e.print(t,")"),null},t.prototype.visitWriteKeyExpr=function(t,e){var r=e.lineIsEmpty();return r||e.print(t,"("),t.receiver.visitExpression(this,e),e.print(t,"["),t.index.visitExpression(this,e),e.print(t,"] = "),t.value.visitExpression(this,e),r||e.print(t,")"),null},t.prototype.visitWritePropExpr=function(t,e){var r=e.lineIsEmpty();return r||e.print(t,"("),t.receiver.visitExpression(this,e),e.print(t,"."+t.name+" = "),t.value.visitExpression(this,e),r||e.print(t,")"),null},t.prototype.visitInvokeMethodExpr=function(t,e){t.receiver.visitExpression(this,e);var r=t.name;return null!=t.builtin&&(r=this.getBuiltinMethodName(t.builtin),null==r)?null:(e.print(t,"."+r+"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null)},t.prototype.getBuiltinMethodName=function(){},t.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},t.prototype.visitReadVarExpr=function(t,e){var r=t.name;if(null!=t.builtin)switch(t.builtin){case Al.Super:r="super";break;case Al.This:r="this";break;case Al.CatchError:r=Np.name;break;case Al.CatchStack:r=Dp.name;break;default:throw new Error("Unknown builtin variable "+t.builtin)}return e.print(t,r),null},t.prototype.visitInstantiateExpr=function(t,e){return e.print(t,"new "),t.classExpr.visitExpression(this,e),e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},t.prototype.visitLiteralExpr=function(t,e){var r=t.value;return"string"==typeof r?e.print(t,kr(r,this._escapeDollarInStrings)):e.print(t,""+r),null},t.prototype.visitExternalExpr=function(){},t.prototype.visitConditionalExpr=function(t,e){return e.print(t,"("),t.condition.visitExpression(this,e),e.print(t,"? "),t.trueCase.visitExpression(this,e),e.print(t,": "),t.falseCase.visitExpression(this,e),e.print(t,")"),null},t.prototype.visitNotExpr=function(t,e){return e.print(t,"!"),t.condition.visitExpression(this,e),null},t.prototype.visitFunctionExpr=function(){},t.prototype.visitDeclareFunctionStmt=function(){},t.prototype.visitBinaryOperatorExpr=function(t,e){var r;switch(t.operator){case Tl.Equals:r="==";break;case Tl.Identical:r="===";break;case Tl.NotEquals:r="!=";break;case Tl.NotIdentical:r="!==";break;case Tl.And:r="&&";break;case Tl.Or:r="||";break;case Tl.Plus:r="+";break;case Tl.Minus:r="-";break;case Tl.Divide:r="/";break;case Tl.Multiply:r="*";break;case Tl.Modulo:r="%";break;case Tl.Lower:r="<";break;case Tl.LowerEquals:r="<=";break;case Tl.Bigger:r=">";break;case Tl.BiggerEquals:r=">=";break;default:throw new Error("Unknown operator "+t.operator)}return e.print(t,"("),t.lhs.visitExpression(this,e),e.print(t," "+r+" "),t.rhs.visitExpression(this,e),e.print(t,")"),null},t.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print(t,"."),e.print(t,t.name),null},t.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print(t,"["),t.index.visitExpression(this,e),e.print(t,"]"),null},t.prototype.visitLiteralArrayExpr=function(t,e){var r=t.entries.length>1;return e.print(t,"[",r),e.incIndent(),this.visitAllExpressions(t.entries,e,",",r),e.decIndent(),e.print(t,"]",r),null},t.prototype.visitLiteralMapExpr=function(t,e){var r=this,n=t.entries.length>1;return e.print(t,"{",n),e.incIndent(),this.visitAllObjects(function(n){e.print(t,kr(n.key,r._escapeDollarInStrings,n.quoted)+": "),n.value.visitExpression(r,e)},t.entries,e,",",n),e.decIndent(),e.print(t,"}",n),null},t.prototype.visitCommaExpr=function(t,e){return e.print(t,"("),this.visitAllExpressions(t.parts,e,","),e.print(t,")"),null},t.prototype.visitAllExpressions=function(t,e,r,n){var o=this;void 0===n&&(n=!1),this.visitAllObjects(function(t){return t.visitExpression(o,e)},t,e,r,n)},t.prototype.visitAllObjects=function(t,e,r,n,o){void 0===o&&(o=!1);for(var i=0;i<e.length;i++)i>0&&r.print(null,n,o),t(e[i]);o&&r.println()},t.prototype.visitAllStatements=function(t,e){var r=this;t.forEach(function(t){return t.visitStatement(r,e)})},t}(),Fp="/debug/lib",Up=function(){function t(t){this._importResolver=t}return t.prototype.emitStatements=function(t,e,r,n,o){var i=this;void 0===o&&(o="");var s=new Bp(e,this._importResolver),a=Lp.createRoot(n);s.visitAllStatements(r,a);var u=o?o.split("\n"):[];s.reexports.forEach(function(t,r){var n=t.map(function(t){return t.name+" as "+t.as}).join(",");u.push("export {"+n+"} from '"+i._importResolver.fileNameToModuleName(r,e)+"';")}),s.importsWithPrefixes.forEach(function(t,r){u.push("imp"+("ort * as "+t+" from '"+i._importResolver.fileNameToModuleName(r,e)+"';"))});var c=a.toSourceMapGenerator(t,e,u.length).toJsComment(),l=u.concat([a.toSource(),c]);return c&&l.push(""),l.join("\n")},t}(),Bp=function(t){function e(e,r){var n=t.call(this,!1)||this;return n._genFilePath=e,n._importResolver=r,n.typeExpression=0,n.importsWithPrefixes=new Map,n.reexports=new Map,n}return Zn(e,t),e.prototype.visitType=function(t,e,r){void 0===r&&(r="any"),t?(this.typeExpression++,t.visitType(this,e),this.typeExpression--):e.print(null,r)},e.prototype.visitLiteralExpr=function(e,r){var n=e.value;return null==n&&e.type!=Sl?(r.print(e,"("+n+" as any)"),null):t.prototype.visitLiteralExpr.call(this,e,r)},e.prototype.visitLiteralArrayExpr=function(e,r){0===e.entries.length&&r.print(e,"(");var n=t.prototype.visitLiteralArrayExpr.call(this,e,r);return 0===e.entries.length&&r.print(e," as any[])"),n},e.prototype.visitExternalExpr=function(t,e){return this._visitIdentifier(t.value,t.typeParams,e),null},e.prototype.visitDeclareVarStmt=function(t,e){if(e.isExportedVar(t.name)&&t.value instanceof Vl&&!t.type){var r=this._resolveStaticSymbol(t.value.value),n=r.name,o=r.filePath,i=r.members;if(0===i.length&&o!==this._genFilePath){var s=this.reexports.get(o);return s||(s=[],this.reexports.set(o,s)),s.push({name:n,as:t.name}),null}}return e.isExportedVar(t.name)&&e.print(t,"export "),t.hasModifier(ep.Final)?e.print(t,"const"):e.print(t,"var"),e.print(t," "+t.name),this._printColonType(t.type,e),e.print(t," = "),t.value.visitExpression(this,e),e.println(t,";"),null},e.prototype.visitCastExpr=function(t,e){return e.print(t,"(<"),t.type.visitType(this,e),e.print(t,">"),t.value.visitExpression(this,e),e.print(t,")"),null},e.prototype.visitInstantiateExpr=function(t,e){return e.print(t,"new "),this.typeExpression++,t.classExpr.visitExpression(this,e),this.typeExpression--,e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},e.prototype.visitDeclareClassStmt=function(t,e){var r=this;return e.pushClass(t),e.isExportedVar(t.name)&&e.print(t,"export "),e.print(t,"class "+t.name),null!=t.parent&&(e.print(t," extends "),this.typeExpression++,t.parent.visitExpression(this,e),this.typeExpression--),e.println(t," {"),e.incIndent(),t.fields.forEach(function(t){return r._visitClassField(t,e)}),null!=t.constructorMethod&&this._visitClassConstructor(t,e),t.getters.forEach(function(t){return r._visitClassGetter(t,e)}),t.methods.forEach(function(t){return r._visitClassMethod(t,e)}),e.decIndent(),e.println(t,"}"),e.popClass(),null},e.prototype._visitClassField=function(t,e){t.hasModifier(ep.Private)&&e.print(null,"/*private*/ "),e.print(null,t.name),this._printColonType(t.type,e),e.println(null,";")},e.prototype._visitClassGetter=function(t,e){t.hasModifier(ep.Private)&&e.print(null,"private "),e.print(null,"get "+t.name+"()"),this._printColonType(t.type,e),e.println(null," {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println(null,"}")},e.prototype._visitClassConstructor=function(t,e){e.print(t,"constructor("),this._visitParams(t.constructorMethod.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.constructorMethod.body,e),e.decIndent(),e.println(t,"}")},e.prototype._visitClassMethod=function(t,e){t.hasModifier(ep.Private)&&e.print(null,"private "),e.print(null,t.name+"("),this._visitParams(t.params,e),e.print(null,")"),this._printColonType(t.type,e,"void"),e.println(null," {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println(null,"}")},e.prototype.visitFunctionExpr=function(t,e){return e.print(t,"("),this._visitParams(t.params,e),e.print(t,")"),this._printColonType(t.type,e,"void"),e.println(t," => {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print(t,"}"),null},e.prototype.visitDeclareFunctionStmt=function(t,e){return e.isExportedVar(t.name)&&e.print(t,"export "),e.print(t,"function "+t.name+"("),this._visitParams(t.params,e),e.print(t,")"),this._printColonType(t.type,e,"void"),e.println(t," {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitTryCatchStmt=function(t,e){e.println(t,"try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println(t,"} catch ("+Np.name+") {"),e.incIndent();var r=[Dp.set(Np.prop("stack",null)).toDeclStmt(null,[ep.Final])].concat(t.catchStmts);return this.visitAllStatements(r,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitBuiltintType=function(t,e){var r;switch(t.name){case gl.Bool:r="boolean";break;case gl.Dynamic:r="any";break;case gl.Function:r="Function";break;case gl.Number:r="number";break;case gl.Int:r="number";break;case gl.String:r="string";break;default:throw new Error("Unsupported builtin type "+t.name)}return e.print(null,r),null},e.prototype.visitExpressionType=function(t,e){return t.value.visitExpression(this,e),null},e.prototype.visitArrayType=function(t,e){return this.visitType(t.of,e),e.print(null,"[]"),null},e.prototype.visitMapType=function(t,e){return e.print(null,"{[key: string]:"),this.visitType(t.valueType,e),e.print(null,"}"),null},e.prototype.getBuiltinMethodName=function(t){var e;switch(t){case Il.ConcatArray:e="concat";break;case Il.SubscribeObservable:e="subscribe";break;case Il.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},e.prototype._visitParams=function(t,e){var r=this;this.visitAllObjects(function(t){e.print(null,t.name),r._printColonType(t.type,e)},t,e,",")},e.prototype._resolveStaticSymbol=function(t){var e=t.reference;if(!(e instanceof mo))throw new Error("Internal error: unknown identifier "+JSON.stringify(t));var r=this._importResolver.getTypeArity(e)||void 0,n=this._importResolver.getImportAs(e)||e;return{name:n.name,filePath:n.filePath,members:n.members,arity:r}},e.prototype._visitIdentifier=function(t,e,r){var n=this,o=this._resolveStaticSymbol(t),i=o.name,s=o.filePath,a=o.members,u=o.arity;if(s!=this._genFilePath){var c=this.importsWithPrefixes.get(s);null==c&&(c="import"+this.importsWithPrefixes.size,this.importsWithPrefixes.set(s,c)),r.print(null,c+".")}if(a.length?(r.print(null,i),r.print(null,"."),r.print(null,a.join("."))):r.print(null,i),this.typeExpression>0){var l=e&&e.length||0,p=(u||0)-l;if(l>0||p>0){if(r.print(null,"<"),l>0&&this.visitAllObjects(function(t){return t.visitType(n,r)},e,r,","),p>0)for(var h=0;p>h;h++)(h>0||l>0)&&r.print(null,","),r.print(null,"any");r.print(null,">")}}},e.prototype._printColonType=function(t,e,r){t!==Sl&&(e.print(null,":"),this.visitType(t,e,r))},e}(Vp),Hp={};Dr(e.SecurityContext.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),Dr(e.SecurityContext.STYLE,["*|style"]),Dr(e.SecurityContext.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","img|srcset","input|src","ins|cite","q|cite","source|src","source|srcset","track|src","video|poster","video|src"]),Dr(e.SecurityContext.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"]);var qp="boolean",zp="number",Gp="string",Wp="object",$p=["[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop","[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","media^[HTMLElement]|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume",":svg:^[HTMLElement]|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username","area^[HTMLElement]|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username","audio^media|","br^[HTMLElement]|clear","base^[HTMLElement]|href,target","body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^[HTMLElement]|#height,#width","content^[HTMLElement]|select","dl^[HTMLElement]|!compact","datalist^[HTMLElement]|","details^[HTMLElement]|!open","dialog^[HTMLElement]|!open,returnValue","dir^[HTMLElement]|!compact","div^[HTMLElement]|align","embed^[HTMLElement]|align,height,name,src,type,width","fieldset^[HTMLElement]|!disabled,name","font^[HTMLElement]|color,face,size","form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^[HTMLElement]|align,color,!noShade,size,width","head^[HTMLElement]|","h1,h2,h3,h4,h5,h6^[HTMLElement]|align","html^[HTMLElement]|version","iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","keygen^[HTMLElement]|!autofocus,challenge,!disabled,keytype,name","li^[HTMLElement]|type,#value","label^[HTMLElement]|htmlFor","legend^[HTMLElement]|align","link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type","map^[HTMLElement]|name","marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^[HTMLElement]|!compact","meta^[HTMLElement]|content,httpEquiv,name,scheme","meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value","ins,del^[HTMLElement]|cite,dateTime","ol^[HTMLElement]|!compact,!reversed,#start,type","object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^[HTMLElement]|!disabled,label","option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value","output^[HTMLElement]|defaultValue,%htmlFor,name,value","p^[HTMLElement]|align","param^[HTMLElement]|name,type,value,valueType","picture^[HTMLElement]|","pre^[HTMLElement]|#width","progress^[HTMLElement]|#max,#value","q,blockquote,cite^[HTMLElement]|","script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type","select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","shadow^[HTMLElement]|","source^[HTMLElement]|media,sizes,src,srcset,type","span^[HTMLElement]|","style^[HTMLElement]|!disabled,media,type","caption^[HTMLElement]|align","th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width","table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign","template^[HTMLElement]|","textarea^[HTMLElement]|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","title^[HTMLElement]|text","track^[HTMLElement]|!default,kind,label,src,srclang","ul^[HTMLElement]|!compact,type","unknown^[HTMLElement]|","video^media|#height,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:cursor^:svg:|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan","data^[HTMLElement]|value","menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default","summary^[HTMLElement]|","time^[HTMLElement]|dateTime"],Kp={
-"class":"className","for":"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},Qp=function(t){function r(){var e=t.call(this)||this;return e._schema={},$p.forEach(function(t){var r={},n=t.split("|"),o=n[0],i=n[1],s=i.split(","),a=o.split("^"),u=a[0],c=a[1];u.split(",").forEach(function(t){return e._schema[t.toLowerCase()]=r});var l=c&&e._schema[c.toLowerCase()];l&&Object.keys(l).forEach(function(t){r[t]=l[t]}),s.forEach(function(t){if(t.length>0)switch(t[0]){case"*":break;case"!":r[t.substring(1)]=qp;break;case"#":r[t.substring(1)]=zp;break;case"%":r[t.substring(1)]=Wp;break;default:r[t]=Gp}})}),e}return Zn(r,t),r.prototype.hasProperty=function(t,r,n){if(n.some(function(t){return t.name===e.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if(o(t)||i(t))return!1;if(n.some(function(t){return t.name===e.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}var s=this._schema[t.toLowerCase()]||this._schema.unknown;return!!s[r]},r.prototype.hasElement=function(t,r){if(r.some(function(t){return t.name===e.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if(o(t)||i(t))return!0;if(r.some(function(t){return t.name===e.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}return!!this._schema[t.toLowerCase()]},r.prototype.securityContext=function(t,r,n){n&&(r=this.getMappedPropName(r)),t=t.toLowerCase(),r=r.toLowerCase();var o=Hp[t+"|"+r];return o?o:(o=Hp["*|"+r],o?o:e.SecurityContext.NONE)},r.prototype.getMappedPropName=function(t){return Kp[t]||t},r.prototype.getDefaultComponentElementName=function(){return"ng-component"},r.prototype.validateProperty=function(t){if(t.toLowerCase().startsWith("on")){var e="Binding to event property '"+t+"' is disallowed for security reasons, "+("please use ("+t.slice(2)+")=...")+("\nIf '"+t+"' is a directive input, make sure the directive is imported by the")+" current module.";return{error:!0,msg:e}}return{error:!1}},r.prototype.validateAttribute=function(t){if(t.toLowerCase().startsWith("on")){var e="Binding to event attribute '"+t+"' is disallowed for security reasons, "+("please use ("+t.slice(2)+")=...");return{error:!0,msg:e}}return{error:!1}},r.prototype.allKnownElementNames=function(){return Object.keys(this._schema)},r.prototype.normalizeAnimationStyleProperty=function(t){return l(t)},r.prototype.normalizeAnimationStyleValue=function(t,e,r){var n="",o=r.toString().trim(),i=null;if(jr(t)&&0!==r&&"0"!==r)if("number"==typeof r)n="px";else{var s=r.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&(i="Please provide a CSS unit value for "+e+":"+r)}return{error:i,value:o+n}},r}(Ju);Qp.decorators=[{type:z}],Qp.ctorParameters=function(){return[]};var Xp=function(){function t(){this.strictStyling=!0}return t.prototype.shimCssText=function(t,e,r){void 0===r&&(r="");var n=Vr(t);return t=Lr(t),t=this._insertDirectives(t),this._scopeCssText(t,e,r)+n},t.prototype._insertDirectives=function(t){return t=this._insertPolyfillDirectivesInCssText(t),this._insertPolyfillRulesInCssText(t)},t.prototype._insertPolyfillDirectivesInCssText=function(t){return t.replace(Yp,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[2]+"{"})},t.prototype._insertPolyfillRulesInCssText=function(t){return t.replace(Jp,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0].replace(t[1],"").replace(t[2],"");return t[4]+r})},t.prototype._scopeCssText=function(t,e,r){var n=this._extractUnscopedRulesFromCssText(t);return t=this._insertPolyfillHostInCssText(t),t=this._convertColonHost(t),t=this._convertColonHostContext(t),t=this._convertShadowDOMSelectors(t),e&&(t=this._scopeSelectors(t,e,r)),t=t+"\n"+n,t.trim()},t.prototype._extractUnscopedRulesFromCssText=function(t){var e,r="";for(th.lastIndex=0;null!==(e=th.exec(t));){var n=e[0].replace(e[2],"").replace(e[1],e[4]);r+=n+"\n\n"}return r},t.prototype._convertColonHost=function(t){return this._convertColonRule(t,oh,this._colonHostPartReplacer)},t.prototype._convertColonHostContext=function(t){return this._convertColonRule(t,ih,this._colonHostContextPartReplacer)},t.prototype._convertColonRule=function(t,e,r){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(t[2]){for(var n=t[2].split(","),o=[],i=0;i<n.length;i++){var s=n[i].trim();if(!s)break;o.push(r(sh,s,t[3]))}return o.join(",")}return sh+t[3]})},t.prototype._colonHostContextPartReplacer=function(t,e,r){return e.indexOf(eh)>-1?this._colonHostPartReplacer(t,e,r):t+e+r+", "+e+" "+t+r},t.prototype._colonHostPartReplacer=function(t,e,r){return t+e.replace(eh,"")+r},t.prototype._convertShadowDOMSelectors=function(t){return uh.reduce(function(t,e){return t.replace(e," ")},t)},t.prototype._scopeSelectors=function(t,e,r){var n=this;return Fr(t,function(t){var o=t.selector,i=t.content;return"@"!=t.selector[0]?o=n._scopeSelector(t.selector,e,r,n.strictStyling):(t.selector.startsWith("@media")||t.selector.startsWith("@supports")||t.selector.startsWith("@page")||t.selector.startsWith("@document"))&&(i=n._scopeSelectors(t.content,e,r)),new wh(o,i)})},t.prototype._scopeSelector=function(t,e,r,n){var o=this;return t.split(",").map(function(t){return t.trim().split(ch)}).map(function(t){var i=t[0],s=t.slice(1),a=function(t){return o._selectorNeedsScoping(t,e)?n?o._applyStrictSelectorScope(t,e,r):o._applySelectorScope(t,e,r):t};return[a(i)].concat(s).join(" ")}).join(", ")},t.prototype._selectorNeedsScoping=function(t,e){var r=this._makeScopeMatcher(e);return!r.test(t)},t.prototype._makeScopeMatcher=function(t){var e=/\[/g,r=/\]/g;return t=t.replace(e,"\\[").replace(r,"\\]"),new RegExp("^("+t+")"+lh,"m")},t.prototype._applySelectorScope=function(t,e,r){return this._applySimpleSelectorScope(t,e,r)},t.prototype._applySimpleSelectorScope=function(t,e,r){if(ph.lastIndex=0,ph.test(t)){var n=this.strictStyling?"["+r+"]":e;return t.replace(ah,function(t,e){return e.replace(/([^:]*)(:*)(.*)/,function(t,e,r,o){return e+n+r+o})}).replace(ph,n+" ")}return e+" "+t},t.prototype._applyStrictSelectorScope=function(t,e,r){var n=this,o=/\[is=([^\]]*)\]/g;e=e.replace(o,function(){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return t[0]});var i="["+e+"]",s=function(t){var o=t.trim();if(!o)return"";if(t.indexOf(sh)>-1)o=n._applySimpleSelectorScope(t,e,r);else{var s=t.replace(ph,"");if(s.length>0){var a=s.match(/([^:]*)(:*)(.*)/);a&&(o=a[1]+i+a[2]+a[3])}}return o},a=new Zp(t);t=a.content();for(var u,c="",l=0,p=/( |>|\+|~(?!=))\s*/g,h=t.indexOf(sh);null!==(u=p.exec(t));){var f=u[1],d=t.slice(l,u.index).trim(),m=l>=h?s(d):d;c+=m+" "+f+" ",l=p.lastIndex}return c+=s(t.substring(l)),a.restore(c)},t.prototype._insertPolyfillHostInCssText=function(t){return t.replace(fh,rh).replace(hh,eh)},t}(),Zp=function(){function t(t){var e=this;this.placeholders=[],this.index=0,t=t.replace(/(\[[^\]]*\])/g,function(t,r){var n="__ph-"+e.index+"__";return e.placeholders.push(r),e.index++,n}),this._content=t.replace(/(:nth-[-\w]+)(\([^)]+\))/g,function(t,r,n){var o="__ph-"+e.index+"__";return e.placeholders.push(n),e.index++,r+o})}return t.prototype.restore=function(t){var e=this;return t.replace(/__ph-(\d+)__/g,function(t,r){return e.placeholders[+r]})},t.prototype.content=function(){return this._content},t}(),Yp=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,Jp=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,th=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,eh="-shadowcsshost",rh="-shadowcsscontext",nh=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",oh=new RegExp("("+eh+nh,"gim"),ih=new RegExp("("+rh+nh,"gim"),sh=eh+"-no-combinator",ah=/-shadowcsshost-no-combinator([^\s]*)/,uh=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],ch=/(?:>>>)|(?:\/deep\/)/g,lh="([>\\s~+[.,{:][\\s\\S]*)?$",ph=/-shadowcsshost/gim,hh=/:host/gim,fh=/:host-context/gim,dh=/\/\*\s*[\s\S]*?\*\//g,mh=/\/\*\s*#\s*sourceMappingURL=[\s\S]+?\*\//,yh=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,vh=/([{}])/g,gh="{",_h="}",bh="%BLOCK%",wh=function(){function t(t,e){this.selector=t,this.content=e}return t}(),Ch=function(){function t(t,e){this.escapedString=t,this.blocks=e}return t}(),Eh="%COMP%",Sh="_nghost-"+Eh,xh="_ngcontent-"+Eh,Th=function(){function t(t,e,r,n){this.name=t,this.moduleUrl=e,this.isShimmed=r,this.valuePlaceholder=n}return t}(),Ph=function(){function t(t,e){this.componentStylesheet=t,this.externalStylesheets=e}return t}(),Ah=function(){function t(t,e,r,n,o){this.statements=t,this.stylesVar=e,this.dependencies=r,this.isShimmed=n,this.meta=o}return t}(),Oh=function(){function t(t){this._urlResolver=t,this._shadowCss=new Xp}return t.prototype.compileComponent=function(t){var e=this,r=t.template,n=[],o=this._compileStyles(t,new $o({styles:r.styles,styleUrls:r.styleUrls,moduleUrl:S(t.type)}),!0);return r.externalStylesheets.forEach(function(r){var o=e._compileStyles(t,r,!1);n.push(o)}),new Ph(o,n)},t.prototype._compileStyles=function(t,r,n){for(var o=this,i=t.template.encapsulation===e.ViewEncapsulation.Emulated,s=r.styles.map(function(t){return Sr(o._shimIfNeeded(t,i))}),a=[],u=0;u<r.styleUrls.length;u++){var c={reference:null};a.push(new Th(Br(null),r.styleUrls[u],i,c)),s.push(new Vl(c))}var l=Br(n?t:null),p=yr(l).set(br(s,new wl(El,[yl.Const]))).toDeclStmt(null,[ep.Final]);return new Ah([p],l,a,i,r)},t.prototype._shimIfNeeded=function(t,e){return e?this._shadowCss.shimCssText(t,xh,Sh):t},t}();Oh.decorators=[{type:z}],Oh.ctorParameters=function(){return[{type:el}]};var Mh=function(){function t(){}return t}();Mh.event=yr("$event");var Rh=function(){function t(t,e){this.stmts=t,this.allowDefault=e}return t}(),kh=function(){function t(t,e){this.stmts=t,this.currValExpr=e}return t}(),Ih={};Ih.Statement=0,Ih.Expression=1,Ih[Ih.Statement]="Statement",Ih[Ih.Expression]="Expression";var Nh=function(t){function e(e){var r=t.call(this)||this;return r._converterFactory=e,r}return Zn(e,t),e.prototype.visitPipe=function(t,e){var r=this,n=[t.exp].concat(t.args).map(function(t){return t.visit(r,e)});return new Lh(t.span,n,this._converterFactory.createPipeConverter(t.name,n.length))},e.prototype.visitLiteralArray=function(t,e){var r=this,n=t.expressions.map(function(t){return t.visit(r,e)});return new Lh(t.span,n,this._converterFactory.createLiteralArrayConverter(t.expressions.length))},e.prototype.visitLiteralMap=function(t,e){var r=this,n=t.values.map(function(t){return t.visit(r,e)});return new Lh(t.span,n,this._converterFactory.createLiteralMapConverter(t.keys))},e}(Pi),Dh=function(){function t(t,e,r){this._localResolver=t,this._implicitReceiver=e,this.bindingId=r,this._nodeMap=new Map,this._resultMap=new Map,this._currentTemporary=0,this.temporaryCount=0}return t.prototype.visitBinary=function(t,e){var r;switch(t.operation){case"+":r=Tl.Plus;break;case"-":r=Tl.Minus;break;case"*":r=Tl.Multiply;break;case"/":r=Tl.Divide;break;case"%":r=Tl.Modulo;break;case"&&":r=Tl.And;break;case"||":r=Tl.Or;break;case"==":r=Tl.Equals;break;case"!=":r=Tl.NotEquals;break;case"===":r=Tl.Identical;break;case"!==":r=Tl.NotIdentical;break;case"<":r=Tl.Lower;break;case">":r=Tl.Bigger;break;case"<=":r=Tl.LowerEquals;break;case">=":r=Tl.BiggerEquals;break;default:throw new Error("Unsupported operation "+t.operation)}return Zr(e,new zl(r,this.visit(t.left,Ih.Expression),this.visit(t.right,Ih.Expression)))},t.prototype.visitChain=function(t,e){return Qr(e,t),this.visitAll(t.expressions,e)},t.prototype.visitConditional=function(t,e){var r=this.visit(t.condition,Ih.Expression);return Zr(e,r.conditional(this.visit(t.trueExp,Ih.Expression),this.visit(t.falseExp,Ih.Expression)))},t.prototype.visitPipe=function(t){throw new Error("Illegal state: Pipes should have been converted into functions. Pipe: "+t.name)},t.prototype.visitFunctionCall=function(t,e){var r,n=this.visitAll(t.args,Ih.Expression);return r=t instanceof Lh?t.converter(n):this.visit(t.target,Ih.Expression).callFn(n),Zr(e,r)},t.prototype.visitImplicitReceiver=function(t,e){return Xr(e,t),this._implicitReceiver},t.prototype.visitInterpolation=function(t,e){Xr(e,t);for(var r=[Sr(t.expressions.length)],n=0;n<t.strings.length-1;n++)r.push(Sr(t.strings[n])),r.push(this.visit(t.expressions[n],Ih.Expression));return r.push(Sr(t.strings[t.strings.length-1])),t.expressions.length<=9?vr(de(zu.inlineInterpolate)).callFn(r):vr(de(zu.interpolate)).callFn([r[0],br(r.slice(1))])},t.prototype.visitKeyedRead=function(t,e){var r=this.leftMostSafeNode(t);return r?this.convertSafeAccess(t,r,e):Zr(e,this.visit(t.obj,Ih.Expression).key(this.visit(t.key,Ih.Expression)))},t.prototype.visitKeyedWrite=function(t,e){var r=this.visit(t.obj,Ih.Expression),n=this.visit(t.key,Ih.Expression),o=this.visit(t.value,Ih.Expression);return Zr(e,r.key(n).set(o))},t.prototype.visitLiteralArray=function(){throw new Error("Illegal State: literal arrays should have been converted into functions")},t.prototype.visitLiteralMap=function(){throw new Error("Illegal State: literal maps should have been converted into functions")},t.prototype.visitLiteralPrimitive=function(t,e){return Zr(e,Sr(t.value))},t.prototype._getLocal=function(t){return this._localResolver.getLocal(t)},t.prototype.visitMethodCall=function(t,e){var r=this.leftMostSafeNode(t);if(r)return this.convertSafeAccess(t,r,e);var n=this.visitAll(t.args,Ih.Expression),o=null,i=this.visit(t.receiver,Ih.Expression);if(i===this._implicitReceiver){var s=this._getLocal(t.name);s&&(o=s.callFn(n))}return null==o&&(o=i.callMethod(t.name,n)),Zr(e,o)},t.prototype.visitPrefixNot=function(t,e){return Zr(e,Cr(this.visit(t.expression,Ih.Expression)))},t.prototype.visitPropertyRead=function(t,e){var r=this.leftMostSafeNode(t);if(r)return this.convertSafeAccess(t,r,e);var n=null,o=this.visit(t.receiver,Ih.Expression);return o===this._implicitReceiver&&(n=this._getLocal(t.name)),null==n&&(n=o.prop(t.name)),Zr(e,n)},t.prototype.visitPropertyWrite=function(t,e){var r=this.visit(t.receiver,Ih.Expression);if(r===this._implicitReceiver){var n=this._getLocal(t.name);if(n)throw new Error("Cannot assign to a reference or variable!")}return Zr(e,r.prop(t.name).set(this.visit(t.value,Ih.Expression)))},t.prototype.visitSafePropertyRead=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},t.prototype.visitSafeMethodCall=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},t.prototype.visitAll=function(t,e){var r=this;return t.map(function(t){return r.visit(t,e)})},t.prototype.visitQuote=function(t){throw new Error("Quotes are not supported for evaluation!\n        Statement: "+t.uninterpretedExpression+" located at "+t.location)},t.prototype.visit=function(t,e){var r=this._resultMap.get(t);return r?r:(this._nodeMap.get(t)||t).visit(this,e)},t.prototype.convertSafeAccess=function(t,e,r){var n=this.visit(e.receiver,Ih.Expression),o=void 0;this.needsTemporary(e.receiver)&&(o=this.allocateTemporary(),n=o.set(n),this._resultMap.set(e.receiver,o));var i=n.isBlank();e instanceof Ci?this._nodeMap.set(e,new wi(e.span,e.receiver,e.name,e.args)):this._nodeMap.set(e,new ci(e.span,e.receiver,e.name));var s=this.visit(t,Ih.Expression);return this._nodeMap["delete"](e),o&&this.releaseTemporary(o),Zr(r,i.conditional(Sr(null),s))},t.prototype.leftMostSafeNode=function(t){var e=this,r=function(t,r){return(e._nodeMap.get(r)||r).visit(t)};return t.visit({visitBinary:function(){return null},visitChain:function(){return null},visitConditional:function(){return null},visitFunctionCall:function(){return null},visitImplicitReceiver:function(){return null},visitInterpolation:function(){return null},visitKeyedRead:function(t){return r(this,t.obj)},visitKeyedWrite:function(){return null},visitLiteralArray:function(){return null},visitLiteralMap:function(){return null},visitLiteralPrimitive:function(){return null},visitMethodCall:function(t){return r(this,t.receiver)},visitPipe:function(){return null},visitPrefixNot:function(){return null},visitPropertyRead:function(t){return r(this,t.receiver)},visitPropertyWrite:function(){return null},visitQuote:function(){return null},visitSafeMethodCall:function(t){return r(this,t.receiver)||t},visitSafePropertyRead:function(t){return r(this,t.receiver)||t}})},t.prototype.needsTemporary=function(t){var e=this,r=function(t,r){return r&&(e._nodeMap.get(r)||r).visit(t)},n=function(t,e){return e.some(function(e){return r(t,e)})};return t.visit({visitBinary:function(t){return r(this,t.left)||r(this,t.right)},visitChain:function(){return!1},visitConditional:function(t){return r(this,t.condition)||r(this,t.trueExp)||r(this,t.falseExp)},visitFunctionCall:function(){return!0},visitImplicitReceiver:function(){return!1},visitInterpolation:function(t){return n(this,t.expressions)},visitKeyedRead:function(){return!1},visitKeyedWrite:function(){return!1},visitLiteralArray:function(){return!0},visitLiteralMap:function(){return!0},visitLiteralPrimitive:function(){return!1},visitMethodCall:function(){return!0},visitPipe:function(){return!0},visitPrefixNot:function(t){return r(this,t.expression)},visitPropertyRead:function(){return!1},visitPropertyWrite:function(){return!1},visitQuote:function(){return!1},visitSafeMethodCall:function(){return!0},visitSafePropertyRead:function(){return!1}})},t.prototype.allocateTemporary=function(){var t=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new Ol(Wr(this.bindingId,t))},t.prototype.releaseTemporary=function(t){if(this._currentTemporary--,t.name!=Wr(this.bindingId,this._currentTemporary))throw new Error("Temporary "+t.name+" released out of order")},t}(),jh=function(){function t(){}return t.prototype.getLocal=function(t){return t===Mh.event.name?Mh.event:null},t}(),Lh=function(t){function e(e,r,n){var o=t.call(this,e,null,r)||this;return o.args=r,o.converter=n,o}return Zn(e,t),e}(Ei),Vh="class",Fh="style",Uh="$implicit",Bh=function(){function t(t,e,r){this.statements=t,this.viewClassVar=e,this.rendererTypeVar=r}return t}(),Hh=function(){function t(t,e){this._genConfigNext=t,this._schemaRegistry=e}return t.prototype.compileComponent=function(t,e,r,n){var o=0,i=mn(e),s=[],a=void 0;if(!t.isHost){var u=t.template,c=[];u.animations&&u.animations.length&&c.push(new Kl("animation",Pr(u.animations),!0));var l=yr(T(t.type.reference));a=l.name,s.push(l.set(vr(de(zu.createRendererType2)).callFn([new Ql([new Kl("encapsulation",Sr(u.encapsulation)),new Kl("styles",r),new Kl("data",new Ql(c))])])).toDeclStmt(gr(de(zu.RendererType2)),[ep.Final]))}var p=function(e){var r=o++;return new Qh(e,t,r,n,i,p)},h=p(null);return h.visitAll([],e),s.push.apply(s,h.build()),new Bh(s,h.viewName,a)},t}();Hh.decorators=[{type:z}],Hh.ctorParameters=function(){return[{type:ti},{type:Ju}]};var qh=yr("l"),zh=yr("v"),Gh=yr("ck"),Wh=yr("co"),$h=yr("en"),Kh=yr("ad"),Qh=function(){function t(t,e,r,n,o,i){this.parent=t,this.component=e,this.embeddedViewIndex=r,this.usedPipes=n,this.staticQueryIds=o,this.viewBuilderFactory=i,this.nodes=[],this.purePipeNodeIndices=Object.create(null),this.refNodeIndices=Object.create(null),this.variables=[],this.children=[],this.compType=this.embeddedViewIndex>0?El:gr(this.component.type)}return Object.defineProperty(t.prototype,"viewName",{get:function(){return x(this.component.type.reference,this.embeddedViewIndex)},enumerable:!0,configurable:!0}),t.prototype.visitAll=function(t,e){var n=this;if(this.variables=t,this.parent||this.usedPipes.forEach(function(t){t.pure&&(n.purePipeNodeIndices[t.name]=n._createPipe(null,t))}),!this.parent){var o=yn(this.staticQueryIds);this.component.viewQueries.forEach(function(t,e){var r=e+1,i=t.first?0:1,s=67108864|_n(o,r,t.first);n.nodes.push(function(){return{sourceSpan:null,nodeFlags:s,nodeDef:vr(de(zu.queryDef)).callFn([Sr(s),Sr(r),new Ql([new Kl(t.propertyName,Sr(i))])])}})})}r(this,e),this.parent&&(0===e.length||un(e))&&this.nodes.push(function(){return{sourceSpan:null,nodeFlags:1,nodeDef:vr(de(zu.anchorDef)).callFn([Sr(0),Jl,Jl,Sr(0)])}})},t.prototype.build=function(t){void 0===t&&(t=[]),this.children.forEach(function(e){return e.build(t)});var r=this._createNodeExpressions(),n=r.updateRendererStmts,o=r.updateDirectivesStmts,i=r.nodeDefExprs,s=this._createUpdateFn(n),a=this._createUpdateFn(o),u=0;this.parent||this.component.changeDetection!==e.ChangeDetectionStrategy.OnPush||(u|=2);var c=new op(this.viewName,[new Hl(qh.name)],[new sp(vr(de(zu.viewDef)).callFn([Sr(u),br(i),a,s]))],gr(de(zu.ViewDefinition)));return t.push(c),t},t.prototype._createUpdateFn=function(t){var e;if(t.length>0){var r=[];!this.component.isHost&&fr(t).has(Wh.name)&&r.push(Wh.set(zh.prop("component")).toDeclStmt(this.compType)),e=Er([new Hl(Gh.name,Sl),new Hl(zh.name,Sl)],r.concat(t),Sl)}else e=Jl;return e},t.prototype.visitNgContent=function(t){this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:4,nodeDef:vr(de(zu.ngContentDef)).callFn([Sr(t.ngContentIndex),Sr(t.index)])}})},t.prototype.visitText=function(t){this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:2,nodeDef:vr(de(zu.textDef)).callFn([Sr(t.ngContentIndex),br([Sr(t.value)])])}})},t.prototype.visitBoundText=function(t){var e=this,r=this.nodes.length;this.nodes.push(null);var n=t.value,o=n.ast,i=o.expressions.map(function(n,o){return e._preprocessUpdateExpression({nodeIndex:r,bindingIndex:o,sourceSpan:t.sourceSpan,context:Wh,value:n})});this.nodes[r]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:2,nodeDef:vr(de(zu.textDef)).callFn([Sr(t.ngContentIndex),br(o.strings.map(function(t){return Sr(t)}))]),updateRenderer:i}}},t.prototype.visitEmbeddedTemplate=function(t){var e=this,r=this.nodes.length;this.nodes.push(null);var n=this._visitElementOrTemplate(r,t),o=n.flags,i=n.queryMatchesExpr,s=n.hostEvents,a=this.viewBuilderFactory(this);this.children.push(a),a.visitAll(t.variables,t.children);var u=this.nodes.length-r-1;this.nodes[r]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:1|o,nodeDef:vr(de(zu.anchorDef)).callFn([Sr(o),i,Sr(t.ngContentIndex),Sr(u),e._createElementHandleEventFn(r,s),yr(a.viewName)])}}},t.prototype.visitElement=function(t){var e=this,n=this.nodes.length;this.nodes.push(null);var i=o(t.name)?null:t.name,s=this._visitElementOrTemplate(n,t),a=s.flags,u=s.usedEvents,c=s.queryMatchesExpr,l=s.hostBindings,p=s.hostEvents,h=[],f=[],d=[];if(i){var m=t.inputs.map(function(t){return{context:Wh,inputAst:t,dirAst:null}}).concat(l);m.length&&(f=m.map(function(t,r){return e._preprocessUpdateExpression({context:t.context,nodeIndex:n,bindingIndex:r,sourceSpan:t.inputAst.sourceSpan,value:t.inputAst.value})}),h=m.map(function(t){return ln(t.inputAst,t.dirAst)})),d=u.map(function(t){var e=t[0],r=t[1];return br([Sr(e),Sr(r)])})}r(this,t.children);var y=this.nodes.length-n-1,v=t.directives.find(function(t){return t.directive.isComponent}),g=Jl,_=Jl;v&&(_=vr({reference:v.directive.componentViewType}),g=vr({reference:v.directive.rendererType})),this.nodes[n]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:1|a,nodeDef:vr(de(zu.elementDef)).callFn([Sr(a),c,Sr(t.ngContentIndex),Sr(y),Sr(i),i?pn(t):Jl,h.length?br(h):Jl,d.length?br(d):Jl,e._createElementHandleEventFn(n,p),_,g]),updateRenderer:f}}},t.prototype._visitElementOrTemplate=function(t,r){var n=this,o=0;r.hasViewContainer&&(o|=8388608);var i=new Map;r.outputs.forEach(function(t){var r=gn(t,null),n=r.name,o=r.target;i.set(e.ɵelementEventFullName(o,n),[o,n])}),r.directives.forEach(function(t){t.hostEvents.forEach(function(r){var n=gn(r,t),o=n.name,s=n.target;i.set(e.ɵelementEventFullName(s,o),[s,o])})});var s=[],a=[],u=vn(r.directives);u&&this._visitProvider(u,r.queryMatches),r.providers.forEach(function(e){var o=void 0,u=void 0;if(r.directives.forEach(function(t,r){t.directive.type.reference===R(e.token)&&(o=t,u=r)}),o){var c=n._visitDirective(e,o,u,t,r.references,r.queryMatches,i,n.staticQueryIds.get(r)),l=c.hostBindings,p=c.hostEvents;s.push.apply(s,l),a.push.apply(a,p)}else n._visitProvider(e,r.queryMatches)});var c=[];return r.queryMatches.forEach(function(t){var e=void 0;R(t.value)===fe(zu.ElementRef)?e=0:R(t.value)===fe(zu.ViewContainerRef)?e=3:R(t.value)===fe(zu.TemplateRef)&&(e=2),null!=e&&c.push(br([Sr(t.queryId),Sr(e)]))}),r.references.forEach(function(e){var r=void 0;e.value?R(e.value)===fe(zu.TemplateRef)&&(r=2):r=1,null!=r&&(n.refNodeIndices[e.name]=t,c.push(br([Sr(e.name),Sr(r)])))}),r.outputs.forEach(function(t){a.push({context:Wh,eventAst:t,dirAst:null})}),{flags:o,usedEvents:Array.from(i.values()),queryMatchesExpr:c.length?br(c):Jl,hostBindings:s,hostEvents:a}},t.prototype._visitDirective=function(t,e,r,n,o,i,s,a){var u=this,c=this.nodes.length;this.nodes.push(null),e.directive.queries.forEach(function(t,r){var n=e.contentQueryStartId+r,o=33554432|_n(a,n,t.first),i=t.first?0:1;u.nodes.push(function(){return{sourceSpan:e.sourceSpan,nodeFlags:o,nodeDef:vr(de(zu.queryDef)).callFn([Sr(o),Sr(n),new Ql([new Kl(t.propertyName,Sr(i))])])}})});var l=this.nodes.length-c-1,p=this._visitProviderOrDirective(t,i),h=p.flags,f=p.queryMatchExprs,d=p.providerExpr,m=p.depsExpr;o.forEach(function(e){e.value&&R(e.value)===R(t.token)&&(u.refNodeIndices[e.name]=c,f.push(br([Sr(e.name),Sr(4)])))}),e.directive.isComponent&&(h|=16384);var y=e.inputs.map(function(t,e){var r=br([Sr(e),Sr(t.directiveName)]);return new Kl(t.directiveName,r,!1)}),v=[],g=e.directive;Object.keys(g.outputs).forEach(function(t){var e=g.outputs[t];s.has(e)&&v.push(new Kl(t,Sr(e),!1))});var _=[];(e.inputs.length||(163840&h)>0)&&(_=e.inputs.map(function(t,e){return u._preprocessUpdateExpression({nodeIndex:c,bindingIndex:e,sourceSpan:t.sourceSpan,context:Wh,value:t.value})}));var b=vr(de(zu.nodeValue)).callFn([zh,Sr(c)]),w=e.hostProperties.map(function(t){return{context:b,dirAst:e,inputAst:t}}),C=e.hostEvents.map(function(t){return{context:b,eventAst:t,dirAst:e}});return this.nodes[c]=function(){return{sourceSpan:e.sourceSpan,nodeFlags:8192|h,nodeDef:vr(de(zu.directiveDef)).callFn([Sr(h),f.length?br(f):Jl,Sr(l),d,m,y.length?new Ql(y):Jl,v.length?new Ql(v):Jl]),updateDirectives:_,directive:e.directive.type}},{hostBindings:w,hostEvents:C}},t.prototype._visitProvider=function(t,e){var r=this.nodes.length;this.nodes.push(null);var n=this._visitProviderOrDirective(t,e),o=n.flags,i=n.queryMatchExprs,s=n.providerExpr,a=n.depsExpr;this.nodes[r]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:o,nodeDef:vr(de(zu.providerDef)).callFn([Sr(o),i.length?br(i):Jl,sn(t.token),s,a])}}},t.prototype._visitProviderOrDirective=function(t,r){var n=0;t.eager||(n|=2048),t.providerType===po.PrivateService&&(n|=4096),t.lifecycleHooks.forEach(function(r){(r===e.ɵLifecycleHooks.OnDestroy||t.providerType===po.Directive||t.providerType===po.Component)&&(n|=cn(r))});var o=[];r.forEach(function(e){R(e.value)===R(t.token)&&o.push(br([Sr(e.queryId),Sr(4)]))});var i=rn(t),s=i.providerExpr,a=i.depsExpr,u=i.flags;return{flags:n|u,queryMatchExprs:o,providerExpr:s,depsExpr:a}},t.prototype.getLocal=function(t){if(t==Mh.event.name)return Mh.event;for(var e=zh,r=this;r;r=r.parent,e=e.prop("parent").cast(El)){var n=r.refNodeIndices[t];if(null!=n)return vr(de(zu.nodeValue)).callFn([e,Sr(n)]);var o=r.variables.find(function(e){return e.name===t});if(o){var i=o.value||Uh;return e.prop("context").prop(i)}}return null},t.prototype.createLiteralArrayConverter=function(t,e){if(0===e){var r=vr(de(zu.EMPTY_ARRAY));return function(){return r}}var n=this.nodes.length;return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:16,nodeDef:vr(de(zu.pureArrayDef)).callFn([Sr(e)])}}),function(t){return fn(n,t)}},t.prototype.createLiteralMapConverter=function(t,e){if(0===e.length){var r=vr(de(zu.EMPTY_MAP));return function(){return r}}var n=this.nodes.length;return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:32,nodeDef:vr(de(zu.pureObjectDef)).callFn([br(e.map(function(t){return Sr(t)}))])}}),function(t){return fn(n,t)}},t.prototype.createPipeConverter=function(t,e,r){var n=this.usedPipes.find(function(t){return t.name===e});if(n.pure){var o=this.nodes.length;this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:64,nodeDef:vr(de(zu.purePipeDef)).callFn([Sr(r)])}});for(var i=zh,s=this;s.parent;)s=s.parent,i=i.prop("parent").cast(El);var a=s.purePipeNodeIndices[e],u=vr(de(zu.nodeValue)).callFn([i,Sr(a)]);return function(e){return dn(t.nodeIndex,t.bindingIndex,fn(o,[u].concat(e)))}}var c=this._createPipe(t.sourceSpan,n),l=vr(de(zu.nodeValue)).callFn([zh,Sr(c)]);return function(e){return dn(t.nodeIndex,t.bindingIndex,l.callMethod("transform",e))}},t.prototype._createPipe=function(t,r){var n=this.nodes.length,o=0;r.type.lifecycleHooks.forEach(function(t){t===e.ɵLifecycleHooks.OnDestroy&&(o|=cn(t))});var i=r.type.diDeps.map(an);return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:8,nodeDef:vr(de(zu.pipeDef)).callFn([Sr(o),vr(r.type),br(i)])}}),n},t.prototype._preprocessUpdateExpression=function(t){var e=this;return{nodeIndex:t.nodeIndex,bindingIndex:t.bindingIndex,sourceSpan:t.sourceSpan,context:t.context,value:qr({createLiteralArrayConverter:function(r){return e.createLiteralArrayConverter(t.sourceSpan,r)},createLiteralMapConverter:function(r){return e.createLiteralMapConverter(t.sourceSpan,r)},createPipeConverter:function(r,n){return e.createPipeConverter(t,r,n)}},t.value)}},t.prototype._createNodeExpressions=function(){function t(t,n,o,i){var s=[],a=o.map(function(t){var n=t.sourceSpan,o=t.context,i=t.value,a=""+r++,u=o===Wh?e:null,c=zr(u,o,i,a),l=c.stmts,p=c.currValExpr;return s.push.apply(s,l.map(function(t){return dr(t,n)})),mr(p,n)});return(o.length||i)&&s.push(dr(fn(t,a).toStmt(),n)),s}var e=this,r=0,n=[],o=[],i=this.nodes.map(function(e,r){var i=e(),s=i.nodeDef,a=i.nodeFlags,u=i.updateDirectives,c=i.updateRenderer,l=i.sourceSpan;c&&n.push.apply(n,t(r,l,c,!1)),u&&o.push.apply(o,t(r,l,u,(163840&a)>0));var p=3&a?new Xl([qh.callFn([]).callFn([]),s]):s;return mr(p,l)});return{updateRendererStmts:n,updateDirectivesStmts:o,nodeDefExprs:i}},t.prototype._createElementHandleEventFn=function(t,r){var n=this,o=[],i=0;r.forEach(function(t){var r=t.context,s=t.eventAst,a=t.dirAst,u=""+i++,c=r===Wh?n:null,l=Hr(c,r,s.handler,u),p=l.stmts,h=l.allowDefault,f=p;h&&f.push(Kh.set(h.and(Kh)).toStmt());var d=gn(s,a),m=d.target,y=d.name,v=e.ɵelementEventFullName(m,y);o.push(dr(new hp(Sr(v).identical($h),f),s.sourceSpan))});var s;if(o.length>0){var a=[Kh.set(Sr(!0)).toDeclStmt(xl)];!this.component.isHost&&fr(o).has(Wh.name)&&a.push(Wh.set(zh.prop("component")).toDeclStmt(this.compType)),s=Er([new Hl(zh.name,Sl),new Hl($h.name,Sl),new Hl(Mh.event.name,Sl)],a.concat(o,[new sp(Kh)]),Sl)}else s=Jl;return s},t.prototype.visitDirective=function(){},t.prototype.visitDirectiveProperty=function(){},t.prototype.visitReference=function(){},t.prototype.visitVariable=function(){},t.prototype.visitEvent=function(){},t.prototype.visitElementProperty=function(){},t.prototype.visitAttr=function(){},t}(),Xh=function(){function t(t,e,r){this.srcFileUrl=t,this.genFileUrl=e,this.source=r}return t}(),Zh=function(t){function e(e,r){var n=t.call(this)||this;return n.symbolResolver=e,n.summaryResolver=r,n.symbols=[],n.indexBySymbol=new Map,n.processedSummaryBySymbol=new Map,n.processedSummaries=[],n}return Zn(e,t),e.prototype.addOrMergeSummary=function(t){var e=t.metadata;if(e&&"class"===e.__symbolic){var r={};Object.keys(e).forEach(function(t){"decorators"!==t&&(r[t]=e[t])}),e=r}var n=this.processedSummaryBySymbol.get(t.symbol);n||(n=this.processValue({symbol:t.symbol}),this.processedSummaries.push(n),this.processedSummaryBySymbol.set(t.symbol,n)),null==n.metadata&&null!=e&&(n.metadata=this.processValue(e)),null==n.type&&null!=t.type&&(n.type=this.processValue(t.type))},e.prototype.serialize=function(){var t=this,e=[],r=JSON.stringify({summaries:this.processedSummaries,symbols:this.symbols.map(function(r,n){r.assertNoMembers();var o=void 0;return t.summaryResolver.isLibraryFile(r.filePath)&&(o=r.name+"_"+n,e.push({symbol:r,exportAs:o})),{__symbol:n,name:r.name,filePath:t.summaryResolver.getLibraryFileName(r.filePath),importAs:o}})});return{json:r,exportAs:e
-}},e.prototype.processValue=function(t){return d(t,this,null)},e.prototype.visitOther=function(t){if(t instanceof mo){var e=this.symbolResolver.getStaticSymbol(t.filePath,t.name),r=this.indexBySymbol.get(e);return null==r&&(r=this.indexBySymbol.size,this.indexBySymbol.set(e,r),this.symbols.push(e)),{__symbol:r,members:t.members}}},e}(Oo),Yh=function(t){function e(e){var r=t.call(this)||this;return r.symbolCache=e,r}return Zn(e,t),e.prototype.deserialize=function(t){var e=this,r=JSON.parse(t),n=[];this.symbols=[],r.symbols.forEach(function(t){var r=e.symbolCache.get(t.filePath,t.name);e.symbols.push(r),t.importAs&&n.push({symbol:r,importAs:t.importAs})});var o=d(r.summaries,this,null);return{summaries:o,importAs:n}},e.prototype.visitStringMap=function(e,r){if("__symbol"in e){var n=this.symbols[e.__symbol],o=e.members;return o.length?this.symbolCache.get(n.filePath,n.name,o):n}return t.prototype.visitStringMap.call(this,e,r)},e}(Oo),Jh=function(){function t(t,e,r,n,o,i,s,a,u,c,l,p,h){this._config=t,this._host=e,this._metadataResolver=r,this._templateParser=n,this._styleCompiler=o,this._viewCompiler=i,this._ngModuleCompiler=s,this._outputEmitter=a,this._summaryResolver=u,this._localeId=c,this._translationFormat=l,this._genFilePreamble=p,this._symbolResolver=h}return t.prototype.clearCache=function(){this._metadataResolver.clearCache()},t.prototype.compileAll=function(t){var e=this,r=An(this._symbolResolver,t,this._host),n=Tn(r,this._host,this._metadataResolver),o=n.ngModuleByPipeOrDirective,i=n.files,s=n.ngModules;return Promise.all(s.map(function(t){return e._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.type.reference,!1)})).then(function(){var t=i.map(function(t){return e._compileSrcFile(t.srcUrl,o,t.directives,t.pipes,t.ngModules,t.injectables)});return N(t)})},t.prototype._compileSrcFile=function(t,e,r,n,o,i){var s=this,a=Je(t)[1],u=[],c=[],l=[];if(l.push(this._createSummary(t,r,n,o,i,u,c)),c.push.apply(c,o.map(function(t){return s._compileModule(t,u)})),r.forEach(function(r){var n=s._metadataResolver.getDirectiveMetadata(r);if(!n.isComponent)return Promise.resolve(null);var o=e.get(r);if(!o)throw new Error("Internal Error: cannot determine the module for component "+E(n.type)+"!");Sn(n);var i=s._styleCompiler.compileComponent(n);i.externalStylesheets.forEach(function(e){l.push(s._codgenStyles(t,e,a))});var p=s._compileComponent(n,o,o.transitiveModule.directives,i.componentStylesheet,a,u);c.push(s._compileComponentFactory(n,o,a,u),p.viewClassVar,p.compRenderTypeVar)}),u.length>0){var p=this._codegenSourceModule(t,Xe(t),u,c);l.unshift(p)}return l},t.prototype._createSummary=function(t,e,r,n,o,i,s){var a=this,u=this._symbolResolver.getSymbolsOf(t).map(function(t){return a._symbolResolver.resolveSymbol(t)}),c=n.map(function(t){return a._metadataResolver.getNgModuleSummary(t)}).concat(e.map(function(t){return a._metadataResolver.getDirectiveSummary(t)}),r.map(function(t){return a._metadataResolver.getPipeSummary(t)}),o.map(function(t){return a._metadataResolver.getInjectableSummary(t)})),l=bn(this._summaryResolver,this._symbolResolver,u,c),p=l.json,h=l.exportAs;return h.forEach(function(t){i.push(yr(t.exportAs).set(vr({reference:t.symbol})).toDeclStmt()),s.push(t.exportAs)}),new Xh(t,tr(t),p)},t.prototype._compileModule=function(t,e){var r=this._metadataResolver.getNgModuleMetadata(t),n=[];this._localeId&&n.push({token:ye(zu.LOCALE_ID),useValue:this._localeId}),this._translationFormat&&n.push({token:ye(zu.TRANSLATIONS_FORMAT),useValue:this._translationFormat});var o=this._ngModuleCompiler.compile(r,n);return e.push.apply(e,o.statements),o.ngModuleFactoryVar},t.prototype._compileComponentFactory=function(t,e,r,n){var o=this._metadataResolver.getHostComponentType(t.type.reference),i=k(o,t,this._metadataResolver.getHostComponentViewClass(o)),s=this._compileComponent(i,e,[t.type],null,r,n).viewClassVar,a=O(t.type.reference),u=[];for(var c in t.inputs){var l=t.inputs[c];u.push(new Kl(c,Sr(l),!1))}var p=[];for(var c in t.outputs){var l=t.outputs[c];p.push(new Kl(c,Sr(l),!1))}return n.push(yr(a).set(vr(de(zu.createComponentFactory)).callFn([Sr(t.selector),vr(t.type),yr(s),new Ql(u),new Ql(p),br(t.template.ngContentSelectors.map(function(t){return Sr(t)}))])).toDeclStmt(gr(de(zu.ComponentFactory),[gr(t.type)],[yl.Const]),[ep.Final])),a},t.prototype._compileComponent=function(t,e,r,n,o,i){var s=this,a=r.map(function(t){return s._metadataResolver.getDirectiveSummary(t.reference)}),u=e.transitiveModule.pipes.map(function(t){return s._metadataResolver.getPipeSummary(t.reference)}),c=this._templateParser.parse(t,t.template.template,a,u,e.schemas,j(e.type,t,t.template)),l=c.template,p=c.pipes,h=n?yr(n.stylesVar):br([]),f=this._viewCompiler.compileComponent(t,l,h,p);return n&&i.push.apply(i,Cn(this._symbolResolver,n,o)),i.push.apply(i,f.statements),{viewClassVar:f.viewClassVar,compRenderTypeVar:f.rendererTypeVar}},t.prototype._codgenStyles=function(t,e,r){return Cn(this._symbolResolver,e,r),this._codegenSourceModule(t,En(e.meta.moduleUrl,e.isShimmed,r),e.statements,[e.stylesVar])},t.prototype._codegenSourceModule=function(t,e,r,n){return new Xh(t,e,this._outputEmitter.emitStatements(D(t),e,r,n,this._genFilePreamble))},t}(),tf=function(){function t(t){this.staticDelegate=t,this.dynamicDelegate=new e.ɵReflectionCapabilities}return t.install=function(r){e.ɵreflector.updateCapabilities(new t(r))},t.prototype.isReflectionEnabled=function(){return!0},t.prototype.factory=function(t){return this.dynamicDelegate.factory(t)},t.prototype.hasLifecycleHook=function(t,e){return Mn(t)?this.staticDelegate.hasLifecycleHook(t,e):this.dynamicDelegate.hasLifecycleHook(t,e)},t.prototype.parameters=function(t){return Mn(t)?this.staticDelegate.parameters(t):this.dynamicDelegate.parameters(t)},t.prototype.annotations=function(t){return Mn(t)?this.staticDelegate.annotations(t):this.dynamicDelegate.annotations(t)},t.prototype.propMetadata=function(t){return Mn(t)?this.staticDelegate.propMetadata(t):this.dynamicDelegate.propMetadata(t)},t.prototype.getter=function(t){return this.dynamicDelegate.getter(t)},t.prototype.setter=function(t){return this.dynamicDelegate.setter(t)},t.prototype.method=function(t){return this.dynamicDelegate.method(t)},t.prototype.importUri=function(t){return this.staticDelegate.importUri(t)},t.prototype.resourceUri=function(t){return this.staticDelegate.resourceUri(t)},t.prototype.resolveIdentifier=function(t,e,r){return this.staticDelegate.resolveIdentifier(t,e,r)},t.prototype.resolveEnum=function(t,e){return Mn(t)?this.staticDelegate.resolveEnum(t,e):null},t}(),ef="@angular/core",rf=/^\$.*\$$/,nf={__symbolic:"ignore"},of=function(){function t(t,r,n,o,i){void 0===n&&(n=[]),void 0===o&&(o=[]);var s=this;this.summaryResolver=t,this.symbolResolver=r,this.errorRecorder=i,this.annotationCache=new Map,this.propertyCache=new Map,this.parameterCache=new Map,this.methodCache=new Map,this.conversionMap=new Map,this.annotationForParentClassWithSummaryKind=new Map,this.annotationNames=new Map,this.initializeConversionMap(),n.forEach(function(t){return s._registerDecoratorOrConstructor(s.getStaticSymbol(t.filePath,t.name),t.ctor)}),o.forEach(function(t){return s._registerFunction(s.getStaticSymbol(t.filePath,t.name),t.fn)}),this.annotationForParentClassWithSummaryKind.set(Wo.Directive,[e.Directive,e.Component]),this.annotationForParentClassWithSummaryKind.set(Wo.Pipe,[e.Pipe]),this.annotationForParentClassWithSummaryKind.set(Wo.NgModule,[e.NgModule]),this.annotationForParentClassWithSummaryKind.set(Wo.Injectable,[e.Injectable,e.Pipe,e.Directive,e.Component,e.NgModule]),this.annotationNames.set(e.Directive,"Directive"),this.annotationNames.set(e.Component,"Component"),this.annotationNames.set(e.Pipe,"Pipe"),this.annotationNames.set(e.NgModule,"NgModule"),this.annotationNames.set(e.Injectable,"Injectable")}return t.prototype.importUri=function(t){var e=this.findSymbolDeclaration(t);return e?e.filePath:null},t.prototype.resourceUri=function(t){var e=this.findSymbolDeclaration(t);return this.symbolResolver.getResourcePath(e)},t.prototype.resolveIdentifier=function(t,e,r){var n=this.getStaticSymbol(e,t),o=this.findDeclaration(e,t);return n!=o&&this.symbolResolver.recordImportAs(o,n),r&&r.length?this.getStaticSymbol(o.filePath,o.name,r):o},t.prototype.findDeclaration=function(t,e,r){return this.findSymbolDeclaration(this.symbolResolver.getSymbolByModule(t,e,r))},t.prototype.findSymbolDeclaration=function(t){var e=this.symbolResolver.resolveSymbol(t);return e&&e.metadata instanceof mo?this.findSymbolDeclaration(e.metadata):t},t.prototype.resolveEnum=function(t,e){var r=t,n=(r.members||[]).concat(e);return this.getStaticSymbol(r.filePath,r.name,n)},t.prototype.annotations=function(t){var e=this,r=this.annotationCache.get(t);if(!r){r=[];var n=this.getTypeMetadata(t),o=this.findParentType(t,n);if(o){var i=this.annotations(o);r.push.apply(r,i)}var s=[];if(n.decorators&&(s=this.simplify(t,n.decorators),r.push.apply(r,s)),o&&!this.summaryResolver.isLibraryFile(t.filePath)&&this.summaryResolver.isLibraryFile(o.filePath)){var a=this.summaryResolver.resolveSummary(o);if(a&&a.type){var u=this.annotationForParentClassWithSummaryKind.get(a.type.summaryKind),c=u.some(function(t){return s.some(function(e){return e instanceof t})});c||this.reportError(v("Class "+t.name+" in "+t.filePath+" extends from a "+Wo[a.type.summaryKind]+" in another compilation unit without duplicating the decorator. "+("Please add a "+u.map(function(t){return e.annotationNames.get(t)}).join(" or ")+" decorator to the class.")),t)}}this.annotationCache.set(t,r.filter(function(t){return!!t}))}return r},t.prototype.propMetadata=function(t){var e=this,r=this.propertyCache.get(t);if(!r){var n=this.getTypeMetadata(t);r={};var o=this.findParentType(t,n);if(o){var i=this.propMetadata(o);Object.keys(i).forEach(function(t){r[t]=i[t]})}var s=n.members||{};Object.keys(s).forEach(function(n){var o=s[n],i=o.find(function(t){return"property"==t.__symbolic||"method"==t.__symbolic}),a=[];r[n]&&a.push.apply(a,r[n]),r[n]=a,i&&i.decorators&&a.push.apply(a,e.simplify(t,i.decorators))}),this.propertyCache.set(t,r)}return r},t.prototype.parameters=function(t){if(!(t instanceof mo))return this.reportError(new Error("parameters received "+JSON.stringify(t)+" which is not a StaticSymbol"),t),[];try{var e=this.parameterCache.get(t);if(!e){var r=this.getTypeMetadata(t),n=this.findParentType(t,r),o=r?r.members:null,i=o?o.__ctor__:null;if(i){var s=i.find(function(t){return"constructor"==t.__symbolic}),a=this.simplify(t,s.parameters||[]),u=this.simplify(t,s.parameterDecorators||[]);e=[],a.forEach(function(t,r){var n=[];t&&n.push(t);var o=u?u[r]:null;o&&n.push.apply(n,o),e.push(n)})}else n&&(e=this.parameters(n));e||(e=[]),this.parameterCache.set(t,e)}return e}catch(c){throw console.error("Failed on type "+JSON.stringify(t)+" with error "+c),c}},t.prototype._methodNames=function(t){var e=this.methodCache.get(t);if(!e){var r=this.getTypeMetadata(t);e={};var n=this.findParentType(t,r);if(n){var o=this._methodNames(n);Object.keys(o).forEach(function(t){e[t]=o[t]})}var i=r.members||{};Object.keys(i).forEach(function(t){var r=i[t],n=r.some(function(t){return"method"==t.__symbolic});e[t]=e[t]||n}),this.methodCache.set(t,e)}return e},t.prototype.findParentType=function(t,e){var r=this.trySimplify(t,e["extends"]);return r instanceof mo?r:void 0},t.prototype.hasLifecycleHook=function(t,e){t instanceof mo||this.reportError(new Error("hasLifecycleHook received "+JSON.stringify(t)+" which is not a StaticSymbol"),t);try{return!!this._methodNames(t)[e]}catch(r){throw console.error("Failed on type "+JSON.stringify(t)+" with error "+r),r}},t.prototype._registerDecoratorOrConstructor=function(t,e){this.conversionMap.set(t,function(t,r){return new(e.bind.apply(e,[void 0].concat(r)))})},t.prototype._registerFunction=function(t,e){this.conversionMap.set(t,function(t,r){return e.apply(void 0,r)})},t.prototype.initializeConversionMap=function(){this.injectionToken=this.findDeclaration(ef,"InjectionToken"),this.opaqueToken=this.findDeclaration(ef,"OpaqueToken"),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Host"),e.Host),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Injectable"),e.Injectable),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Self"),e.Self),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"SkipSelf"),e.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Inject"),e.Inject),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Optional"),e.Optional),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Attribute"),e.Attribute),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"ContentChild"),e.ContentChild),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"ContentChildren"),e.ContentChildren),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"ViewChild"),e.ViewChild),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"ViewChildren"),e.ViewChildren),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Input"),e.Input),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Output"),e.Output),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Pipe"),e.Pipe),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"HostBinding"),e.HostBinding),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"HostListener"),e.HostListener),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Directive"),e.Directive),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Component"),e.Component),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"NgModule"),e.NgModule),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Host"),e.Host),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Self"),e.Self),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"SkipSelf"),e.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(ef,"Optional"),e.Optional),this._registerFunction(this.findDeclaration(ef,"trigger"),e.trigger),this._registerFunction(this.findDeclaration(ef,"state"),e.state),this._registerFunction(this.findDeclaration(ef,"transition"),e.transition),this._registerFunction(this.findDeclaration(ef,"style"),e.style),this._registerFunction(this.findDeclaration(ef,"animate"),e.animate),this._registerFunction(this.findDeclaration(ef,"keyframes"),e.keyframes),this._registerFunction(this.findDeclaration(ef,"sequence"),e.sequence),this._registerFunction(this.findDeclaration(ef,"group"),e.group)},t.prototype.getStaticSymbol=function(t,e,r){return this.symbolResolver.getStaticSymbol(t,e,r)},t.prototype.reportError=function(t,e,r){if(!this.errorRecorder)throw t;this.errorRecorder(t,e&&e.filePath||r)},t.prototype.trySimplify=function(t,e){var r=this.errorRecorder;this.errorRecorder=function(){};var n=this.simplify(t,e);return this.errorRecorder=r,n},t.prototype.simplify=function(t,e){function r(t,e,n){function a(t){var e=o.symbolResolver.resolveSymbol(t);return e?e.metadata:null}function u(e,o,a){if(o&&"function"==o.__symbolic){if(s.get(e))throw new Error("Recursion not supported");s.set(e,!0);try{var u=o.value;if(u&&(0!=n||"error"!=u.__symbolic)){var l=o.parameters,p=o.defaults;a=a.map(function(e){return r(t,e,n+1)}).map(function(t){return Rn(t)?void 0:t}),p&&p.length>a.length&&a.push.apply(a,p.slice(a.length).map(function(t){return c(t)}));for(var h=sf.build(),f=0;f<l.length;f++)h.define(l[f],a[f]);var d,m=i;try{i=h.done(),d=r(e,u,n+1)}finally{i=m}return d}}finally{s["delete"](e)}}return 0===n?nf:c({__symbolic:"error",message:"Function call not supported",context:e})}function c(e){if(Dn(e))return e;if(e instanceof Array){for(var s=[],l=0,p=e;l<p.length;l++){var h=p[l];if(h&&"spread"===h.__symbolic){var f=c(h.expression);if(Array.isArray(f)){for(var d=0,m=f;d<m.length;d++){var y=m[d];s.push(y)}continue}}var v=c(h);Rn(v)||s.push(v)}return s}if(e instanceof mo){if(e===o.injectionToken||e===o.opaqueToken||o.conversionMap.has(e))return e;var g=e,_=a(g);return _?r(g,_,n+1):g}if(e){if(e.__symbolic){var g=void 0;switch(e.__symbolic){case"binop":var b=c(e.left);if(Rn(b))return b;var w=c(e.right);if(Rn(w))return w;switch(e.operator){case"&&":return b&&w;case"||":return b||w;case"|":return b|w;case"^":return b^w;case"&":return b&w;case"==":return b==w;case"!=":return b!=w;case"===":return b===w;case"!==":return b!==w;case"<":return w>b;case">":return b>w;case"<=":return w>=b;case">=":return b>=w;case"<<":return b<<w;case">>":return b>>w;case"+":return b+w;case"-":return b-w;case"*":return b*w;case"/":return b/w;case"%":return b%w}return null;case"if":var C=c(e.condition);return c(C?e.thenExpression:e.elseExpression);case"pre":var E=c(e.operand);if(Rn(E))return E;switch(e.operator){case"+":return E;case"-":return-E;case"!":return!E;case"~":return~E}return null;case"index":var S=c(e.expression),x=c(e.index);return S&&Dn(x)?S[x]:null;case"select":var T=e.member,P=t,A=c(e.expression);if(A instanceof mo){var O=A.members.concat(T);P=o.getStaticSymbol(A.filePath,A.name,O);var _=a(P);return _?r(P,_,n+1):P}return A&&Dn(T)?r(P,A[T],n+1):null;case"reference":var M=e.name,R=i.resolve(M);if(R!=sf.missing)return R;break;case"class":return t;case"function":return t;case"new":case"call":if(g=r(t,e.expression,n+1),g instanceof mo){if(g===o.injectionToken||g===o.opaqueToken)return t;var k=e.arguments||[],I=o.conversionMap.get(g);if(I){var N=k.map(function(e){return r(t,e,n+1)}).map(function(t){return Rn(t)?void 0:t});return I(t,N)}var D=a(g);return u(g,D,k)}return nf;case"error":var j=In(e);return e.line?(j=j+" (position "+(e.line+1)+":"+(e.character+1)+" in the original .ts file)",o.reportError(jn(j,t.filePath,e.line,e.character),t)):o.reportError(new Error(j),t),nf;case"ignore":return e}return null}return Nn(e,function(t){return c(t)})}return nf}try{return c(e)}catch(l){var p=t.members.length?"."+t.members.join("."):"",h=l.message+", resolving symbol "+t.name+p+" in "+t.filePath;if(l.fileName)throw jn(h,l.fileName,l.line,l.column);throw v(h)}}var n=this,o=this,i=sf.empty,s=new Map,a=function(t,e,o){try{return r(t,e,o)}catch(i){n.reportError(i,t)}},u=this.errorRecorder?a(t,e,0):r(t,e,0);return Rn(u)?void 0:u},t.prototype.getTypeMetadata=function(t){var e=this.symbolResolver.resolveSymbol(t);return e&&e.metadata?e.metadata:{__symbolic:"class"}},t}(),sf=function(){function t(){}return t.prototype.resolve=function(){},t.build=function(){var e=new Map;return{define:function(t,r){return e.set(t,r),this},done:function(){return e.size>0?new af(e):t.empty}}},t}();sf.missing={},sf.empty={resolve:function(){return sf.missing}};var af=function(t){function e(e){var r=t.call(this)||this;return r.bindings=e,r}return Zn(e,t),e.prototype.resolve=function(t){return this.bindings.has(t)?this.bindings.get(t):sf.missing},e}(sf),uf=function(){function t(t,e){this.symbol=t,this.metadata=e}return t}(),cf=3,lf=function(){function t(t,e,r,n){this.host=t,this.staticSymbolCache=e,this.summaryResolver=r,this.errorRecorder=n,this.metadataCache=new Map,this.resolvedSymbols=new Map,this.resolvedFilePaths=new Set,this.importAs=new Map,this.symbolResourcePaths=new Map,this.symbolFromFile=new Map}return t.prototype.resolveSymbol=function(t){if(t.members.length>0)return this._resolveSymbolMembers(t);var e=this.resolvedSymbols.get(t);return e?e:(e=this._resolveSymbolFromSummary(t))?e:(this._createSymbolsOf(t.filePath),e=this.resolvedSymbols.get(t))},t.prototype.getImportAs=function(t){if(t.members.length){var e=this.getStaticSymbol(t.filePath,t.name),r=this.getImportAs(e);return r?this.getStaticSymbol(r.filePath,r.name,t.members):null}var n=this.summaryResolver.getImportAs(t);return n||(n=this.importAs.get(t)),n},t.prototype.getResourcePath=function(t){return this.symbolResourcePaths.get(t)||t.filePath},t.prototype.getTypeArity=function(t){if(Ye(t.filePath))return null;for(var e=this.resolveSymbol(t);e&&e.metadata instanceof mo;)e=this.resolveSymbol(e.metadata);return e&&e.metadata&&e.metadata.arity||null},t.prototype.recordImportAs=function(t,e){t.assertNoMembers(),e.assertNoMembers(),this.importAs.set(t,e)},t.prototype.invalidateFile=function(t){this.metadataCache["delete"](t),this.resolvedFilePaths["delete"](t);var e=this.symbolFromFile.get(t);if(e){this.symbolFromFile["delete"](t);for(var r=0,n=e;r<n.length;r++){var o=n[r];this.resolvedSymbols["delete"](o),this.importAs["delete"](o),this.symbolResourcePaths["delete"](o)}}},t.prototype._resolveSymbolMembers=function(t){var e=t.members,r=this.resolveSymbol(this.getStaticSymbol(t.filePath,t.name));if(!r)return null;var n=r.metadata;if(n instanceof mo)return new uf(t,this.getStaticSymbol(n.filePath,n.name,e));if(!n||"class"!==n.__symbolic){for(var o=n,i=0;i<e.length&&o;i++)o=o[e[i]];return new uf(t,o)}return n.statics&&1===e.length?new uf(t,n.statics[e[0]]):null},t.prototype._resolveSymbolFromSummary=function(t){var e=this.summaryResolver.resolveSummary(t);return e?new uf(t,e.metadata):null},t.prototype.getStaticSymbol=function(t,e,r){return this.staticSymbolCache.get(t,e,r)},t.prototype.getSymbolsOf=function(t){var e=new Set(this.summaryResolver.getSymbolsOf(t));return this._createSymbolsOf(t),this.resolvedSymbols.forEach(function(r){r.symbol.filePath===t&&e.add(r.symbol)}),Array.from(e)},t.prototype._createSymbolsOf=function(t){var e=this;if(!this.resolvedFilePaths.has(t)){this.resolvedFilePaths.add(t);var r=[],n=this.getModuleMetadata(t);if(n.metadata){var o=new Set(Object.keys(n.metadata).map(Ln)),i=n.origins||{};Object.keys(n.metadata).forEach(function(s){var a=n.metadata[s],u=Ln(s),c=e.getStaticSymbol(t,u),l=void 0;n.importAs&&(l=e.getStaticSymbol(n.importAs,u),e.recordImportAs(c,l));var p=i.hasOwnProperty(s)&&i[s];if(p){var h=e.resolveModule(p,t);h?e.symbolResourcePaths.set(c,h):e.reportError(new Error("Couldn't resolve original symbol for "+p+" from "+t))}r.push(e.createResolvedSymbol(c,t,o,a))})}if(n.exports)for(var s=function(n){if(n["export"])n["export"].forEach(function(o){var i;i="string"==typeof o?o:o.as,i=Ln(i);var s=i;"string"!=typeof o&&(s=Ln(o.name));var a=e.resolveModule(n.from,t);if(a){var u=e.getStaticSymbol(a,s),c=e.getStaticSymbol(t,i);r.push(e.createExport(c,u))}});else{var o=a.resolveModule(n.from,t);if(o){var i=a.getSymbolsOf(o);i.forEach(function(n){var o=e.getStaticSymbol(t,n.name);r.push(e.createExport(o,n))})}}},a=this,u=0,c=n.exports;u<c.length;u++){var l=c[u];s(l)}r.forEach(function(t){return e.resolvedSymbols.set(t.symbol,t)}),this.symbolFromFile.set(t,r.map(function(t){return t.symbol}))}},t.prototype.createResolvedSymbol=function(t,e,r,n){if(this.summaryResolver.isLibraryFile(t.filePath)&&n&&"class"===n.__symbolic){var o={__symbolic:"class",arity:n.arity};return new uf(t,o)}var i=this,s=function(n){function o(){return null!==n&&n.apply(this,arguments)||this}return Zn(o,n),o.prototype.visitStringMap=function(o,s){var a=o.__symbolic;if("function"===a){var u=s.length;s.push.apply(s,o.parameters||[]);var c=n.prototype.visitStringMap.call(this,o,s);return s.length=u,c}if("reference"!==a)return n.prototype.visitStringMap.call(this,o,s);var l=o.module,p=o.name?Ln(o.name):o.name;if(!p)return null;var h=void 0;return l?(h=i.resolveModule(l,t.filePath),h?i.getStaticSymbol(h,p):{__symbolic:"error",message:"Could not resolve "+l+" relative to "+t.filePath+"."}):s.indexOf(p)>=0?{__symbolic:"reference",name:p}:r.has(p)?i.getStaticSymbol(e,p):void 0},o}(Oo),a=d(n,new s,[]);return a instanceof mo?this.createExport(t,a):new uf(t,a)},t.prototype.createExport=function(t,e){return t.assertNoMembers(),e.assertNoMembers(),this.summaryResolver.isLibraryFile(t.filePath)&&this.importAs.set(e,this.getImportAs(t)||t),new uf(t,e)},t.prototype.reportError=function(t,e,r){if(!this.errorRecorder)throw t;this.errorRecorder(t,e&&e.filePath||r)},t.prototype.getModuleMetadata=function(t){var e=this.metadataCache.get(t);if(!e){var r=this.host.getMetadataFor(t);if(r){var n=-1;r.forEach(function(t){t.version>n&&(n=t.version,e=t)})}if(e||(e={__symbolic:"module",version:cf,module:t,metadata:{}}),e.version!=cf){var o=2==e.version?"Unsupported metadata version "+e.version+" for module "+t+". This module should be compiled with a newer version of ngc":"Metadata version mismatch for module "+t+", found version "+e.version+", expected "+cf;this.reportError(new Error(o))}this.metadataCache.set(t,e)}return e},t.prototype.getSymbolByModule=function(t,e,r){var n=this.resolveModule(t,r);return n?this.getStaticSymbol(n,e):(this.reportError(new Error("Could not resolve module "+t+(r?" relative to $ {\n            containingFile\n          } ":""))),this.getStaticSymbol("ERROR:"+t,e))},t.prototype.resolveModule=function(t,e){try{return this.host.moduleNameToFileName(t,e)}catch(r){console.error("Could not resolve module '"+t+"' relative to file "+e),this.reportError(r,void 0,e)}return null},t}(),pf=function(){function t(t,e){this.host=t,this.staticSymbolCache=e,this.summaryCache=new Map,this.loadedFilePaths=new Set,this.importAs=new Map}return t.prototype.isLibraryFile=function(t){return!this.host.isSourceFile(Ze(t))},t.prototype.getLibraryFileName=function(t){return this.host.getOutputFileName(t)},t.prototype.resolveSummary=function(t){t.assertNoMembers();var e=this.summaryCache.get(t);return e||(this._loadSummaryFile(t.filePath),e=this.summaryCache.get(t)),e},t.prototype.getSymbolsOf=function(t){return this._loadSummaryFile(t),Array.from(this.summaryCache.keys()).filter(function(e){return e.filePath===t})},t.prototype.getImportAs=function(t){return t.assertNoMembers(),this.importAs.get(t)},t.prototype._loadSummaryFile=function(t){var e=this;if(!this.loadedFilePaths.has(t)&&(this.loadedFilePaths.add(t),this.isLibraryFile(t))){var r=tr(t),n=void 0;try{n=this.host.loadSummary(r)}catch(o){throw console.error("Error loading summary file "+r),o}if(n){var i=wn(this.staticSymbolCache,n),s=i.summaries,a=i.importAs;s.forEach(function(t){return e.summaryCache.set(t.symbol,t)}),a.forEach(function(r){e.importAs.set(r.symbol,e.staticSymbolCache.get(Xe(t),r.importAs))})}}},t}(),hf=function(){function t(t,e,r,n){this.parent=t,this.instance=e,this.className=r,this.vars=n}return t.prototype.createChildWihtLocalVars=function(){return new t(this,this.instance,this.className,new Map)},t}(),ff=function(){function t(t){this.value=t}return t}(),df=function(){function t(){}return t.prototype.debugAst=function(t){return Nr(t)},t.prototype.visitDeclareVarStmt=function(t,e){return e.vars.set(t.name,t.value.visitExpression(this,e)),null},t.prototype.visitWriteVarExpr=function(t,e){for(var r=t.value.visitExpression(this,e),n=e;null!=n;){if(n.vars.has(t.name))return n.vars.set(t.name,r),r;n=n.parent}throw new Error("Not declared variable "+t.name)},t.prototype.visitReadVarExpr=function(t,e){var r=t.name;if(null!=t.builtin)switch(t.builtin){case Al.Super:return e.instance.__proto__;case Al.This:return e.instance;case Al.CatchError:r=mf;break;case Al.CatchStack:r=yf;break;default:throw new Error("Unknown builtin variable "+t.builtin)}for(var n=e;null!=n;){if(n.vars.has(r))return n.vars.get(r);n=n.parent}throw new Error("Not declared variable "+r)},t.prototype.visitWriteKeyExpr=function(t,e){var r=t.receiver.visitExpression(this,e),n=t.index.visitExpression(this,e),o=t.value.visitExpression(this,e);return r[n]=o,o},t.prototype.visitWritePropExpr=function(t,e){var r=t.receiver.visitExpression(this,e),n=t.value.visitExpression(this,e);return r[t.name]=n,n},t.prototype.visitInvokeMethodExpr=function(t,e){var r,n=t.receiver.visitExpression(this,e),o=this.visitAllExpressions(t.args,e);if(null!=t.builtin)switch(t.builtin){case Il.ConcatArray:r=n.concat.apply(n,o);break;case Il.SubscribeObservable:r=n.subscribe({next:o[0]});break;case Il.Bind:r=n.bind.apply(n,o);break;default:throw new Error("Unknown builtin method "+t.builtin)}else r=n[t.name].apply(n,o);return r},t.prototype.visitInvokeFunctionExpr=function(t,e){var r=this.visitAllExpressions(t.args,e),n=t.fn;if(n instanceof Ol&&n.builtin===Al.Super)return e.instance.constructor.prototype.constructor.apply(e.instance,r),null;var o=t.fn.visitExpression(this,e);return o.apply(null,r)},t.prototype.visitReturnStmt=function(t,e){return new ff(t.value.visitExpression(this,e))},t.prototype.visitDeclareClassStmt=function(t,e){var r=Bn(t,e,this);return e.vars.set(t.name,r),null},t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e)},t.prototype.visitIfStmt=function(t,e){var r=t.condition.visitExpression(this,e);return r?this.visitAllStatements(t.trueCase,e):null!=t.falseCase?this.visitAllStatements(t.falseCase,e):null},t.prototype.visitTryCatchStmt=function(t,e){try{return this.visitAllStatements(t.bodyStmts,e)}catch(r){var n=e.createChildWihtLocalVars();return n.vars.set(mf,r),n.vars.set(yf,r.stack),this.visitAllStatements(t.catchStmts,n)}},t.prototype.visitThrowStmt=function(t,e){throw t.error.visitExpression(this,e)},t.prototype.visitCommentStmt=function(){return null},t.prototype.visitInstantiateExpr=function(t,e){var r=this.visitAllExpressions(t.args,e),n=t.classExpr.visitExpression(this,e);return new(n.bind.apply(n,[void 0].concat(r)))},t.prototype.visitLiteralExpr=function(t){return t.value},t.prototype.visitExternalExpr=function(t){return t.value.reference},t.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e)?t.trueCase.visitExpression(this,e):null!=t.falseCase?t.falseCase.visitExpression(this,e):null},t.prototype.visitNotExpr=function(t,e){return!t.condition.visitExpression(this,e)},t.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e)},t.prototype.visitFunctionExpr=function(t,e){var r=t.params.map(function(t){return t.name});return Hn(r,t.statements,e,this)},t.prototype.visitDeclareFunctionStmt=function(t,e){var r=t.params.map(function(t){return t.name});return e.vars.set(t.name,Hn(r,t.statements,e,this)),null},t.prototype.visitBinaryOperatorExpr=function(t,e){var r=this,n=function(){return t.lhs.visitExpression(r,e)},o=function(){return t.rhs.visitExpression(r,e)};switch(t.operator){case Tl.Equals:return n()==o();case Tl.Identical:return n()===o();case Tl.NotEquals:return n()!=o();case Tl.NotIdentical:return n()!==o();case Tl.And:return n()&&o();case Tl.Or:return n()||o();case Tl.Plus:return n()+o();case Tl.Minus:return n()-o();case Tl.Divide:return n()/o();case Tl.Multiply:return n()*o();case Tl.Modulo:return n()%o();case Tl.Lower:return n()<o();case Tl.LowerEquals:return n()<=o();case Tl.Bigger:return n()>o();case Tl.BiggerEquals:return n()>=o();default:throw new Error("Unknown operator "+t.operator)}},t.prototype.visitReadPropExpr=function(t,e){var r,n=t.receiver.visitExpression(this,e);return r=n[t.name]},t.prototype.visitReadKeyExpr=function(t,e){var r=t.receiver.visitExpression(this,e),n=t.index.visitExpression(this,e);return r[n]},t.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e)},t.prototype.visitLiteralMapExpr=function(t,e){var r=this,n={};return t.entries.forEach(function(t){return n[t.key]=t.value.visitExpression(r,e)}),n},t.prototype.visitCommaExpr=function(t,e){var r=this.visitAllExpressions(t.parts,e);return r[r.length-1]},t.prototype.visitAllExpressions=function(t,e){var r=this;return t.map(function(t){return t.visitExpression(r,e)})},t.prototype.visitAllStatements=function(t,e){for(var r=0;r<t.length;r++){var n=t[r],o=n.visitStatement(this,e);if(o instanceof ff)return o}return null},t}(),mf="error",yf="stack",vf=function(t){function e(){return t.call(this,!1)||this}return Zn(e,t),e.prototype.visitDeclareClassStmt=function(t,e){var r=this;return e.pushClass(t),this._visitClassConstructor(t,e),null!=t.parent&&(e.print(t,t.name+".prototype = Object.create("),t.parent.visitExpression(this,e),e.println(t,".prototype);")),t.getters.forEach(function(n){return r._visitClassGetter(t,n,e)}),t.methods.forEach(function(n){return r._visitClassMethod(t,n,e)}),e.popClass(),null},e.prototype._visitClassConstructor=function(t,e){e.print(t,"function "+t.name+"("),
-null!=t.constructorMethod&&this._visitParams(t.constructorMethod.params,e),e.println(t,") {"),e.incIndent(),null!=t.constructorMethod&&t.constructorMethod.body.length>0&&(e.println(t,"var self = this;"),this.visitAllStatements(t.constructorMethod.body,e)),e.decIndent(),e.println(t,"}")},e.prototype._visitClassGetter=function(t,e,r){r.println(t,"Object.defineProperty("+t.name+".prototype, '"+e.name+"', { get: function() {"),r.incIndent(),e.body.length>0&&(r.println(t,"var self = this;"),this.visitAllStatements(e.body,r)),r.decIndent(),r.println(t,"}});")},e.prototype._visitClassMethod=function(t,e,r){r.print(t,t.name+".prototype."+e.name+" = function("),this._visitParams(e.params,r),r.println(t,") {"),r.incIndent(),e.body.length>0&&(r.println(t,"var self = this;"),this.visitAllStatements(e.body,r)),r.decIndent(),r.println(t,"};")},e.prototype.visitReadVarExpr=function(e,r){if(e.builtin===Al.This)r.print(e,"self");else{if(e.builtin===Al.Super)throw new Error("'super' needs to be handled at a parent ast node, not at the variable level!");t.prototype.visitReadVarExpr.call(this,e,r)}return null},e.prototype.visitDeclareVarStmt=function(t,e){return e.print(t,"var "+t.name+" = "),t.value.visitExpression(this,e),e.println(t,";"),null},e.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),null},e.prototype.visitInvokeFunctionExpr=function(e,r){var n=e.fn;return n instanceof Ol&&n.builtin===Al.Super?(r.currentClass.parent.visitExpression(this,r),r.print(e,".call(this"),e.args.length>0&&(r.print(e,", "),this.visitAllExpressions(e.args,r,",")),r.print(e,")")):t.prototype.visitInvokeFunctionExpr.call(this,e,r),null},e.prototype.visitFunctionExpr=function(t,e){return e.print(t,"function("),this._visitParams(t.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print(t,"}"),null},e.prototype.visitDeclareFunctionStmt=function(t,e){return e.print(t,"function "+t.name+"("),this._visitParams(t.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitTryCatchStmt=function(t,e){e.println(t,"try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println(t,"} catch ("+Np.name+") {"),e.incIndent();var r=[Dp.set(Np.prop("stack")).toDeclStmt(null,[ep.Final])].concat(t.catchStmts);return this.visitAllStatements(r,e),e.decIndent(),e.println(t,"}"),null},e.prototype._visitParams=function(t,e){this.visitAllObjects(function(t){return e.print(null,t.name)},t,e,",")},e.prototype.getBuiltinMethodName=function(t){var e;switch(t){case Il.ConcatArray:e="concat";break;case Il.SubscribeObservable:e="subscribe";break;case Il.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},e}(Vp),gf=function(t){function e(){var e=t.apply(this,arguments)||this;return e._evalArgNames=[],e._evalArgValues=[],e}return Zn(e,t),e.prototype.getArgs=function(){for(var t={},e=0;e<this._evalArgNames.length;e++)t[this._evalArgNames[e]]=this._evalArgValues[e];return t},e.prototype.visitExternalExpr=function(t,e){var r=t.value.reference,n=this._evalArgValues.indexOf(r);if(-1===n){n=this._evalArgValues.length,this._evalArgValues.push(r);var o=E(t.value)||"val";this._evalArgNames.push("jit_"+o+n)}return e.print(t,this._evalArgNames[n]),null},e}(vf),_f=function(){function t(t,e,r,n,o,i,s,a){this._injector=t,this._metadataResolver=e,this._templateParser=r,this._styleCompiler=n,this._viewCompiler=o,this._ngModuleCompiler=i,this._compilerConfig=s,this._console=a,this._compiledTemplateCache=new Map,this._compiledHostTemplateCache=new Map,this._compiledDirectiveWrapperCache=new Map,this._compiledNgModuleCache=new Map,this._sharedStylesheetCount=0}return Object.defineProperty(t.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),t.prototype.compileModuleSync=function(t){return this._compileModuleAndComponents(t,!0).syncResult},t.prototype.compileModuleAsync=function(t){return this._compileModuleAndComponents(t,!1).asyncResult},t.prototype.compileModuleAndAllComponentsSync=function(t){return this._compileModuleAndAllComponents(t,!0).syncResult},t.prototype.compileModuleAndAllComponentsAsync=function(t){return this._compileModuleAndAllComponents(t,!1).asyncResult},t.prototype.getNgContentSelectors=function(t){this._console.warn("Compiler.getNgContentSelectors is deprecated. Use ComponentFactory.ngContentSelectors instead!");var r=this._compiledTemplateCache.get(t);if(!r)throw new Error("The component "+e.ɵstringify(t)+" is not yet compiled!");return r.compMeta.template.ngContentSelectors},t.prototype._compileModuleAndComponents=function(t,e){var r=this,n=this._loadModules(t,e),o=function(){return r._compileComponents(t,null),r._compileModule(t)};return e?new Mo(o()):new Mo(null,n.then(o))},t.prototype._compileModuleAndAllComponents=function(t,r){var n=this,o=this._loadModules(t,r),i=function(){var r=[];return n._compileComponents(t,r),new e.ModuleWithComponentFactories(n._compileModule(t),r)};return r?new Mo(i()):new Mo(null,o.then(i))},t.prototype._loadModules=function(t,e){var r=this,n=[],o=this._metadataResolver.getNgModuleMetadata(t);return o.transitiveModule.modules.forEach(function(t){n.push(r._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.reference,e))}),Promise.all(n)},t.prototype._compileModule=function(t){var r=this,n=this._compiledNgModuleCache.get(t);if(!n){var o=this._metadataResolver.getNgModuleMetadata(t),i=[this._metadataResolver.getProviderMetadata(new Jo(e.Compiler,{useFactory:function(){return new wf(r,o.type.reference)}}))],s=this._ngModuleCompiler.compile(o,i);n=this._compilerConfig.useJit?zn(V(o),s.statements,[s.ngModuleFactoryVar])[0]:Fn(s.statements,[s.ngModuleFactoryVar])[0],this._compiledNgModuleCache.set(o.type.reference,n)}return n},t.prototype._compileComponents=function(t,e){var r=this,n=this._metadataResolver.getNgModuleMetadata(t),o=new Map,i=new Set;n.transitiveModule.modules.forEach(function(t){var n=r._metadataResolver.getNgModuleMetadata(t.reference);n.declaredDirectives.forEach(function(t){o.set(t.reference,n);var s=r._metadataResolver.getDirectiveMetadata(t.reference);if(s.isComponent&&(i.add(r._createCompiledTemplate(s,n)),e)){var a=r._createCompiledHostTemplate(s.type.reference,n);i.add(a),e.push(s.componentFactory)}})}),n.transitiveModule.modules.forEach(function(t){var e=r._metadataResolver.getNgModuleMetadata(t.reference);e.declaredDirectives.forEach(function(t){var e=r._metadataResolver.getDirectiveMetadata(t.reference);e.isComponent&&e.entryComponents.forEach(function(t){var e=o.get(t.componentType);i.add(r._createCompiledHostTemplate(t.componentType,e))})}),e.entryComponents.forEach(function(t){var e=o.get(t.componentType);i.add(r._createCompiledHostTemplate(t.componentType,e))})}),i.forEach(function(t){return r._compileTemplate(t)})},t.prototype.clearCacheFor=function(t){this._compiledNgModuleCache["delete"](t),this._metadataResolver.clearCacheFor(t),this._compiledHostTemplateCache["delete"](t);var e=this._compiledTemplateCache.get(t);e&&this._compiledTemplateCache["delete"](t)},t.prototype.clearCache=function(){this._metadataResolver.clearCache(),this._compiledTemplateCache.clear(),this._compiledHostTemplateCache.clear(),this._compiledNgModuleCache.clear()},t.prototype._createCompiledHostTemplate=function(t,r){if(!r)throw new Error("Component "+e.ɵstringify(t)+" is not part of any NgModule or the module has not been imported into your module.");var n=this._compiledHostTemplateCache.get(t);if(!n){var o=this._metadataResolver.getDirectiveMetadata(t);Gn(o);var i=o.componentFactory,s=this._metadataResolver.getHostComponentType(t),a=k(s,o,e.ɵgetComponentViewDefinitionFactory(i));n=new bf(!0,o.type,a,r,[o.type]),this._compiledHostTemplateCache.set(t,n)}return n},t.prototype._createCompiledTemplate=function(t,e){var r=this._compiledTemplateCache.get(t.type.reference);return r||(Gn(t),r=new bf(!1,t.type,t,e,e.transitiveModule.directives),this._compiledTemplateCache.set(t.type.reference,r)),r},t.prototype._compileTemplate=function(t){var e=this;if(!t.isCompiled){var r=t.compMeta,n=new Map,o=this._styleCompiler.compileComponent(r);o.externalStylesheets.forEach(function(t){n.set(t.meta.moduleUrl,t)}),this._resolveStylesCompileResult(o.componentStylesheet,n);var i,s,a=t.directives.map(function(t){return e._metadataResolver.getDirectiveSummary(t.reference)}),u=t.ngModule.transitiveModule.pipes.map(function(t){return e._metadataResolver.getPipeSummary(t.reference)}),c=this._templateParser.parse(r,r.template.template,a,u,t.ngModule.schemas,j(t.ngModule.type,t.compMeta,t.compMeta.template)),l=c.template,p=c.pipes,h=this._viewCompiler.compileComponent(r,l,yr(o.componentStylesheet.stylesVar),p),f=o.componentStylesheet.statements.concat(h.statements),d=r.isHost?[h.viewClassVar]:[h.viewClassVar,h.rendererTypeVar];this._compilerConfig.useJit?(y=zn(F(t.ngModule.type,t.compMeta),f,d),i=y[0],s=y[1]):(m=Fn(f,d),i=m[0],s=m[1]),t.compiled(i,s);var m,y}},t.prototype._resolveStylesCompileResult=function(t,e){var r=this;t.dependencies.forEach(function(t){var n=e.get(t.moduleUrl),o=r._resolveAndEvalStylesCompileResult(n,e);t.valuePlaceholder.reference=o})},t.prototype._resolveAndEvalStylesCompileResult=function(t,e){return this._resolveStylesCompileResult(t,e),this._compilerConfig.useJit?zn(L(t.meta,this._sharedStylesheetCount++),t.statements,[t.stylesVar])[0]:Fn(t.statements,[t.stylesVar])[0]},t}();_f.decorators=[{type:z}],_f.ctorParameters=function(){return[{type:e.Injector},{type:dl},{type:Wc},{type:Oh},{type:Hh},{type:Ep},{type:ti},{type:e.ɵConsole}]};var bf=function(){function t(t,e,r,n,o){this.isHost=t,this.compType=e,this.compMeta=r,this.ngModule=n,this.directives=o,this._viewClass=null,this.isCompiled=!1}return t.prototype.compiled=function(t,e){this._viewClass=t,this.compMeta.componentViewType.setDelegate(t);for(var r in e)this.compMeta.rendererType[r]=e[r];this.isCompiled=!0},t}(),wf=function(){function t(t,e){this._delegate=t,this._ngModule=e}return Object.defineProperty(t.prototype,"_injector",{get:function(){return this._delegate.injector},enumerable:!0,configurable:!0}),t.prototype.compileModuleSync=function(t){return this._delegate.compileModuleSync(t)},t.prototype.compileModuleAsync=function(t){return this._delegate.compileModuleAsync(t)},t.prototype.compileModuleAndAllComponentsSync=function(t){return this._delegate.compileModuleAndAllComponentsSync(t)},t.prototype.compileModuleAndAllComponentsAsync=function(t){return this._delegate.compileModuleAndAllComponentsAsync(t)},t.prototype.getNgContentSelectors=function(t){return this._delegate.getNgContentSelectors(t)},t.prototype.clearCache=function(){this._delegate.clearCache()},t.prototype.clearCacheFor=function(t){this._delegate.clearCacheFor(t)},t}(),Cf=function(){function t(t,e,r,n){void 0===n&&(n=null),this._htmlParser=t,this._implicitTags=e,this._implicitAttrs=r,this._locale=n,this._messages=[]}return t.prototype.updateFromTemplate=function(t,e,r){var n=this._htmlParser.parse(t,e,!0,r);if(n.errors.length)return n.errors;var o=Pt(n.rootNodes,r,this._implicitTags,this._implicitAttrs);return o.errors.length?o.errors:((i=this._messages).push.apply(i,o.messages),null);var i},t.prototype.getMessages=function(){return this._messages},t.prototype.write=function(t,e){var r={},n=new Ef;this._messages.forEach(function(e){var n=t.digest(e);r.hasOwnProperty(n)?(o=r[n].sources).push.apply(o,e.sources):r[n]=e;var o});var o=Object.keys(r).map(function(o){var i=t.createNameMapper(r[o]),s=r[o],a=i?n.convert(s.nodes,i):s.nodes,u=new pa(a,{},{},s.meaning,s.description,o);return u.sources=s.sources,e&&u.sources.forEach(function(t){return t.filePath=e(t.filePath)}),u});return t.write(o,this._locale)},t}(),Ef=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.convert=function(t,e){var r=this;return e?t.map(function(t){return t.visit(r,e)}):t},e.prototype.visitTagPlaceholder=function(t,e){var r=this,n=e.toPublicName(t.startName),o=t.closeName?e.toPublicName(t.closeName):t.closeName,i=t.children.map(function(t){return t.visit(r,e)});return new ma(t.tag,t.attrs,n,o,i,t.isVoid,t.sourceSpan)},e.prototype.visitPlaceholder=function(t,e){return new ya(t.value,e.toPublicName(t.name),t.sourceSpan)},e.prototype.visitIcuPlaceholder=function(t,e){return new va(t.value,e.toPublicName(t.name),t.sourceSpan)},e}(ga),Sf=function(){function t(t,e,r,n){this.host=t,this.staticSymbolResolver=e,this.messageBundle=r,this.metadataResolver=n}return t.prototype.extract=function(t){var e=this,r=An(this.staticSymbolResolver,t,this.host),n=Tn(r,this.host,this.metadataResolver),o=n.files,i=n.ngModules;return Promise.all(i.map(function(t){return e.metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.type.reference,!1)})).then(function(){var t=[];if(o.forEach(function(r){var n=[];r.directives.forEach(function(t){var r=e.metadataResolver.getDirectiveMetadata(t);r&&r.isComponent&&n.push(r)}),n.forEach(function(n){var o=n.template.template,i=Ms.fromArray(n.template.interpolation);t.push.apply(t,e.messageBundle.updateFromTemplate(o,r.srcUrl,i))})}),t.length)throw new Error(t.map(function(t){return t.toString()}).join("\n"));return e.messageBundle})},t.create=function(r,n){var o=new Hu(new Fu),i=Be(),s=new yo,a=new pf(r,s),u=new lf(r,s,a),c=new of(a,u);tf.install(c);var l=new ti({defaultEncapsulation:e.ViewEncapsulation.Emulated,useJit:!1}),p=new ol({get:function(t){return r.loadResource(t)}},i,o,l),h=new Qp,f=new dl(l,new ll(c),new al(c),new pl(c),a,h,p,new e.ɵConsole,s,c),d=new Cf(o,[],{},n),m=new t(r,u,d,f);return{extractor:m,staticReflector:c}},t}(),xf={get:function(t){throw new Error("No ResourceLoader implementation has been provided. Can't read the url \""+t+'"')}},Tf=new e.InjectionToken("HtmlParser"),Pf=[{provide:e.ɵReflector,useValue:e.ɵreflector},{provide:e.ɵReflectorReader,useExisting:e.ɵReflector},{provide:Jc,useValue:xf},hl,e.ɵConsole,Ns,Us,{provide:Tf,useClass:Fu},{provide:Hu,useFactory:Wn,deps:[Tf,[new e.Optional,new e.Inject(e.TRANSLATIONS)],[new e.Optional,new e.Inject(e.TRANSLATIONS_FORMAT)],[ti],[e.ɵConsole]]},{provide:Fu,useExisting:Hu},Wc,ol,dl,tl,Oh,Hh,Ep,{provide:ti,useValue:new ti},_f,{provide:e.Compiler,useExisting:_f},Qp,{provide:Ju,useExisting:Qp},el,al,pl,ll],Af=function(){function t(t){var r={useDebug:e.isDevMode(),useJit:!0,defaultEncapsulation:e.ViewEncapsulation.Emulated,missingTranslation:e.MissingTranslationStrategy.Warning,enableLegacyTemplate:!0};this._defaultOptions=[r].concat(t)}return t.prototype.createCompiler=function(t){void 0===t&&(t=[]);var r=Kn(this._defaultOptions.concat(t)),n=e.ReflectiveInjector.resolveAndCreate([Pf,{provide:ti,useFactory:function(){return new ti({useJit:r.useJit,defaultEncapsulation:r.defaultEncapsulation,missingTranslation:r.missingTranslation,enableLegacyTemplate:r.enableLegacyTemplate})},deps:[]},r.providers]);return n.get(e.Compiler)},t}();Af.decorators=[{type:z}],Af.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Inject,args:[e.COMPILER_OPTIONS]}]}]};var Of=e.createPlatformFactory(e.platformCore,"coreDynamic",[{provide:e.COMPILER_OPTIONS,useValue:{},multi:!0},{provide:e.CompilerFactory,useClass:Af},{provide:e.PLATFORM_INITIALIZER,useValue:$n,multi:!0}]),Mf=function(){function t(){}return t.prototype.fileNameToModuleName=function(){},t.prototype.getImportAs=function(){},t.prototype.getTypeArity=function(){},t}();t.VERSION=Yn,t.TEMPLATE_TRANSFORMS=qc,t.CompilerConfig=ti,t.JitCompiler=_f,t.DirectiveResolver=al,t.PipeResolver=pl,t.NgModuleResolver=ll,t.DEFAULT_INTERPOLATION_CONFIG=Rs,t.InterpolationConfig=Ms,t.NgModuleCompiler=Ep,t.ViewCompiler=Hh,t.isSyntaxError=g,t.syntaxError=v,t.TextAst=Jn,t.BoundTextAst=to,t.AttrAst=eo,t.BoundElementPropertyAst=ro,t.BoundEventAst=no,t.ReferenceAst=oo,t.VariableAst=io,t.ElementAst=so,t.EmbeddedTemplateAst=ao,t.BoundDirectivePropertyAst=uo,t.DirectiveAst=co,t.ProviderAst=lo,t.ProviderAstType=po,t.NgContentAst=ho,t.PropertyBindingType=fo,t.templateVisitAll=r,t.CompileAnimationEntryMetadata=No,t.CompileAnimationStateMetadata=Do,t.CompileAnimationStateDeclarationMetadata=jo,t.CompileAnimationStateTransitionMetadata=Lo,t.CompileAnimationMetadata=Vo,t.CompileAnimationKeyframesSequenceMetadata=Fo,t.CompileAnimationStyleMetadata=Uo,t.CompileAnimationAnimateMetadata=Bo,t.CompileAnimationWithStepsMetadata=Ho,t.CompileAnimationSequenceMetadata=qo,t.CompileAnimationGroupMetadata=zo,t.identifierName=E,t.identifierModuleUrl=S,t.viewClassName=x,t.rendererTypeName=T,t.hostViewClassName=P,t.dirWrapperClassName=A,t.componentFactoryName=O,t.CompileSummaryKind=Wo,t.tokenName=M,t.tokenReference=R,t.CompileStylesheetMetadata=$o,t.CompileTemplateMetadata=Ko,t.CompileDirectiveMetadata=Qo,t.createHostComponentMeta=k,t.CompilePipeMetadata=Xo,t.CompileNgModuleMetadata=Zo,t.TransitiveCompileNgModuleMetadata=Yo,t.ProviderMeta=Jo,t.flatten=N,t.sourceUrl=D,t.templateSourceUrl=j,t.sharedStylesheetJitUrl=L,t.ngModuleJitUrl=V,t.templateJitUrl=F,t.createAotCompiler=Vn,t.AotCompiler=Jh,t.analyzeNgModules=xn,t.analyzeAndValidateNgModules=Tn,t.extractProgramSymbols=An,t.GeneratedFile=Xh,t.StaticReflector=of,t.StaticAndDynamicReflectionCapabilities=tf,t.StaticSymbol=mo,t.StaticSymbolCache=yo,t.ResolvedStaticSymbol=uf,t.StaticSymbolResolver=lf,t.unescapeIdentifier=Ln,t.AotSummaryResolver=pf,t.SummaryResolver=hl,t.i18nHtmlParserFactory=Wn,t.COMPILER_PROVIDERS=Pf,t.JitCompilerFactory=Af,t.platformCoreDynamic=Of,t.createUrlResolverWithoutPackagePrefix=Ue,t.createOfflineCompileUrlResolver=Be,t.DEFAULT_PACKAGE_URL_PROVIDER=tl,t.UrlResolver=el,t.getUrlScheme=He,t.ResourceLoader=Jc,t.ElementSchemaRegistry=Ju,t.Extractor=Sf,t.I18NHtmlParser=Hu,t.MessageBundle=Cf,t.Serializer=Ba,t.Xliff=au,t.Xliff2=bu,t.Xmb=Mu,t.Xtb=ju,t.DirectiveNormalizer=ol,t.ParserError=ei,t.ParseSpan=ri,t.AST=ni,t.Quote=oi,t.EmptyExpr=ii,t.ImplicitReceiver=si,t.Chain=ai,t.Conditional=ui,t.PropertyRead=ci,t.PropertyWrite=li,t.SafePropertyRead=pi,t.KeyedRead=hi,t.KeyedWrite=fi,t.BindingPipe=di,t.LiteralPrimitive=mi,t.LiteralArray=yi,t.LiteralMap=vi,t.Interpolation=gi,t.Binary=_i,t.PrefixNot=bi,t.MethodCall=wi,t.SafeMethodCall=Ci,t.FunctionCall=Ei,t.ASTWithSource=Si,t.TemplateBinding=xi,t.RecursiveAstVisitor=Ti,t.AstTransformer=Pi,t.TokenType=ks,t.Lexer=Ns,t.Token=Ds,t.EOF=js,t.isIdentifier=et,t.isQuote=it,t.SplitInterpolation=Vs,t.TemplateBindingParseResult=Fs,t.Parser=Us,t._ParseAST=Bs,t.ERROR_COLLECTOR_TOKEN=fl,t.CompileMetadataResolver=dl,t.componentModuleUrl=cr,t.Text=Ks,t.Expansion=Qs,t.ExpansionCase=Xs,t.Attribute=Zs,t.Element=Ys,t.Comment=Js,t.visitAll=lt,t.ParseTreeResult=ua,t.TreeError=aa,t.HtmlParser=Fu,t.HtmlTagDefinition=_o,t.getHtmlTagDefinition=c,t.TagContentType=vo,t.splitNsName=n,t.isNgContainer=o,t.isNgContent=i,t.isNgTemplate=s,t.getNsPrefix=a,t.mergeNsAndName=u,t.NAMED_ENTITIES=go,t.ImportResolver=Mf,t.debugOutputAstAsTypeScript=Nr,t.TypeScriptEmitter=Up,t.ParseLocation=qs,t.ParseSourceFile=zs,t.ParseSourceSpan=Gs,t.ParseErrorLevel=Ws,t.ParseError=$s,t.typeSourceSpan=ct,t.DomElementSchemaRegistry=Qp,t.CssSelector=Eo,t.SelectorMatcher=So,t.SelectorListContext=xo,t.SelectorContext=To,t.StylesCompileDependency=Th,t.StylesCompileResult=Ph,t.CompiledStylesheet=Ah,t.StyleCompiler=Oh,t.TemplateParseError=zc,t.TemplateParseResult=Gc,t.TemplateParser=Wc,t.splitClasses=Ne,t.createElementCssSelector=De,t.removeSummaryDuplicates=Le,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8}],8:[function(e,r,n){(function(o){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("rxjs/Observable"),e("rxjs/observable/merge"),e("rxjs/operator/share"),e("rxjs/Subject")):"function"==typeof t&&t.amd?t(["exports","rxjs/Observable","rxjs/observable/merge","rxjs/operator/share","rxjs/Subject"],i):i((o.ng=o.ng||{},o.ng.core=o.ng.core||{}),o.Rx,o.Rx.Observable,o.Rx.Observable.prototype,o.Rx)}(this,function(t,e,r,n,i){"use strict";function s(){if(!oo){var t=no.Symbol;if(t&&t.iterator)oo=t.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),r=0;r<e.length;++r){var n=e[r];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(oo=n)}}return oo}function a(t){Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function u(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function c(t){if("string"==typeof t)return t;if(null==t)return""+t;if(t.overriddenName)return""+t.overriddenName;if(t.name)return""+t.name;var e=t.toString();if(null==e)return""+e;var r=e.indexOf("\n");return-1===r?e:e.substring(0,r)}function l(t){return"function"==typeof t&&t.hasOwnProperty("annotation")&&(t=t.annotation),t}function p(t,e){if(t===Object||t===String||t===Function||t===Number||t===Array)throw new Error("Can not use native "+c(t)+" as constructor");if("function"==typeof t)return t;if(Array.isArray(t)){var r=t,n=r.length-1,o=t[n];if("function"!=typeof o)throw new Error("Last position of Class method array must be Function in key "+e+" was '"+c(o)+"'");if(n!=o.length)throw new Error("Number of annotations ("+n+") does not match number of arguments ("+o.length+") in the function: "+c(o));for(var i=[],s=0,a=r.length-1;a>s;s++){var u=[];i.push(u);var p=r[s];if(Array.isArray(p))for(var h=0;h<p.length;h++)u.push(l(p[h]));else u.push("function"==typeof p?l(p):p)}return so.defineMetadata("parameters",i,o),o}throw new Error("Only Function or Array is supported in Class definition for key '"+e+"' is '"+c(t)+"'")}function h(t){var e=p(t.hasOwnProperty("constructor")?t.constructor:void 0,"constructor"),r=e.prototype;if(t.hasOwnProperty("extends")){if("function"!=typeof t["extends"])throw new Error("Class definition 'extends' property must be a constructor function was: "+c(t["extends"]));e.prototype=r=Object.create(t["extends"].prototype)}for(var n in t)"extends"!==n&&"prototype"!==n&&t.hasOwnProperty(n)&&(r[n]=p(t[n],n));this&&this.annotations instanceof Array&&so.defineMetadata("annotations",this.annotations,e);var o=e.name;return o&&"constructor"!==o||(e.overriddenName="class"+io++),e}function f(t,e,r,n){function o(t){if(!so||!so.getOwnMetadata)throw"reflect-metadata shim is required when using class decorators";if(this instanceof o)return i.call(this,t),this;var e=new o(t),r="function"==typeof this&&Array.isArray(this.annotations)?this.annotations:[];r.push(e);var s=function(t){var r=so.getOwnMetadata("annotations",t)||[];return r.push(e),so.defineMetadata("annotations",r,t),t};return s.annotations=r,s.Class=h,n&&n(s),s}var i=d([e]);return r&&(o.prototype=Object.create(r.prototype)),o.prototype.toString=function(){return"@"+t},o.annotationCls=o,o}function d(t){return function(){for(var e=this,r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];t.forEach(function(t,n){var o=r[n];if(Array.isArray(t))e[t[0]]=void 0===o?t[1]:o;else for(var i in t)e[i]=o&&o.hasOwnProperty(i)?o[i]:t[i]})}}function m(t,e,r){function n(){function t(t,e,r){for(var n=so.getOwnMetadata("parameters",t)||[];n.length<=r;)n.push(null);return n[r]=n[r]||[],n[r].push(i),so.defineMetadata("parameters",n,t),t}for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];if(this instanceof n)return o.apply(this,e),this;var i=new(n.bind.apply(n,[void 0].concat(e)));return t.annotation=i,t}var o=d(e);return r&&(n.prototype=Object.create(r.prototype)),n.prototype.toString=function(){return"@"+t},n.annotationCls=n,n}function y(t,e,r){function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(this instanceof n)return o.apply(this,t),this;var r=new(n.bind.apply(n,[void 0].concat(t)));return function(t,e){var n=so.getOwnMetadata("propMetadata",t.constructor)||{};n[e]=n.hasOwnProperty(e)&&n[e]||[],n[e].unshift(r),so.defineMetadata("propMetadata",n,t.constructor)}}var o=d(e);return r&&(n.prototype=Object.create(r.prototype)),n.prototype.toString=function(){return"@"+t},n.annotationCls=n,n}function v(t){return null==t||t===mo.Default}function g(t){return t.__forward_ref__=g,t.toString=function(){return c(this())},t}function _(t){return"function"==typeof t&&t.hasOwnProperty("__forward_ref__")&&t.__forward_ref__===g?t():t}function b(t){return t[Ho]}function w(t){return t[qo]}function C(t){return t[zo]||E}function E(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];t.error.apply(t,e)}function S(t,e){var r=t+" caused by: "+(e instanceof Error?e.message:e),n=Error(r);return n[qo]=e,n}function x(t){for(var e=[],r=0;r<t.length;++r){if(e.indexOf(t[r])>-1)return e.push(t[r]),e;e.push(t[r])}return e}function T(t){if(t.length>1){var e=x(t.slice().reverse()),r=e.map(function(t){return c(t.token)});return" ("+r.join(" -> ")+")"}return""}function P(t,e,r,n){var o=n?S("",n):Error();return o.addKey=A,o.keys=[e],o.injectors=[t],o.constructResolvingMessage=r,o.message=o.constructResolvingMessage(),o[qo]=n,o}function A(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage()}function O(t,e){return P(t,e,function(){var t=c(this.keys[0].token);return"No provider for "+t+"!"+T(this.keys)})}function M(t,e){return P(t,e,function(){return"Cannot instantiate cyclic dependency!"+T(this.keys)})}function R(t,e,r,n){return P(t,n,function(){var t=c(this.keys[0].token);return w(this).message+": Error during instantiation of "+t+"!"+T(this.keys)+"."},e)}function k(t){return Error("Invalid provider - only instances of Provider and Type are allowed, got: "+t)}function I(t,e){for(var r=[],n=0,o=e.length;o>n;n++){var i=e[n];r.push(i&&0!=i.length?i.map(c).join(" "):"?")}return Error("Cannot resolve all parameters for '"+c(t)+"'("+r.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+c(t)+"' is decorated with Injectable.")}function N(t){return Error("Index "+t+" is out-of-bounds.")}function D(t,e){return Error("Cannot mix multi providers and regular providers, got: "+t+" "+e)}function j(t){return"function"==typeof t}function L(t){return t?t.map(function(t){var e=t.type,r=e.annotationCls,n=t.args?t.args:[];return new(r.bind.apply(r,[void 0].concat(n)))}):[]}function V(t){var e=Object.getPrototypeOf(t.prototype),r=e?e.constructor:null;return r||Object}function F(t){var e,r;if(t.useClass){var n=_(t.useClass);e=ti.factory(n),r=G(n)}else t.useExisting?(e=function(t){return t},r=[ei.fromKey(Wo.get(t.useExisting))]):t.useFactory?(e=t.useFactory,r=z(t.useFactory,t.deps)):(e=function(){return t.useValue},r=ri);return new oi(e,r)}function U(t){return new ni(Wo.get(t.provide),[F(t)],t.multi||!1)}function B(t){var e=q(t,[]),r=e.map(U),n=H(r,new Map);return Array.from(n.values())}function H(t,e){for(var r=0;r<t.length;r++){var n=t[r],o=e.get(n.key.id);if(o){if(n.multiProvider!==o.multiProvider)throw D(o,n);if(n.multiProvider)for(var i=0;i<n.resolvedFactories.length;i++)o.resolvedFactories.push(n.resolvedFactories[i]);else e.set(n.key.id,n)}else{var s=void 0;s=n.multiProvider?new ni(n.key,n.resolvedFactories.slice(),n.multiProvider):n,e.set(n.key.id,s)}}return e}function q(t,e){return t.forEach(function(t){if(t instanceof Qo)e.push({provide:t,useClass:t});else if(t&&"object"==typeof t&&void 0!==t.provide)e.push(t);else{if(!(t instanceof Array))throw k(t);q(t,e)}}),e}function z(t,e){if(e){var r=e.map(function(t){return[t]});return e.map(function(e){return W(t,e,r)})}return G(t)}function G(t){var e=ti.parameters(t);if(!e)return[];if(e.some(function(t){return null==t}))throw I(t,e);return e.map(function(r){return W(t,r,e)})}function W(t,e,r){var n=null,o=!1;if(!Array.isArray(e))return e instanceof Ro?$(e.token,o,null):$(e,o,null);for(var i=null,s=0;s<e.length;++s){var a=e[s];a instanceof Qo?n=a:a instanceof Ro?n=a.token:a instanceof ko?o=!0:a instanceof No||a instanceof Do?i=a:a instanceof Jn&&(n=a)}if(n=_(n),null!=n)return $(n,o,i);throw I(t,r)}function $(t,e,r){return new ei(Wo.get(t),e,r)}function K(t,e){for(var r=new Array(t._providers.length),n=0;n<t._providers.length;++n)r[n]=e(t.getProviderAtIndex(n));return r}function Q(t){return!!t&&"function"==typeof t.then}function X(t){return!!t&&"function"==typeof t.subscribe}function Z(){return""+Y()+Y()+Y()}function Y(){return String.fromCharCode(97+Math.floor(25*Math.random()))}function J(){throw new Error("Runtime compiler is not loaded")}function tt(t){var e=Error("No component factory found for "+c(t)+". Did you add it to @NgModule.entryComponents?");return e[Si]=t,e}function et(){var t=no.wtf;return t&&(Pi=t.trace)?(Ai=Pi.events,!0):!1}function rt(t,e){return void 0===e&&(e=null),Ai.createScope(t,e)}function nt(t,e){return Pi.leaveScope(t,e),e}function ot(t,e){return Pi.beginTimeRange(t,e)}function it(t){Pi.endTimeRange(t)}function st(){return null}function at(t){Wi=t}function ut(){if(Ki)throw new Error("Cannot enable prod mode after platform setup.");$i=!1}function ct(){return Ki=!0,$i}function lt(t){if(zi&&!zi.destroyed&&!zi.injector.get(Qi,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");zi=t.get(Zi);var e=t.get(fi,null);return e&&e.forEach(function(t){return t()}),zi}function pt(t,e,r){void 0===r&&(r=[]);var n=new Jn("Platform: "+e);return function(e){void 0===e&&(e=[]);var o=dt();return(!o||o.injector.get(Qi,!1))&&(t?t(r.concat(e).concat({provide:n,useValue:!0})):lt(si.resolveAndCreate(r.concat(e).concat({provide:n,useValue:!0})))),ht(n)}}function ht(t){var e=dt();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function ft(){zi&&!zi.destroyed&&zi.destroy()}function dt(){return zi&&!zi.destroyed?zi:null}function mt(t,e){try{var r=e();return Q(r)?r["catch"](function(e){throw t.handleError(e),e}):r}catch(n){throw t.handleError(n),n}}function yt(t,e){var r=t.indexOf(e);r>-1&&t.splice(r,1)}function vt(t,e){var r=ls.get(t);if(r)throw new Error("Duplicate module registered for "+t+" - "+r.moduleType.name+" vs "+e.moduleType.name);ls.set(t,e)}function gt(t){var e=ls.get(t);if(!e)throw new Error("No module with ID "+t+" loaded");return e}function _t(t){return t.reduce(function(t,e){var r=Array.isArray(e)?_t(e):e;return t.concat(r)},[])}function bt(t,e,r){if(!t)throw new Error("Cannot find '"+r+"' in '"+e+"'");return t}function wt(t){return t.map(function(t){return t.nativeElement})}function Ct(t,e,r){t.childNodes.forEach(function(t){t instanceof Ss&&(e(t)&&r.push(t),Ct(t,e,r))})}function Et(t,e,r){t instanceof Ss&&t.childNodes.forEach(function(t){e(t)&&r.push(t),t instanceof Ss&&Et(t,e,r)})}function St(t){return xs.get(t)||null}function xt(t){xs.set(t.nativeNode,t)}function Tt(t){xs["delete"](t.nativeNode)}function Pt(t,e){var r=At(t),n=At(e);if(r&&n)return Ot(t,e,Pt);var o=t&&("object"==typeof t||"function"==typeof t),i=e&&("object"==typeof e||"function"==typeof e);return!r&&o&&!n&&i?!0:u(t,e)}function At(t){return Rt(t)?Array.isArray(t)||!(t instanceof Map)&&s()in t:!1}function Ot(t,e,r){for(var n=t[s()](),o=e[s()]();;){var i=n.next(),a=o.next();if(i.done&&a.done)return!0;if(i.done||a.done)return!1;if(!r(i.value,a.value))return!1}}function Mt(t,e){if(Array.isArray(t))for(var r=0;r<t.length;r++)e(t[r]);else for(var n=t[s()](),o=void 0;!(o=n.next()).done;)e(o.value)}function Rt(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function kt(t,e,r){var n=t.previousIndex;if(null===n)return n;var o=0;return r&&n<r.length&&(o=r[n]),n+e+o}function It(t){return t.name||typeof t}function Nt(){return ti}function Dt(t,e){return t.nodes[e]}function jt(t,e){return t.nodes[e]}function Lt(t,e){return t.nodes[e]}function Vt(t,e){return t.nodes[e]}function Ft(t,e){return t.nodes[e]}function Ut(t,e,r,n){var o="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '"+e+"'. Current value: '"+r+"'.";return n&&(o+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),Ht(o,t)}function Bt(t,e){return t instanceof Error||(t=new Error(t.toString())),qt(t,e),t}function Ht(t,e){
-var r=new Error(t);return qt(r,e),r}function qt(t,e){t[Ho]=e,t[zo]=e.logError.bind(e)}function zt(t){return!!b(t)}function Gt(t){return new Error("ViewDestroyedError: Attempt to use a destroyed view: "+t)}function Wt(t){var e=ea.get(t);return e||(e=c(t)+"_"+ea.size,ea.set(t,e)),e}function $t(t,e,r,n){if(n instanceof Ts){n=n.wrapped;var o=t.def.nodes[e].bindingIndex+r,i=t.oldValues[o];i instanceof Ts&&(i=i.wrapped),t.oldValues[o]=new Ts(i)}return n}function Kt(t){return{id:ra,styles:t.styles,encapsulation:t.encapsulation,data:t.data}}function Qt(t){if(t&&t.id===ra){var e=null!=t.encapsulation&&t.encapsulation!==Po.None||t.styles.length||Object.keys(t.data).length;t.id=e?"c"+oa++:na}return t&&t.id===na&&(t=null),t||null}function Xt(t,e,r,n){var o=t.oldValues;return 1&t.state||!u(o[e.bindingIndex+r],n)?!0:!1}function Zt(t,e,r,n){return Xt(t,e,r,n)?(t.oldValues[e.bindingIndex+r]=n,!0):!1}function Yt(t,e,r,n){var o=t.oldValues[e.bindingIndex+r];if(1&t.state||!Pt(o,n))throw Ut(Js.createDebugContext(t,e.index),o,n,0!==(1&t.state))}function Jt(t){for(var e=t;e;)2&e.def.flags&&(e.state|=2),e=e.viewContainerParent||e.parent}function te(t,e,r,n){var o=t.def.nodes[e],i=16777216&o.flags?jt(t,e).componentView:t;return Jt(i),Js.handleEvent(t,e,r,n)}function ee(t){if(t.parent){var e=t.parent;return jt(e,t.parentNodeDef.index)}return null}function re(t){var e=t.parent;return e?t.parentNodeDef.parent:null}function ne(t,e){switch(100673535&e.flags){case 1:return jt(t,e.index).renderElement;case 2:return Dt(t,e.index).renderText}}function oe(t,e){return t?t+":"+e:e}function ie(t){return!!t.parent&&!!(16384&t.parentNodeDef.flags)}function se(t){return!(!t.parent||16384&t.parentNodeDef.flags)}function ae(t){return 1<<t%32}function ue(t){var e={},r=0,n={};return t&&t.forEach(function(t){var o=t[0],i=t[1];"number"==typeof o?(e[o]=i,r|=ae(o)):n[o]=i}),{matchedQueries:e,references:n,matchedQueryIds:r}}function ce(t,e,r){var n=r.renderParent;return n?0===(1&n.flags)||0===(16777216&n.flags)||n.element.componentRendererType&&n.element.componentRendererType.encapsulation===Po.Native?jt(t,r.renderParent.index).renderElement:void 0:e}function le(t){var e=ia.get(t);return e||(e=t(function(){return ta}),e.factory=t,ia.set(t,e)),e}function pe(t){var e=[];return he(t,0,void 0,void 0,e),e}function he(t,e,r,n,o){3===e&&(r=t.renderer.parentNode(ne(t,t.def.lastRenderRootNode))),fe(t,e,0,t.def.nodes.length-1,r,n,o)}function fe(t,e,r,n,o,i,s){for(var a=r;n>=a;a++){var u=t.def.nodes[a];7&u.flags&&me(t,u,e,o,i,s),a+=u.childCount}}function de(t,e,r,n,o,i){for(var s=t;s&&!ie(s);)s=s.parent;for(var a=s.parent,u=re(s),c=u.index+1,l=u.index+u.childCount,p=c;l>=p;p++){var h=a.def.nodes[p];h.ngContentIndex===e&&me(a,h,r,n,o,i),p+=h.childCount}if(!a.parent){var f=t.root.projectableNodes[e];if(f)for(var p=0;p<f.length;p++)ye(t,f[p],r,n,o,i)}}function me(t,e,r,n,o,i){if(4&e.flags)de(t,e.ngContent.index,r,n,o,i);else{var s=ne(t,e);if(3===r&&16777216&e.flags&&48&e.bindingFlags){if(16&e.bindingFlags&&ye(t,s,r,n,o,i),32&e.bindingFlags){var a=jt(t,e.index).componentView;ye(a,s,r,n,o,i)}}else ye(t,s,r,n,o,i);if(8388608&e.flags)for(var u=jt(t,e.index).viewContainer._embeddedViews,c=0;c<u.length;c++)he(u[c],r,n,o,i);1&e.flags&&!e.element.name&&fe(t,r,e.index+1,e.index+e.childCount,n,o,i)}}function ye(t,e,r,n,o,i){var s=t.renderer;switch(r){case 1:s.appendChild(n,e);break;case 2:s.insertBefore(n,e,o);break;case 3:s.removeChild(n,e);break;case 0:i.push(e)}}function ve(t){if(":"===t[0]){var e=t.match(sa);return[e[1],e[2]]}return["",t]}function ge(t){for(var e=0,r=0;r<t.length;r++)e|=t[r].flags;return e}function _e(t,e){for(var r="",n=0;2*t>n;n+=2)r=r+e[n]+we(e[n+1]);return r+e[2*t]}function be(t,e,r,n,o,i,s,a,u,c,l,p,h,f,d,m,y,v,g,_){switch(t){case 1:return e+we(r)+n;case 2:return e+we(r)+n+we(o)+i;case 3:return e+we(r)+n+we(o)+i+we(s)+a;case 4:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c;case 5:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c+we(l)+p;case 6:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c+we(l)+p+we(h)+f;case 7:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c+we(l)+p+we(h)+f+we(d)+m;case 8:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c+we(l)+p+we(h)+f+we(d)+m+we(y)+v;case 9:return e+we(r)+n+we(o)+i+we(s)+a+we(u)+c+we(l)+p+we(h)+f+we(d)+m+we(y)+v+we(g)+_;default:throw new Error("Does not support more than 9 expressions")}}function we(t){return null!=t?t.toString():""}function Ce(t,e,r,n,o,i){t|=1;var s=ue(e),a=s.matchedQueries,u=s.references,c=s.matchedQueryIds,l=i?le(i):null;return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:a,matchedQueryIds:c,references:u,ngContentIndex:r,childCount:n,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:l,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:o||ta},provider:null,text:null,query:null,ngContent:null}}function Ee(t,e,r,n,o,i,s,a,u,c,l){void 0===i&&(i=[]),u||(u=ta);var p=ue(e),h=p.matchedQueries,f=p.references,d=p.matchedQueryIds,m=null,y=null;o&&(I=ve(o),m=I[0],y=I[1]),s=s||[];for(var v=new Array(s.length),g=0;g<s.length;g++){var _=s[g],b=_[0],w=_[1],C=_[2],E=ve(w),S=E[0],x=E[1],T=void 0,P=void 0;switch(15&b){case 4:P=C;break;case 1:case 8:T=C}v[g]={flags:b,ns:S,name:x,nonMinifiedName:x,securityContext:T,suffix:P}}a=a||[];for(var A=new Array(a.length),g=0;g<a.length;g++){var O=a[g],M=O[0],R=O[1];A[g]={type:0,target:M,eventName:R,propName:null}}i=i||[];var k=i.map(function(t){var e=t[0],r=t[1],n=ve(e),o=n[0],i=n[1];return[o,i,r]});return l=Qt(l),c&&(t|=16777216),t|=1,{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:h,matchedQueryIds:d,references:f,ngContentIndex:r,childCount:n,bindings:v,bindingFlags:ge(v),outputs:A,element:{ns:m,name:y,attrs:k,template:null,componentProvider:null,componentView:c||null,componentRendererType:l,publicProviders:null,allProviders:null,handleEvent:u||ta},provider:null,text:null,query:null,ngContent:null};var I}function Se(t,e,r){var n,o=r.element,i=t.root.selectorOrNode,s=t.renderer;if(t.parent||!i){n=o.name?s.createElement(o.name,o.ns):s.createComment("");var a=ce(t,e,r);a&&s.appendChild(a,n)}else n=s.selectRootElement(i);if(o.attrs)for(var u=0;u<o.attrs.length;u++){var c=o.attrs[u],l=c[0],p=c[1],h=c[2];s.setAttribute(n,p,h,l)}return n}function xe(t,e,r,n){for(var o=0;o<r.outputs.length;o++){var i=r.outputs[o],s=Te(t,r.index,oe(i.target,i.eventName)),a=i.target,u=t;"component"===i.target&&(a=null,u=e);var c=u.renderer.listen(a||n,i.eventName,s);t.disposables[r.outputIndex+o]=c}}function Te(t,e,r){return function(n){return te(t,e,r,n)}}function Pe(t,e,r,n,o,i,s,a,u,c,l,p){var h=e.bindings.length,f=!1;return h>0&&Oe(t,e,0,r)&&(f=!0),h>1&&Oe(t,e,1,n)&&(f=!0),h>2&&Oe(t,e,2,o)&&(f=!0),h>3&&Oe(t,e,3,i)&&(f=!0),h>4&&Oe(t,e,4,s)&&(f=!0),h>5&&Oe(t,e,5,a)&&(f=!0),h>6&&Oe(t,e,6,u)&&(f=!0),h>7&&Oe(t,e,7,c)&&(f=!0),h>8&&Oe(t,e,8,l)&&(f=!0),h>9&&Oe(t,e,9,p)&&(f=!0),f}function Ae(t,e,r){for(var n=!1,o=0;o<r.length;o++)Oe(t,e,o,r[o])&&(n=!0);return n}function Oe(t,e,r,n){if(!Zt(t,e,r,n))return!1;var o=e.bindings[r],i=jt(t,e.index),s=i.renderElement,a=o.name;switch(15&o.flags){case 1:Me(t,o,s,o.ns,a,n);break;case 2:Re(t,s,a,n);break;case 4:ke(t,o,s,a,n);break;case 8:var u=16777216&e.flags&&32&o.flags?i.componentView:t;Ie(u,o,s,a,n)}return!0}function Me(t,e,r,n,o,i){var s=e.securityContext,a=s?t.root.sanitizer.sanitize(s,i):i;a=null!=a?a.toString():null;var u=t.renderer;null!=i?u.setAttribute(r,o,a,n):u.removeAttribute(r,o,n)}function Re(t,e,r,n){var o=t.renderer;n?o.addClass(e,r):o.removeClass(e,r)}function ke(t,e,r,n,o){var i=t.root.sanitizer.sanitize(Xs.STYLE,o);if(null!=i){i=i.toString();var s=e.suffix;null!=s&&(i+=s)}else i=null;var a=t.renderer;null!=i?a.setStyle(r,n,i):a.removeStyle(r,n)}function Ie(t,e,r,n,o){var i=e.securityContext,s=i?t.root.sanitizer.sanitize(i,o):o;t.renderer.setProperty(r,n,s)}function Ne(t,e){return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:4,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:e}}}function De(t,e,r){var n=ce(t,e,r);if(n){var o=r.ngContent.index;de(t,o,1,n,null,void 0)}}function je(t,e,r,n){var o=e.viewContainer._embeddedViews;(null===r||void 0===r)&&(r=o.length),n.viewContainerParent=t,Be(o,r,n);var i=ee(n);if(i&&i!==e){var s=i.template._projectedViews;s||(s=i.template._projectedViews=[]),s.push(n)}Js.dirtyParentQueries(n);var a=r>0?o[r-1]:null;Fe(e,a,n)}function Le(t,e){var r=t.viewContainer._embeddedViews;if((null==e||e>=r.length)&&(e=r.length-1),0>e)return null;var n=r[e];n.viewContainerParent=null,He(r,e);var o=ee(n);if(o&&o!==t){var i=o.template._projectedViews;He(i,i.indexOf(n))}return Js.dirtyParentQueries(n),Ue(n),n}function Ve(t,e,r){var n=t.viewContainer._embeddedViews,o=n[e];He(n,e),null==r&&(r=n.length),Be(n,r,o),Js.dirtyParentQueries(o),Ue(o);var i=r>0?n[r-1]:null;return Fe(t,i,o),o}function Fe(t,e,r){var n=e?ne(e,e.def.lastRenderRootNode):t.renderElement,o=r.renderer.parentNode(n),i=r.renderer.nextSibling(n);he(r,2,o,i,void 0)}function Ue(t){he(t,3,null,null,void 0)}function Be(t,e,r){e>=t.length?t.push(r):t.splice(e,0,r)}function He(t,e){e>=t.length-1?t.pop():t.splice(e,1)}function qe(t,e,r,n,o,i){return new la(t,e,r,n,o,i)}function ze(t){return t.viewDefFactory}function Ge(t,e,r){return new ha(t,e,r)}function We(t){return new fa(t)}function $e(t,e){return new da(t,e)}function Ke(t,e){return new ma(t,e)}function Qe(t,e){var r=t.def.nodes[e];if(1&r.flags){var n=jt(t,r.index);return r.element.template?n.template:n.renderElement}if(2&r.flags)return Dt(t,r.index).renderText;if(10120&r.flags)return Lt(t,r.index).instance;throw new Error("Illegal state: read nodeValue for node index "+e)}function Xe(t){return new ya(t.renderer)}function Ze(t,e,r,n,o,i,s){var a=[];if(i)for(var u in i){var c=i[u],l=c[0],p=c[1];a[l]={flags:8,name:u,nonMinifiedName:p,ns:null,securityContext:null,suffix:null}}var h=[];if(s)for(var f in s)h.push({type:1,propName:f,target:null,eventName:s[f]});return t|=8192,tr(t,e,r,n,n,o,a,h)}function Ye(t,e,r){return t|=8,tr(t,null,0,e,e,r)}function Je(t,e,r,n,o){return tr(t,e,0,r,n,o)}function tr(t,e,r,n,o,i,s,a){var u=ue(e),c=u.matchedQueries,l=u.references,p=u.matchedQueryIds;a||(a=[]),s||(s=[]);var h=i.map(function(t){var e,r;return Array.isArray(t)?(r=t[0],e=t[1]):(r=0,e=t),{flags:r,token:e,tokenKey:Wt(e)}});return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:c,matchedQueryIds:p,references:l,ngContentIndex:-1,childCount:r,bindings:s,bindingFlags:ge(s),outputs:a,element:null,provider:{token:n,tokenKey:Wt(n),value:o,deps:h},text:null,query:null,ngContent:null}}function er(t,e){return 2048&e.flags?Sa:ar(t,e)}function rr(t,e){for(var r=t;r.parent&&!ie(r);)r=r.parent;var n=!0;return ur(r.parent,re(r),n,e.provider.value,e.provider.deps)}function nr(t,e){var r=(16384&e.flags)>0,n=ur(t,e.parent,r,e.provider.value,e.provider.deps);if(e.outputs.length)for(var o=0;o<e.outputs.length;o++){var i=e.outputs[o],s=n[i.propName].subscribe(or(t,e.parent.index,i.eventName));t.disposables[e.outputIndex+o]=s.unsubscribe.bind(s)}return n}function or(t,e,r){return function(n){return te(t,e,r,n)}}function ir(t,e,r,n,o,i,s,a,u,c,l,p){var h=Lt(t,e.index),f=h.instance,d=!1,m=void 0,y=e.bindings.length;return y>0&&Xt(t,e,0,r)&&(d=!0,m=hr(t,h,e,0,r,m)),y>1&&Xt(t,e,1,n)&&(d=!0,m=hr(t,h,e,1,n,m)),y>2&&Xt(t,e,2,o)&&(d=!0,m=hr(t,h,e,2,o,m)),y>3&&Xt(t,e,3,i)&&(d=!0,m=hr(t,h,e,3,i,m)),y>4&&Xt(t,e,4,s)&&(d=!0,m=hr(t,h,e,4,s,m)),y>5&&Xt(t,e,5,a)&&(d=!0,m=hr(t,h,e,5,a,m)),y>6&&Xt(t,e,6,u)&&(d=!0,m=hr(t,h,e,6,u,m)),y>7&&Xt(t,e,7,c)&&(d=!0,m=hr(t,h,e,7,c,m)),y>8&&Xt(t,e,8,l)&&(d=!0,m=hr(t,h,e,8,l,m)),y>9&&Xt(t,e,9,p)&&(d=!0,m=hr(t,h,e,9,p,m)),m&&f.ngOnChanges(m),1&t.state&&32768&e.flags&&f.ngOnInit(),131072&e.flags&&f.ngDoCheck(),d}function sr(t,e,r){for(var n=Lt(t,e.index),o=n.instance,i=!1,s=void 0,a=0;a<r.length;a++)Xt(t,e,a,r[a])&&(i=!0,s=hr(t,n,e,a,r[a],s));return s&&o.ngOnChanges(s),1&t.state&&32768&e.flags&&o.ngOnInit(),131072&e.flags&&o.ngDoCheck(),i}function ar(t,e){var r,n=(4096&e.flags)>0,o=e.provider;switch(100673535&e.flags){case 256:r=ur(t,e.parent,n,o.value,o.deps);break;case 512:r=cr(t,e.parent,n,o.value,o.deps);break;case 1024:r=lr(t,e.parent,n,o.deps[0]);break;case 128:r=o.value}return r}function ur(t,e,r,n,o){var i,s=o.length;switch(s){case 0:i=new n;break;case 1:i=new n(lr(t,e,r,o[0]));break;case 2:i=new n(lr(t,e,r,o[0]),lr(t,e,r,o[1]));break;case 3:i=new n(lr(t,e,r,o[0]),lr(t,e,r,o[1]),lr(t,e,r,o[2]));break;default:for(var a=new Array(s),u=0;s>u;u++)a[u]=lr(t,e,r,o[u]);i=new(n.bind.apply(n,[void 0].concat(a)))}return i}function cr(t,e,r,n,o){var i,s=o.length;switch(s){case 0:i=n();break;case 1:i=n(lr(t,e,r,o[0]));break;case 2:i=n(lr(t,e,r,o[0]),lr(t,e,r,o[1]));break;case 3:i=n(lr(t,e,r,o[0]),lr(t,e,r,o[1]),lr(t,e,r,o[2]));break;default:for(var a=Array(s),u=0;s>u;u++)a[u]=lr(t,e,r,o[u]);i=n.apply(void 0,a)}return i}function lr(t,e,r,n,o){if(void 0===o&&(o=Uo.THROW_IF_NOT_FOUND),8&n.flags)return n.token;var i=t;2&n.flags&&(o=null);var s=n.tokenKey;for(e&&1&n.flags&&(r=!1,e=e.parent);t;){if(e)switch(s){case va:var a=pr(t,e,r);return Xe(a);case ga:var a=pr(t,e,r);return a.renderer;case _a:return new us(jt(t,e.index).renderElement);case ba:return jt(t,e.index).viewContainer;case wa:if(e.element.template)return jt(t,e.index).template;break;case Ca:var u=pr(t,e,r);return We(u);case Ea:return Ke(t,e);default:var c=(r?e.element.allProviders:e.element.publicProviders)[s];if(c){var l=Lt(t,c.index);return l.instance===Sa&&(l.instance=ar(t,c)),l.instance}}r=ie(t),e=re(t),t=t.parent}var p=i.root.injector.get(n.token,xa);return p!==xa||o===xa?p:i.root.ngModule.injector.get(n.token,o)}function pr(t,e,r){var n;if(r)n=jt(t,e.index).componentView;else for(n=t;n.parent&&!ie(n);)n=n.parent;return n}function hr(t,e,r,n,o,i){if(16384&r.flags){var s=jt(t,r.parent.index).componentView;2&s.def.flags&&(s.state|=2)}var a=r.bindings[n],u=a.name;if(e.instance[u]=o,262144&r.flags){i=i||{};var c=t.oldValues[r.bindingIndex+n];c instanceof Ts&&(c=c.wrapped);var l=r.bindings[n];i[l.nonMinifiedName]=new As(c,o,0!==(1&t.state))}return t.oldValues[r.bindingIndex+n]=o,i}function fr(t,e){if(t.def.nodeFlags&e)for(var r=t.def.nodes,n=0;n<r.length;n++){var o=r[n],i=o.parent;for(!i&&o.flags&e&&mr(t,n,o.flags&e),0===(o.childFlags&e)&&(n+=o.childCount);i&&1&i.flags&&n===i.index+i.childCount;)i.directChildFlags&e&&dr(t,i,e),i=i.parent}}function dr(t,e,r){for(var n=e.index+1;n<=e.index+e.childCount;n++){var o=t.def.nodes[n];o.flags&r&&mr(t,n,o.flags&r),n+=o.childCount}}function mr(t,e,r){var n=Lt(t,e).instance;n!==Sa&&(Js.setCurrentNode(t,e),524288&r&&n.ngAfterContentInit(),1048576&r&&n.ngAfterContentChecked(),2097152&r&&n.ngAfterViewInit(),4194304&r&&n.ngAfterViewChecked(),65536&r&&n.ngOnDestroy())}function yr(t){return _r(64,new Array(t+1))}function vr(t){return _r(16,new Array(t))}function gr(t){return _r(32,t)}function _r(t,e){for(var r=new Array(e.length),n=0;n<e.length;n++){var o=e[n];r[n]={flags:8,name:o,ns:null,nonMinifiedName:o,securityContext:null,suffix:null}}return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:r,bindingFlags:ge(r),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function br(){return{value:void 0}}function wr(t,e,r,n,o,i,s,a,u,c,l,p){var h=e.bindings,f=!1,d=h.length;if(d>0&&Zt(t,e,0,r)&&(f=!0),d>1&&Zt(t,e,1,n)&&(f=!0),d>2&&Zt(t,e,2,o)&&(f=!0),d>3&&Zt(t,e,3,i)&&(f=!0),d>4&&Zt(t,e,4,s)&&(f=!0),d>5&&Zt(t,e,5,a)&&(f=!0),d>6&&Zt(t,e,6,u)&&(f=!0),d>7&&Zt(t,e,7,c)&&(f=!0),d>8&&Zt(t,e,8,l)&&(f=!0),d>9&&Zt(t,e,9,p)&&(f=!0),f){var m=Vt(t,e.index),y=void 0;switch(100673535&e.flags){case 16:y=new Array(h.length),d>0&&(y[0]=r),d>1&&(y[1]=n),d>2&&(y[2]=o),d>3&&(y[3]=i),d>4&&(y[4]=s),d>5&&(y[5]=a),d>6&&(y[6]=u),d>7&&(y[7]=c),d>8&&(y[8]=l),d>9&&(y[9]=p);break;case 32:y={},d>0&&(y[h[0].name]=r),d>1&&(y[h[1].name]=n),d>2&&(y[h[2].name]=o),d>3&&(y[h[3].name]=i),d>4&&(y[h[4].name]=s),d>5&&(y[h[5].name]=a),d>6&&(y[h[6].name]=u),d>7&&(y[h[7].name]=c),d>8&&(y[h[8].name]=l),d>9&&(y[h[9].name]=p);break;case 64:var v=r;switch(d){case 1:y=v.transform(r);break;case 2:y=v.transform(n);break;case 3:y=v.transform(n,o);break;case 4:y=v.transform(n,o,i);break;case 5:y=v.transform(n,o,i,s);break;case 6:y=v.transform(n,o,i,s,a);break;case 7:y=v.transform(n,o,i,s,a,u);break;case 8:y=v.transform(n,o,i,s,a,u,c);break;case 9:y=v.transform(n,o,i,s,a,u,c,l);break;case 10:y=v.transform(n,o,i,s,a,u,c,l,p)}}m.value=y}return f}function Cr(t,e,r){for(var n=e.bindings,o=!1,i=0;i<r.length;i++)Zt(t,e,i,r[i])&&(o=!0);if(o){var s=Vt(t,e.index),a=void 0;switch(100673535&e.flags){case 16:a=r;break;case 32:a={};for(var i=0;i<r.length;i++)a[n[i].name]=r[i];break;case 64:var u=r[0],c=r.slice(1);a=u.transform.apply(u,c)}s.value=a}return o}function Er(t,e,r){var n=[];for(var o in r){var i=r[o];n.push({propName:o,bindingType:i})}return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:e,filterId:ae(e),bindings:n},ngContent:null}}function Sr(){return new ps}function xr(t){for(var e=t.def.nodeMatchedQueries;t.parent&&se(t);){var r=t.parentNodeDef;t=t.parent;for(var n=r.index+r.childCount,o=0;n>=o;o++){var i=t.def.nodes[o];33554432&i.flags&&268435456&i.flags&&(i.query.filterId&e)===i.query.filterId&&Ft(t,o).setDirty(),!(1&i.flags&&o+i.childCount<r.index)&&33554432&i.childFlags&&268435456&i.childFlags||(o+=i.childCount)}}if(67108864&t.def.nodeFlags)for(var o=0;o<t.def.nodes.length;o++){var i=t.def.nodes[o];67108864&i.flags&&268435456&i.flags&&Ft(t,o).setDirty(),o+=i.childCount}}function Tr(t,e){var r=Ft(t,e.index);if(r.dirty){var n,o=void 0;if(33554432&e.flags){var i=e.parent.parent;o=Pr(t,i.index,i.index+i.childCount,e.query,[]),n=Lt(t,e.parent.index).instance}else 67108864&e.flags&&(o=Pr(t,0,t.def.nodes.length-1,e.query,[]),n=t.component);r.reset(o);for(var s=e.query.bindings,a=!1,u=0;u<s.length;u++){var c=s[u],l=void 0;switch(c.bindingType){case 0:l=r.first;break;case 1:l=r,a=!0}n[c.propName]=l}a&&r.notifyOnChanges()}}function Pr(t,e,r,n,o){for(var i=e;r>=i;i++){var s=t.def.nodes[i],a=s.matchedQueries[n.id];if(null!=a&&o.push(Ar(t,s,a)),1&s.flags&&s.element.template&&(s.element.template.nodeMatchedQueries&n.filterId)===n.filterId){var u=jt(t,i);if(8388608&s.flags)for(var c=u.viewContainer._embeddedViews,l=0;l<c.length;l++){var p=c[l],h=ee(p);h&&h===u&&Pr(p,0,p.def.nodes.length-1,n,o)}var f=u.template._projectedViews;if(f)for(var l=0;l<f.length;l++){var d=f[l];Pr(d,0,d.def.nodes.length-1,n,o)}}(s.childMatchedQueries&n.filterId)!==n.filterId&&(i+=s.childCount)}return o}function Ar(t,e,r){if(null!=r){var n=void 0;switch(r){case 1:n=jt(t,e.index).renderElement;break;case 0:n=new us(jt(t,e.index).renderElement);break;case 2:n=jt(t,e.index).template;break;case 3:n=jt(t,e.index).viewContainer;break;case 4:n=Lt(t,e.index).instance}return n}}function Or(t,e){for(var r=new Array(e.length-1),n=1;n<e.length;n++)r[n-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:e[n]};var o=2;return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:o,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:r,bindingFlags:ge(r),outputs:[],element:null,provider:null,text:{prefix:e[0]},query:null,ngContent:null}}function Mr(t,e,r){var n,o=t.renderer;n=o.createText(r.text.prefix);var i=ce(t,e,r);return i&&o.appendChild(i,n),{renderText:n}}function Rr(t,e,r,n,o,i,s,a,u,c,l,p){var h=!1,f=e.bindings,d=f.length;if(d>0&&Zt(t,e,0,r)&&(h=!0),d>1&&Zt(t,e,1,n)&&(h=!0),d>2&&Zt(t,e,2,o)&&(h=!0),d>3&&Zt(t,e,3,i)&&(h=!0),d>4&&Zt(t,e,4,s)&&(h=!0),d>5&&Zt(t,e,5,a)&&(h=!0),d>6&&Zt(t,e,6,u)&&(h=!0),d>7&&Zt(t,e,7,c)&&(h=!0),d>8&&Zt(t,e,8,l)&&(h=!0),d>9&&Zt(t,e,9,p)&&(h=!0),h){var m=e.text.prefix;d>0&&(m+=Ir(r,f[0])),d>1&&(m+=Ir(n,f[1])),d>2&&(m+=Ir(o,f[2])),d>3&&(m+=Ir(i,f[3])),d>4&&(m+=Ir(s,f[4])),d>5&&(m+=Ir(a,f[5])),d>6&&(m+=Ir(u,f[6])),d>7&&(m+=Ir(c,f[7])),d>8&&(m+=Ir(l,f[8])),d>9&&(m+=Ir(p,f[9]));var y=Dt(t,e.index).renderText;t.renderer.setValue(y,m)}return h}function kr(t,e,r){for(var n=e.bindings,o=!1,i=0;i<r.length;i++)Zt(t,e,i,r[i])&&(o=!0);if(o){for(var s="",i=0;i<r.length;i++)s+=Ir(r[i],n[i]);s=e.text.prefix+s;var a=Dt(t,e.index).renderText;t.renderer.setValue(a,s)}return o}function Ir(t,e){var r=null!=t?t.toString():"";return r+e.suffix}function Nr(t,e,r,n){for(var o=0,i=0,s=0,a=0,u=0,c=null,l=!1,p=!1,h=null,f=0;f<e.length;f++){for(;c&&f>c.index+c.childCount;){var d=c.parent;d&&(d.childFlags|=c.childFlags,d.childMatchedQueries|=c.childMatchedQueries),c=d}var m=e[f];m.index=f,m.parent=c,m.bindingIndex=o,m.outputIndex=i;var y=void 0;if(y=c&&1&c.flags&&!c.element.name?c.renderParent:c,m.renderParent=y,m.element){var v=m.element;v.publicProviders=c?c.element.publicProviders:Object.create(null),v.allProviders=v.publicProviders,l=!1,p=!1}if(Dr(c,m,e.length),s|=m.flags,u|=m.matchedQueryIds,m.element&&m.element.template&&(u|=m.element.template.nodeMatchedQueries),c?(c.childFlags|=m.flags,c.directChildFlags|=m.flags,c.childMatchedQueries|=m.matchedQueryIds,m.element&&m.element.template&&(c.childMatchedQueries|=m.element.template.nodeMatchedQueries)):a|=m.flags,o+=m.bindings.length,i+=m.outputs.length,!y&&3&m.flags&&(h=m),10112&m.flags){l||(l=!0,c.element.publicProviders=Object.create(c.element.publicProviders),c.element.allProviders=c.element.publicProviders);var g=0!==(4096&m.flags),_=0!==(16384&m.flags);!g||_?c.element.publicProviders[m.provider.tokenKey]=m:(p||(p=!0,c.element.allProviders=Object.create(c.element.publicProviders)),c.element.allProviders[m.provider.tokenKey]=m),_&&(c.element.componentProvider=m)}m.childCount&&(c=m)}for(;c;){var d=c.parent;d&&(d.childFlags|=c.childFlags,d.childMatchedQueries|=c.childMatchedQueries),c=d}var b=function(t,r,n,o){return e[r].element.handleEvent(t,n,o)};return{factory:null,nodeFlags:s,rootNodeFlags:a,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:r||ta,updateRenderer:n||ta,handleEvent:b||ta,bindingCount:o,outputCount:i,lastRenderRootNode:h}}function Dr(t,e,r){var n=e.element&&e.element.template;if(n){if(!n.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(n.lastRenderRootNode&&8388608&n.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+e.index+"!")}if(10112&e.flags){var o=t?t.flags:0;if(0===(1&o))throw new Error("Illegal State: Provider/Directive nodes need to be children of elements or anchors, at index "+e.index+"!")}if(e.query){if(33554432&e.flags&&(!t||0===(8192&t.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+e.index+"!");if(67108864&e.flags&&t)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+e.index+"!")}if(e.childCount){var i=t?t.index+t.childCount:r-1;if(e.index<=i&&e.index+e.childCount>i)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+e.index+"!")}}function jr(t,e,r){var n=Vr(t.root,t.renderer,t,e,e.element.template);return Fr(n,t.component,r),Ur(n),n}function Lr(t,e,r){var n=Vr(t,t.renderer,null,null,e);return Fr(n,r,r),Ur(n),n}function Vr(t,e,r,n,o){var i=new Array(o.nodes.length),s=o.outputCount?new Array(o.outputCount):null,a={def:o,parent:r,viewContainerParent:null,parentNodeDef:n,context:null,component:null,nodes:i,state:3,root:t,renderer:e,oldValues:new Array(o.bindingCount),disposables:s};return a}function Fr(t,e,r){t.component=e,t.context=r}function Ur(t){var e;if(ie(t)){var r=t.parentNodeDef;e=jt(t.parent,r.parent.index).renderElement}for(var n=t.def,o=t.nodes,i=0;i<n.nodes.length;i++){var s=n.nodes[i];Js.setCurrentNode(t,i);var a=void 0;switch(100673535&s.flags){case 1:var u=Se(t,e,s),c=void 0;if(16777216&s.flags){var l=le(s.element.componentView),p=s.element.componentRendererType,h=void 0;h=p?t.root.rendererFactory.createRenderer(u,p):t.root.renderer,c=Vr(t.root,h,t,s.element.componentProvider,l)}xe(t,c,s,u),a={renderElement:u,componentView:c,viewContainer:null,template:s.element.template?$e(t,s):void 0},8388608&s.flags&&(a.viewContainer=Ge(t,s,a));break;case 2:a=Mr(t,e,s);break;case 256:case 512:case 1024:case 128:var f=er(t,s);a={instance:f};break;case 8:var f=rr(t,s);a={instance:f};break;case 8192:var f=nr(t,s);if(a={instance:f},16384&s.flags){var d=jt(t,s.parent.index).componentView;Fr(d,f,f)}break;case 16:case 32:case 64:a=br(t,s);break;case 33554432:case 67108864:a=Sr();break;case 4:De(t,e,s),a=void 0}o[i]=a}Yr(t,Ta.CreateViewNodes),en(t,100663296,134217728,0)}function Br(t){Js.updateDirectives(t,1),Jr(t,Ta.CheckNoChanges),Js.updateRenderer(t,1),Yr(t,Ta.CheckNoChanges)}function Hr(t){Js.updateDirectives(t,0),Jr(t,Ta.CheckAndUpdate),en(t,33554432,268435456,0),fr(t,1048576|(1&t.state?524288:0)),Js.updateRenderer(t,0),Yr(t,Ta.CheckAndUpdate),en(t,67108864,268435456,0),fr(t,4194304|(1&t.state?2097152:0)),2&t.def.flags&&(t.state&=-3),t.state&=-2}function qr(t,e,r,n,o,i,s,a,u,c,l,p,h){return 0===r?zr(t,e,n,o,i,s,a,u,c,l,p,h):Gr(t,e,n)}function zr(t,e,r,n,o,i,s,a,u,c,l,p){var h=!1;switch(100673535&e.flags){case 1:h=Pe(t,e,r,n,o,i,s,a,u,c,l,p);break;case 2:h=Rr(t,e,r,n,o,i,s,a,u,c,l,p);break;case 8192:h=ir(t,e,r,n,o,i,s,a,u,c,l,p);break;case 16:case 32:case 64:h=wr(t,e,r,n,o,i,s,a,u,c,l,p)}return h}function Gr(t,e,r){var n=!1;switch(100673535&e.flags){case 1:n=Ae(t,e,r);break;case 2:n=kr(t,e,r);break;case 8192:n=sr(t,e,r);break;case 16:case 32:case 64:n=Cr(t,e,r)}if(n)for(var o=e.bindings.length,i=e.bindingIndex,s=t.oldValues,a=0;o>a;a++)s[i+a]=r[a];return n}function Wr(t,e,r,n,o,i,s,a,u,c,l,p,h){return 0===r?$r(t,e,n,o,i,s,a,u,c,l,p,h):Kr(t,e,n),!1}function $r(t,e,r,n,o,i,s,a,u,c,l,p){var h=e.bindings.length;h>0&&Yt(t,e,0,r),h>1&&Yt(t,e,1,n),h>2&&Yt(t,e,2,o),h>3&&Yt(t,e,3,i),h>4&&Yt(t,e,4,s),h>5&&Yt(t,e,5,a),h>6&&Yt(t,e,6,u),h>7&&Yt(t,e,7,c),h>8&&Yt(t,e,8,l),h>9&&Yt(t,e,9,p)}function Kr(t,e,r){for(var n=0;n<r.length;n++)Yt(t,e,n,r[n])}function Qr(t,e){var r=Ft(t,e.index);if(r.dirty)throw Ut(Js.createDebugContext(t,e.index),"Query "+e.query.id+" not dirty","Query "+e.query.id+" dirty",0!==(1&t.state))}function Xr(t){if(!(8&t.state)){if(Jr(t,Ta.Destroy),Yr(t,Ta.Destroy),fr(t,65536),t.disposables)for(var e=0;e<t.disposables.length;e++)t.disposables[e]();t.renderer.destroyNode&&Zr(t),ie(t)&&t.renderer.destroy(),t.state|=8}}function Zr(t){for(var e=t.def.nodes.length,r=0;e>r;r++){var n=t.def.nodes[r];1&n.flags?t.renderer.destroyNode(jt(t,r).renderElement):2&n.flags&&t.renderer.destroyNode(Dt(t,r).renderText)}}function Yr(t,e){var r=t.def;if(16777216&r.nodeFlags)for(var n=0;n<r.nodes.length;n++){var o=r.nodes[n];16777216&o.flags?tn(jt(t,n).componentView,e):0===(16777216&o.childFlags)&&(n+=o.childCount)}}function Jr(t,e){var r=t.def;if(8388608&r.nodeFlags)for(var n=0;n<r.nodes.length;n++){var o=r.nodes[n];if(8388608&o.flags)for(var i=jt(t,n).viewContainer._embeddedViews,s=0;s<i.length;s++)tn(i[s],e);else 0===(8388608&o.childFlags)&&(n+=o.childCount)}}function tn(t,e){var r=t.state;switch(e){case Ta.CheckNoChanges:2&r&&0===(12&r)&&Br(t);break;case Ta.CheckAndUpdate:2&r&&0===(12&r)&&Hr(t);break;case Ta.Destroy:Xr(t);break;case Ta.CreateViewNodes:Ur(t)}}function en(t,e,r,n){if(t.def.nodeFlags&e&&t.def.nodeFlags&r)for(var o=t.def.nodes.length,i=0;o>i;i++){var s=t.def.nodes[i];if(s.flags&e&&s.flags&r)switch(Js.setCurrentNode(t,s.index),n){case 0:Tr(t,s);break;case 1:Qr(t,s)}s.childFlags&e&&s.childFlags&r||(i+=s.childCount)}}function rn(){if(!Pa){Pa=!0;var t=ct()?on():nn();Js.setCurrentNode=t.setCurrentNode,Js.createRootView=t.createRootView,Js.createEmbeddedView=t.createEmbeddedView,Js.checkAndUpdateView=t.checkAndUpdateView,Js.checkNoChangesView=t.checkNoChangesView,Js.destroyView=t.destroyView,Js.resolveDep=lr,Js.createDebugContext=t.createDebugContext,Js.handleEvent=t.handleEvent,Js.updateDirectives=t.updateDirectives,Js.updateRenderer=t.updateRenderer,Js.dirtyParentQueries=xr}}function nn(){return{setCurrentNode:function(){},createRootView:sn,createEmbeddedView:jr,checkAndUpdateView:Hr,checkNoChangesView:Br,destroyView:Xr,createDebugContext:function(t,e){return new Ia(t,e)},handleEvent:function(t,e,r,n){return t.def.handleEvent(t,e,r,n)},updateDirectives:function(t,e){return t.def.updateDirectives(0===e?cn:ln,t)},updateRenderer:function(t,e){return t.def.updateRenderer(0===e?cn:ln,t)}}}function on(){return{setCurrentNode:mn,createRootView:an,createEmbeddedView:pn,checkAndUpdateView:hn,checkNoChangesView:fn,destroyView:dn,createDebugContext:function(t,e){return new Ia(t,e)},handleEvent:yn,updateDirectives:vn,updateRenderer:gn}}function sn(t,e,r,n,o,i){var s=o.injector.get(is);return Lr(un(t,o,s,e,r),n,i)}function an(t,e,r,n,o,i){var s=o.injector.get(is),a=un(t,o,new Na(s),e,r);return On(Aa.create,Lr,null,[a,n,i])}function un(t,e,r,n,o){var i=e.injector.get(Zs),s=r.createRenderer(null,null);return{ngModule:e,injector:t,projectableNodes:n,selectorOrNode:o,sanitizer:i,rendererFactory:r,renderer:s}}function cn(t,e,r,n,o,i,s,a,u,c,l,p,h){var f=t.def.nodes[e];return qr(t,f,r,n,o,i,s,a,u,c,l,p,h),112&f.flags?Vt(t,e).value:void 0}function ln(t,e,r,n,o,i,s,a,u,c,l,p,h){var f=t.def.nodes[e];return Wr(t,f,r,n,o,i,s,a,u,c,l,p,h),112&f.flags?Vt(t,e).value:void 0}function pn(t,e,r){return On(Aa.create,jr,null,[t,e,r])}function hn(t){return On(Aa.detectChanges,Hr,null,[t])}function fn(t){return On(Aa.checkNoChanges,Br,null,[t])}function dn(t){return On(Aa.destroy,Xr,null,[t])}function mn(t,e){Ma=t,Ra=e}function yn(t,e,r,n){return mn(t,e),On(Aa.handleEvent,t.def.handleEvent,null,[t,e,r,n])}function vn(t,e){function r(t,r,n){for(var o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];var s=t.def.nodes[r];return 0===e?_n(t,s,n,o):bn(t,s,n,o),8192&s.flags&&mn(t,Sn(t,r)),112&s.flags?Vt(t,s.index).value:void 0}if(8&t.state)throw Gt(Aa[Oa]);return mn(t,Sn(t,0)),t.def.updateDirectives(r,t)}function gn(t,e){function r(t,r,n){for(var o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];var s=t.def.nodes[r];return 0===e?_n(t,s,n,o):bn(t,s,n,o),3&s.flags&&mn(t,xn(t,r)),112&s.flags?Vt(t,s.index).value:void 0}if(8&t.state)throw Gt(Aa[Oa]);return mn(t,xn(t,0)),t.def.updateRenderer(r,t)}function _n(t,e,r,n){var o=qr.apply(void 0,[t,e,r].concat(n));if(o){var i=1===r?n[0]:n;if(8192&e.flags){for(var s={},a=0;a<e.bindings.length;a++){var u=e.bindings[a],c=i[a];8&u.flags&&(s[wn(u.nonMinifiedName)]=En(c))}var l=e.parent,p=jt(t,l.index).renderElement;if(l.element.name)for(var h in s){var c=s[h];null!=c?t.renderer.setAttribute(p,h,c):t.renderer.removeAttribute(p,h)}else t.renderer.setValue(p,"bindings="+JSON.stringify(s,null,2))}}}function bn(t,e,r,n){Wr.apply(void 0,[t,e,r].concat(n))}function wn(t){return t=Cn(t.replace(/[$@]/g,"_")),"ng-reflect-"+t}function Cn(t){return t.replace(ka,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return"-"+t[1].toLowerCase()})}function En(t){try{return null!=t?t.toString().slice(0,30):t}catch(e){return"[ERROR] Exception while trying to serialize the value"}}function Sn(t,e){for(var r=e;r<t.def.nodes.length;r++){var n=t.def.nodes[r];if(8192&n.flags&&n.bindings&&n.bindings.length)return r}return null}function xn(t,e){for(var r=e;r<t.def.nodes.length;r++){
-var n=t.def.nodes[r];if(3&n.flags&&n.bindings&&n.bindings.length)return r}return null}function Tn(t,e){for(var r=-1,n=0;e>=n;n++){var o=t.nodes[n];3&o.flags&&r++}return r}function Pn(t){for(;t&&!ie(t);)t=t.parent;return t.parent?jt(t.parent,re(t).index):null}function An(t,e,r){for(var n in e.references)r[n]=Ar(t,e,e.references[n])}function On(t,e,r,n){var o=Oa,i=Ma,s=Ra;try{Oa=t;var a=e.apply(r,n);return Ma=i,Ra=s,Oa=o,a}catch(u){if(zt(u)||!Ma)throw u;throw Ma.state|=4,Bt(u,Mn())}}function Mn(){return Ma?new Ia(Ma,Ra):null}function Rn(){return Hs}function kn(){return qs}function In(t){return t||"en-US"}function Nn(){rn()}function Dn(t,e){return{name:t,definitions:e}}function jn(t,e){return void 0===e&&(e=null),{type:4,styles:e,timings:t}}function Ln(t){return{type:3,steps:t}}function Vn(t){return{type:2,steps:t}}function Fn(t){return{type:6,styles:t}}function Un(t,e){return{type:0,name:t,styles:e}}function Bn(t){return{type:5,steps:t}}function Hn(t,e){return{type:1,expr:t,animation:e}}function qn(t,e){return Dn(t,e)}function zn(t,e){return jn(t,e)}function Gn(t){return Ln(t)}function Wn(t){return Vn(t)}function $n(t){return Fn(t)}function Kn(t,e){return Un(t,e)}function Qn(t){return Bn(t)}function Xn(t,e){return Hn(t,e)}var Zn=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},Yn=function(){function t(t){this._desc=t}return t.prototype.toString=function(){return"Token "+this._desc},t}(),Jn=function(t){function e(e){return t.call(this,e)||this}return Zn(e,t),e.prototype.toString=function(){return"InjectionToken "+this._desc},e}(Yn),to="undefined"!=typeof window&&window,eo="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ro="undefined"!=typeof o&&o,no=to||ro||eo,oo=null,io=0,so=no.Reflect,ao=new Jn("AnalyzeForEntryComponents"),uo=m("Attribute",[["attributeName",void 0]]),co=function(){function t(){}return t}(),lo=y("ContentChildren",[["selector",void 0],{first:!1,isViewQuery:!1,descendants:!1,read:void 0}],co),po=y("ContentChild",[["selector",void 0],{first:!0,isViewQuery:!1,descendants:!0,read:void 0}],co),ho=y("ViewChildren",[["selector",void 0],{first:!1,isViewQuery:!0,descendants:!0,read:void 0}],co),fo=y("ViewChild",[["selector",void 0],{first:!0,isViewQuery:!0,descendants:!0,read:void 0}],co),mo={};mo.OnPush=0,mo.Default=1,mo[mo.OnPush]="OnPush",mo[mo.Default]="Default";var yo={};yo.CheckOnce=0,yo.Checked=1,yo.CheckAlways=2,yo.Detached=3,yo.Errored=4,yo.Destroyed=5,yo[yo.CheckOnce]="CheckOnce",yo[yo.Checked]="Checked",yo[yo.CheckAlways]="CheckAlways",yo[yo.Detached]="Detached",yo[yo.Errored]="Errored",yo[yo.Destroyed]="Destroyed";var vo=f("Directive",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,providers:void 0,exportAs:void 0,queries:void 0}),go=f("Component",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,exportAs:void 0,moduleId:void 0,providers:void 0,viewProviders:void 0,changeDetection:mo.Default,queries:void 0,templateUrl:void 0,template:void 0,styleUrls:void 0,styles:void 0,animations:void 0,encapsulation:void 0,interpolation:void 0,entryComponents:void 0},vo),_o=f("Pipe",{name:void 0,pure:!0}),bo=y("Input",[["bindingPropertyName",void 0]]),wo=y("Output",[["bindingPropertyName",void 0]]),Co=y("HostBinding",[["hostPropertyName",void 0]]),Eo=y("HostListener",[["eventName",void 0],["args",[]]]),So={name:"custom-elements"},xo={name:"no-errors-schema"},To=f("NgModule",{providers:void 0,declarations:void 0,imports:void 0,exports:void 0,entryComponents:void 0,bootstrap:void 0,schemas:void 0,id:void 0}),Po={};Po.Emulated=0,Po.Native=1,Po.None=2,Po[Po.Emulated]="Emulated",Po[Po.Native]="Native",Po[Po.None]="None";var Ao=function(){function t(t){var e=void 0===t?{}:t,r=e.templateUrl,n=e.template,o=e.encapsulation,i=e.styles,s=e.styleUrls,a=e.animations,u=e.interpolation;this.templateUrl=r,this.template=n,this.styleUrls=s,this.styles=i,this.encapsulation=o,this.animations=a,this.interpolation=u}return t}(),Oo=function(){function t(t){this.full=t}return Object.defineProperty(t.prototype,"major",{get:function(){return this.full.split(".")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minor",{get:function(){return this.full.split(".")[1]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"patch",{get:function(){return this.full.split(".").slice(2).join(".")},enumerable:!0,configurable:!0}),t}(),Mo=new Oo("4.1.0"),Ro=m("Inject",[["token",void 0]]),ko=m("Optional",[]),Io=f("Injectable",[]),No=m("Self",[]),Do=m("SkipSelf",[]),jo=m("Host",[]),Lo=new Object,Vo=Lo,Fo=function(){function t(){}return t.prototype.get=function(t,e){if(void 0===e&&(e=Lo),e===Lo)throw new Error("No provider for "+c(t)+"!");return e},t}(),Uo=function(){function t(){}return t.prototype.get=function(){},t.prototype.get=function(){},t}();Uo.THROW_IF_NOT_FOUND=Lo,Uo.NULL=new Fo;var Bo="ngComponentType",Ho="ngDebugContext",qo="ngOriginalError",zo="ngErrorLogger",Go=function(){function t(){this._console=console}return t.prototype.handleError=function(t){var e=this._findOriginalError(t),r=this._findContext(t),n=C(t);n(this._console,"ERROR",t),e&&n(this._console,"ORIGINAL ERROR",e),r&&n(this._console,"ERROR CONTEXT",r)},t.prototype._findContext=function(t){return t?b(t)?b(t):this._findContext(w(t)):null},t.prototype._findOriginalError=function(t){for(var e=w(t);e&&w(e);)e=w(e);return e},t}(),Wo=function(){function t(t,e){if(this.token=t,this.id=e,!t)throw new Error("Token must be defined!")}return Object.defineProperty(t.prototype,"displayName",{get:function(){return c(this.token)},enumerable:!0,configurable:!0}),t.get=function(t){return Ko.get(_(t))},Object.defineProperty(t,"numberOfKeys",{get:function(){return Ko.numberOfKeys},enumerable:!0,configurable:!0}),t}(),$o=function(){function t(){this._allKeys=new Map}return t.prototype.get=function(t){if(t instanceof Wo)return t;if(this._allKeys.has(t))return this._allKeys.get(t);var e=new Wo(t,Wo.numberOfKeys);return this._allKeys.set(t,e),e},Object.defineProperty(t.prototype,"numberOfKeys",{get:function(){return this._allKeys.size},enumerable:!0,configurable:!0}),t}(),Ko=new $o,Qo=Function,Xo=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,Zo=function(){function t(t){this._reflect=t||no.Reflect}return t.prototype.isReflectionEnabled=function(){return!0},t.prototype.factory=function(t){return function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return new(t.bind.apply(t,[void 0].concat(e)))}},t.prototype._zipTypesAndAnnotations=function(t,e){var r;r=new Array("undefined"==typeof t?e.length:t.length);for(var n=0;n<r.length;n++)r[n]="undefined"==typeof t?[]:t[n]!=Object?[t[n]]:[],e&&null!=e[n]&&(r[n]=r[n].concat(e[n]));return r},t.prototype._ownParameters=function(t,e){if(Xo.exec(t.toString()))return null;if(t.parameters&&t.parameters!==e.parameters)return t.parameters;var r=t.ctorParameters;if(r&&r!==e.ctorParameters){var n="function"==typeof r?r():r,o=n.map(function(t){return t&&t.type}),i=n.map(function(t){return t&&L(t.decorators)});return this._zipTypesAndAnnotations(o,i)}if(null!=this._reflect&&null!=this._reflect.getOwnMetadata){var i=this._reflect.getOwnMetadata("parameters",t),o=this._reflect.getOwnMetadata("design:paramtypes",t);if(o||i)return this._zipTypesAndAnnotations(o,i)}return new Array(t.length).fill(void 0)},t.prototype.parameters=function(t){if(!j(t))return[];var e=V(t),r=this._ownParameters(t,e);return r||e===Object||(r=this.parameters(e)),r||[]},t.prototype._ownAnnotations=function(t,e){if(t.annotations&&t.annotations!==e.annotations){var r=t.annotations;return"function"==typeof r&&r.annotations&&(r=r.annotations),r}return t.decorators&&t.decorators!==e.decorators?L(t.decorators):this._reflect&&this._reflect.getOwnMetadata?this._reflect.getOwnMetadata("annotations",t):null},t.prototype.annotations=function(t){if(!j(t))return[];var e=V(t),r=this._ownAnnotations(t,e)||[],n=e!==Object?this.annotations(e):[];return n.concat(r)},t.prototype._ownPropMetadata=function(t,e){if(t.propMetadata&&t.propMetadata!==e.propMetadata){var r=t.propMetadata;return"function"==typeof r&&r.propMetadata&&(r=r.propMetadata),r}if(t.propDecorators&&t.propDecorators!==e.propDecorators){var n=t.propDecorators,o={};return Object.keys(n).forEach(function(t){o[t]=L(n[t])}),o}return this._reflect&&this._reflect.getOwnMetadata?this._reflect.getOwnMetadata("propMetadata",t):null},t.prototype.propMetadata=function(t){if(!j(t))return{};var e=V(t),r={};if(e!==Object){var n=this.propMetadata(e);Object.keys(n).forEach(function(t){r[t]=n[t]})}var o=this._ownPropMetadata(t,e);return o&&Object.keys(o).forEach(function(t){var e=[];r.hasOwnProperty(t)&&e.push.apply(e,r[t]),e.push.apply(e,o[t]),r[t]=e}),r},t.prototype.hasLifecycleHook=function(t,e){return t instanceof Qo&&e in t.prototype},t.prototype.getter=function(t){return new Function("o","return o."+t+";")},t.prototype.setter=function(t){return new Function("o","v","return o."+t+" = v;")},t.prototype.method=function(t){var e="if (!o."+t+") throw new Error('\""+t+"\" is undefined');\n        return o."+t+".apply(o, args);";return new Function("o","args",e)},t.prototype.importUri=function(t){return"object"==typeof t&&t.filePath?t.filePath:"./"+c(t)},t.prototype.resourceUri=function(t){return"./"+c(t)},t.prototype.resolveIdentifier=function(t,e,r,n){return n},t.prototype.resolveEnum=function(t,e){return t[e]},t}(),Yo=function(){function t(){}return t.prototype.parameters=function(){},t.prototype.annotations=function(){},t.prototype.propMetadata=function(){},t.prototype.importUri=function(){},t.prototype.resourceUri=function(){},t.prototype.resolveIdentifier=function(){},t.prototype.resolveEnum=function(){},t}(),Jo=function(t){function e(e){var r=t.call(this)||this;return r.reflectionCapabilities=e,r}return Zn(e,t),e.prototype.updateCapabilities=function(t){this.reflectionCapabilities=t},e.prototype.factory=function(t){return this.reflectionCapabilities.factory(t)},e.prototype.parameters=function(t){return this.reflectionCapabilities.parameters(t)},e.prototype.annotations=function(t){return this.reflectionCapabilities.annotations(t)},e.prototype.propMetadata=function(t){return this.reflectionCapabilities.propMetadata(t)},e.prototype.hasLifecycleHook=function(t,e){return this.reflectionCapabilities.hasLifecycleHook(t,e)},e.prototype.getter=function(t){return this.reflectionCapabilities.getter(t)},e.prototype.setter=function(t){return this.reflectionCapabilities.setter(t)},e.prototype.method=function(t){return this.reflectionCapabilities.method(t)},e.prototype.importUri=function(t){return this.reflectionCapabilities.importUri(t)},e.prototype.resourceUri=function(t){return this.reflectionCapabilities.resourceUri(t)},e.prototype.resolveIdentifier=function(t,e,r,n){return this.reflectionCapabilities.resolveIdentifier(t,e,r,n)},e.prototype.resolveEnum=function(t,e){return this.reflectionCapabilities.resolveEnum(t,e)},e}(Yo),ti=new Jo(new Zo),ei=function(){function t(t,e,r){this.key=t,this.optional=e,this.visibility=r}return t.fromKey=function(e){return new t(e,!1,null)},t}(),ri=[],ni=function(){function t(t,e,r){this.key=t,this.resolvedFactories=e,this.multiProvider=r}return Object.defineProperty(t.prototype,"resolvedFactory",{get:function(){return this.resolvedFactories[0]},enumerable:!0,configurable:!0}),t}(),oi=function(){function t(t,e){this.factory=t,this.dependencies=e}return t}(),ii=new Object,si=function(){function t(){}return t.resolve=function(t){return B(t)},t.resolveAndCreate=function(e,r){var n=t.resolve(e);return t.fromResolvedProviders(n,r)},t.fromResolvedProviders=function(t,e){return new ai(t,e)},t.prototype.parent=function(){},t.prototype.resolveAndCreateChild=function(){},t.prototype.createChildFromResolved=function(){},t.prototype.resolveAndInstantiate=function(){},t.prototype.instantiateResolved=function(){},t.prototype.get=function(){},t}(),ai=function(){function t(t,e){this._constructionCounter=0,this._providers=t,this._parent=e||null;var r=t.length;this.keyIds=new Array(r),this.objs=new Array(r);for(var n=0;r>n;n++)this.keyIds[n]=t[n].key.id,this.objs[n]=ii}return t.prototype.get=function(t,e){return void 0===e&&(e=Vo),this._getByKey(Wo.get(t),null,e)},Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),t.prototype.resolveAndCreateChild=function(t){var e=si.resolve(t);return this.createChildFromResolved(e)},t.prototype.createChildFromResolved=function(e){var r=new t(e);return r._parent=this,r},t.prototype.resolveAndInstantiate=function(t){return this.instantiateResolved(si.resolve([t])[0])},t.prototype.instantiateResolved=function(t){return this._instantiateProvider(t)},t.prototype.getProviderAtIndex=function(t){if(0>t||t>=this._providers.length)throw N(t);return this._providers[t]},t.prototype._new=function(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw M(this,t.key);return this._instantiateProvider(t)},t.prototype._getMaxNumberOfObjects=function(){return this.objs.length},t.prototype._instantiateProvider=function(t){if(t.multiProvider){for(var e=new Array(t.resolvedFactories.length),r=0;r<t.resolvedFactories.length;++r)e[r]=this._instantiate(t,t.resolvedFactories[r]);return e}return this._instantiate(t,t.resolvedFactories[0])},t.prototype._instantiate=function(t,e){var r,n=this,o=e.factory;try{r=e.dependencies.map(function(t){return n._getByReflectiveDependency(t)})}catch(i){throw i.addKey&&i.addKey(this,t.key),i}var s;try{s=o.apply(void 0,r)}catch(i){throw R(this,i,i.stack,t.key)}return s},t.prototype._getByReflectiveDependency=function(t){return this._getByKey(t.key,t.visibility,t.optional?null:Vo)},t.prototype._getByKey=function(t,e,r){return t===ui?this:e instanceof No?this._getByKeySelf(t,r):this._getByKeyDefault(t,r,e)},t.prototype._getObjByKeyId=function(t){for(var e=0;e<this.keyIds.length;e++)if(this.keyIds[e]===t)return this.objs[e]===ii&&(this.objs[e]=this._new(this._providers[e])),this.objs[e];return ii},t.prototype._throwOrNull=function(t,e){if(e!==Vo)return e;throw O(this,t)},t.prototype._getByKeySelf=function(t,e){var r=this._getObjByKeyId(t.id);return r!==ii?r:this._throwOrNull(t,e)},t.prototype._getByKeyDefault=function(e,r,n){var o;for(o=n instanceof Do?this._parent:this;o instanceof t;){var i=o,s=i._getObjByKeyId(e.id);if(s!==ii)return s;o=i._parent}return null!==o?o.get(e.token,r):this._throwOrNull(e,r)},Object.defineProperty(t.prototype,"displayName",{get:function(){var t=K(this,function(t){return' "'+t.key.displayName+'" '}).join(", ");return"ReflectiveInjector(providers: ["+t+"])"},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.displayName},t}(),ui=Wo.get(Uo),ci=new Jn("Application Initializer"),li=function(){function t(t){var e=this;this._done=!1;var r=[];if(t)for(var n=0;n<t.length;n++){var o=t[n]();Q(o)&&r.push(o)}this._donePromise=Promise.all(r).then(function(){e._done=!0}),0===r.length&&(this._done=!0)}return Object.defineProperty(t.prototype,"done",{get:function(){return this._done},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"donePromise",{get:function(){return this._donePromise},enumerable:!0,configurable:!0}),t}();li.decorators=[{type:Io}],li.ctorParameters=function(){return[{type:Array,decorators:[{type:Ro,args:[ci]},{type:ko}]}]};var pi=new Jn("AppId"),hi={provide:pi,useFactory:Z,deps:[]},fi=new Jn("Platform Initializer"),di=new Jn("Platform ID"),mi=new Jn("appBootstrapListener"),yi=new Jn("Application Packages Root URL"),vi=function(){function t(){}return t.prototype.log=function(t){console.log(t)},t.prototype.warn=function(t){console.warn(t)},t}();vi.decorators=[{type:Io}],vi.ctorParameters=function(){return[]};var gi=function(){function t(t,e){this.ngModuleFactory=t,this.componentFactories=e}return t}(),_i=function(){function t(){}return t.prototype.compileModuleSync=function(){throw J()},t.prototype.compileModuleAsync=function(){throw J()},t.prototype.compileModuleAndAllComponentsSync=function(){throw J()},t.prototype.compileModuleAndAllComponentsAsync=function(){throw J()},t.prototype.getNgContentSelectors=function(){throw J()},t.prototype.clearCache=function(){},t.prototype.clearCacheFor=function(){},t}();_i.decorators=[{type:Io}],_i.ctorParameters=function(){return[]};var bi=new Jn("compilerOptions"),wi=function(){function t(){}return t.prototype.createCompiler=function(){},t}(),Ci=function(){function t(){}return t.prototype.location=function(){},t.prototype.injector=function(){},t.prototype.instance=function(){},t.prototype.hostView=function(){},t.prototype.changeDetectorRef=function(){},t.prototype.componentType=function(){},t.prototype.destroy=function(){},t.prototype.onDestroy=function(){},t}(),Ei=function(){function t(){}return t.prototype.selector=function(){},t.prototype.componentType=function(){},t.prototype.ngContentSelectors=function(){},t.prototype.inputs=function(){},t.prototype.outputs=function(){},t.prototype.create=function(){},t}(),Si="ngComponent",xi=function(){function t(){}return t.prototype.resolveComponentFactory=function(t){throw tt(t)},t}(),Ti=function(){function t(){}return t.prototype.resolveComponentFactory=function(){},t}();Ti.NULL=new xi;var Pi,Ai,Oi=function(){function t(t,e,r){this._parent=e,this._ngModule=r,this._factories=new Map;for(var n=0;n<t.length;n++){var o=t[n];this._factories.set(o.componentType,o)}}return t.prototype.resolveComponentFactory=function(t){var e=this._factories.get(t)||this._parent.resolveComponentFactory(t);return new Mi(e,this._ngModule)},t}(),Mi=function(t){function e(e,r){var n=t.call(this)||this;return n.factory=e,n.ngModule=r,n}return Zn(e,t),Object.defineProperty(e.prototype,"selector",{get:function(){return this.factory.selector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this.factory.componentType},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngContentSelectors",{get:function(){return this.factory.ngContentSelectors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputs",{get:function(){return this.factory.inputs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){return this.factory.outputs},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,r,n){return this.factory.create(t,e,r,n||this.ngModule)},e}(Ei),Ri=function(){function t(){}return t.prototype.injector=function(){},t.prototype.componentFactoryResolver=function(){},t.prototype.instance=function(){},t.prototype.destroy=function(){},t.prototype.onDestroy=function(){},t}(),ki=function(){function t(t,e){this._injectorClass=t,this._moduleType=e}return Object.defineProperty(t.prototype,"moduleType",{get:function(){return this._moduleType},enumerable:!0,configurable:!0}),t.prototype.create=function(t){var e=new this._injectorClass(t||Uo.NULL);return e.create(),e},t}(),Ii=new Object,Ni=function(){function t(t,e,r){var n=this;this.parent=t,this._destroyListeners=[],this._destroyed=!1,this.bootstrapFactories=r.map(function(t){return new Mi(t,n)}),this._cmpFactoryResolver=new Oi(e,t.get(Ti,Ti.NULL),this)}return t.prototype.create=function(){this.instance=this.createInternal()},t.prototype.createInternal=function(){},t.prototype.get=function(t,e){if(void 0===e&&(e=Vo),t===Uo||t===Ri)return this;if(t===Ti)return this._cmpFactoryResolver;var r=this.getInternal(t,Ii);return r===Ii?this.parent.get(t,e):r},t.prototype.getInternal=function(){},Object.defineProperty(t.prototype,"injector",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentFactoryResolver",{get:function(){return this._cmpFactoryResolver},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+c(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,this.destroyInternal(),this._destroyListeners.forEach(function(t){return t()})},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},t.prototype.destroyInternal=function(){},t}(),Di=et(),ji=Di?rt:function(){return st},Li=Di?nt:function(t,e){return e},Vi=Di?ot:function(){return null},Fi=Di?it:function(){return null},Ui=function(t){function e(e){void 0===e&&(e=!1);var r=t.call(this)||this;return r.__isAsync=e,r}return Zn(e,t),e.prototype.emit=function(e){t.prototype.next.call(this,e)},e.prototype.subscribe=function(e,r,n){var o,i=function(){return null},s=function(){return null};return e&&"object"==typeof e?(o=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},r&&(i=this.__isAsync?function(t){setTimeout(function(){return r(t)})}:function(t){r(t)}),n&&(s=this.__isAsync?function(){setTimeout(function(){return n()})}:function(){n()})),t.prototype.subscribe.call(this,o,i,s)},e}(i.Subject),Bi=function(){function t(t){var e=t.enableLongStackTrace,r=void 0===e?!1:e;if(this._hasPendingMicrotasks=!1,this._hasPendingMacrotasks=!1,this._isStable=!0,this._nesting=0,this._onUnstable=new Ui(!1),this._onMicrotaskEmpty=new Ui(!1),this._onStable=new Ui(!1),this._onErrorEvents=new Ui(!1),"undefined"==typeof Zone)throw new Error("Angular requires Zone.js prolyfill.");Zone.assertZonePatched(),this.outer=this.inner=Zone.current,Zone.wtfZoneSpec&&(this.inner=this.inner.fork(Zone.wtfZoneSpec)),r&&Zone.longStackTraceZoneSpec&&(this.inner=this.inner.fork(Zone.longStackTraceZoneSpec)),this.forkInnerZoneWithAngularBehavior()}return t.isInAngularZone=function(){return Zone.current.get("isAngularZone")===!0},t.assertInAngularZone=function(){if(!t.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},t.assertNotInAngularZone=function(){if(t.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},t.prototype.run=function(t){return this.inner.run(t)},t.prototype.runGuarded=function(t){return this.inner.runGuarded(t)},t.prototype.runOutsideAngular=function(t){return this.outer.run(t)},Object.defineProperty(t.prototype,"onUnstable",{get:function(){return this._onUnstable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onMicrotaskEmpty",{get:function(){return this._onMicrotaskEmpty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onStable",{get:function(){return this._onStable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onError",{get:function(){return this._onErrorEvents},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPendingMicrotasks",{get:function(){return this._hasPendingMicrotasks},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPendingMacrotasks",{get:function(){return this._hasPendingMacrotasks},enumerable:!0,configurable:!0}),t.prototype.checkStable=function(){var t=this;if(0==this._nesting&&!this._hasPendingMicrotasks&&!this._isStable)try{this._nesting++,this._onMicrotaskEmpty.emit(null)}finally{if(this._nesting--,!this._hasPendingMicrotasks)try{this.runOutsideAngular(function(){return t._onStable.emit(null)})}finally{this._isStable=!0}}},t.prototype.forkInnerZoneWithAngularBehavior=function(){var t=this;this.inner=this.inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(e,r,n,o,i,s){try{return t.onEnter(),e.invokeTask(n,o,i,s)}finally{t.onLeave()}},onInvoke:function(e,r,n,o,i,s,a){try{return t.onEnter(),e.invoke(n,o,i,s,a)}finally{t.onLeave()}},onHasTask:function(e,r,n,o){e.hasTask(n,o),r===n&&("microTask"==o.change?t.setHasMicrotask(o.microTask):"macroTask"==o.change&&t.setHasMacrotask(o.macroTask))},onHandleError:function(e,r,n,o){return e.handleError(n,o),t.triggerError(o),!1}})},t.prototype.onEnter=function(){this._nesting++,this._isStable&&(this._isStable=!1,this._onUnstable.emit(null))},t.prototype.onLeave=function(){this._nesting--,this.checkStable()},t.prototype.setHasMicrotask=function(t){this._hasPendingMicrotasks=t,this.checkStable()},t.prototype.setHasMacrotask=function(t){this._hasPendingMacrotasks=t},t.prototype.triggerError=function(t){this._onErrorEvents.emit(t)},t}(),Hi=function(){function t(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this._watchAngularEvents()}return t.prototype._watchAngularEvents=function(){var t=this;this._ngZone.onUnstable.subscribe({next:function(){t._didWork=!0,t._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){t._ngZone.onStable.subscribe({next:function(){Bi.assertNotInAngularZone(),a(function(){t._isZoneStable=!0,t._runCallbacksIfReady()})}})})},t.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},t.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},t.prototype.isStable=function(){return this._isZoneStable&&0==this._pendingCount&&!this._ngZone.hasPendingMacrotasks},t.prototype._runCallbacksIfReady=function(){var t=this;this.isStable()?a(function(){for(;0!==t._callbacks.length;)t._callbacks.pop()(t._didWork);t._didWork=!1}):this._didWork=!0},t.prototype.whenStable=function(t){this._callbacks.push(t),this._runCallbacksIfReady()},t.prototype.getPendingRequestCount=function(){return this._pendingCount},t.prototype.findBindings=function(){return[]},t.prototype.findProviders=function(){return[]},t}();Hi.decorators=[{type:Io}],Hi.ctorParameters=function(){return[{type:Bi}]};var qi=function(){function t(){this._applications=new Map,Wi.addToWindow(this)}return t.prototype.registerApplication=function(t,e){this._applications.set(t,e)},t.prototype.getTestability=function(t){return this._applications.get(t)||null},t.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},t.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},t.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),Wi.findTestabilityInTree(this,t,e)},t}();qi.decorators=[{type:Io}],qi.ctorParameters=function(){return[]};var zi,Gi=function(){function t(){}return t.prototype.addToWindow=function(){},t.prototype.findTestabilityInTree=function(){return null},t}(),Wi=new Gi,$i=!0,Ki=!1,Qi=new Jn("AllowMultipleToken"),Xi=function(){function t(t,e){this.name=t,this.token=e}return t}(),Zi=function(){function t(){}return t.prototype.bootstrapModuleFactory=function(){},t.prototype.bootstrapModule=function(){},t.prototype.onDestroy=function(){},t.prototype.injector=function(){},t.prototype.destroy=function(){},t.prototype.destroyed=function(){},t}(),Yi=function(t){function e(e){var r=t.call(this)||this;return r._injector=e,r._modules=[],r._destroyListeners=[],r._destroyed=!1,r}return Zn(e,t),e.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},e.prototype.bootstrapModuleFactory=function(t){return this._bootstrapModuleFactoryWithZone(t)},e.prototype._bootstrapModuleFactoryWithZone=function(t,e){var r=this;return e||(e=new Bi({enableLongStackTrace:ct()})),e.run(function(){var n=si.resolveAndCreate([{provide:Bi,useValue:e}],r.injector),o=t.create(n),i=o.injector.get(Go,null);if(!i)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return o.onDestroy(function(){return yt(r._modules,o)}),e.onError.subscribe({next:function(t){i.handleError(t)}}),mt(i,function(){var t=o.injector.get(li);return t.donePromise.then(function(){return r._moduleDoBootstrap(o),o})})})},e.prototype.bootstrapModule=function(t,e){return void 0===e&&(e=[]),this._bootstrapModuleWithZone(t,e)},e.prototype._bootstrapModuleWithZone=function(t,e,r){var n=this;void 0===e&&(e=[]);var o=this.injector.get(wi),i=o.createCompiler(Array.isArray(e)?e:[e]);return i.compileModuleAsync(t).then(function(t){return n._bootstrapModuleFactoryWithZone(t,r)})},e.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(Ji);if(t.bootstrapFactories.length>0)t.bootstrapFactories.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+c(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}this._modules.push(t)},e}(Zi);Yi.decorators=[{type:Io}],Yi.ctorParameters=function(){return[{type:Uo}]};var Ji=function(){function t(){}return t.prototype.bootstrap=function(){},t.prototype.tick=function(){},t.prototype.componentTypes=function(){},t.prototype.components=function(){},t.prototype.attachView=function(){},t.prototype.detachView=function(){},t.prototype.viewCount=function(){},t.prototype.isStable=function(){},t}(),ts=function(t){function o(o,i,s,u,c,l){var p=t.call(this)||this;p._zone=o,p._console=i,p._injector=s,p._exceptionHandler=u,p._componentFactoryResolver=c,p._initStatus=l,p._bootstrapListeners=[],p._rootComponents=[],p._rootComponentTypes=[],p._views=[],p._runningTick=!1,p._enforceNoNewChanges=!1,p._stable=!0,p._enforceNoNewChanges=ct(),p._zone.onMicrotaskEmpty.subscribe({next:function(){p._zone.run(function(){p.tick()})}});var h=new e.Observable(function(t){p._stable=p._zone.isStable&&!p._zone.hasPendingMacrotasks&&!p._zone.hasPendingMicrotasks,p._zone.runOutsideAngular(function(){t.next(p._stable),t.complete()})}),f=new e.Observable(function(t){var e=p._zone.onStable.subscribe(function(){Bi.assertNotInAngularZone(),a(function(){p._stable||p._zone.hasPendingMacrotasks||p._zone.hasPendingMicrotasks||(p._stable=!0,t.next(!0))})}),r=p._zone.onUnstable.subscribe(function(){Bi.assertInAngularZone(),p._stable&&(p._stable=!1,p._zone.runOutsideAngular(function(){t.next(!1)}))});return function(){e.unsubscribe(),r.unsubscribe()}});return p._isStable=r.merge(h,n.share.call(f)),p}return Zn(o,t),o.prototype.attachView=function(t){var e=t;this._views.push(e),e.attachToAppRef(this)},o.prototype.detachView=function(t){var e=t;yt(this._views,e),e.detachFromAppRef()},o.prototype.bootstrap=function(t){var e=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");var r;r=t instanceof Ei?t:this._componentFactoryResolver.resolveComponentFactory(t),this._rootComponentTypes.push(r.componentType);var n=r instanceof Mi?null:this._injector.get(Ri),o=r.create(Uo.NULL,[],r.selector,n);o.onDestroy(function(){e._unloadComponent(o)});var i=o.injector.get(Hi,null);return i&&o.injector.get(qi).registerApplication(o.location.nativeElement,i),this._loadComponent(o),ct()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},o.prototype._loadComponent=function(t){this.attachView(t.hostView),this.tick(),this._rootComponents.push(t);var e=this._injector.get(mi,[]).concat(this._bootstrapListeners);e.forEach(function(e){return e(t)})},o.prototype._unloadComponent=function(t){this.detachView(t.hostView),yt(this._rootComponents,t);
-
-},o.prototype.tick=function(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var t=o._tickScope();try{this._runningTick=!0,this._views.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(t){return t.checkNoChanges()})}finally{this._runningTick=!1,Li(t)}},o.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(t){return t.destroy()})},Object.defineProperty(o.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"componentTypes",{get:function(){return this._rootComponentTypes},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"components",{get:function(){return this._rootComponents},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),o}(Ji);ts._tickScope=ji("ApplicationRef#tick()"),ts.decorators=[{type:Io}],ts.ctorParameters=function(){return[{type:Bi},{type:vi},{type:Uo},{type:Go},{type:Ti},{type:li}]};var es=function(){function t(t,e,r,n,o,i){this.id=t,this.templateUrl=e,this.slotCount=r,this.encapsulation=n,this.styles=o,this.animations=i}return t}(),rs=function(){function t(){}return t.prototype.injector=function(){},t.prototype.component=function(){},t.prototype.providerTokens=function(){},t.prototype.references=function(){},t.prototype.context=function(){},t.prototype.source=function(){},t}(),ns=function(){function t(){}return t.prototype.selectRootElement=function(){},t.prototype.createElement=function(){},t.prototype.createViewRoot=function(){},t.prototype.createTemplateAnchor=function(){},t.prototype.createText=function(){},t.prototype.projectNodes=function(){},t.prototype.attachViewAfter=function(){},t.prototype.detachView=function(){},t.prototype.destroyView=function(){},t.prototype.listen=function(){},t.prototype.listenGlobal=function(){},t.prototype.setElementProperty=function(){},t.prototype.setElementAttribute=function(){},t.prototype.setBindingDebugInfo=function(){},t.prototype.setElementClass=function(){},t.prototype.setElementStyle=function(){},t.prototype.invokeElementMethod=function(){},t.prototype.setText=function(){},t.prototype.animate=function(){},t}(),os=(new Jn("Renderer2Interceptor"),function(){function t(){}return t.prototype.renderComponent=function(){},t}()),is=function(){function t(){}return t.prototype.createRenderer=function(){},t}(),ss={};ss.Important=1,ss.DashCase=2,ss[ss.Important]="Important",ss[ss.DashCase]="DashCase";var as=function(){function t(){}return t.prototype.data=function(){},t.prototype.destroy=function(){},t.prototype.createElement=function(){},t.prototype.createComment=function(){},t.prototype.createText=function(){},t.prototype.appendChild=function(){},t.prototype.insertBefore=function(){},t.prototype.removeChild=function(){},t.prototype.selectRootElement=function(){},t.prototype.parentNode=function(){},t.prototype.nextSibling=function(){},t.prototype.setAttribute=function(){},t.prototype.removeAttribute=function(){},t.prototype.addClass=function(){},t.prototype.removeClass=function(){},t.prototype.setStyle=function(){},t.prototype.removeStyle=function(){},t.prototype.setProperty=function(){},t.prototype.setValue=function(){},t.prototype.listen=function(){},t}(),us=function(){function t(t){this.nativeElement=t}return t}(),cs=function(){function t(){}return t.prototype.load=function(){},t}(),ls=new Map,ps=function(){function t(){this._dirty=!0,this._results=[],this._emitter=new Ui}return Object.defineProperty(t.prototype,"changes",{get:function(){return this._emitter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._results.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"first",{get:function(){return this._results[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._results[this.length-1]},enumerable:!0,configurable:!0}),t.prototype.map=function(t){return this._results.map(t)},t.prototype.filter=function(t){return this._results.filter(t)},t.prototype.find=function(t){return this._results.find(t)},t.prototype.reduce=function(t,e){return this._results.reduce(t,e)},t.prototype.forEach=function(t){this._results.forEach(t)},t.prototype.some=function(t){return this._results.some(t)},t.prototype.toArray=function(){return this._results.slice()},t.prototype[s()]=function(){return this._results[s()]()},t.prototype.toString=function(){return this._results.toString()},t.prototype.reset=function(t){this._results=_t(t),this._dirty=!1},t.prototype.notifyOnChanges=function(){this._emitter.emit(this)},t.prototype.setDirty=function(){this._dirty=!0},Object.defineProperty(t.prototype,"dirty",{get:function(){return this._dirty},enumerable:!0,configurable:!0}),t}(),hs="#",fs="NgFactory",ds=function(){function t(){}return t}(),ms={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},ys=function(){function t(t,e){this._compiler=t,this._config=e||ms}return t.prototype.load=function(t){var e=this._compiler instanceof _i;return e?this.loadFactory(t):this.loadAndCompile(t)},t.prototype.loadAndCompile=function(t){var e=this,r=t.split(hs),n=r[0],o=r[1];return void 0===o&&(o="default"),System["import"](n).then(function(t){return t[o]}).then(function(t){return bt(t,n,o)}).then(function(t){return e._compiler.compileModuleAsync(t)})},t.prototype.loadFactory=function(t){var e=t.split(hs),r=e[0],n=e[1],o=fs;return void 0===n&&(n="default",o=""),System["import"](this._config.factoryPathPrefix+r+this._config.factoryPathSuffix).then(function(t){return t[n+o]}).then(function(t){return bt(t,r,n)})},t}();ys.decorators=[{type:Io}],ys.ctorParameters=function(){return[{type:_i},{type:ds,decorators:[{type:ko}]}]};var vs=function(){function t(){}return t.prototype.elementRef=function(){},t.prototype.createEmbeddedView=function(){},t}(),gs=function(){function t(){}return t.prototype.element=function(){},t.prototype.injector=function(){},t.prototype.parentInjector=function(){},t.prototype.clear=function(){},t.prototype.get=function(){},t.prototype.length=function(){},t.prototype.createEmbeddedView=function(){},t.prototype.createComponent=function(){},t.prototype.insert=function(){},t.prototype.move=function(){},t.prototype.indexOf=function(){},t.prototype.remove=function(){},t.prototype.detach=function(){},t}(),_s=function(){function t(){}return t.prototype.markForCheck=function(){},t.prototype.detach=function(){},t.prototype.detectChanges=function(){},t.prototype.checkNoChanges=function(){},t.prototype.reattach=function(){},t}(),bs=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.destroy=function(){},e.prototype.destroyed=function(){},e.prototype.onDestroy=function(){},e}(_s),ws=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Zn(e,t),e.prototype.context=function(){},e.prototype.rootNodes=function(){},e}(bs),Cs=function(){function t(t,e){this.name=t,this.callback=e}return t}(),Es=function(){function t(t,e,r){this._debugContext=r,this.nativeNode=t,e&&e instanceof Ss?e.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(t.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"source",{get:function(){return"Deprecated since v4"},enumerable:!0,configurable:!0}),t}(),Ss=function(t){function e(e,r,n){var o=t.call(this,e,r,n)||this;return o.properties={},o.attributes={},o.classes={},o.styles={},o.childNodes=[],o.nativeElement=e,o}return Zn(e,t),e.prototype.addChild=function(t){t&&(this.childNodes.push(t),t.parent=this)},e.prototype.removeChild=function(t){var e=this.childNodes.indexOf(t);-1!==e&&(t.parent=null,this.childNodes.splice(e,1))},e.prototype.insertChildrenAfter=function(t,e){var r=this,n=this.childNodes.indexOf(t);-1!==n&&((o=this.childNodes).splice.apply(o,[n+1,0].concat(e)),e.forEach(function(t){t.parent&&t.parent.removeChild(t),t.parent=r}));var o},e.prototype.insertBefore=function(t,e){var r=this.childNodes.indexOf(t);-1===r?this.addChild(e):(e.parent&&e.parent.removeChild(e),e.parent=this,this.childNodes.splice(r,0,e))},e.prototype.query=function(t){var e=this.queryAll(t);return e[0]||null},e.prototype.queryAll=function(t){var e=[];return Ct(this,t,e),e},e.prototype.queryAllNodes=function(t){var e=[];return Et(this,t,e),e},Object.defineProperty(e.prototype,"children",{get:function(){return this.childNodes.filter(function(t){return t instanceof e})},enumerable:!0,configurable:!0}),e.prototype.triggerEventHandler=function(t,e){this.listeners.forEach(function(r){r.name==t&&r.callback(e)})},e}(Es),xs=new Map,Ts=function(){function t(t){this.wrapped=t}return t.wrap=function(e){return new t(e)},t}(),Ps=function(){function t(){this.hasWrappedValue=!1}return t.prototype.unwrap=function(t){return t instanceof Ts?(this.hasWrappedValue=!0,t.wrapped):t},t.prototype.reset=function(){this.hasWrappedValue=!1},t}(),As=function(){function t(t,e,r){this.previousValue=t,this.currentValue=e,this.firstChange=r}return t.prototype.isFirstChange=function(){return this.firstChange},t}(),Os=function(){function t(){}return t.prototype.supports=function(t){return At(t)},t.prototype.create=function(t,e){return new Rs(e||t)},t}(),Ms=function(t,e){return e},Rs=function(){function t(t){this._length=0,this._collection=null,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||Ms}return Object.defineProperty(t.prototype,"collection",{get:function(){return this._collection},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),t.prototype.forEachItem=function(t){var e;for(e=this._itHead;null!==e;e=e._next)t(e)},t.prototype.forEachOperation=function(t){for(var e=this._itHead,r=this._removalsHead,n=0,o=null;e||r;){var i=!r||e&&e.currentIndex<kt(r,n,o)?e:r,s=kt(i,n,o),a=i.currentIndex;if(i===r)n--,r=r._nextRemoved;else if(e=e._next,null==i.previousIndex)n++;else{o||(o=[]);var u=s-n,c=a-n;if(u!=c){for(var l=0;u>l;l++){var p=l<o.length?o[l]:o[l]=0,h=p+l;h>=c&&u>h&&(o[l]=p+1)}var f=i.previousIndex;o[f]=c-u}}s!==a&&t(i,s,a)}},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachMovedItem=function(t){var e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.forEachIdentityChange=function(t){var e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)},t.prototype.diff=function(t){if(null==t&&(t=[]),!At(t))throw new Error("Error trying to diff '"+c(t)+"'. Only arrays and iterables are allowed");return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var r,n,o,i=this._itHead,s=!1;if(Array.isArray(t)){this._length=t.length;for(var a=0;a<this._length;a++)n=t[a],o=this._trackByFn(a,n),null!==i&&u(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,n,o,a)),u(i.item,n)||this._addIdentityChange(i,n)):(i=this._mismatch(i,n,o,a),s=!0),i=i._next}else r=0,Mt(t,function(t){o=e._trackByFn(r,t),null!==i&&u(i.trackById,o)?(s&&(i=e._verifyReinsertion(i,t,o,r)),u(i.item,t)||e._addIdentityChange(i,t)):(i=e._mismatch(i,t,o,r),s=!0),i=i._next,r++}),this._length=r;return this._truncate(i),this._collection=t,this.isDirty},Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),t.prototype._reset=function(){if(this.isDirty){var t=void 0,e=void 0;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},t.prototype._mismatch=function(t,e,r,n){var o;return null===t?o=this._itTail:(o=t._prev,this._remove(t)),t=null===this._linkedRecords?null:this._linkedRecords.get(r,n),null!==t?(u(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,o,n)):(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null),null!==t?(u(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,o,n)):t=this._addAfter(new ks(e,r),o,n)),t},t.prototype._verifyReinsertion=function(t,e,r,n){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==o?t=this._reinsertAfter(o,t._prev,n):t.currentIndex!=n&&(t.currentIndex=n,this._addToMoves(t,n)),t},t.prototype._truncate=function(t){for(;null!==t;){var e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)},t.prototype._reinsertAfter=function(t,e,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);var n=t._prevRemoved,o=t._nextRemoved;return null===n?this._removalsHead=o:n._nextRemoved=o,null===o?this._removalsTail=n:o._prevRemoved=n,this._insertAfter(t,e,r),this._addToMoves(t,r),t},t.prototype._moveAfter=function(t,e,r){return this._unlink(t),this._insertAfter(t,e,r),this._addToMoves(t,r),t},t.prototype._addAfter=function(t,e,r){return this._insertAfter(t,e,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t},t.prototype._insertAfter=function(t,e,r){var n=null===e?this._itHead:e._next;return t._next=n,t._prev=e,null===n?this._itTail=t:n._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Ns),this._linkedRecords.put(t),t.currentIndex=r,t},t.prototype._remove=function(t){return this._addToRemovals(this._unlink(t))},t.prototype._unlink=function(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);var e=t._prev,r=t._next;return null===e?this._itHead=r:e._next=r,null===r?this._itTail=e:r._prev=e,t},t.prototype._addToMoves=function(t,e){return t.previousIndex===e?t:(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t,t)},t.prototype._addToRemovals=function(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Ns),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t},t.prototype._addIdentityChange=function(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t},t.prototype.toString=function(){var t=[];this.forEachItem(function(e){return t.push(e)});var e=[];this.forEachPreviousItem(function(t){return e.push(t)});var r=[];this.forEachAddedItem(function(t){return r.push(t)});var n=[];this.forEachMovedItem(function(t){return n.push(t)});var o=[];this.forEachRemovedItem(function(t){return o.push(t)});var i=[];return this.forEachIdentityChange(function(t){return i.push(t)}),"collection: "+t.join(", ")+"\nprevious: "+e.join(", ")+"\nadditions: "+r.join(", ")+"\nmoves: "+n.join(", ")+"\nremovals: "+o.join(", ")+"\nidentityChanges: "+i.join(", ")+"\n"},t}(),ks=function(){function t(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}return t.prototype.toString=function(){return this.previousIndex===this.currentIndex?c(this.item):c(this.item)+"["+c(this.previousIndex)+"->"+c(this.currentIndex)+"]"},t}(),Is=function(){function t(){this._head=null,this._tail=null}return t.prototype.add=function(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)},t.prototype.get=function(t,e){var r;for(r=this._head;null!==r;r=r._nextDup)if((null===e||e<r.currentIndex)&&u(r.trackById,t))return r;return null},t.prototype.remove=function(t){var e=t._prevDup,r=t._nextDup;return null===e?this._head=r:e._nextDup=r,null===r?this._tail=e:r._prevDup=e,null===this._head},t}(),Ns=function(){function t(){this.map=new Map}return t.prototype.put=function(t){var e=t.trackById,r=this.map.get(e);r||(r=new Is,this.map.set(e,r)),r.add(t)},t.prototype.get=function(t,e){var r=t,n=this.map.get(r);return n?n.get(t,e):null},t.prototype.remove=function(t){var e=t.trackById,r=this.map.get(e);return r.remove(t)&&this.map["delete"](e),t},Object.defineProperty(t.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),t.prototype.clear=function(){this.map.clear()},t.prototype.toString=function(){return"_DuplicateMap("+c(this.map)+")"},t}(),Ds=function(){function t(){}return t.prototype.supports=function(t){return t instanceof Map||Rt(t)},t.prototype.create=function(){return new js},t}(),js=function(){function t(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),t.prototype.forEachItem=function(t){var e;for(e=this._mapHead;null!==e;e=e._next)t(e)},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachChangedItem=function(t){var e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.diff=function(t){if(t){if(!(t instanceof Map||Rt(t)))throw new Error("Error trying to diff '"+c(t)+"'. Only maps and objects are allowed")}else t=new Map;return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var r=this._mapHead;if(this._appendAfter=null,this._forEach(t,function(t,n){if(r&&r.key===n)e._maybeAddToChanges(r,t),e._appendAfter=r,r=r._next;else{var o=e._getOrCreateRecordForKey(n,t);r=e._insertBeforeOrAppend(r,o)}}),r){r._prev&&(r._prev._next=null),this._removalsHead=r;for(var n=r;null!==n;n=n._nextRemoved)n===this._mapHead&&(this._mapHead=null),this._records["delete"](n.key),n._nextRemoved=n._next,n.previousValue=n.currentValue,n.currentValue=null,n._prev=null,n._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty},t.prototype._insertBeforeOrAppend=function(t,e){if(t){var r=t._prev;return e._next=t,e._prev=r,t._prev=e,r&&(r._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null},t.prototype._getOrCreateRecordForKey=function(t,e){if(this._records.has(t)){var r=this._records.get(t);this._maybeAddToChanges(r,e);var n=r._prev,o=r._next;return n&&(n._next=o),o&&(o._prev=n),r._next=null,r._prev=null,r}var i=new Ls(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i},t.prototype._reset=function(){if(this.isDirty){var t=void 0;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}},t.prototype._maybeAddToChanges=function(t,e){u(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))},t.prototype._addToAdditions=function(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)},t.prototype._addToChanges=function(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)},t.prototype.toString=function(){var t=[],e=[],r=[],n=[],o=[];return this.forEachItem(function(e){return t.push(c(e))}),this.forEachPreviousItem(function(t){return e.push(c(t))}),this.forEachChangedItem(function(t){return r.push(c(t))}),this.forEachAddedItem(function(t){return n.push(c(t))}),this.forEachRemovedItem(function(t){return o.push(c(t))}),"map: "+t.join(", ")+"\nprevious: "+e.join(", ")+"\nadditions: "+n.join(", ")+"\nchanges: "+r.join(", ")+"\nremovals: "+o.join(", ")+"\n"},t.prototype._forEach=function(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(function(r){return e(t[r],r)})},t}(),Ls=function(){function t(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}return t.prototype.toString=function(){return u(this.previousValue,this.currentValue)?c(this.key):c(this.key)+"["+c(this.previousValue)+"->"+c(this.currentValue)+"]"},t}(),Vs=function(){function t(t){this.factories=t}return t.create=function(e,r){if(null!=r){var n=r.factories.slice();return e=e.concat(n),new t(e)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(r){if(!r)throw new Error("Cannot extend IterableDiffers without a parent injector");return t.create(e,r)},deps:[[t,new Do,new ko]]}},t.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(null!=e)return e;throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+It(t)+"'")},t}(),Fs=function(){function t(t){this.factories=t}return t.create=function(e,r){if(r){var n=r.factories.slice();e=e.concat(n)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(r){if(!r)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return t.create(e,r)},deps:[[t,new Do,new ko]]}},t.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(e)return e;throw new Error("Cannot find a differ supporting object '"+t+"'")},t}(),Us=[new Ds],Bs=[new Os],Hs=new Vs(Bs),qs=new Fs(Us),zs=[{provide:di,useValue:"unknown"},Yi,{provide:Zi,useExisting:Yi},{provide:Jo,useFactory:Nt,deps:[]},{provide:Yo,useExisting:Jo},qi,vi],Gs=pt(null,"core",zs),Ws=new Jn("LocaleId"),$s=new Jn("Translations"),Ks=new Jn("TranslationsFormat"),Qs={};Qs.Error=0,Qs.Warning=1,Qs.Ignore=2,Qs[Qs.Error]="Error",Qs[Qs.Warning]="Warning",Qs[Qs.Ignore]="Ignore";var Xs={};Xs.NONE=0,Xs.HTML=1,Xs.STYLE=2,Xs.SCRIPT=3,Xs.URL=4,Xs.RESOURCE_URL=5,Xs[Xs.NONE]="NONE",Xs[Xs.HTML]="HTML",Xs[Xs.STYLE]="STYLE",Xs[Xs.SCRIPT]="SCRIPT",Xs[Xs.URL]="URL",Xs[Xs.RESOURCE_URL]="RESOURCE_URL";var Zs=function(){function t(){}return t.prototype.sanitize=function(){},t}(),Ys=function(){function t(){}return t.prototype.view=function(){},t.prototype.nodeIndex=function(){},t.prototype.injector=function(){},t.prototype.component=function(){},t.prototype.providerTokens=function(){},t.prototype.references=function(){},t.prototype.context=function(){},t.prototype.componentRenderElement=function(){},t.prototype.renderNode=function(){},t.prototype.logError=function(){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e]},t}(),Js={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0},ta=function(){},ea=new Map,ra="$$undefined",na="$$empty",oa=0,ia=new WeakMap,sa=/^:([^:]+):(.+)$/,aa=[],ua={},ca=new Object,la=function(t){function e(e,r,n,o,i,s){var a=t.call(this)||this;return a.selector=e,a.componentType=r,a._inputs=o,a._outputs=i,a.ngContentSelectors=s,a.viewDefFactory=n,a}return Zn(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){var t=[],e=this._inputs;for(var r in e){var n=e[r];t.push({propName:r,templateName:n})}return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){var t=[];for(var e in this._outputs){var r=this._outputs[e];t.push({propName:e,templateName:r})}return t},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,r,n){if(!n)throw new Error("ngModule should be provided");var o=le(this.viewDefFactory),i=o.nodes[0].element.componentProvider.index,s=Js.createRootView(t,e||[],r,o,n,ca),a=Lt(s,i).instance;return s.renderer.setAttribute(jt(s,0).renderElement,"ng-version",Mo.full),new pa(s,new fa(s),a)},e}(Ei),pa=function(t){function e(e,r,n){var o=t.call(this)||this;return o._view=e,o._viewRef=r,o._component=n,o._elDef=o._view.def.nodes[0],o}return Zn(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return new us(jt(this._view,this._elDef.index).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new ma(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"instance",{get:function(){return this._component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hostView",{get:function(){return this._viewRef},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changeDetectorRef",{get:function(){return this._viewRef},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._viewRef.destroy()},e.prototype.onDestroy=function(t){this._viewRef.onDestroy(t)},e}(Ci),ha=function(){function t(t,e,r){this._view=t,this._elDef=e,this._data=r,this._embeddedViews=[]}return Object.defineProperty(t.prototype,"element",{get:function(){return new us(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new ma(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parentInjector",{get:function(){for(var t=this._view,e=this._elDef.parent;!e&&t;)e=re(t),t=t.parent;return t?new ma(t,e):new ma(this._view,null)},enumerable:!0,configurable:!0}),t.prototype.clear=function(){for(var t=this._embeddedViews.length,e=t-1;e>=0;e--){var r=Le(this._data,e);Js.destroyView(r)}},t.prototype.get=function(t){var e=this._embeddedViews[t];if(e){var r=new fa(e);return r.attachToViewContainerRef(this),r}return null},Object.defineProperty(t.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),t.prototype.createEmbeddedView=function(t,e,r){var n=t.createEmbeddedView(e||{});return this.insert(n,r),n},t.prototype.createComponent=function(t,e,r,n,o){var i=r||this.parentInjector;o||t instanceof Mi||(o=i.get(Ri));var s=t.create(i,n,void 0,o);return this.insert(s.hostView,e),s},t.prototype.insert=function(t,e){var r=t,n=r._view;return je(this._view,this._data,e,n),r.attachToViewContainerRef(this),t},t.prototype.move=function(t,e){var r=this._embeddedViews.indexOf(t._view);return Ve(this._data,r,e),t},t.prototype.indexOf=function(t){return this._embeddedViews.indexOf(t._view)},t.prototype.remove=function(t){var e=Le(this._data,t);e&&Js.destroyView(e)},t.prototype.detach=function(t){var e=Le(this._data,t);return e?new fa(e):null},t}(),fa=function(){function t(t){this._view=t,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(t.prototype,"rootNodes",{get:function(){return pe(this._view)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return 0!==(8&this._view.state)},enumerable:!0,configurable:!0}),t.prototype.markForCheck=function(){Jt(this._view)},t.prototype.detach=function(){this._view.state&=-3},t.prototype.detectChanges=function(){Js.checkAndUpdateView(this._view)},t.prototype.checkNoChanges=function(){Js.checkNoChangesView(this._view)},t.prototype.reattach=function(){this._view.state|=2},t.prototype.onDestroy=function(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)},t.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Js.destroyView(this._view)},t.prototype.detachFromAppRef=function(){this._appRef=null,Ue(this._view),Js.dirtyParentQueries(this._view)},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t}(),da=function(t){function e(e,r){var n=t.call(this)||this;return n._parentView=e,n._def=r,n}return Zn(e,t),e.prototype.createEmbeddedView=function(t){return new fa(Js.createEmbeddedView(this._parentView,this._def,t))},Object.defineProperty(e.prototype,"elementRef",{get:function(){return new us(jt(this._parentView,this._def.index).renderElement)},enumerable:!0,configurable:!0}),e}(vs),ma=function(){function t(t,e){this.view=t,this.elDef=e}return t.prototype.get=function(t,e){void 0===e&&(e=Uo.THROW_IF_NOT_FOUND);var r=this.elDef?0!==(16777216&this.elDef.flags):!1;return Js.resolveDep(this.view,this.elDef,r,{flags:0,token:t,tokenKey:Wt(t)},e)},t}(),ya=function(){function t(t){this.delegate=t}return t.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},t.prototype.createElement=function(t,e){var r=ve(e),n=r[0],o=r[1],i=this.delegate.createElement(o,n);return t&&this.delegate.appendChild(t,i),i},t.prototype.createViewRoot=function(t){return t},t.prototype.createTemplateAnchor=function(t){var e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e},t.prototype.createText=function(t,e){var r=this.delegate.createText(e);return t&&this.delegate.appendChild(t,r),r},t.prototype.projectNodes=function(t,e){
-for(var r=0;r<e.length;r++)this.delegate.appendChild(t,e[r])},t.prototype.attachViewAfter=function(t,e){for(var r=this.delegate.parentNode(t),n=this.delegate.nextSibling(t),o=0;o<e.length;o++)this.delegate.insertBefore(r,e[o],n)},t.prototype.detachView=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=this.delegate.parentNode(r);this.delegate.removeChild(n,r)}},t.prototype.destroyView=function(t,e){for(var r=0;r<e.length;r++)this.delegate.destroyNode(e[r])},t.prototype.listen=function(t,e,r){return this.delegate.listen(t,e,r)},t.prototype.listenGlobal=function(t,e,r){return this.delegate.listen(t,e,r)},t.prototype.setElementProperty=function(t,e,r){this.delegate.setProperty(t,e,r)},t.prototype.setElementAttribute=function(t,e,r){var n=ve(e),o=n[0],i=n[1];null!=r?this.delegate.setAttribute(t,i,r,o):this.delegate.removeAttribute(t,i,o)},t.prototype.setBindingDebugInfo=function(){},t.prototype.setElementClass=function(t,e,r){r?this.delegate.addClass(t,e):this.delegate.removeClass(t,e)},t.prototype.setElementStyle=function(t,e,r){null!=r?this.delegate.setStyle(t,e,r):this.delegate.removeStyle(t,e)},t.prototype.invokeElementMethod=function(t,e,r){t[e].apply(t,r)},t.prototype.setText=function(t,e){this.delegate.setValue(t,e)},t.prototype.animate=function(){throw new Error("Renderer.animate is no longer supported!")},t}(),va=Wt(ns),ga=Wt(as),_a=Wt(us),ba=Wt(gs),wa=Wt(vs),Ca=Wt(_s),Ea=Wt(Uo),Sa=new Object,xa={},Ta={};Ta.CreateViewNodes=0,Ta.CheckNoChanges=1,Ta.CheckAndUpdate=2,Ta.Destroy=3,Ta[Ta.CreateViewNodes]="CreateViewNodes",Ta[Ta.CheckNoChanges]="CheckNoChanges",Ta[Ta.CheckAndUpdate]="CheckAndUpdate",Ta[Ta.Destroy]="Destroy";var Pa=!1,Aa={};Aa.create=0,Aa.detectChanges=1,Aa.checkNoChanges=2,Aa.destroy=3,Aa.handleEvent=4,Aa[Aa.create]="create",Aa[Aa.detectChanges]="detectChanges",Aa[Aa.checkNoChanges]="checkNoChanges",Aa[Aa.destroy]="destroy",Aa[Aa.handleEvent]="handleEvent";var Oa,Ma,Ra,ka=/([A-Z])/g,Ia=function(){function t(t,e){this.view=t,this.nodeIndex=e,null==e&&(this.nodeIndex=e=0),this.nodeDef=t.def.nodes[e];for(var r=this.nodeDef,n=t;r&&0===(1&r.flags);)r=r.parent;if(!r)for(;!r&&n;)r=re(n),n=n.parent;this.elDef=r,this.elView=n}return Object.defineProperty(t.prototype,"elOrCompView",{get:function(){return jt(this.elView,this.elDef.index).componentView||this.view},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return Ke(this.elView,this.elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){return this.elOrCompView.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this.elOrCompView.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){var t=[];if(this.elDef)for(var e=this.elDef.index+1;e<=this.elDef.index+this.elDef.childCount;e++){var r=this.elView.def.nodes[e];10112&r.flags&&t.push(r.provider.token),e+=r.childCount}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){var t={};if(this.elDef){An(this.elView,this.elDef,t);for(var e=this.elDef.index+1;e<=this.elDef.index+this.elDef.childCount;e++){var r=this.elView.def.nodes[e];10112&r.flags&&An(this.elView,r,t),e+=r.childCount}}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentRenderElement",{get:function(){var t=Pn(this.elOrCompView);return t?t.renderElement:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderNode",{get:function(){return 2&this.nodeDef.flags?ne(this.view,this.nodeDef):ne(this.elView,this.elDef)},enumerable:!0,configurable:!0}),t.prototype.logError=function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];var n,o;2&this.nodeDef.flags?(n=this.view.def,o=this.nodeDef.index):(n=this.elView.def,o=this.elDef.index);var i=Tn(n,o),s=-1,a=function(){return s++,s===i?(r=t.error).bind.apply(r,[t].concat(e)):ta;var r};n.factory(a),i>s&&(t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),t.error.apply(t,e))},t}(),Na=function(){function t(t){this.delegate=t}return t.prototype.createRenderer=function(t,e){return new Da(this.delegate.createRenderer(t,e))},t}(),Da=function(){function t(t){this.delegate=t}return Object.defineProperty(t.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),t.prototype.destroyNode=function(t){Tt(St(t)),this.delegate.destroyNode&&this.delegate.destroyNode(t)},t.prototype.destroy=function(){this.delegate.destroy()},t.prototype.createElement=function(t,e){var r=this.delegate.createElement(t,e),n=Mn();if(n){var o=new Ss(r,null,n);o.name=t,xt(o)}return r},t.prototype.createComment=function(t){var e=this.delegate.createComment(t),r=Mn();return r&&xt(new Es(e,null,r)),e},t.prototype.createText=function(t){var e=this.delegate.createText(t),r=Mn();return r&&xt(new Es(e,null,r)),e},t.prototype.appendChild=function(t,e){var r=St(t),n=St(e);r&&n&&r instanceof Ss&&r.addChild(n),this.delegate.appendChild(t,e)},t.prototype.insertBefore=function(t,e,r){var n=St(t),o=St(e),i=St(r);n&&o&&n instanceof Ss&&n.insertBefore(i,o),this.delegate.insertBefore(t,e,r)},t.prototype.removeChild=function(t,e){var r=St(t),n=St(e);r&&n&&r instanceof Ss&&r.removeChild(n),this.delegate.removeChild(t,e)},t.prototype.selectRootElement=function(t){var e=this.delegate.selectRootElement(t),r=Mn();return r&&xt(new Ss(e,null,r)),e},t.prototype.setAttribute=function(t,e,r,n){var o=St(t);if(o&&o instanceof Ss){var i=n?n+":"+e:e;o.attributes[i]=r}this.delegate.setAttribute(t,e,r,n)},t.prototype.removeAttribute=function(t,e,r){var n=St(t);if(n&&n instanceof Ss){var o=r?r+":"+e:e;n.attributes[o]=null}this.delegate.removeAttribute(t,e,r)},t.prototype.addClass=function(t,e){var r=St(t);r&&r instanceof Ss&&(r.classes[e]=!0),this.delegate.addClass(t,e)},t.prototype.removeClass=function(t,e){var r=St(t);r&&r instanceof Ss&&(r.classes[e]=!1),this.delegate.removeClass(t,e)},t.prototype.setStyle=function(t,e,r,n){var o=St(t);o&&o instanceof Ss&&(o.styles[e]=r),this.delegate.setStyle(t,e,r,n)},t.prototype.removeStyle=function(t,e,r){var n=St(t);n&&n instanceof Ss&&(n.styles[e]=null),this.delegate.removeStyle(t,e,r)},t.prototype.setProperty=function(t,e,r){var n=St(t);n&&n instanceof Ss&&(n.properties[e]=r),this.delegate.setProperty(t,e,r)},t.prototype.listen=function(t,e,r){if("string"!=typeof t){var n=St(t);n&&n.listeners.push(new Cs(e,r))}return this.delegate.listen(t,e,r)},t.prototype.parentNode=function(t){return this.delegate.parentNode(t)},t.prototype.nextSibling=function(t){return this.delegate.nextSibling(t)},t.prototype.setValue=function(t,e){return this.delegate.setValue(t,e)},t}(),ja=function(){function t(){}return t}();ja.decorators=[{type:To,args:[{providers:[ts,{provide:Ji,useExisting:ts},li,_i,hi,{provide:Vs,useFactory:Rn},{provide:Fs,useFactory:kn},{provide:Ws,useFactory:In,deps:[[new Ro(Ws),new ko,new Do]]},{provide:ci,useValue:Nn,multi:!0}]}]}],ja.ctorParameters=function(){return[{type:Ji}]};var La={};La.OnInit=0,La.OnDestroy=1,La.DoCheck=2,La.OnChanges=3,La.AfterContentInit=4,La.AfterContentChecked=5,La.AfterViewInit=6,La.AfterViewChecked=7,La[La.OnInit]="OnInit",La[La.OnDestroy]="OnDestroy",La[La.DoCheck]="DoCheck",La[La.OnChanges]="OnChanges",La[La.AfterContentInit]="AfterContentInit",La[La.AfterContentChecked]="AfterContentChecked",La[La.AfterViewInit]="AfterViewInit",La[La.AfterViewChecked]="AfterViewChecked";var Va=[La.OnInit,La.OnDestroy,La.DoCheck,La.OnChanges,La.AfterContentInit,La.AfterContentChecked,La.AfterViewInit,La.AfterViewChecked],Fa="*";t.Class=h,t.createPlatform=lt,t.assertPlatform=ht,t.destroyPlatform=ft,t.getPlatform=dt,t.PlatformRef=Zi,t.ApplicationRef=Ji,t.enableProdMode=ut,t.isDevMode=ct,t.createPlatformFactory=pt,t.NgProbeToken=Xi,t.APP_ID=pi,t.PACKAGE_ROOT_URL=yi,t.PLATFORM_INITIALIZER=fi,t.PLATFORM_ID=di,t.APP_BOOTSTRAP_LISTENER=mi,t.APP_INITIALIZER=ci,t.ApplicationInitStatus=li,t.DebugElement=Ss,t.DebugNode=Es,t.asNativeElements=wt,t.getDebugNode=St,t.Testability=Hi,t.TestabilityRegistry=qi,t.setTestabilityGetter=at,t.TRANSLATIONS=$s,t.TRANSLATIONS_FORMAT=Ks,t.LOCALE_ID=Ws,t.MissingTranslationStrategy=Qs,t.ApplicationModule=ja,t.wtfCreateScope=ji,t.wtfLeave=Li,t.wtfStartTimeRange=Vi,t.wtfEndTimeRange=Fi,t.Type=Qo,t.EventEmitter=Ui,t.ErrorHandler=Go,t.Sanitizer=Zs,t.SecurityContext=Xs,t.ANALYZE_FOR_ENTRY_COMPONENTS=ao,t.Attribute=uo,t.ContentChild=po,t.ContentChildren=lo,t.Query=co,t.ViewChild=fo,t.ViewChildren=ho,t.Component=go,t.Directive=vo,t.HostBinding=Co,t.HostListener=Eo,t.Input=bo,t.Output=wo,t.Pipe=_o,t.CUSTOM_ELEMENTS_SCHEMA=So,t.NO_ERRORS_SCHEMA=xo,t.NgModule=To,t.ViewEncapsulation=Po,t.Version=Oo,t.VERSION=Mo,t.forwardRef=g,t.resolveForwardRef=_,t.Injector=Uo,t.ReflectiveInjector=si,t.ResolvedReflectiveFactory=oi,t.ReflectiveKey=Wo,t.InjectionToken=Jn,t.OpaqueToken=Yn,t.Inject=Ro,t.Optional=ko,t.Injectable=Io,t.Self=No,t.SkipSelf=Do,t.Host=jo,t.NgZone=Bi,t.RenderComponentType=es,t.Renderer=ns,t.Renderer2=as,t.RendererFactory2=is,t.RendererStyleFlags2=ss,t.RootRenderer=os,t.COMPILER_OPTIONS=bi,t.Compiler=_i,t.CompilerFactory=wi,t.ModuleWithComponentFactories=gi,t.ComponentFactory=Ei,t.ComponentRef=Ci,t.ComponentFactoryResolver=Ti,t.ElementRef=us,t.NgModuleFactory=ki,t.NgModuleRef=Ri,t.NgModuleFactoryLoader=cs,t.getModuleFactory=gt,t.QueryList=ps,t.SystemJsNgModuleLoader=ys,t.SystemJsNgModuleLoaderConfig=ds,t.TemplateRef=vs,t.ViewContainerRef=gs,t.EmbeddedViewRef=ws,t.ViewRef=bs,t.ChangeDetectionStrategy=mo,t.ChangeDetectorRef=_s,t.DefaultIterableDiffer=Rs,t.IterableDiffers=Vs,t.KeyValueDiffers=Fs,t.SimpleChange=As,t.WrappedValue=Ts,t.platformCore=Gs,t.ɵALLOW_MULTIPLE_PLATFORMS=Qi,t.ɵAPP_ID_RANDOM_PROVIDER=hi,t.ɵValueUnwrapper=Ps,t.ɵdevModeEqual=Pt,t.ɵisListLikeIterable=At,t.ɵChangeDetectorStatus=yo,t.ɵisDefaultChangeDetectionStrategy=v,t.ɵConsole=vi,t.ɵERROR_COMPONENT_TYPE=Bo,t.ɵComponentFactory=Ei,t.ɵCodegenComponentFactoryResolver=Oi,t.ɵLIFECYCLE_HOOKS_VALUES=Va,t.ɵLifecycleHooks=La,t.ɵViewMetadata=Ao,t.ɵReflector=Jo,t.ɵreflector=ti,t.ɵReflectionCapabilities=Zo,t.ɵReflectorReader=Yo,t.ɵRenderDebugInfo=rs,t.ɵglobal=no,t.ɵlooseIdentical=u,t.ɵstringify=c,t.ɵmakeDecorator=f,t.ɵisObservable=X,t.ɵisPromise=Q,t.ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR=xa,t.ɵNgModuleInjector=Ni,t.ɵregisterModuleFactory=vt,t.ɵEMPTY_ARRAY=aa,t.ɵEMPTY_MAP=ua,t.ɵand=Ce,t.ɵccf=qe,t.ɵcrt=Kt,t.ɵdid=Ze,t.ɵeld=Ee,t.ɵelementEventFullName=oe,t.ɵgetComponentViewDefinitionFactory=ze,t.ɵinlineInterpolate=be,t.ɵinterpolate=_e,t.ɵncd=Ne,t.ɵnov=Qe,t.ɵpid=Ye,t.ɵprd=Je,t.ɵpad=vr,t.ɵpod=gr,t.ɵppd=yr,t.ɵqud=Er,t.ɵted=Or,t.ɵunv=$t,t.ɵvid=Nr,t.AUTO_STYLE=Fa,t.trigger=qn,t.animate=zn,t.group=Gn,t.sequence=Wn,t.style=$n,t.state=Kn,t.keyframes=Qn,t.transition=Xn,t.ɵba=jn,t.ɵbb=Ln,t.ɵbf=Bn,t.ɵbc=Vn,t.ɵbe=Un,t.ɵbd=Fn,t.ɵbg=Hn,t.ɵz=Dn,t.ɵo=Nn,t.ɵl=Rn,t.ɵm=kn,t.ɵn=In,t.ɵf=ts,t.ɵg=Z,t.ɵh=Hs,t.ɵi=qs,t.ɵj=Os,t.ɵk=Ds,t.ɵc=ai,t.ɵd=ei,t.ɵe=B,t.ɵp=Di,t.ɵr=rt,t.ɵq=et,t.ɵu=it,t.ɵs=nt,t.ɵt=ot,t.ɵa=m,t.ɵb=y,t.ɵw=tr,t.ɵx=Ys,Object.defineProperty(t,"__esModule",{value:!0})})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"rxjs/Observable":17,"rxjs/Subject":20,"rxjs/observable/merge":37,"rxjs/operator/share":53}],9:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/core"),e("rxjs/observable/forkJoin"),e("rxjs/observable/fromPromise"),e("rxjs/operator/map"),e("@angular/platform-browser")):"function"==typeof t&&t.amd?t(["exports","@angular/core","rxjs/observable/forkJoin","rxjs/observable/fromPromise","rxjs/operator/map","@angular/platform-browser"],i):i((o.ng=o.ng||{},o.ng.forms=o.ng.forms||{}),o.ng.core,o.Rx.Observable,o.Rx.Observable,o.Rx.Observable.prototype,o.ng.platformBrowser)}(this,function(t,e,r,n,o,i){"use strict";function s(t){return null==t||0===t.length}function a(t){return null!=t}function u(t){var r=e.ɵisPromise(t)?n.fromPromise(t):t;if(!e.ɵisObservable(r))throw new Error("Expected validator to return Promise or Observable.");return r}function c(t,e){return e.map(function(e){return e(t)})}function l(t,e){return e.map(function(e){return e(t)})}function p(t){var e=t.reduce(function(t,e){return null!=e?F({},t,e):t},{});return 0===Object.keys(e).length?null:e}function h(){var t=i.ɵgetDOM()?i.ɵgetDOM().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}function f(t){return t.validate?function(e){return t.validate(e)}:t}function d(t){return t.validate?function(e){return t.validate(e)}:t}function m(){throw new Error("unimplemented")}function y(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function v(t){return t.split(":")[0]}function g(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function _(t){return t.split(":")[0]}function b(t,e){return e.path.concat([t])}function w(t,e){t||x(e,"Cannot find control with"),e.valueAccessor||x(e,"No value accessor for form control with"),t.validator=q.compose([t.validator,e.validator]),t.asyncValidator=q.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),e.valueAccessor.registerOnChange(function(r){e.viewToModelUpdate(r),t.markAsDirty(),t.setValue(r,{emitModelToViewChange:!1})}),e.valueAccessor.registerOnTouched(function(){return t.markAsTouched()}),t.registerOnChange(function(t,r){e.valueAccessor.writeValue(t),r&&e.viewToModelUpdate(t)}),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(function(t){e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})}),e._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})})}function C(t,e){e.valueAccessor.registerOnChange(function(){return S(e)}),e.valueAccessor.registerOnTouched(function(){return S(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}function E(t,e){null==t&&x(e,"Cannot find control with"),t.validator=q.compose([t.validator,e.validator]),t.asyncValidator=q.composeAsync([t.asyncValidator,e.asyncValidator])}function S(t){return x(t,"There is no FormControl instance attached to form control element with")}function x(t,e){var r;throw r=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+r)}function T(t){return null!=t?q.compose(t.map(f)):null}function P(t){return null!=t?q.composeAsync(t.map(d)):null}function A(t,r){if(!t.hasOwnProperty("model"))return!1;var n=t.model;return n.isFirstChange()?!0:!e.ɵlooseIdentical(r,n.currentValue)}function O(t){return lt.some(function(e){return t.constructor===e})}function M(t,e){if(!e)return null;var r=void 0,n=void 0,o=void 0;return e.forEach(function(e){e.constructor===Q?r=e:O(e)?(n&&x(t,"More than one built-in value accessor matches form control with"),n=e):(o&&x(t,"More than one custom value accessor matches form control with"),o=e)}),o?o:n?n:r?r:(x(t,"No valid value accessor for form control with"),null)}function R(t,e,r){return null==e?null:(e instanceof Array||(e=e.split(r)),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof Ct?t.controls[e]||null:t instanceof Et?t.at(e)||null:null},t))}function k(t){return Array.isArray(t)?T(t):t||null}function I(t){return Array.isArray(t)?P(t):t||null}function N(t,e){var r=t.indexOf(e);r>-1&&t.splice(r,1)}function D(t){return!(t instanceof Ut||t instanceof Vt||t instanceof Ht)}var j=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},L=function(){function t(){}return t.prototype.control=function(){},Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return this.control?this.control.hasError(t,e):!1},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}(),V=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(L),F=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},U=new e.InjectionToken("NgValidators"),B=new e.InjectionToken("NgAsyncValidators"),H=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,q=function(){function t(){}return t.required=function(t){return s(t.value)?{required:!0}:null},t.requiredTrue=function(t){return t.value===!0?null:{required:!0}},t.email=function(t){return H.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if(s(e.value))return null;var r=e.value?e.value.length:0;return t>r?{minlength:{requiredLength:t,actualLength:r}}:null}},t.maxLength=function(t){return function(e){var r=e.value?e.value.length:0;return r>t?{maxlength:{requiredLength:t,actualLength:r}}:null}},t.pattern=function(e){if(!e)return t.nullValidator;var r,n;return"string"==typeof e?(n="^"+e+"$",r=new RegExp(n)):(n=e.toString(),r=e),function(t){if(s(t.value))return null;var e=t.value;return r.test(e)?null:{pattern:{requiredPattern:n,actualValue:e}}}},t.nullValidator=function(){return null},t.compose=function(t){if(!t)return null;var e=t.filter(a);return 0==e.length?null:function(t){return p(c(t,e))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(a);return 0==e.length?null:function(t){var n=l(t,e).map(u);return o.map.call(r.forkJoin(n),p)}},t}(),z=new e.InjectionToken("NgValueAccessor"),G={provide:z,useExisting:e.forwardRef(function(){return W}),multi:!0},W=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();W.decorators=[{type:e.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[G]}]}],W.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var $={provide:z,useExisting:e.forwardRef(function(){return Q}),multi:!0},K=new e.InjectionToken("CompositionEventMode"),Q=function(){function t(t,e,r){this._renderer=t,this._elementRef=e,this._compositionMode=r,this.onChange=function(){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!h())}return t.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},t.prototype._compositionStart=function(){this._composing=!0},t.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},t}();Q.decorators=[{type:e.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"_handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"_compositionStart()","(compositionend)":"_compositionEnd($event.target.value)"},providers:[$]}]}],Q.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[K]}]}]};var X={provide:z,useExisting:e.forwardRef(function(){return Z}),multi:!0},Z=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();Z.decorators=[{type:e.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[X]}]}],Z.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var Y=function(t){function e(){var e=t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return j(e,t),Object.defineProperty(e.prototype,"validator",{get:function(){return m()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return m()},enumerable:!0,configurable:!0}),e.prototype.viewToModelUpdate=function(){},e}(L),J={provide:z,useExisting:e.forwardRef(function(){return et}),multi:!0},tt=function(){function t(){this._accessors=[]}return t.prototype.add=function(t,e){this._accessors.push([t,e])},t.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},t.prototype.select=function(t){var e=this;this._accessors.forEach(function(r){e._isSameGroup(r,t)&&r[1]!==t&&r[1].fireUncheck(t.value)})},t.prototype._isSameGroup=function(t,e){return t[0].control?t[0]._parent===e._control._parent&&t[1].name===e.name:!1},t}();tt.decorators=[{type:e.Injectable}],tt.ctorParameters=function(){return[]};var et=function(){function t(t,e,r,n){this._renderer=t,this._elementRef=e,this._registry=r,this._injector=n,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.ngOnInit=function(){this._control=this._injector.get(Y),this._checkName(),this._registry.add(this._control,this)},t.prototype.ngOnDestroy=function(){this._registry.remove(this)},t.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",this._state)},t.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},t.prototype.fireUncheck=function(t){this.writeValue(t)},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},t}();et.decorators=[{type:e.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[J]}]}],et.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef},{type:tt},{type:e.Injector}]},et.propDecorators={name:[{type:e.Input}],formControlName:[{type:e.Input}],value:[{type:e.Input}]};var rt={provide:z,useExisting:e.forwardRef(function(){return nt}),multi:!0},nt=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"value",parseFloat(t))},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();nt.decorators=[{type:e.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[rt]}]}],nt.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var ot={provide:z,useExisting:e.forwardRef(function(){return it}),multi:!0},it=function(){function t(t,r){this._renderer=t,this._elementRef=r,this._optionMap=new Map,this._idCounter=0,this.onChange=function(){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setElementProperty(this._elementRef.nativeElement,"selectedIndex",-1);var r=y(e,t);this._renderer.setElementProperty(this._elementRef.nativeElement,"value",r)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(r){e.value=r,t(e._getOptionValue(r))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(){return(this._idCounter++).toString()},t.prototype._getOptionId=function(t){for(var e=0,r=Array.from(this._optionMap.keys());e<r.length;e++){var n=r[e];if(this._compareWith(this._optionMap.get(n),t))return n}return null},t.prototype._getOptionValue=function(t){var e=v(t);return this._optionMap.has(e)?this._optionMap.get(e):t},t}();it.decorators=[{type:e.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[ot]}]}],it.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]},it.propDecorators={compareWith:[{type:e.Input}]};var st=function(){function t(t,e,r){this._element=t,this._renderer=e,this._select=r,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(y(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap["delete"](this.id),this._select.writeValue(this._select.value))},t}();st.decorators=[{type:e.Directive,args:[{selector:"option"}]}],st.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer},{type:it,decorators:[{type:e.Optional},{type:e.Host}]}]},st.propDecorators={ngValue:[{type:e.Input,args:["ngValue"]}],value:[{type:e.Input,args:["value"]}]};var at={provide:z,useExisting:e.forwardRef(function(){return ut}),multi:!0},ut=function(){function t(t,r){this._renderer=t,this._elementRef=r,this._optionMap=new Map,this._idCounter=0,this.onChange=function(){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){var e=this;this.value=t;var r;if(Array.isArray(t)){var n=t.map(function(t){return e._getOptionId(t)});r=function(t,e){t._setSelected(n.indexOf(e.toString())>-1)}}else r=function(t){t._setSelected(!1)};this._optionMap.forEach(r)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(r){var n=[];if(r.hasOwnProperty("selectedOptions"))for(var o=r.selectedOptions,i=0;i<o.length;i++){var s=o.item(i),a=e._getOptionValue(s.value);n.push(a)}else for(var o=r.options,i=0;i<o.length;i++){var s=o.item(i);if(s.selected){var a=e._getOptionValue(s.value);n.push(a)}}e.value=n,t(n)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(t){var e=(this._idCounter++).toString();return this._optionMap.set(e,t),e},t.prototype._getOptionId=function(t){for(var e=0,r=Array.from(this._optionMap.keys());e<r.length;e++){var n=r[e];if(this._compareWith(this._optionMap.get(n)._value,t))return n}return null},t.prototype._getOptionValue=function(t){var e=_(t);
-
-return this._optionMap.has(e)?this._optionMap.get(e)._value:t},t}();ut.decorators=[{type:e.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[at]}]}],ut.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]},ut.propDecorators={compareWith:[{type:e.Input}]};var ct=function(){function t(t,e,r){this._element=t,this._renderer=e,this._select=r,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._value=t,this._setElementValue(g(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._select?(this._value=t,this._setElementValue(g(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},t.prototype._setSelected=function(t){this._renderer.setElementProperty(this._element.nativeElement,"selected",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap["delete"](this.id),this._select.writeValue(this._select.value))},t}();ct.decorators=[{type:e.Directive,args:[{selector:"option"}]}],ct.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer},{type:ut,decorators:[{type:e.Optional},{type:e.Host}]}]},ct.propDecorators={ngValue:[{type:e.Input,args:["ngValue"]}],value:[{type:e.Input,args:["value"]}]};var lt=[W,nt,Z,it,ut,et],pt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return T(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return P(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){},e}(V),ht=function(){function t(t){this._cd=t}return Object.defineProperty(t.prototype,"ngClassUntouched",{get:function(){return this._cd.control?this._cd.control.untouched:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassTouched",{get:function(){return this._cd.control?this._cd.control.touched:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPristine",{get:function(){return this._cd.control?this._cd.control.pristine:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassDirty",{get:function(){return this._cd.control?this._cd.control.dirty:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassValid",{get:function(){return this._cd.control?this._cd.control.valid:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassInvalid",{get:function(){return this._cd.control?this._cd.control.invalid:!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPending",{get:function(){return this._cd.control?this._cd.control.pending:!1},enumerable:!0,configurable:!0}),t}(),ft={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},dt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e}(ht);dt.decorators=[{type:e.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:ft}]}],dt.ctorParameters=function(){return[{type:Y,decorators:[{type:e.Self}]}]};var mt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e}(ht);mt.decorators=[{type:e.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:ft}]}],mt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Self}]}]};var yt="VALID",vt="INVALID",gt="PENDING",_t="DISABLED",bt=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this._pristine=!0,this._touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this._status===yt},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this._status===vt},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this._status==gt},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._status===_t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this._status!==_t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=k(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=I(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=!0,this._parent&&!e&&this._parent.markAsTouched({onlySelf:e})},t.prototype.markAsUntouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!e&&this._parent._updateTouched({onlySelf:e})},t.prototype.markAsDirty=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!1,this._parent&&!e&&this._parent.markAsDirty({onlySelf:e})},t.prototype.markAsPristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!0,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!e&&this._parent._updatePristine({onlySelf:e})},t.prototype.markAsPending=function(t){var e=(void 0===t?{}:t).onlySelf;this._status=gt,this._parent&&!e&&this._parent.markAsPending({onlySelf:e})},t.prototype.disable=function(t){var e=void 0===t?{}:t,r=e.onlySelf,n=e.emitEvent;this._status=_t,this._errors=null,this._forEachChild(function(t){t.disable({onlySelf:!0})}),this._updateValue(),n!==!1&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(!!r),this._onDisabledChange.forEach(function(t){return t(!0)})},t.prototype.enable=function(t){var e=void 0===t?{}:t,r=e.onlySelf,n=e.emitEvent;this._status=yt,this._forEachChild(function(t){t.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n}),this._updateAncestors(!!r),this._onDisabledChange.forEach(function(t){return t(!1)})},t.prototype._updateAncestors=function(t){this._parent&&!t&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.setValue=function(){},t.prototype.patchValue=function(){},t.prototype.reset=function(){},t.prototype.updateValueAndValidity=function(t){var e=void 0===t?{}:t,r=e.onlySelf,n=e.emitEvent;this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this._errors=this._runValidator(),this._status=this._calculateStatus(),(this._status===yt||this._status===gt)&&this._runAsyncValidator(n)),n!==!1&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._parent&&!r&&this._parent.updateValueAndValidity({onlySelf:r,emitEvent:n})},t.prototype._updateTreeValidity=function(t){var e=(void 0===t?{emitEvent:!0}:t).emitEvent;this._forEachChild(function(t){return t._updateTreeValidity({emitEvent:e})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e})},t.prototype._setInitialStatus=function(){this._status=this._allControlsDisabled()?_t:yt},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this._status=gt;var r=u(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe(function(r){return e.setErrors(r,{emitEvent:t})})}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){var r=(void 0===e?{}:e).emitEvent;this._errors=t,this._updateControlsErrors(r!==!1)},t.prototype.get=function(t){return R(this,t,".")},t.prototype.getError=function(t,e){var r=e?this.get(e):this;return r&&r._errors?r._errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this._status=this._calculateStatus(),t&&this._statusChanges.emit(this._status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this._valueChanges=new e.EventEmitter,this._statusChanges=new e.EventEmitter},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?_t:this._errors?vt:this._anyControlsHaveStatus(gt)?gt:this._anyControlsHaveStatus(vt)?vt:yt},t.prototype._updateValue=function(){},t.prototype._forEachChild=function(){},t.prototype._anyControls=function(){},t.prototype._allControlsDisabled=function(){},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},t.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},t.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},t.prototype._updatePristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!this._anyControlsDirty(),this._parent&&!e&&this._parent._updatePristine({onlySelf:e})},t.prototype._updateTouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=this._anyControlsTouched(),this._parent&&!e&&this._parent._updateTouched({onlySelf:e})},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t}(),wt=function(t){function e(e,r,n){void 0===e&&(e=null);var o=t.call(this,k(r),I(n))||this;return o._onChange=[],o._applyFormState(e),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o._initObservables(),o}return j(e,t),e.prototype.setValue=function(t,e){var r=this,n=void 0===e?{}:e,o=n.onlySelf,i=n.emitEvent,s=n.emitModelToViewChange,a=n.emitViewToModelChange;this._value=t,this._onChange.length&&s!==!1&&this._onChange.forEach(function(t){return t(r._value,a!==!1)}),this.updateValueAndValidity({onlySelf:o,emitEvent:i})},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null);var r=void 0===e?{}:e,n=r.onlySelf,o=r.emitEvent;this._applyFormState(t),this.markAsPristine({onlySelf:n}),this.markAsUntouched({onlySelf:n}),this.setValue(this._value,{onlySelf:n,emitEvent:o})},e.prototype._updateValue=function(){},e.prototype._anyControls=function(){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(){},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this._value=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=t},e}(bt),Ct=function(t){function e(e,r,n){var o=t.call(this,r||null,n||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return j(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var r=this,n=void 0===e?{}:e,o=n.onlySelf,i=n.emitEvent;this._checkAllValuesPresent(t),Object.keys(t).forEach(function(e){r._throwIfControlMissing(e),r.controls[e].setValue(t[e],{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:o,emitEvent:i})},e.prototype.patchValue=function(t,e){var r=this,n=void 0===e?{}:e,o=n.onlySelf,i=n.emitEvent;Object.keys(t).forEach(function(e){r.controls[e]&&r.controls[e].patchValue(t[e],{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:o,emitEvent:i})},e.prototype.reset=function(t,e){void 0===t&&(t={});var r=void 0===e?{}:e,n=r.onlySelf,o=r.emitEvent;this._forEachChild(function(e,r){e.reset(t[r],{onlySelf:!0,emitEvent:o})}),this.updateValueAndValidity({onlySelf:n,emitEvent:o}),this._updatePristine({onlySelf:n}),this._updateTouched({onlySelf:n})},e.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,r){return t[r]=e instanceof wt?e.value:e.getRawValue(),t})},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(r){return t(e.controls[r],r)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},e.prototype._updateValue=function(){this._value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,r=!1;return this._forEachChild(function(n,o){r=r||e.contains(o)&&t(n)}),r},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,r,n){return(r.enabled||t.disabled)&&(e[n]=r.value),e})},e.prototype._reduceChildren=function(t,e){var r=t;return this._forEachChild(function(t,n){r=e(r,t,n)}),r},e.prototype._allControlsDisabled=function(){for(var t=0,e=Object.keys(this.controls);t<e.length;t++){var r=e[t];if(this.controls[r].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,r){if(void 0===t[r])throw new Error("Must supply a value for form control with name: '"+r+"'.")})},e}(bt),Et=function(t){function e(e,r,n){var o=t.call(this,r||null,n||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return j(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var r=this,n=void 0===e?{}:e,o=n.onlySelf,i=n.emitEvent;this._checkAllValuesPresent(t),t.forEach(function(t,e){r._throwIfControlMissing(e),r.at(e).setValue(t,{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:o,emitEvent:i})},e.prototype.patchValue=function(t,e){var r=this,n=void 0===e?{}:e,o=n.onlySelf,i=n.emitEvent;t.forEach(function(t,e){r.at(e)&&r.at(e).patchValue(t,{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:o,emitEvent:i})},e.prototype.reset=function(t,e){void 0===t&&(t=[]);var r=void 0===e?{}:e,n=r.onlySelf,o=r.emitEvent;this._forEachChild(function(e,r){e.reset(t[r],{onlySelf:!0,emitEvent:o})}),this.updateValueAndValidity({onlySelf:n,emitEvent:o}),this._updatePristine({onlySelf:n}),this._updateTouched({onlySelf:n})},e.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof wt?t.value:t.getRawValue()})},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach(function(e,r){t(e,r)})},e.prototype._updateValue=function(){var t=this;this._value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},e.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,r){if(void 0===t[r])throw new Error("Must supply a value for form control at index: "+r+".")})},e.prototype._allControlsDisabled=function(){for(var t=0,e=this.controls;t<e.length;t++){var r=e[t];if(r.enabled)return!1}return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(bt),St={provide:V,useExisting:e.forwardRef(function(){return Tt})},xt=Promise.resolve(null),Tt=function(t){function r(r,n){var o=t.call(this)||this;return o._submitted=!1,o.ngSubmit=new e.EventEmitter,o.form=new Ct({},T(r),P(n)),o}return j(r,t),Object.defineProperty(r.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),r.prototype.addControl=function(t){var e=this;xt.then(function(){var r=e._findContainer(t.path);t._control=r.registerControl(t.name,t.control),w(t.control,t),t.control.updateValueAndValidity({emitEvent:!1})})},r.prototype.getControl=function(t){return this.form.get(t.path)},r.prototype.removeControl=function(t){var e=this;xt.then(function(){var r=e._findContainer(t.path);r&&r.removeControl(t.name)})},r.prototype.addFormGroup=function(t){var e=this;xt.then(function(){var r=e._findContainer(t.path),n=new Ct({});E(n,t),r.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})},r.prototype.removeFormGroup=function(t){var e=this;xt.then(function(){var r=e._findContainer(t.path);r&&r.removeControl(t.name)})},r.prototype.getFormGroup=function(t){return this.form.get(t.path)},r.prototype.updateModel=function(t,e){var r=this;xt.then(function(){var n=r.form.get(t.path);n.setValue(e)})},r.prototype.setValue=function(t){this.control.setValue(t)},r.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},r.prototype.onReset=function(){this.resetForm()},r.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},r.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},r}(V);Tt.decorators=[{type:e.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[St],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],Tt.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]}]};var Pt={formControlName:'\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',formGroupName:'\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',formArrayName:'\n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });',ngModelGroup:'\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',ngModelWithFormGroup:'\n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  '},At=function(){function t(){}return t.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+Pt.formControlName+"\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      "+Pt.ngModelWithFormGroup)},t.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+Pt.formGroupName+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+Pt.ngModelGroup)},t.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},t.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+Pt.formGroupName+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+Pt.ngModelGroup)},t}(),Ot={provide:V,useExisting:e.forwardRef(function(){return Mt})},Mt=function(t){function e(e,r,n){var o=t.call(this)||this;return o._parent=e,o._validators=r,o._asyncValidators=n,o}return j(e,t),e.prototype._checkParentType=function(){this._parent instanceof e||this._parent instanceof Tt||At.modelGroupParentException()},e}(pt);Mt.decorators=[{type:e.Directive,args:[{selector:"[ngModelGroup]",providers:[Ot],exportAs:"ngModelGroup"}]}],Mt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]}]},Mt.propDecorators={name:[{type:e.Input,args:["ngModelGroup"]}]};var Rt={provide:Y,useExisting:e.forwardRef(function(){return It})},kt=Promise.resolve(null),It=function(t){function r(r,n,o,i){var s=t.call(this)||this;return s._control=new wt,s._registered=!1,s.update=new e.EventEmitter,s._parent=r,s._rawValidators=n||[],s._rawAsyncValidators=o||[],s.valueAccessor=M(s,i),s}return j(r,t),r.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),A(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},r.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(r.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"path",{get:function(){return this._parent?b(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),r.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},r.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},r.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},r.prototype._setUpStandalone=function(){w(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},r.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},r.prototype._checkParentType=function(){!(this._parent instanceof Mt)&&this._parent instanceof pt?At.formGroupNameException():this._parent instanceof Mt||this._parent instanceof Tt||At.modelParentException()},r.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||At.missingNameException()},r.prototype._updateValue=function(t){var e=this;kt.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},r.prototype._updateDisabled=function(t){var e=this,r=t.isDisabled.currentValue,n=""===r||r&&"false"!==r;kt.then(function(){n&&!e.control.disabled?e.control.disable():!n&&e.control.disabled&&e.control.enable()})},r}(Y);It.decorators=[{type:e.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[Rt],exportAs:"ngModel"}]}],It.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},It.propDecorators={name:[{type:e.Input}],isDisabled:[{type:e.Input,args:["disabled"]}],model:[{type:e.Input,args:["ngModel"]}],options:[{type:e.Input,args:["ngModelOptions"]}],update:[{type:e.Output,args:["ngModelChange"]}]};var Nt=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Pt.formControlName)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+Pt.formGroupName+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+Pt.ngModelGroup)},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+Pt.formControlName)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Pt.formGroupName)},t.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        "+Pt.formArrayName)},t.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},t}(),Dt={provide:Y,useExisting:e.forwardRef(function(){return jt})},jt=function(t){function r(r,n,o){var i=t.call(this)||this;return i.update=new e.EventEmitter,i._rawValidators=r||[],i._rawAsyncValidators=n||[],i.valueAccessor=M(i,o),i}
-return j(r,t),Object.defineProperty(r.prototype,"isDisabled",{set:function(){Nt.disabledAttrWarning()},enumerable:!0,configurable:!0}),r.prototype.ngOnChanges=function(t){this._isControlChanged(t)&&(w(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),A(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(r.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),r.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},r.prototype._isControlChanged=function(t){return t.hasOwnProperty("form")},r}(Y);jt.decorators=[{type:e.Directive,args:[{selector:"[formControl]",providers:[Dt],exportAs:"ngForm"}]}],jt.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},jt.propDecorators={form:[{type:e.Input,args:["formControl"]}],model:[{type:e.Input,args:["ngModel"]}],update:[{type:e.Output,args:["ngModelChange"]}],isDisabled:[{type:e.Input,args:["disabled"]}]};var Lt={provide:V,useExisting:e.forwardRef(function(){return Vt})},Vt=function(t){function r(r,n){var o=t.call(this)||this;return o._validators=r,o._asyncValidators=n,o._submitted=!1,o.directives=[],o.form=null,o.ngSubmit=new e.EventEmitter,o}return j(r,t),r.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(r.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),r.prototype.addControl=function(t){var e=this.form.get(t.path);return w(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},r.prototype.getControl=function(t){return this.form.get(t.path)},r.prototype.removeControl=function(t){N(this.directives,t)},r.prototype.addFormGroup=function(t){var e=this.form.get(t.path);E(e,t),e.updateValueAndValidity({emitEvent:!1})},r.prototype.removeFormGroup=function(){},r.prototype.getFormGroup=function(t){return this.form.get(t.path)},r.prototype.addFormArray=function(t){var e=this.form.get(t.path);E(e,t),e.updateValueAndValidity({emitEvent:!1})},r.prototype.removeFormArray=function(){},r.prototype.getFormArray=function(t){return this.form.get(t.path)},r.prototype.updateModel=function(t,e){var r=this.form.get(t.path);r.setValue(e)},r.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},r.prototype.onReset=function(){this.resetForm()},r.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},r.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var r=t.form.get(e.path);e._control!==r&&(C(e._control,e),r&&w(r,e),e._control=r)}),this.form._updateTreeValidity({emitEvent:!1})},r.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},r.prototype._updateValidators=function(){var t=T(this._validators);this.form.validator=q.compose([this.form.validator,t]);var e=P(this._asyncValidators);this.form.asyncValidator=q.composeAsync([this.form.asyncValidator,e])},r.prototype._checkFormPresent=function(){this.form||Nt.missingFormException()},r}(V);Vt.decorators=[{type:e.Directive,args:[{selector:"[formGroup]",providers:[Lt],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],Vt.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]}]},Vt.propDecorators={form:[{type:e.Input,args:["formGroup"]}],ngSubmit:[{type:e.Output}]};var Ft={provide:V,useExisting:e.forwardRef(function(){return Ut})},Ut=function(t){function e(e,r,n){var o=t.call(this)||this;return o._parent=e,o._validators=r,o._asyncValidators=n,o}return j(e,t),e.prototype._checkParentType=function(){D(this._parent)&&Nt.groupParentException()},e}(pt);Ut.decorators=[{type:e.Directive,args:[{selector:"[formGroupName]",providers:[Ft]}]}],Ut.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]}]},Ut.propDecorators={name:[{type:e.Input,args:["formGroupName"]}]};var Bt={provide:V,useExisting:e.forwardRef(function(){return Ht})},Ht=function(t){function e(e,r,n){var o=t.call(this)||this;return o._parent=e,o._validators=r,o._asyncValidators=n,o}return j(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return T(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return P(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){D(this._parent)&&Nt.arrayParentException()},e}(V);Ht.decorators=[{type:e.Directive,args:[{selector:"[formArrayName]",providers:[Bt]}]}],Ht.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]}]},Ht.propDecorators={name:[{type:e.Input,args:["formArrayName"]}]};var qt={provide:Y,useExisting:e.forwardRef(function(){return zt})},zt=function(t){function r(r,n,o,i){var s=t.call(this)||this;return s._added=!1,s.update=new e.EventEmitter,s._parent=r,s._rawValidators=n||[],s._rawAsyncValidators=o||[],s.valueAccessor=M(s,i),s}return j(r,t),Object.defineProperty(r.prototype,"isDisabled",{set:function(){Nt.disabledAttrWarning()},enumerable:!0,configurable:!0}),r.prototype.ngOnChanges=function(t){this._added||this._setUpControl(),A(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},r.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},r.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(r.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),r.prototype._checkParentType=function(){!(this._parent instanceof Ut)&&this._parent instanceof pt?Nt.ngModelGroupException():this._parent instanceof Ut||this._parent instanceof Vt||this._parent instanceof Ht||Nt.controlParentException()},r.prototype._setUpControl=function(){this._checkParentType(),this._control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},r}(Y);zt.decorators=[{type:e.Directive,args:[{selector:"[formControlName]",providers:[qt]}]}],zt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[B]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},zt.propDecorators={name:[{type:e.Input,args:["formControlName"]}],model:[{type:e.Input,args:["ngModel"]}],update:[{type:e.Output,args:["ngModelChange"]}],isDisabled:[{type:e.Input,args:["disabled"]}]};var Gt={provide:U,useExisting:e.forwardRef(function(){return $t}),multi:!0},Wt={provide:U,useExisting:e.forwardRef(function(){return Kt}),multi:!0},$t=function(){function t(){}return Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&t!==!1&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this.required?q.required(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}();$t.decorators=[{type:e.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[Gt],host:{"[attr.required]":'required ? "" : null'}}]}],$t.ctorParameters=function(){return[]},$t.propDecorators={required:[{type:e.Input}]};var Kt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.validate=function(t){return this.required?q.requiredTrue(t):null},e}($t);Kt.decorators=[{type:e.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[Wt],host:{"[attr.required]":'required ? "" : null'}}]}],Kt.ctorParameters=function(){return[]};var Qt={provide:U,useExisting:e.forwardRef(function(){return Xt}),multi:!0},Xt=function(){function t(){}return Object.defineProperty(t.prototype,"email",{set:function(t){this._enabled=""===t||t===!0||"true"===t,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this._enabled?q.email(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}();Xt.decorators=[{type:e.Directive,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[Qt]}]}],Xt.ctorParameters=function(){return[]},Xt.propDecorators={email:[{type:e.Input}]};var Zt={provide:U,useExisting:e.forwardRef(function(){return Yt}),multi:!0},Yt=function(){function t(){}return t.prototype.ngOnChanges=function(t){"minlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null==this.minlength?null:this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.minLength(parseInt(this.minlength,10))},t}();Yt.decorators=[{type:e.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[Zt],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],Yt.ctorParameters=function(){return[]},Yt.propDecorators={minlength:[{type:e.Input}]};var Jt={provide:U,useExisting:e.forwardRef(function(){return te}),multi:!0},te=function(){function t(){}return t.prototype.ngOnChanges=function(t){"maxlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null!=this.maxlength?this._validator(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.maxLength(parseInt(this.maxlength,10))},t}();te.decorators=[{type:e.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[Jt],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],te.ctorParameters=function(){return[]},te.propDecorators={maxlength:[{type:e.Input}]};var ee={provide:U,useExisting:e.forwardRef(function(){return re}),multi:!0},re=function(){function t(){}return t.prototype.ngOnChanges=function(t){"pattern"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.pattern(this.pattern)},t}();re.decorators=[{type:e.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[ee],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],re.ctorParameters=function(){return[]},re.propDecorators={pattern:[{type:e.Input}]};var ne=function(){function t(){}return t.prototype.group=function(t,e){void 0===e&&(e=null);var r=this._reduceControls(t),n=null!=e?e.validator:null,o=null!=e?e.asyncValidator:null;return new Ct(r,n,o)},t.prototype.control=function(t,e,r){return new wt(t,e,r)},t.prototype.array=function(t,e,r){var n=this,o=t.map(function(t){return n._createControl(t)});return new Et(o,e,r)},t.prototype._reduceControls=function(t){var e=this,r={};return Object.keys(t).forEach(function(n){r[n]=e._createControl(t[n])}),r},t.prototype._createControl=function(t){if(t instanceof wt||t instanceof Ct||t instanceof Et)return t;if(Array.isArray(t)){var e=t[0],r=t.length>1?t[1]:null,n=t.length>2?t[2]:null;return this.control(e,r,n)}return this.control(t)},t}();ne.decorators=[{type:e.Injectable}],ne.ctorParameters=function(){return[]};var oe=new e.Version("4.1.0"),ie=function(){function t(){}return t}();ie.decorators=[{type:e.Directive,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],ie.ctorParameters=function(){return[]};var se=[ie,st,ct,Q,Z,nt,W,it,ut,et,dt,mt,$t,Yt,te,re,Kt,Xt],ae=[It,Mt,Tt],ue=[jt,Vt,zt,Ut,Ht],ce=function(){function t(){}return t}();ce.decorators=[{type:e.NgModule,args:[{declarations:se,exports:se}]}],ce.ctorParameters=function(){return[]};var le=function(){function t(){}return t}();le.decorators=[{type:e.NgModule,args:[{declarations:ae,providers:[tt],exports:[ce,ae]}]}],le.ctorParameters=function(){return[]};var pe=function(){function t(){}return t}();pe.decorators=[{type:e.NgModule,args:[{declarations:[ue],providers:[ne,tt],exports:[ce,ue]}]}],pe.ctorParameters=function(){return[]},t.AbstractControlDirective=L,t.AbstractFormGroupDirective=pt,t.CheckboxControlValueAccessor=W,t.ControlContainer=V,t.NG_VALUE_ACCESSOR=z,t.COMPOSITION_BUFFER_MODE=K,t.DefaultValueAccessor=Q,t.NgControl=Y,t.NgControlStatus=dt,t.NgControlStatusGroup=mt,t.NgForm=Tt,t.NgModel=It,t.NgModelGroup=Mt,t.RadioControlValueAccessor=et,t.FormControlDirective=jt,t.FormControlName=zt,t.FormGroupDirective=Vt,t.FormArrayName=Ht,t.FormGroupName=Ut,t.NgSelectOption=st,t.SelectControlValueAccessor=it,t.SelectMultipleControlValueAccessor=ut,t.CheckboxRequiredValidator=Kt,t.EmailValidator=Xt,t.MaxLengthValidator=te,t.MinLengthValidator=Yt,t.PatternValidator=re,t.RequiredValidator=$t,t.FormBuilder=ne,t.AbstractControl=bt,t.FormArray=Et,t.FormControl=wt,t.FormGroup=Ct,t.NG_ASYNC_VALIDATORS=B,t.NG_VALIDATORS=U,t.Validators=q,t.VERSION=oe,t.FormsModule=le,t.ReactiveFormsModule=pe,t.ɵba=ce,t.ɵz=ue,t.ɵx=se,t.ɵy=ae,t.ɵa=G,t.ɵb=$,t.ɵc=ht,t.ɵd=ft,t.ɵe=St,t.ɵf=Rt,t.ɵg=Ot,t.ɵbf=ie,t.ɵbb=X,t.ɵbc=Z,t.ɵh=J,t.ɵi=tt,t.ɵbd=rt,t.ɵbe=nt,t.ɵj=Dt,t.ɵk=qt,t.ɵl=Lt,t.ɵn=Bt,t.ɵm=Ft,t.ɵo=ot,t.ɵq=ct,t.ɵp=at,t.ɵs=Wt,t.ɵt=Qt,t.ɵv=Jt,t.ɵu=Zt,t.ɵw=ee,t.ɵr=Gt,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8,"@angular/platform-browser":12,"rxjs/observable/forkJoin":34,"rxjs/observable/fromPromise":36,"rxjs/operator/map":46}],10:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/core"),e("rxjs/Observable"),e("@angular/platform-browser")):"function"==typeof t&&t.amd?t(["exports","@angular/core","rxjs/Observable","@angular/platform-browser"],i):i((o.ng=o.ng||{},o.ng.http=o.ng.http||{}),o.ng.core,o.Rx,o.ng.platformBrowser)}(this,function(t,e,r,n){"use strict";function o(t){if("string"!=typeof t)return t;switch(t.toUpperCase()){case"GET":return v.Get;case"POST":return v.Post;case"PUT":return v.Put;case"DELETE":return v.Delete;case"OPTIONS":return v.Options;case"HEAD":return v.Head;case"PATCH":return v.Patch}throw new Error('Invalid request method. The method "'+t+'" is not supported.')}function i(t){return"responseURL"in t?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}function s(t){for(var e=new Uint16Array(t.length),r=0,n=t.length;n>r;r++)e[r]=t.charCodeAt(r);return e.buffer}function a(t){void 0===t&&(t="");var e=new Map;if(t.length>0){var r=t.split("&");r.forEach(function(t){var r=t.indexOf("="),n=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)],o=n[0],i=n[1],s=e.get(o)||[];s.push(i),e.set(o,s)})}return e}function u(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}function c(){var t="object"==typeof window?window:{};return null===D&&(D=t[N]={}),D}function l(t,e){return t.createConnection(e).response}function p(t,e,r,n){var o=t;return o.merge(e?new $({method:e.method||r,url:e.url||n,search:e.search,params:e.params,headers:e.headers,body:e.body,withCredentials:e.withCredentials,responseType:e.responseType}):new $({method:r,url:n}))}function h(){return new G}function f(t,e){return new et(t,e)}function d(t,e){return new rt(t,e)}var m=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},y=function(){function t(){}return t.prototype.build=function(){return new XMLHttpRequest},t}();y.decorators=[{type:e.Injectable}],y.ctorParameters=function(){return[]};var v={};v.Get=0,v.Post=1,v.Put=2,v.Delete=3,v.Options=4,v.Head=5,v.Patch=6,v[v.Get]="Get",v[v.Post]="Post",v[v.Put]="Put",v[v.Delete]="Delete",v[v.Options]="Options",v[v.Head]="Head",v[v.Patch]="Patch";var g={};g.Unsent=0,g.Open=1,g.HeadersReceived=2,g.Loading=3,g.Done=4,g.Cancelled=5,g[g.Unsent]="Unsent",g[g.Open]="Open",g[g.HeadersReceived]="HeadersReceived",g[g.Loading]="Loading",g[g.Done]="Done",g[g.Cancelled]="Cancelled";var _={};_.Basic=0,_.Cors=1,_.Default=2,_.Error=3,_.Opaque=4,_[_.Basic]="Basic",_[_.Cors]="Cors",_[_.Default]="Default",_[_.Error]="Error",_[_.Opaque]="Opaque";var b={};b.NONE=0,b.JSON=1,b.FORM=2,b.FORM_DATA=3,b.TEXT=4,b.BLOB=5,b.ARRAY_BUFFER=6,b[b.NONE]="NONE",b[b.JSON]="JSON",b[b.FORM]="FORM",b[b.FORM_DATA]="FORM_DATA",b[b.TEXT]="TEXT",b[b.BLOB]="BLOB",b[b.ARRAY_BUFFER]="ARRAY_BUFFER";var w={};w.Text=0,w.Json=1,w.ArrayBuffer=2,w.Blob=3,w[w.Text]="Text",w[w.Json]="Json",w[w.ArrayBuffer]="ArrayBuffer",w[w.Blob]="Blob";var C=function(){function t(e){var r=this;return this._headers=new Map,this._normalizedNames=new Map,e?e instanceof t?void e.forEach(function(t,e){t.forEach(function(t){return r.append(e,t)})}):void Object.keys(e).forEach(function(t){var n=Array.isArray(e[t])?e[t]:[e[t]];r["delete"](t),n.forEach(function(e){return r.append(t,e)})}):void 0}return t.fromResponseHeaderString=function(e){var r=new t;return e.split("\n").forEach(function(t){var e=t.indexOf(":");if(e>0){var n=t.slice(0,e),o=t.slice(e+1).trim();r.set(n,o)}}),r},t.prototype.append=function(t,e){var r=this.getAll(t);null===r?this.set(t,e):r.push(e)},t.prototype["delete"]=function(t){var e=t.toLowerCase();this._normalizedNames["delete"](e),this._headers["delete"](e)},t.prototype.forEach=function(t){var e=this;this._headers.forEach(function(r,n){return t(r,e._normalizedNames.get(n),e._headers)})},t.prototype.get=function(t){var e=this.getAll(t);return null===e?null:e.length>0?e[0]:null},t.prototype.has=function(t){return this._headers.has(t.toLowerCase())},t.prototype.keys=function(){return Array.from(this._normalizedNames.values())},t.prototype.set=function(t,e){Array.isArray(e)?e.length&&this._headers.set(t.toLowerCase(),[e.join(",")]):this._headers.set(t.toLowerCase(),[e]),this.mayBeSetNormalizedName(t)},t.prototype.values=function(){return Array.from(this._headers.values())},t.prototype.toJSON=function(){var t=this,e={};return this._headers.forEach(function(r,n){var o=[];r.forEach(function(t){return o.push.apply(o,t.split(","))}),e[t._normalizedNames.get(n)]=o}),e},t.prototype.getAll=function(t){return this.has(t)?this._headers.get(t.toLowerCase())||null:null},t.prototype.entries=function(){throw new Error('"entries" method is not implemented on Headers class')},t.prototype.mayBeSetNormalizedName=function(t){var e=t.toLowerCase();this._normalizedNames.has(e)||this._normalizedNames.set(e,t)},t}(),E=function(){function t(t){var e=void 0===t?{}:t,r=e.body,n=e.status,o=e.headers,i=e.statusText,s=e.type,a=e.url;this.body=null!=r?r:null,this.status=null!=n?n:null,this.headers=null!=o?o:null,this.statusText=null!=i?i:null,this.type=null!=s?s:null,this.url=null!=a?a:null}return t.prototype.merge=function(e){return new t({body:e&&null!=e.body?e.body:this.body,status:e&&null!=e.status?e.status:this.status,headers:e&&null!=e.headers?e.headers:this.headers,statusText:e&&null!=e.statusText?e.statusText:this.statusText,type:e&&null!=e.type?e.type:this.type,url:e&&null!=e.url?e.url:this.url})},t}(),S=function(t){function e(){return t.call(this,{status:200,statusText:"Ok",type:_.Default,headers:new C})||this}return m(e,t),e}(E);S.decorators=[{type:e.Injectable}],S.ctorParameters=function(){return[]};var x=function(){function t(){}return t.prototype.createConnection=function(){},t}(),T=function(){function t(){}return t}(),P=function(){function t(){}return t.prototype.configureRequest=function(){},t}(),A=function(t){return t>=200&&300>t},O=function(){function t(){}return t.prototype.encodeKey=function(t){return u(t)},t.prototype.encodeValue=function(t){return u(t)},t}(),M=function(){function t(t,e){void 0===t&&(t=""),void 0===e&&(e=new O),this.rawParams=t,this.queryEncoder=e,this.paramsMap=a(t)}return t.prototype.clone=function(){var e=new t("",this.queryEncoder);return e.appendAll(this),e},t.prototype.has=function(t){return this.paramsMap.has(t)},t.prototype.get=function(t){var e=this.paramsMap.get(t);return Array.isArray(e)?e[0]:null},t.prototype.getAll=function(t){return this.paramsMap.get(t)||[]},t.prototype.set=function(t,e){if(void 0===e||null===e)return void this["delete"](t);var r=this.paramsMap.get(t)||[];r.length=0,r.push(e),this.paramsMap.set(t,r)},t.prototype.setAll=function(t){var e=this;t.paramsMap.forEach(function(t,r){var n=e.paramsMap.get(r)||[];n.length=0,n.push(t[0]),e.paramsMap.set(r,n)})},t.prototype.append=function(t,e){if(void 0!==e&&null!==e){var r=this.paramsMap.get(t)||[];r.push(e),this.paramsMap.set(t,r)}},t.prototype.appendAll=function(t){var e=this;t.paramsMap.forEach(function(t,r){for(var n=e.paramsMap.get(r)||[],o=0;o<t.length;++o)n.push(t[o]);e.paramsMap.set(r,n)})},t.prototype.replaceAll=function(t){var e=this;t.paramsMap.forEach(function(t,r){var n=e.paramsMap.get(r)||[];n.length=0;for(var o=0;o<t.length;++o)n.push(t[o]);e.paramsMap.set(r,n)})},t.prototype.toString=function(){var t=this,e=[];return this.paramsMap.forEach(function(r,n){r.forEach(function(r){return e.push(t.queryEncoder.encodeKey(n)+"="+t.queryEncoder.encodeValue(r))})}),e.join("&")},t.prototype["delete"]=function(t){this.paramsMap["delete"](t)},t}(),R=function(){function t(){}return t.prototype.json=function(){return"string"==typeof this._body?JSON.parse(this._body):this._body instanceof ArrayBuffer?JSON.parse(this.text()):this._body},t.prototype.text=function(){return this._body instanceof M?this._body.toString():this._body instanceof ArrayBuffer?String.fromCharCode.apply(null,new Uint16Array(this._body)):null==this._body?"":"object"==typeof this._body?JSON.stringify(this._body,null,2):this._body.toString()},t.prototype.arrayBuffer=function(){return this._body instanceof ArrayBuffer?this._body:s(this.text())},t.prototype.blob=function(){if(this._body instanceof Blob)return this._body;if(this._body instanceof ArrayBuffer)return new Blob([this._body]);throw new Error("The request body isn't either a blob or an array buffer")},t}(),k=function(t){function e(e){var r=t.call(this)||this;return r._body=e.body,r.status=e.status,r.ok=r.status>=200&&r.status<=299,r.statusText=e.statusText,r.headers=e.headers,r.type=e.type,r.url=e.url,r}return m(e,t),e.prototype.toString=function(){return"Response with status: "+this.status+" "+this.statusText+" for URL: "+this.url},e}(R),I=0,N="__ng_jsonp__",D=null,j=function(){function t(){}return t.prototype.build=function(t){var e=document.createElement("script");return e.src=t,e},t.prototype.nextRequestID=function(){return"__req"+I++},t.prototype.requestCallback=function(t){return N+"."+t+".finished"},t.prototype.exposeConnection=function(t,e){var r=c();r[t]=e},t.prototype.removeConnection=function(t){var e=c();e[t]=null},t.prototype.send=function(t){document.body.appendChild(t)},t.prototype.cleanup=function(t){t.parentNode&&t.parentNode.removeChild(t)},t}();j.decorators=[{type:e.Injectable}],j.ctorParameters=function(){return[]};var L="JSONP injected script did not invoke callback.",V="JSONP requests must use GET request method.",F=function(){function t(){}return t.prototype.finished=function(){},t}(),U=function(t){function e(e,n,o){var i=t.call(this)||this;if(i._dom=n,i.baseResponseOptions=o,i._finished=!1,e.method!==v.Get)throw new TypeError(V);return i.request=e,i.response=new r.Observable(function(t){i.readyState=g.Loading;var r=i._id=n.nextRequestID();n.exposeConnection(r,i);var s=n.requestCallback(i._id),a=e.url;a.indexOf("=JSONP_CALLBACK&")>-1?a=a.replace("=JSONP_CALLBACK&","="+s+"&"):a.lastIndexOf("=JSONP_CALLBACK")===a.length-"=JSONP_CALLBACK".length&&(a=a.substring(0,a.length-"=JSONP_CALLBACK".length)+("="+s));var u=i._script=n.build(a),c=function(){if(i.readyState!==g.Cancelled){if(i.readyState=g.Done,n.cleanup(u),!i._finished){var e=new E({body:L,type:_.Error,url:a});return o&&(e=o.merge(e)),void t.error(new k(e))}var r=new E({body:i._responseData,url:a});i.baseResponseOptions&&(r=i.baseResponseOptions.merge(r)),t.next(new k(r)),t.complete()}},l=function(e){if(i.readyState!==g.Cancelled){i.readyState=g.Done,n.cleanup(u);var r=new E({body:e.message,type:_.Error});o&&(r=o.merge(r)),t.error(new k(r))}};return u.addEventListener("load",c),u.addEventListener("error",l),n.send(u),function(){i.readyState=g.Cancelled,u.removeEventListener("load",c),u.removeEventListener("error",l),i._dom.cleanup(u)}}),i}return m(e,t),e.prototype.finished=function(t){this._finished=!0,this._dom.removeConnection(this._id),this.readyState!==g.Cancelled&&(this._responseData=t)},e}(F),B=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return m(e,t),e}(x),H=function(t){function e(e,r){var n=t.call(this)||this;return n._browserJSONP=e,n._baseResponseOptions=r,n}return m(e,t),e.prototype.createConnection=function(t){return new U(t,this._browserJSONP,this._baseResponseOptions)},e}(B);H.decorators=[{type:e.Injectable}],H.ctorParameters=function(){return[{type:j},{type:E}]};var q=/^\)\]\}',?\n/,z=function(){function t(t,e,n){var o=this;this.request=t,this.response=new r.Observable(function(r){var s=e.build();s.open(v[t.method].toUpperCase(),t.url),null!=t.withCredentials&&(s.withCredentials=t.withCredentials);var a=function(){var e=1223===s.status?204:s.status,o=null;204!==e&&(o="undefined"==typeof s.response?s.responseText:s.response,"string"==typeof o&&(o=o.replace(q,""))),0===e&&(e=o?200:0);var a=C.fromResponseHeaderString(s.getAllResponseHeaders()),u=i(s)||t.url,c=s.statusText||"OK",l=new E({body:o,status:e,headers:a,statusText:c,url:u});null!=n&&(l=n.merge(l));var p=new k(l);return p.ok=A(e),p.ok?(r.next(p),void r.complete()):void r.error(p)},u=function(t){var e=new E({body:t,type:_.Error,status:s.status,statusText:s.statusText});null!=n&&(e=n.merge(e)),r.error(new k(e))};if(o.setDetectedContentType(t,s),null==t.headers&&(t.headers=new C),t.headers.has("Accept")||t.headers.append("Accept","application/json, text/plain, */*"),t.headers.forEach(function(t,e){return s.setRequestHeader(e,t.join(","))}),null!=t.responseType&&null!=s.responseType)switch(t.responseType){case w.ArrayBuffer:s.responseType="arraybuffer";break;case w.Json:s.responseType="json";break;case w.Text:s.responseType="text";break;case w.Blob:s.responseType="blob";break;default:throw new Error("The selected responseType is not supported")}return s.addEventListener("load",a),s.addEventListener("error",u),s.send(o.request.getBody()),function(){s.removeEventListener("load",a),s.removeEventListener("error",u),s.abort()}})}return t.prototype.setDetectedContentType=function(t,e){if(null==t.headers||null==t.headers.get("Content-Type"))switch(t.contentType){case b.NONE:break;case b.JSON:e.setRequestHeader("content-type","application/json");break;case b.FORM:e.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=UTF-8");break;case b.TEXT:e.setRequestHeader("content-type","text/plain");break;case b.BLOB:var r=t.blob();r.type&&e.setRequestHeader("content-type",r.type)}},t}(),G=function(){function t(t,e){void 0===t&&(t="XSRF-TOKEN"),void 0===e&&(e="X-XSRF-TOKEN"),this._cookieName=t,this._headerName=e}return t.prototype.configureRequest=function(t){var e=n.ɵgetDOM().getCookie(this._cookieName);e&&t.headers.set(this._headerName,e)},t}(),W=function(){function t(t,e,r){this._browserXHR=t,this._baseResponseOptions=e,this._xsrfStrategy=r}return t.prototype.createConnection=function(t){return this._xsrfStrategy.configureRequest(t),new z(t,this._browserXHR,this._baseResponseOptions)},t}();W.decorators=[{type:e.Injectable}],W.ctorParameters=function(){return[{type:y},{type:E},{type:P}]};var $=function(){function t(t){var e=void 0===t?{}:t,r=e.method,n=e.headers,i=e.body,s=e.url,a=e.search,u=e.params,c=e.withCredentials,l=e.responseType;this.method=null!=r?o(r):null,this.headers=null!=n?n:null,this.body=null!=i?i:null,this.url=null!=s?s:null,this.params=this._mergeSearchParams(u||a),this.withCredentials=null!=c?c:null,this.responseType=null!=l?l:null}return Object.defineProperty(t.prototype,"search",{get:function(){return this.params},set:function(t){this.params=t},enumerable:!0,configurable:!0}),t.prototype.merge=function(e){return new t({method:e&&null!=e.method?e.method:this.method,headers:e&&null!=e.headers?e.headers:new C(this.headers),body:e&&null!=e.body?e.body:this.body,url:e&&null!=e.url?e.url:this.url,params:e&&this._mergeSearchParams(e.params||e.search),withCredentials:e&&null!=e.withCredentials?e.withCredentials:this.withCredentials,responseType:e&&null!=e.responseType?e.responseType:this.responseType})},t.prototype._mergeSearchParams=function(t){return t?t instanceof M?t.clone():"string"==typeof t?new M(t):this._parseParams(t):this.params},t.prototype._parseParams=function(t){var e=this;
-void 0===t&&(t={});var r=new M;return Object.keys(t).forEach(function(n){var o=t[n];Array.isArray(o)?o.forEach(function(t){return e._appendParam(n,t,r)}):e._appendParam(n,o,r)}),r},t.prototype._appendParam=function(t,e,r){"string"!=typeof e&&(e=JSON.stringify(e)),r.append(t,e)},t}(),K=function(t){function e(){return t.call(this,{method:v.Get,headers:new C})||this}return m(e,t),e}($);K.decorators=[{type:e.Injectable}],K.ctorParameters=function(){return[]};var Q=function(t){function e(e){var r=t.call(this)||this,n=e.url;if(r.url=e.url,e.params){var i=e.params.toString();if(i.length>0){var s="?";-1!=r.url.indexOf("?")&&(s="&"==r.url[r.url.length-1]?"":"&"),r.url=n+s+i}}return r._body=e.body,r.method=o(e.method),r.headers=new C(e.headers),r.contentType=r.detectContentType(),r.withCredentials=e.withCredentials,r.responseType=e.responseType,r}return m(e,t),e.prototype.detectContentType=function(){switch(this.headers.get("content-type")){case"application/json":return b.JSON;case"application/x-www-form-urlencoded":return b.FORM;case"multipart/form-data":return b.FORM_DATA;case"text/plain":case"text/html":return b.TEXT;case"application/octet-stream":return this._body instanceof tt?b.ARRAY_BUFFER:b.BLOB;default:return this.detectContentTypeFromBody()}},e.prototype.detectContentTypeFromBody=function(){return null==this._body?b.NONE:this._body instanceof M?b.FORM:this._body instanceof Y?b.FORM_DATA:this._body instanceof J?b.BLOB:this._body instanceof tt?b.ARRAY_BUFFER:this._body&&"object"==typeof this._body?b.JSON:b.TEXT},e.prototype.getBody=function(){switch(this.contentType){case b.JSON:return this.text();case b.FORM:return this.text();case b.FORM_DATA:return this._body;case b.TEXT:return this.text();case b.BLOB:return this.blob();case b.ARRAY_BUFFER:return this.arrayBuffer();default:return null}},e}(R),X=function(){},Z="object"==typeof window?window:X,Y=Z.FormData||X,J=Z.Blob||X,tt=Z.ArrayBuffer||X,et=function(){function t(t,e){this._backend=t,this._defaultOptions=e}return t.prototype.request=function(t,e){var r;if("string"==typeof t)r=l(this._backend,new Q(p(this._defaultOptions,e,v.Get,t)));else{if(!(t instanceof Q))throw new Error("First argument must be a url string or Request instance.");r=l(this._backend,t)}return r},t.prototype.get=function(t,e){return this.request(new Q(p(this._defaultOptions,e,v.Get,t)))},t.prototype.post=function(t,e,r){return this.request(new Q(p(this._defaultOptions.merge(new $({body:e})),r,v.Post,t)))},t.prototype.put=function(t,e,r){return this.request(new Q(p(this._defaultOptions.merge(new $({body:e})),r,v.Put,t)))},t.prototype["delete"]=function(t,e){return this.request(new Q(p(this._defaultOptions,e,v.Delete,t)))},t.prototype.patch=function(t,e,r){return this.request(new Q(p(this._defaultOptions.merge(new $({body:e})),r,v.Patch,t)))},t.prototype.head=function(t,e){return this.request(new Q(p(this._defaultOptions,e,v.Head,t)))},t.prototype.options=function(t,e){return this.request(new Q(p(this._defaultOptions,e,v.Options,t)))},t}();et.decorators=[{type:e.Injectable}],et.ctorParameters=function(){return[{type:x},{type:$}]};var rt=function(t){function e(e,r){return t.call(this,e,r)||this}return m(e,t),e.prototype.request=function(t,e){var r;if("string"==typeof t&&(t=new Q(p(this._defaultOptions,e,v.Get,t))),!(t instanceof Q))throw new Error("First argument must be a url string or Request instance.");if(t.method!==v.Get)throw new Error("JSONP requests must use GET request method.");return r=l(this._backend,t)},e}(et);rt.decorators=[{type:e.Injectable}],rt.ctorParameters=function(){return[{type:x},{type:$}]};var nt=function(){function t(){}return t}();nt.decorators=[{type:e.NgModule,args:[{providers:[{provide:et,useFactory:f,deps:[W,$]},y,{provide:$,useClass:K},{provide:E,useClass:S},W,{provide:P,useFactory:h}]}]}],nt.ctorParameters=function(){return[]};var ot=function(){function t(){}return t}();ot.decorators=[{type:e.NgModule,args:[{providers:[{provide:rt,useFactory:d,deps:[B,$]},j,{provide:$,useClass:K},{provide:E,useClass:S},{provide:B,useClass:H}]}]}],ot.ctorParameters=function(){return[]};var it=new e.Version("4.1.0");t.BrowserXhr=y,t.JSONPBackend=B,t.JSONPConnection=F,t.CookieXSRFStrategy=G,t.XHRBackend=W,t.XHRConnection=z,t.BaseRequestOptions=K,t.RequestOptions=$,t.BaseResponseOptions=S,t.ResponseOptions=E,t.ReadyState=g,t.RequestMethod=v,t.ResponseContentType=w,t.ResponseType=_,t.Headers=C,t.Http=et,t.Jsonp=rt,t.HttpModule=nt,t.JsonpModule=ot,t.Connection=T,t.ConnectionBackend=x,t.XSRFStrategy=P,t.Request=Q,t.Response=k,t.QueryEncoder=O,t.URLSearchParams=M,t.VERSION=it,t.ɵg=j,t.ɵa=H,t.ɵf=R,t.ɵb=h,t.ɵc=f,t.ɵd=d,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8,"@angular/platform-browser":12,"rxjs/Observable":17}],11:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/compiler"),e("@angular/core"),e("@angular/common"),e("@angular/platform-browser")):"function"==typeof t&&t.amd?t(["exports","@angular/compiler","@angular/core","@angular/common","@angular/platform-browser"],i):i((o.ng=o.ng||{},o.ng.platformBrowserDynamic=o.ng.platformBrowserDynamic||{}),o.ng.compiler,o.ng.core,o.ng.common,o.ng.platformBrowser)}(this,function(t,e,r,n,o){"use strict";var i=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.get=function(t){var e,r,n=new Promise(function(t,n){e=t,r=n}),o=new XMLHttpRequest;return o.open("GET",t,!0),o.responseType="text",o.onload=function(){var n=o.response||o.responseText,i=1223===o.status?204:o.status;0===i&&(i=n?200:0),i>=200&&300>=i?e(n):r("Failed to load "+t)},o.onerror=function(){r("Failed to load "+t)},o.send(),n},e}(e.ResourceLoader);s.decorators=[{type:r.Injectable}],s.ctorParameters=function(){return[]};var a=[o.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS,{provide:r.COMPILER_OPTIONS,useValue:{providers:[{provide:e.ResourceLoader,useClass:s}]},multi:!0},{provide:r.PLATFORM_ID,useValue:n.ɵPLATFORM_BROWSER_ID}],u=function(t){function e(){var e=t.call(this)||this;if(e._cache=r.ɵglobal.$templateCache,null==e._cache)throw new Error("CachedResourceLoader: Template cache was not found in $templateCache.");return e}return i(e,t),e.prototype.get=function(t){return this._cache.hasOwnProperty(t)?Promise.resolve(this._cache[t]):Promise.reject("CachedResourceLoader: Did not find cached template for "+t)},e}(e.ResourceLoader),c=new r.Version("4.1.0"),l=[{provide:e.ResourceLoader,useClass:u}],p=r.createPlatformFactory(e.platformCoreDynamic,"browserDynamic",a);t.RESOURCE_CACHE_PROVIDER=l,t.platformBrowserDynamic=p,t.VERSION=c,t.ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS=a,t.ɵResourceLoaderImpl=s,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/compiler":7,"@angular/core":8,"@angular/platform-browser":12}],12:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/common"),e("@angular/core")):"function"==typeof t&&t.amd?t(["exports","@angular/common","@angular/core"],i):i((o.ng=o.ng||{},o.ng.platformBrowser=o.ng.platformBrowser||{}),o.ng.common,o.ng.core)}(this,function(t,e,r){"use strict";function n(){return L}function o(t){L||(L=t)}function i(){return W||(W=document.querySelector("base"))?W.getAttribute("href"):null}function s(t){return z||(z=document.createElement("a")),z.setAttribute("href",t),"/"===z.pathname.charAt(0)?z.pathname:"/"+z.pathname}function a(t,e){e=encodeURIComponent(e);for(var r=0,n=t.split(";");r<n.length;r++){var o=n[r],i=o.indexOf("="),s=-1==i?[o,""]:[o.slice(0,i),o.slice(i+1)],a=s[0],u=s[1];if(a.trim()===e)return decodeURIComponent(u)}return null}function u(t,e,r){for(var n=e.split("."),o=t;n.length>1;){var i=n.shift();o=o.hasOwnProperty(i)&&null!=o[i]?o[i]:o[i]={}}(void 0===o||null===o)&&(o={}),o[n.shift()]=r}function c(){return!!window.history.pushState}function l(t,e){var r=function(){var r=n(),o=Array.prototype.slice.apply(r.querySelectorAll(e,"style[ng-transition]"));o.filter(function(e){return r.getAttribute(e,"ng-transition")===t}).forEach(function(t){return r.remove(t)})};return r}function p(t){return r.getDebugNode(t)}function h(t,e){var r=(t||[]).concat(e||[]);return n().setGlobalVar(rt,p),n().setGlobalVar(nt,tt({},et,f(r||[]))),function(){return p}}function f(t){return t.reduce(function(t,e){return t[e.name]=e.token,t},{})}function d(t){return mt.replace(ht,t)}function m(t){return dt.replace(ht,t)}function y(t,e,r){for(var n=0;n<e.length;n++){var o=e[n];Array.isArray(o)?y(t,o,r):(o=o.replace(ht,t),r.push(o))}return r}function v(t){return function(e){var r=t(e);r===!1&&(e.preventDefault(),e.returnValue=!1)}}function g(t,e){if(t.charCodeAt(0)===gt)throw new Error("Found the synthetic "+e+" "+t+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}function _(t){return t=String(t),t.match(Ot)||t.match(Mt)?t:(r.isDevMode()&&n().log("WARNING: sanitizing unsafe URL value "+t+" (see http://g.co/ng/security#xss)"),"unsafe:"+t)}function b(t){return t=String(t),t.split(",").map(function(t){return _(t.trim())}).join(", ")}function w(){if(Rt)return Rt;kt=n();var t=kt.createElement("template");if("content"in t)return t;var e=kt.createHtmlDocument();if(Rt=kt.querySelector(e,"body"),null==Rt){var r=kt.createElement("html",e);Rt=kt.createElement("body",e),kt.appendChild(r,Rt),kt.appendChild(e,r)}return Rt}function C(t){for(var e={},r=0,n=t.split(",");r<n.length;r++){var o=n[r];e[o]=!0}return e}function E(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var r={},n=0,o=t;n<o.length;n++){var i=o[n];for(var s in i)i.hasOwnProperty(s)&&(r[s]=!0)}return r}function S(t,e){if(e&&kt.contains(t,e))throw new Error("Failed to sanitize html because the element is clobbered: "+kt.getOuterHTML(t));return e}function x(t){return t.replace(/&/g,"&amp;").replace(Gt,function(t){var e=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+(1024*(e-55296)+(r-56320)+65536)+";"}).replace(Wt,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function T(t){kt.attributeMap(t).forEach(function(e,r){("xmlns:ns1"===r||0===r.indexOf("ns1:"))&&kt.removeAttribute(t,r)});for(var e=0,r=kt.childNodesAsList(t);e<r.length;e++){var n=r[e];kt.isElementNode(n)&&T(n)}}function P(t,e){try{var n=w(),o=e?String(e):"",i=5,s=o;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,o=s,kt.setInnerHTML(n,o),t.documentMode&&T(n),s=kt.getInnerHTML(n)}while(o!==s);for(var a=new zt,u=a.sanitizeChildren(kt.getTemplateContent(n)||n),c=kt.getTemplateContent(n)||n,l=0,p=kt.childNodesAsList(c);l<p.length;l++){var h=p[l];kt.removeChild(c,h)}return r.isDevMode()&&a.sanitizedSomething&&kt.log("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),u}catch(f){throw Rt=null,f}}function A(t){for(var e=!0,r=!0,n=0;n<t.length;n++){var o=t.charAt(n);"'"===o&&r?e=!e:'"'===o&&e&&(r=!r)}return e&&r}function O(t){if(t=String(t).trim(),!t)return"";var e=t.match(te);return e&&_(e[1])===e[1]||t.match(Jt)&&A(t)?t:(r.isDevMode()&&n().log("WARNING: sanitizing unsafe style value "+t+" (see http://g.co/ng/security#xss)."),"unsafe")}function M(){G.makeCurrent(),Y.init()}function R(){return new r.ErrorHandler}function k(){return document}function I(t){return n().setGlobalVar(ye,new me(t)),t}function N(){n().setGlobalVar(ye,null)}var D,j=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},L=null,V=function(){function t(){this.resourceLoaderType=null}return t.prototype.hasProperty=function(){},t.prototype.setProperty=function(){},t.prototype.getProperty=function(){},t.prototype.invoke=function(){},t.prototype.logError=function(){},t.prototype.log=function(){},t.prototype.logGroup=function(){},t.prototype.logGroupEnd=function(){},Object.defineProperty(t.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(t){this._attrToPropMap=t},enumerable:!0,configurable:!0}),t.prototype.contains=function(){},t.prototype.parse=function(){},t.prototype.querySelector=function(){},t.prototype.querySelectorAll=function(){},t.prototype.on=function(){},t.prototype.onAndCancel=function(){},t.prototype.dispatchEvent=function(){},t.prototype.createMouseEvent=function(){},t.prototype.createEvent=function(){},t.prototype.preventDefault=function(){},t.prototype.isPrevented=function(){},t.prototype.getInnerHTML=function(){},t.prototype.getTemplateContent=function(){},t.prototype.getOuterHTML=function(){},t.prototype.nodeName=function(){},t.prototype.nodeValue=function(){},t.prototype.type=function(){},t.prototype.content=function(){},t.prototype.firstChild=function(){},t.prototype.nextSibling=function(){},t.prototype.parentElement=function(){},t.prototype.childNodes=function(){},t.prototype.childNodesAsList=function(){},t.prototype.clearNodes=function(){},t.prototype.appendChild=function(){},t.prototype.removeChild=function(){},t.prototype.replaceChild=function(){},t.prototype.remove=function(){},t.prototype.insertBefore=function(){},t.prototype.insertAllBefore=function(){},t.prototype.insertAfter=function(){},t.prototype.setInnerHTML=function(){},t.prototype.getText=function(){},t.prototype.setText=function(){},t.prototype.getValue=function(){},t.prototype.setValue=function(){},t.prototype.getChecked=function(){},t.prototype.setChecked=function(){},t.prototype.createComment=function(){},t.prototype.createTemplate=function(){},t.prototype.createElement=function(){},t.prototype.createElementNS=function(){},t.prototype.createTextNode=function(){},t.prototype.createScriptTag=function(){},t.prototype.createStyleElement=function(){},t.prototype.createShadowRoot=function(){},t.prototype.getShadowRoot=function(){},t.prototype.getHost=function(){},t.prototype.getDistributedNodes=function(){},t.prototype.clone=function(){},t.prototype.getElementsByClassName=function(){},t.prototype.getElementsByTagName=function(){},t.prototype.classList=function(){},t.prototype.addClass=function(){},t.prototype.removeClass=function(){},t.prototype.hasClass=function(){},t.prototype.setStyle=function(){},t.prototype.removeStyle=function(){},t.prototype.getStyle=function(){},t.prototype.hasStyle=function(){},t.prototype.tagName=function(){},t.prototype.attributeMap=function(){},t.prototype.hasAttribute=function(){},t.prototype.hasAttributeNS=function(){},t.prototype.getAttribute=function(){},t.prototype.getAttributeNS=function(){},t.prototype.setAttribute=function(){},t.prototype.setAttributeNS=function(){},t.prototype.removeAttribute=function(){},t.prototype.removeAttributeNS=function(){},t.prototype.templateAwareRoot=function(){},t.prototype.createHtmlDocument=function(){},t.prototype.getBoundingClientRect=function(){},t.prototype.getTitle=function(){},t.prototype.setTitle=function(){},t.prototype.elementMatches=function(){},t.prototype.isTemplateElement=function(){},t.prototype.isTextNode=function(){},t.prototype.isCommentNode=function(){},t.prototype.isElementNode=function(){},t.prototype.hasShadowRoot=function(){},t.prototype.isShadowRoot=function(){},t.prototype.importIntoDoc=function(){},t.prototype.adoptNode=function(){},t.prototype.getHref=function(){},t.prototype.getEventKey=function(){},t.prototype.resolveAndSetHref=function(){},t.prototype.supportsDOMEvents=function(){},t.prototype.supportsNativeShadowDOM=function(){},t.prototype.getGlobalEventTarget=function(){},t.prototype.getHistory=function(){},t.prototype.getLocation=function(){},t.prototype.getBaseHref=function(){},t.prototype.resetBaseElement=function(){},t.prototype.getUserAgent=function(){},t.prototype.setData=function(){},t.prototype.getComputedStyle=function(){},t.prototype.getData=function(){},t.prototype.setGlobalVar=function(){},t.prototype.supportsWebAnimation=function(){},t.prototype.performanceNow=function(){},t.prototype.getAnimationPrefix=function(){},t.prototype.getTransitionEnd=function(){},t.prototype.supportsAnimation=function(){},t.prototype.supportsCookies=function(){},t.prototype.getCookie=function(){},t.prototype.setCookie=function(){},t}(),F=function(t){function e(){var e=t.call(this)||this;e._animationPrefix=null,e._transitionEnd=null;try{var r=e.createElement("div",document);if(null!=e.getStyle(r,"animationName"))e._animationPrefix="";else for(var n=["Webkit","Moz","O","ms"],o=0;o<n.length;o++)if(null!=e.getStyle(r,n[o]+"AnimationName")){e._animationPrefix="-"+n[o].toLowerCase()+"-";break}var i={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(i).forEach(function(t){null!=e.getStyle(r,t)&&(e._transitionEnd=i[t])})}catch(s){e._animationPrefix=null,e._transitionEnd=null}return e}return j(e,t),e.prototype.getDistributedNodes=function(t){return t.getDistributedNodes()},e.prototype.resolveAndSetHref=function(t,e,r){t.href=null==r?e:e+"/../"+r},e.prototype.supportsDOMEvents=function(){return!0},e.prototype.supportsNativeShadowDOM=function(){return"function"==typeof document.body.createShadowRoot},e.prototype.getAnimationPrefix=function(){return this._animationPrefix?this._animationPrefix:""},e.prototype.getTransitionEnd=function(){return this._transitionEnd?this._transitionEnd:""},e.prototype.supportsAnimation=function(){return null!=this._animationPrefix&&null!=this._transitionEnd},e}(V),U={"class":"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},B=3,H={"\b":"Backspace","	":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},q={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"};r.ɵglobal.Node&&(D=r.ɵglobal.Node.prototype.contains||function(t){return!!(16&this.compareDocumentPosition(t))});var z,G=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.parse=function(){throw new Error("parse not implemented")},e.makeCurrent=function(){o(new e)},e.prototype.hasProperty=function(t,e){return e in t},e.prototype.setProperty=function(t,e,r){t[e]=r},e.prototype.getProperty=function(t,e){return t[e]},e.prototype.invoke=function(t,e,r){t[e].apply(t,r)},e.prototype.logError=function(t){window.console&&(console.error?console.error(t):console.log(t))},e.prototype.log=function(t){window.console&&window.console.log&&window.console.log(t)},e.prototype.logGroup=function(t){window.console&&window.console.group&&window.console.group(t)},e.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(e.prototype,"attrToPropMap",{get:function(){return U},enumerable:!0,configurable:!0}),e.prototype.contains=function(t,e){return D.call(t,e)},e.prototype.querySelector=function(t,e){return t.querySelector(e)},e.prototype.querySelectorAll=function(t,e){return t.querySelectorAll(e)},e.prototype.on=function(t,e,r){t.addEventListener(e,r,!1)},e.prototype.onAndCancel=function(t,e,r){return t.addEventListener(e,r,!1),function(){t.removeEventListener(e,r,!1)}},e.prototype.dispatchEvent=function(t,e){t.dispatchEvent(e)},e.prototype.createMouseEvent=function(t){var e=document.createEvent("MouseEvent");return e.initEvent(t,!0,!0),e},e.prototype.createEvent=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e},e.prototype.preventDefault=function(t){t.preventDefault(),t.returnValue=!1},e.prototype.isPrevented=function(t){return t.defaultPrevented||null!=t.returnValue&&!t.returnValue},e.prototype.getInnerHTML=function(t){return t.innerHTML},e.prototype.getTemplateContent=function(t){return"content"in t&&t instanceof HTMLTemplateElement?t.content:null},e.prototype.getOuterHTML=function(t){return t.outerHTML},e.prototype.nodeName=function(t){return t.nodeName},e.prototype.nodeValue=function(t){return t.nodeValue},e.prototype.type=function(t){return t.type},e.prototype.content=function(t){return this.hasProperty(t,"content")?t.content:t},e.prototype.firstChild=function(t){return t.firstChild},e.prototype.nextSibling=function(t){return t.nextSibling},e.prototype.parentElement=function(t){return t.parentNode},e.prototype.childNodes=function(t){return t.childNodes},e.prototype.childNodesAsList=function(t){for(var e=t.childNodes,r=new Array(e.length),n=0;n<e.length;n++)r[n]=e[n];return r},e.prototype.clearNodes=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},e.prototype.appendChild=function(t,e){t.appendChild(e)},e.prototype.removeChild=function(t,e){t.removeChild(e)},e.prototype.replaceChild=function(t,e,r){t.replaceChild(e,r)},e.prototype.remove=function(t){return t.parentNode&&t.parentNode.removeChild(t),t},e.prototype.insertBefore=function(t,e,r){t.insertBefore(r,e)},e.prototype.insertAllBefore=function(t,e,r){r.forEach(function(r){return t.insertBefore(r,e)})},e.prototype.insertAfter=function(t,e,r){t.insertBefore(r,e.nextSibling)},e.prototype.setInnerHTML=function(t,e){t.innerHTML=e},e.prototype.getText=function(t){return t.textContent},e.prototype.setText=function(t,e){t.textContent=e},e.prototype.getValue=function(t){return t.value},e.prototype.setValue=function(t,e){t.value=e},e.prototype.getChecked=function(t){return t.checked},e.prototype.setChecked=function(t,e){t.checked=e},e.prototype.createComment=function(t){return document.createComment(t)},e.prototype.createTemplate=function(t){var e=document.createElement("template");return e.innerHTML=t,e},e.prototype.createElement=function(t,e){return void 0===e&&(e=document),e.createElement(t)},e.prototype.createElementNS=function(t,e,r){return void 0===r&&(r=document),r.createElementNS(t,e)},e.prototype.createTextNode=function(t,e){return void 0===e&&(e=document),e.createTextNode(t)},e.prototype.createScriptTag=function(t,e,r){void 0===r&&(r=document);var n=r.createElement("SCRIPT");return n.setAttribute(t,e),n},e.prototype.createStyleElement=function(t,e){void 0===e&&(e=document);var r=e.createElement("style");return this.appendChild(r,this.createTextNode(t)),r},e.prototype.createShadowRoot=function(t){return t.createShadowRoot()},e.prototype.getShadowRoot=function(t){return t.shadowRoot},e.prototype.getHost=function(t){return t.host},e.prototype.clone=function(t){return t.cloneNode(!0)},e.prototype.getElementsByClassName=function(t,e){return t.getElementsByClassName(e)},e.prototype.getElementsByTagName=function(t,e){return t.getElementsByTagName(e)},e.prototype.classList=function(t){return Array.prototype.slice.call(t.classList,0)},e.prototype.addClass=function(t,e){t.classList.add(e)},e.prototype.removeClass=function(t,e){t.classList.remove(e)},e.prototype.hasClass=function(t,e){return t.classList.contains(e)},e.prototype.setStyle=function(t,e,r){t.style[e]=r},e.prototype.removeStyle=function(t,e){t.style[e]=""},e.prototype.getStyle=function(t,e){return t.style[e]},e.prototype.hasStyle=function(t,e,r){var n=this.getStyle(t,e)||"";return r?n==r:n.length>0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,r=t.attributes,n=0;n<r.length;n++){var o=r[n];e.set(o.name,o.value)}return e},e.prototype.hasAttribute=function(t,e){return t.hasAttribute(e)},e.prototype.hasAttributeNS=function(t,e,r){return t.hasAttributeNS(e,r)},e.prototype.getAttribute=function(t,e){return t.getAttribute(e)},e.prototype.getAttributeNS=function(t,e,r){return t.getAttributeNS(e,r)},e.prototype.setAttribute=function(t,e,r){t.setAttribute(e,r)},e.prototype.setAttributeNS=function(t,e,r,n){t.setAttributeNS(e,r,n)},e.prototype.removeAttribute=function(t,e){t.removeAttribute(e)},e.prototype.removeAttributeNS=function(t,e,r){t.removeAttributeNS(e,r)},e.prototype.templateAwareRoot=function(t){return this.isTemplateElement(t)?this.content(t):t},e.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},e.prototype.getBoundingClientRect=function(t){try{return t.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},e.prototype.getTitle=function(){return document.title},e.prototype.setTitle=function(t,e){document.title=e||""},e.prototype.elementMatches=function(t,e){return t instanceof HTMLElement?t.matches&&t.matches(e)||t.msMatchesSelector&&t.msMatchesSelector(e)||t.webkitMatchesSelector&&t.webkitMatchesSelector(e):!1},e.prototype.isTemplateElement=function(t){return t instanceof HTMLElement&&"TEMPLATE"==t.nodeName},e.prototype.isTextNode=function(t){return t.nodeType===Node.TEXT_NODE},e.prototype.isCommentNode=function(t){return t.nodeType===Node.COMMENT_NODE},e.prototype.isElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},e.prototype.hasShadowRoot=function(t){return null!=t.shadowRoot&&t instanceof HTMLElement},e.prototype.isShadowRoot=function(t){return t instanceof DocumentFragment},e.prototype.importIntoDoc=function(t){return document.importNode(this.templateAwareRoot(t),!0)},e.prototype.adoptNode=function(t){return document.adoptNode(t)},e.prototype.getHref=function(t){return t.href},e.prototype.getEventKey=function(t){var e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),t.location===B&&q.hasOwnProperty(e)&&(e=q[e]))}return H[e]||e},e.prototype.getGlobalEventTarget=function(t,e){return"window"===e?window:"document"===e?document:"body"===e?document.body:null},e.prototype.getHistory=function(){return window.history},e.prototype.getLocation=function(){return window.location},e.prototype.getBaseHref=function(){var t=i();return null==t?null:s(t)},e.prototype.resetBaseElement=function(){W=null},e.prototype.getUserAgent=function(){return window.navigator.userAgent},e.prototype.setData=function(t,e,r){this.setAttribute(t,"data-"+e,r)},e.prototype.getData=function(t,e){return this.getAttribute(t,"data-"+e)},e.prototype.getComputedStyle=function(t){return getComputedStyle(t)},e.prototype.setGlobalVar=function(t,e){u(r.ɵglobal,t,e)},e.prototype.supportsWebAnimation=function(){return"function"==typeof Element.prototype.animate},e.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},e.prototype.supportsCookies=function(){return!0},e.prototype.getCookie=function(t){return a(document.cookie,t)},e.prototype.setCookie=function(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)},e}(F),W=null,$=new r.InjectionToken("DocumentToken"),K=function(t){function e(e){var r=t.call(this)||this;return r._doc=e,r._init(),r}return j(e,t),e.prototype._init=function(){this._location=n().getLocation(),this._history=n().getHistory()},Object.defineProperty(e.prototype,"location",{get:function(){return this._location},enumerable:!0,configurable:!0}),e.prototype.getBaseHrefFromDOM=function(){return n().getBaseHref(this._doc)},e.prototype.onPopState=function(t){n().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)},e.prototype.onHashChange=function(t){n().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)},Object.defineProperty(e.prototype,"pathname",{get:function(){return this._location.pathname},set:function(t){this._location.pathname=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"search",{get:function(){return this._location.search},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hash",{get:function(){return this._location.hash},enumerable:!0,configurable:!0}),e.prototype.pushState=function(t,e,r){c()?this._history.pushState(t,e,r):this._location.hash=r},e.prototype.replaceState=function(t,e,r){c()?this._history.replaceState(t,e,r):this._location.hash=r},e.prototype.forward=function(){this._history.forward()},e.prototype.back=function(){this._history.back()},e}(e.PlatformLocation);K.decorators=[{type:r.Injectable}],K.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var Q=function(){function t(t){this._doc=t,this._dom=n()}return t.prototype.addTag=function(t,e){return void 0===e&&(e=!1),t?this._getOrCreateElement(t,e):null},t.prototype.addTags=function(t,e){var r=this;return void 0===e&&(e=!1),t?t.reduce(function(t,n){return n&&t.push(r._getOrCreateElement(n,e)),t},[]):[]},t.prototype.getTag=function(t){return t?this._dom.querySelector(this._doc,"meta["+t+"]"):null},t.prototype.getTags=function(t){if(!t)return[];var e=this._dom.querySelectorAll(this._doc,"meta["+t+"]");return e?[].slice.call(e):[]},t.prototype.updateTag=function(t,e){if(!t)return null;e=e||this._parseSelector(t);var r=this.getTag(e);return r?this._setMetaElementAttributes(t,r):this._getOrCreateElement(t,!0)},t.prototype.removeTag=function(t){this.removeTagElement(this.getTag(t))},t.prototype.removeTagElement=function(t){t&&this._dom.remove(t)},t.prototype._getOrCreateElement=function(t,e){if(void 0===e&&(e=!1),!e){var r=this._parseSelector(t),n=this.getTag(r);if(n&&this._containsAttributes(t,n))return n}var o=this._dom.createElement("meta");this._setMetaElementAttributes(t,o);var i=this._dom.getElementsByTagName(this._doc,"head")[0];return this._dom.appendChild(i,o),o},t.prototype._setMetaElementAttributes=function(t,e){var r=this;return Object.keys(t).forEach(function(n){return r._dom.setAttribute(e,n,t[n])}),e},t.prototype._parseSelector=function(t){var e=t.name?"name":"property";return e+'="'+t[e]+'"'},t.prototype._containsAttributes=function(t,e){var r=this;return Object.keys(t).every(function(n){return r._dom.getAttribute(e,n)===t[n]})},t}();Q.decorators=[{type:r.Injectable}],Q.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var X=new r.InjectionToken("TRANSITION_ID"),Z=[{provide:r.APP_INITIALIZER,useFactory:l,deps:[X,$],multi:!0}],Y=function(){function t(){}return t.init=function(){r.setTestabilityGetter(new t)},t.prototype.addToWindow=function(t){r.ɵglobal.getAngularTestability=function(e,r){void 0===r&&(r=!0);var n=t.findTestabilityInTree(e,r);if(null==n)throw new Error("Could not find testability for element.");return n},r.ɵglobal.getAllAngularTestabilities=function(){return t.getAllTestabilities()},r.ɵglobal.getAllAngularRootElements=function(){return t.getAllRootElements()};var e=function(t){var e=r.ɵglobal.getAllAngularTestabilities(),n=e.length,o=!1,i=function(e){o=o||e,n--,0==n&&t(o)};e.forEach(function(t){t.whenStable(i)})};r.ɵglobal.frameworkStabilizers||(r.ɵglobal.frameworkStabilizers=[]),r.ɵglobal.frameworkStabilizers.push(e)},t.prototype.findTestabilityInTree=function(t,e,r){if(null==e)return null;var o=t.getTestability(e);return null!=o?o:r?n().isShadowRoot(e)?this.findTestabilityInTree(t,n().getHost(e),!0):this.findTestabilityInTree(t,n().parentElement(e),!0):null},t}(),J=function(){function t(t){this._doc=t}return t.prototype.getTitle=function(){return n().getTitle(this._doc)},t.prototype.setTitle=function(t){n().setTitle(this._doc,t)},t}();J.decorators=[{type:r.Injectable}],J.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var tt=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},et={ApplicationRef:r.ApplicationRef,NgZone:r.NgZone},rt="ng.probe",nt="ng.coreTokens",ot=function(){function t(t,e){this.name=t,this.token=e}return t}(),it=[{provide:r.APP_INITIALIZER,useFactory:h,deps:[[ot,new r.Optional],[r.NgProbeToken,new r.Optional]],multi:!0}],st=new r.InjectionToken("EventManagerPlugins"),at=function(){function t(t,e){var r=this;this._zone=e,this._eventNameToPlugin=new Map,t.forEach(function(t){return t.manager=r}),this._plugins=t.slice().reverse()}return t.prototype.addEventListener=function(t,e,r){var n=this._findPluginFor(e);
-
-return n.addEventListener(t,e,r)},t.prototype.addGlobalEventListener=function(t,e,r){var n=this._findPluginFor(e);return n.addGlobalEventListener(t,e,r)},t.prototype.getZone=function(){return this._zone},t.prototype._findPluginFor=function(t){var e=this._eventNameToPlugin.get(t);if(e)return e;for(var r=this._plugins,n=0;n<r.length;n++){var o=r[n];if(o.supports(t))return this._eventNameToPlugin.set(t,o),o}throw new Error("No event manager plugin found for event "+t)},t}();at.decorators=[{type:r.Injectable}],at.ctorParameters=function(){return[{type:Array,decorators:[{type:r.Inject,args:[st]}]},{type:r.NgZone}]};var ut=function(){function t(t){this._doc=t}return t.prototype.supports=function(){},t.prototype.addEventListener=function(){},t.prototype.addGlobalEventListener=function(t,e,r){var o=n().getGlobalEventTarget(this._doc,t);if(!o)throw new Error("Unsupported event target "+o+" for event "+e);return this.addEventListener(o,e,r)},t}(),ct=function(){function t(){this._stylesSet=new Set}return t.prototype.addStyles=function(t){var e=this,r=new Set;t.forEach(function(t){e._stylesSet.has(t)||(e._stylesSet.add(t),r.add(t))}),this.onStylesAdded(r)},t.prototype.onStylesAdded=function(){},t.prototype.getAllStyles=function(){return Array.from(this._stylesSet)},t}();ct.decorators=[{type:r.Injectable}],ct.ctorParameters=function(){return[]};var lt=function(t){function e(e){var r=t.call(this)||this;return r._doc=e,r._hostNodes=new Set,r._styleNodes=new Set,r._hostNodes.add(e.head),r}return j(e,t),e.prototype._addStylesToHost=function(t,e){var r=this;t.forEach(function(t){var n=r._doc.createElement("style");n.textContent=t,r._styleNodes.add(e.appendChild(n))})},e.prototype.addHost=function(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)},e.prototype.removeHost=function(t){this._hostNodes["delete"](t)},e.prototype.onStylesAdded=function(t){var e=this;this._hostNodes.forEach(function(r){return e._addStylesToHost(t,r)})},e.prototype.ngOnDestroy=function(){this._styleNodes.forEach(function(t){return n().remove(t)})},e}(ct);lt.decorators=[{type:r.Injectable}],lt.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var pt={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},ht=/%COMP%/g,ft="%COMP%",dt="_nghost-"+ft,mt="_ngcontent-"+ft,yt=function(){function t(t,e){this.eventManager=t,this.sharedStylesHost=e,this.rendererByCompId=new Map,this.defaultRenderer=new vt(t)}return t.prototype.createRenderer=function(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.ViewEncapsulation.Emulated:var n=this.rendererByCompId.get(e.id);return n||(n=new _t(this.eventManager,this.sharedStylesHost,e),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n;case r.ViewEncapsulation.Native:return new bt(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){var o=y(e.id,e.styles,[]);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}},t}();yt.decorators=[{type:r.Injectable}],yt.ctorParameters=function(){return[{type:at},{type:lt}]};var vt=function(){function t(t){this.eventManager=t,this.data=Object.create(null)}return t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){return e?document.createElementNS(pt[e],t):document.createElement(t)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.appendChild=function(t,e){t.appendChild(e)},t.prototype.insertBefore=function(t,e,r){t&&t.insertBefore(e,r)},t.prototype.removeChild=function(t,e){t&&t.removeChild(e)},t.prototype.selectRootElement=function(t){var e="string"==typeof t?document.querySelector(t):t;if(!e)throw new Error('The selector "'+t+'" did not match any elements');return e.textContent="",e},t.prototype.parentNode=function(t){return t.parentNode},t.prototype.nextSibling=function(t){return t.nextSibling},t.prototype.setAttribute=function(t,e,r,n){if(n){e=n+":"+e;var o=pt[n];o?t.setAttributeNS(o,e,r):t.setAttribute(e,r)}else t.setAttribute(e,r)},t.prototype.removeAttribute=function(t,e,r){if(r){var n=pt[r];n?t.removeAttributeNS(n,e):t.removeAttribute(r+":"+e)}else t.removeAttribute(e)},t.prototype.addClass=function(t,e){t.classList.add(e)},t.prototype.removeClass=function(t,e){t.classList.remove(e)},t.prototype.setStyle=function(t,e,n,o){o&r.RendererStyleFlags2.DashCase?t.style.setProperty(e,n,o&r.RendererStyleFlags2.Important?"important":""):t.style[e]=n},t.prototype.removeStyle=function(t,e,n){n&r.RendererStyleFlags2.DashCase?t.style.removeProperty(e):t.style[e]=""},t.prototype.setProperty=function(t,e,r){g(e,"property"),t[e]=r},t.prototype.setValue=function(t,e){t.nodeValue=e},t.prototype.listen=function(t,e,r){return g(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,v(r)):this.eventManager.addEventListener(t,e,v(r))},t}(),gt="@".charCodeAt(0),_t=function(t){function e(e,r,n){var o=t.call(this,e)||this;o.component=n;var i=y(n.id,n.styles,[]);return r.addStyles(i),o.contentAttr=d(n.id),o.hostAttr=m(n.id),o}return j(e,t),e.prototype.applyToHost=function(e){t.prototype.setAttribute.call(this,e,this.hostAttr,"")},e.prototype.createElement=function(e,r){var n=t.prototype.createElement.call(this,e,r);return t.prototype.setAttribute.call(this,n,this.contentAttr,""),n},e}(vt),bt=function(t){function e(e,r,n,o){var i=t.call(this,e)||this;i.sharedStylesHost=r,i.hostEl=n,i.component=o,i.shadowRoot=n.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=y(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement("style");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return j(e,t),e.prototype.nodeOrShadowRoot=function(t){return t===this.hostEl?this.shadowRoot:t},e.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},e.prototype.appendChild=function(e,r){return t.prototype.appendChild.call(this,this.nodeOrShadowRoot(e),r)},e.prototype.insertBefore=function(e,r,n){return t.prototype.insertBefore.call(this,this.nodeOrShadowRoot(e),r,n)},e.prototype.removeChild=function(e,r){return t.prototype.removeChild.call(this,this.nodeOrShadowRoot(e),r)},e.prototype.parentNode=function(e){return this.nodeOrShadowRoot(t.prototype.parentNode.call(this,this.nodeOrShadowRoot(e)))},e}(vt),wt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e.prototype.supports=function(){return!0},e.prototype.addEventListener=function(t,e,r){return t.addEventListener(e,r,!1),function(){return t.removeEventListener(e,r,!1)}},e}(ut);wt.decorators=[{type:r.Injectable}],wt.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var Ct={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},Et=new r.InjectionToken("HammerGestureConfig"),St=function(){function t(){this.events=[],this.overrides={}}return t.prototype.buildHammer=function(t){var e=new Hammer(t);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(var r in this.overrides)e.get(r).set(this.overrides[r]);return e},t}();St.decorators=[{type:r.Injectable}],St.ctorParameters=function(){return[]};var xt=function(t){function e(e,r){var n=t.call(this,e)||this;return n._config=r,n}return j(e,t),e.prototype.supports=function(t){if(!Ct.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t))return!1;if(!window.Hammer)throw new Error("Hammer.js is not loaded, can not bind "+t+" event");return!0},e.prototype.addEventListener=function(t,e,r){var n=this,o=this.manager.getZone();return e=e.toLowerCase(),o.runOutsideAngular(function(){var i=n._config.buildHammer(t),s=function(t){o.runGuarded(function(){r(t)})};return i.on(e,s),function(){return i.off(e,s)}})},e.prototype.isCustomEvent=function(t){return this._config.events.indexOf(t)>-1},e}(ut);xt.decorators=[{type:r.Injectable}],xt.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]},{type:St,decorators:[{type:r.Inject,args:[Et]}]}]};var Tt=["alt","control","meta","shift"],Pt={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},At=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e.prototype.supports=function(t){return null!=e.parseEventName(t)},e.prototype.addEventListener=function(t,r,o){var i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return n().onAndCancel(t,i.domEventName,s)})},e.parseEventName=function(t){var r=t.toLowerCase().split("."),n=r.shift();if(0===r.length||"keydown"!==n&&"keyup"!==n)return null;var o=e._normalizeKey(r.pop()),i="";if(Tt.forEach(function(t){var e=r.indexOf(t);e>-1&&(r.splice(e,1),i+=t+".")}),i+=o,0!=r.length||0===o.length)return null;var s={};return s.domEventName=n,s.fullKey=i,s},e.getEventFullKey=function(t){var e="",r=n().getEventKey(t);return r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),Tt.forEach(function(n){if(n!=r){var o=Pt[n];o(t)&&(e+=n+".")}}),e+=r},e.eventCallback=function(t,r,n){return function(o){e.getEventFullKey(o)===t&&n.runGuarded(function(){return r(o)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e}(ut);At.decorators=[{type:r.Injectable}],At.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var Ot=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Mt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Rt=null,kt=null,It=C("area,br,col,hr,img,wbr"),Nt=C("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Dt=C("rp,rt"),jt=E(Dt,Nt),Lt=E(Nt,C("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Vt=E(Dt,C("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ft=E(It,Lt,Vt,jt),Ut=C("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Bt=C("srcset"),Ht=C("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qt=E(Ut,Bt,Ht),zt=function(){function t(){this.sanitizedSomething=!1,this.buf=[]}return t.prototype.sanitizeChildren=function(t){for(var e=t.firstChild;e;)if(kt.isElementNode(e)?this.startElement(e):kt.isTextNode(e)?this.chars(kt.nodeValue(e)):this.sanitizedSomething=!0,kt.firstChild(e))e=kt.firstChild(e);else for(;e;){kt.isElementNode(e)&&this.endElement(e);var r=S(e,kt.nextSibling(e));if(r){e=r;break}e=S(e,kt.parentElement(e))}return this.buf.join("")},t.prototype.startElement=function(t){var e=this,r=kt.nodeName(t).toLowerCase();return Ft.hasOwnProperty(r)?(this.buf.push("<"),this.buf.push(r),kt.attributeMap(t).forEach(function(t,r){var n=r.toLowerCase();return qt.hasOwnProperty(n)?(Ut[n]&&(t=_(t)),Bt[n]&&(t=b(t)),e.buf.push(" "),e.buf.push(r),e.buf.push('="'),e.buf.push(x(t)),void e.buf.push('"')):void(e.sanitizedSomething=!0)}),void this.buf.push(">")):void(this.sanitizedSomething=!0)},t.prototype.endElement=function(t){var e=kt.nodeName(t).toLowerCase();Ft.hasOwnProperty(e)&&!It.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))},t.prototype.chars=function(t){this.buf.push(x(t))},t}(),Gt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Wt=/([^\#-~ |!])/g,$t="[-,.\"'%_!# a-zA-Z0-9]+",Kt="(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?",Qt="(?:rgb|hsl)a?",Xt="(?:repeating-)?(?:linear|radial)-gradient",Zt="(?:calc|attr)",Yt="\\([-0-9.%, #a-zA-Z]+\\)",Jt=new RegExp("^("+$t+"|"+("(?:"+Kt+"|"+Qt+"|"+Xt+"|"+Zt+")")+(Yt+")$"),"g"),te=/^url\(([^)]+)\)$/,ee=function(){function t(){}return t.prototype.sanitize=function(){},t.prototype.bypassSecurityTrustHtml=function(){},t.prototype.bypassSecurityTrustStyle=function(){},t.prototype.bypassSecurityTrustScript=function(){},t.prototype.bypassSecurityTrustUrl=function(){},t.prototype.bypassSecurityTrustResourceUrl=function(){},t}(),re=function(t){function e(e){var r=t.call(this)||this;return r._doc=e,r}return j(e,t),e.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case r.SecurityContext.NONE:return e;case r.SecurityContext.HTML:return e instanceof oe?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),P(this._doc,String(e)));case r.SecurityContext.STYLE:return e instanceof ie?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),O(e));case r.SecurityContext.SCRIPT:if(e instanceof se)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case r.SecurityContext.URL:return e instanceof ue||e instanceof ae?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),_(String(e)));case r.SecurityContext.RESOURCE_URL:if(e instanceof ue)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},e.prototype.checkNotSafeValue=function(t,e){if(t instanceof ne)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},e.prototype.bypassSecurityTrustHtml=function(t){return new oe(t)},e.prototype.bypassSecurityTrustStyle=function(t){return new ie(t)},e.prototype.bypassSecurityTrustScript=function(t){return new se(t)},e.prototype.bypassSecurityTrustUrl=function(t){return new ae(t)},e.prototype.bypassSecurityTrustResourceUrl=function(t){return new ue(t)},e}(ee);re.decorators=[{type:r.Injectable}],re.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[$]}]}]};var ne=function(){function t(t){this.changingThisBreaksApplicationSecurity=t}return t.prototype.getTypeName=function(){},t.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},t}(),oe=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"HTML"},e}(ne),ie=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"Style"},e}(ne),se=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"Script"},e}(ne),ae=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"URL"},e}(ne),ue=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"ResourceURL"},e}(ne),ce=[{provide:r.PLATFORM_ID,useValue:e.ɵPLATFORM_BROWSER_ID},{provide:r.PLATFORM_INITIALIZER,useValue:M,multi:!0},{provide:e.PlatformLocation,useClass:K},{provide:$,useFactory:k,deps:[]}],le=[{provide:r.Sanitizer,useExisting:ee},{provide:ee,useClass:re}],pe=r.createPlatformFactory(r.platformCore,"browser",ce),he=function(){function t(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}return t.withServerTransition=function(e){return{ngModule:t,providers:[{provide:r.APP_ID,useValue:e.appId},{provide:X,useExisting:r.APP_ID},Z]}},t}();he.decorators=[{type:r.NgModule,args:[{providers:[le,{provide:r.ErrorHandler,useFactory:R,deps:[]},{provide:st,useClass:wt,multi:!0},{provide:st,useClass:At,multi:!0},{provide:st,useClass:xt,multi:!0},{provide:Et,useClass:St},yt,{provide:r.RendererFactory2,useExisting:yt},{provide:ct,useExisting:lt},lt,r.Testability,at,it,Q,J],exports:[e.CommonModule,r.ApplicationModule]}]}],he.ctorParameters=function(){return[{type:he,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var fe="undefined"!=typeof window&&window||{},de=function(){function t(t,e){this.msPerTick=t,this.numTicks=e}return t}(),me=function(){function t(t){this.appRef=t.injector.get(r.ApplicationRef)}return t.prototype.timeChangeDetection=function(t){var e=t&&t.record,r="Change Detection",o=null!=fe.console.profile;e&&o&&fe.console.profile(r);for(var i=n().performanceNow(),s=0;5>s||n().performanceNow()-i<500;)this.appRef.tick(),s++;var a=n().performanceNow();e&&o&&fe.console.profileEnd(r);var u=(a-i)/s;return fe.console.log("ran "+s+" change detection cycles"),fe.console.log(u.toFixed(2)+" ms per check"),new de(u,s)},t}(),ye="ng.profiler",ve=function(){function t(){}return t.all=function(){return function(){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement?n().elementMatches(e.nativeElement,t):!1}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),ge=new r.Version("4.1.0");t.BrowserModule=he,t.platformBrowser=pe,t.Meta=Q,t.Title=J,t.disableDebugTools=N,t.enableDebugTools=I,t.By=ve,t.NgProbeToken=ot,t.DOCUMENT=$,t.EVENT_MANAGER_PLUGINS=st,t.EventManager=at,t.HAMMER_GESTURE_CONFIG=Et,t.HammerGestureConfig=St,t.DomSanitizer=ee,t.VERSION=ge,t.ɵBROWSER_SANITIZATION_PROVIDERS=le,t.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS=ce,t.ɵinitDomAdapter=M,t.ɵBrowserDomAdapter=G,t.ɵsetValueOnPath=u,t.ɵBrowserPlatformLocation=K,t.ɵTRANSITION_ID=X,t.ɵBrowserGetTestability=Y,t.ɵELEMENT_PROBE_PROVIDERS=it,t.ɵDomAdapter=V,t.ɵgetDOM=n,t.ɵsetRootDomAdapter=o,t.ɵDomRendererFactory2=yt,t.ɵNAMESPACE_URIS=pt,t.ɵflattenStyles=y,t.ɵshimContentAttribute=d,t.ɵshimHostAttribute=m,t.ɵDomEventsPlugin=wt,t.ɵHammerGesturesPlugin=xt,t.ɵKeyEventsPlugin=At,t.ɵDomSharedStylesHost=lt,t.ɵSharedStylesHost=ct,t.ɵb=k,t.ɵa=R,t.ɵh=F,t.ɵg=Z,t.ɵf=l,t.ɵc=h,t.ɵd=ut,t.ɵe=re,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/core":8}],13:[function(e,r,n){!function(o,i){"object"==typeof n&&"undefined"!=typeof r?i(n,e("@angular/common"),e("@angular/core"),e("rxjs/BehaviorSubject"),e("rxjs/Subject"),e("rxjs/observable/from"),e("rxjs/observable/of"),e("rxjs/operator/concatMap"),e("rxjs/operator/every"),e("rxjs/operator/first"),e("rxjs/operator/map"),e("rxjs/operator/mergeMap"),e("rxjs/operator/reduce"),e("rxjs/Observable"),e("rxjs/operator/catch"),e("rxjs/operator/concatAll"),e("rxjs/util/EmptyError"),e("rxjs/observable/fromPromise"),e("rxjs/operator/last"),e("rxjs/operator/mergeAll"),e("@angular/platform-browser"),e("rxjs/operator/filter")):"function"==typeof t&&t.amd?t(["exports","@angular/common","@angular/core","rxjs/BehaviorSubject","rxjs/Subject","rxjs/observable/from","rxjs/observable/of","rxjs/operator/concatMap","rxjs/operator/every","rxjs/operator/first","rxjs/operator/map","rxjs/operator/mergeMap","rxjs/operator/reduce","rxjs/Observable","rxjs/operator/catch","rxjs/operator/concatAll","rxjs/util/EmptyError","rxjs/observable/fromPromise","rxjs/operator/last","rxjs/operator/mergeAll","@angular/platform-browser","rxjs/operator/filter"],i):i((o.ng=o.ng||{},o.ng.router=o.ng.router||{}),o.ng.common,o.ng.core,o.Rx,o.Rx,o.Rx.Observable,o.Rx.Observable,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.Rx,o.Rx.Observable,o.Rx.Observable.prototype,o.Rx.Observable.prototype,o.ng.platformBrowser,o.Rx.Observable.prototype)}(this,function(t,e,r,n,o,i,s,a,u,c,l,p,h,f,d,m,y,v,g,_,b,w){"use strict";function C(t){return new Le(t)}function E(t){var e=Error("NavigationCancelingError: "+t);return e[Ve]=!0,e}function S(t){return t[Ve]}function x(t,e,r){var n=r.path.split("/");if(n.length>t.length)return null;if("full"===r.pathMatch&&(e.hasChildren()||n.length<t.length))return null;for(var o={},i=0;i<n.length;i++){var s=n[i],a=t[i],u=s.startsWith(":");if(u)o[s.substring(1)]=a;else if(s!==a.path)return null}return{consumed:t.slice(0,n.length),posParams:o}}function T(t,e){void 0===e&&(e="");for(var r=0;r<t.length;r++){var n=t[r],o=A(e,n);P(n,o)}}function P(t,e){if(!t)throw new Error("\n      Invalid configuration of route '"+e+"': Encountered undefined route.\n      The reason might be an extra comma.\n\n      Example:\n      const routes: Routes = [\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\n        { path: 'detail/:id', component: HeroDetailComponent }\n      ];\n    ");if(Array.isArray(t))throw new Error("Invalid configuration of route '"+e+"': Array cannot be specified");if(!t.component&&t.outlet&&t.outlet!==je)throw new Error("Invalid configuration of route '"+e+"': a componentless route cannot have a named outlet set");if(t.redirectTo&&t.children)throw new Error("Invalid configuration of route '"+e+"': redirectTo and children cannot be used together");if(t.redirectTo&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': redirectTo and loadChildren cannot be used together");if(t.children&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': children and loadChildren cannot be used together");if(t.redirectTo&&t.component)throw new Error("Invalid configuration of route '"+e+"': redirectTo and component cannot be used together");if(t.path&&t.matcher)throw new Error("Invalid configuration of route '"+e+"': path and matcher cannot be used together");if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error("Invalid configuration of route '"+e+"'. One of the following must be provided: component, redirectTo, children or loadChildren");if(void 0===t.path&&void 0===t.matcher)throw new Error("Invalid configuration of route '"+e+"': routes must have either a path or a matcher specified");if("string"==typeof t.path&&"/"===t.path.charAt(0))throw new Error("Invalid configuration of route '"+e+"': path cannot start with a slash");if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch){var r="The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.";throw new Error("Invalid configuration of route '{path: \""+e+'", redirectTo: "'+t.redirectTo+"\"}': please provide 'pathMatch'. "+r)}if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error("Invalid configuration of route '"+e+"': pathMatch can only be set to 'prefix' or 'full'");t.children&&T(t.children,e)}function A(t,e){return e?t||e.path?t&&!e.path?t+"/":!t&&e.path?e.path:t+"/"+e.path:"":t}function O(t,e){if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r)if(!M(t[r],e[r]))return!1;return!0}function M(t,e){var r=Object.keys(t),n=Object.keys(e);if(r.length!=n.length)return!1;for(var o,i=0;i<r.length;i++)if(o=r[i],t[o]!==e[o])return!1;return!0}function R(t){return Array.prototype.concat.apply([],t)}function k(t){return t.length>0?t[t.length-1]:null}function I(t,e){for(var r in t)t.hasOwnProperty(r)&&e(t[r],r)}function N(t,e){if(0===Object.keys(t).length)return s.of({});var r=[],n=[],o={};I(t,function(t,i){var s=l.map.call(e(i,t),function(t){return o[i]=t});i===je?r.push(s):n.push(s)});var i=m.concatAll.call(s.of.apply(void 0,r.concat(n))),a=g.last.call(i);return l.map.call(a,function(){return o})}function D(t){var e=_.mergeAll.call(t);return u.every.call(e,function(t){return t===!0})}function j(t){return r.ɵisObservable(t)?t:r.ɵisPromise(t)?v.fromPromise(t):s.of(t)}function L(){return new Ue(new Be([],{}),{},null)}function V(t,e,r){return r?F(t.queryParams,e.queryParams)&&U(t.root,e.root):B(t.queryParams,e.queryParams)&&H(t.root,e.root)}function F(t,e){return M(t,e)}function U(t,e){if(!G(t.segments,e.segments))return!1;if(t.numberOfChildren!==e.numberOfChildren)return!1;for(var r in e.children){if(!t.children[r])return!1;if(!U(t.children[r],e.children[r]))return!1}return!0}function B(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(function(r){return e[r]===t[r]})}function H(t,e){return q(t,e,e.segments)}function q(t,e,r){if(t.segments.length>r.length){var n=t.segments.slice(0,r.length);return G(n,r)?e.hasChildren()?!1:!0:!1}if(t.segments.length===r.length){if(!G(t.segments,r))return!1;for(var o in e.children){if(!t.children[o])return!1;if(!H(t.children[o],e.children[o]))return!1}return!0}var n=r.slice(0,t.segments.length),i=r.slice(t.segments.length);return G(t.segments,n)&&t.children[je]?q(t.children[je],e,i):!1}function z(t,e){return G(t,e)&&t.every(function(t,r){return M(t.parameters,e[r].parameters)})}function G(t,e){return t.length!==e.length?!1:t.every(function(t,r){return t.path===e[r].path})}function W(t,e){var r=[];return I(t.children,function(t,n){n===je&&(r=r.concat(e(t,n)))}),I(t.children,function(t,n){n!==je&&(r=r.concat(e(t,n)))}),r}function $(t){return t.segments.map(function(t){return Z(t)}).join("/")}function K(t,e){if(!t.hasChildren())return $(t);if(e){var r=t.children[je]?K(t.children[je],!1):"",n=[];return I(t.children,function(t,e){e!==je&&n.push(e+":"+K(t,!1))}),n.length>0?r+"("+n.join("//")+")":r}var o=W(t,function(e,r){return r===je?[K(t.children[je],!1)]:[r+":"+K(e,!1)]});return $(t)+"/("+o.join("//")+")"}function Q(t){return encodeURIComponent(t)}function X(t){return decodeURIComponent(t)}function Z(t){return""+Q(t.path)+Y(t.parameters)}function Y(t){return Object.keys(t).map(function(e){return";"+Q(e)+"="+Q(t[e])}).join("")}function J(t){var e=Object.keys(t).map(function(e){var r=t[e];return Array.isArray(r)?r.map(function(t){return Q(e)+"="+Q(t)}).join("&"):Q(e)+"="+Q(r)});return e.length?"?"+e.join("&"):""}function tt(t){var e=t.match(We);return e?e[0]:""}function et(t){var e=t.match($e);return e?e[0]:""}function rt(t){var e=t.match(Ke);return e?e[0]:""}function nt(t){return new f.Observable(function(e){return e.error(new Ze(t))})}function ot(t){return new f.Observable(function(e){return e.error(new Ye(t))})}function it(t){return new f.Observable(function(e){return e.error(new Error("Only absolute redirects can have named outlets. redirectTo: '"+t+"'"))})}function st(t){return new f.Observable(function(e){return e.error(E("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}function at(t,e,r,n,o){return new Je(t,e,r,n,o).apply()}function ut(t,e){var r=e.canLoad;if(!r||0===r.length)return s.of(!0);var n=l.map.call(i.from(r),function(r){var n=t.get(r);return j(n.canLoad?n.canLoad(e):n(e))});return D(n)}function ct(t,e,r){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||r.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var n=e.matcher||x,o=n(r,t,e);return o?{matched:!0,consumedSegments:o.consumed,lastChild:o.consumed.length,positionalParamSegments:o.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function lt(t,e,r,n){if(r.length>0&&dt(t,r,n)){var o=new Be(e,ft(n,new Be(r,t.children)));return{segmentGroup:pt(o),slicedSegments:[]}}if(0===r.length&&mt(t,r,n)){var o=new Be(t.segments,ht(t,r,n,t.children));return{segmentGroup:pt(o),slicedSegments:r}}return{segmentGroup:t,slicedSegments:r}}function pt(t){if(1===t.numberOfChildren&&t.children[je]){var e=t.children[je];return new Be(t.segments.concat(e.segments),e.children)}return t}function ht(t,e,r,n){for(var o={},i=0,s=r;i<s.length;i++){var a=s[i];yt(t,e,a)&&!n[vt(a)]&&(o[vt(a)]=new Be([],{}))}return Xe({},n,o)}function ft(t,e){var r={};r[je]=e;for(var n=0,o=t;n<o.length;n++){var i=o[n];""===i.path&&vt(i)!==je&&(r[vt(i)]=new Be([],{}))}return r}function dt(t,e,r){return r.some(function(r){return yt(t,e,r)&&vt(r)!==je})}function mt(t,e,r){return r.some(function(r){return yt(t,e,r)})}function yt(t,e,r){return(t.hasChildren()||e.length>0)&&"full"===r.pathMatch?!1:""===r.path&&void 0!==r.redirectTo}function vt(t){return t.outlet||je}function gt(t,e){if(t===e.value)return e;for(var r=0,n=e.children;r<n.length;r++){var o=n[r],i=gt(t,o);if(i)return i}return null}function _t(t,e,r){if(r.push(e),t===e.value)return r;for(var n=0,o=e.children;n<o.length;n++){var i=o[n],s=r.slice(0),a=_t(t,i,s);if(a.length>0)return a}return[]}function bt(t,e){var r=wt(t,e),o=new n.BehaviorSubject([new He("",{})]),i=new n.BehaviorSubject({}),s=new n.BehaviorSubject({}),a=new n.BehaviorSubject({}),u=new n.BehaviorSubject(""),c=new or(o,i,a,u,s,je,e,r.root);return c.snapshot=r.root,new nr(new er(c,[]),r)}function wt(t,e){var r={},n={},o={},i="",s=new ir([],r,o,i,n,je,e,null,t.root,-1,{});return new sr("",new er(s,[]))}function Ct(t){for(var e=t.pathFromRoot,r=e.length-1;r>=1;){var n=e[r],o=e[r-1];if(n.routeConfig&&""===n.routeConfig.path)r--;else{if(o.component)break;r--}}return e.slice(r).reduce(function(t,e){var r=rr({},t.params,e.params),n=rr({},t.data,e.data),o=rr({},t.resolve,e._resolvedData);return{params:r,data:n,resolve:o}},{params:{},data:{},resolve:{}})}function Et(t,e){e.value._routerState=t,e.children.forEach(function(e){return Et(t,e)})}function St(t){var e=t.children.length>0?" { "+t.children.map(St).join(", ")+" } ":"";return""+t.value+e}function xt(t){if(t.snapshot){var e=t.snapshot;t.snapshot=t._futureSnapshot,M(e.queryParams,t._futureSnapshot.queryParams)||t.queryParams.next(t._futureSnapshot.queryParams),e.fragment!==t._futureSnapshot.fragment&&t.fragment.next(t._futureSnapshot.fragment),M(e.params,t._futureSnapshot.params)||t.params.next(t._futureSnapshot.params),O(e.url,t._futureSnapshot.url)||t.url.next(t._futureSnapshot.url),M(e.data,t._futureSnapshot.data)||t.data.next(t._futureSnapshot.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function Tt(t,e){var r=M(t.params,e.params)&&z(t.url,e.url),n=!t.parent!=!e.parent;return r&&!n&&(!t.parent||Tt(t.parent,e.parent))}function Pt(t,e,r){var n=At(t,e._root,r?r._root:void 0);return new nr(n,e)}function At(t,e,r){if(r&&t.shouldReuseRoute(e.value,r.value.snapshot)){var n=r.value;n._futureSnapshot=e.value;var o=Mt(t,e,r);return new er(n,o)}if(t.retrieve(e.value)){var i=t.retrieve(e.value).route;return Ot(e,i),i}var n=Rt(e.value),o=e.children.map(function(e){return At(t,e)});return new er(n,o)}function Ot(t,e){if(t.value.routeConfig!==e.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(t.children.length!==e.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");e.value._futureSnapshot=t.value;for(var r=0;r<t.children.length;++r)Ot(t.children[r],e.children[r])}function Mt(t,e,r){return e.children.map(function(e){for(var n=0,o=r.children;n<o.length;n++){var i=o[n];if(t.shouldReuseRoute(i.value.snapshot,e.value))return At(t,e,i)}return At(t,e)})}function Rt(t){return new or(new n.BehaviorSubject(t.url),new n.BehaviorSubject(t.params),new n.BehaviorSubject(t.queryParams),new n.BehaviorSubject(t.fragment),new n.BehaviorSubject(t.data),t.outlet,t.component,t)}function kt(t,e,r,n,o){if(0===r.length)return Nt(e.root,e.root,e,n,o);var i=jt(r);if(i.toRoot())return Nt(e.root,new Be([],{}),e,n,o);
-
-var s=Lt(i,e,t),a=s.processChildren?Ht(s.segmentGroup,s.index,i.commands):Bt(s.segmentGroup,s.index,i.commands);return Nt(s.segmentGroup,a,e,n,o)}function It(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Nt(t,e,r,n,o){var i={};return n&&I(n,function(t,e){i[e]=Array.isArray(t)?t.map(function(t){return""+t}):""+t}),r.root===t?new Ue(e,i,o):new Ue(Dt(r.root,t,e),i,o)}function Dt(t,e,r){var n={};return I(t.children,function(t,o){n[o]=t===e?r:Dt(t,e,r)}),new Be(t.segments,n)}function jt(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new ar(!0,0,t);var e=0,r=!1,n=t.reduce(function(t,n,o){if("object"==typeof n&&null!=n){if(n.outlets){var i={};return I(n.outlets,function(t,e){i[e]="string"==typeof t?t.split("/"):t}),t.concat([{outlets:i}])}if(n.segmentPath)return t.concat([n.segmentPath])}return"string"!=typeof n?t.concat([n]):0===o?(n.split("/").forEach(function(n,o){0==o&&"."===n||(0==o&&""===n?r=!0:".."===n?e++:""!=n&&t.push(n))}),t):t.concat([n])},[]);return new ar(r,e,n)}function Lt(t,e,r){if(t.isAbsolute)return new ur(e.root,!0,0);if(-1===r.snapshot._lastPathIndex)return new ur(r.snapshot._urlSegment,!0,0);var n=It(t.commands[0])?0:1,o=r.snapshot._lastPathIndex+n;return Vt(r.snapshot._urlSegment,o,t.numberOfDoubleDots)}function Vt(t,e,r){for(var n=t,o=e,i=r;i>o;){if(i-=o,n=n.parent,!n)throw new Error("Invalid number of '../'");o=n.segments.length}return new ur(n,!1,o-i)}function Ft(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets[je]:""+t}function Ut(t){return"object"!=typeof t[0]?(e={},e[je]=t,e):void 0===t[0].outlets?(r={},r[je]=t,r):t[0].outlets;var e,r}function Bt(t,e,r){if(t||(t=new Be([],{})),0===t.segments.length&&t.hasChildren())return Ht(t,e,r);var n=qt(t,e,r),o=r.slice(n.commandIndex);if(n.match&&n.pathIndex<t.segments.length){var i=new Be(t.segments.slice(0,n.pathIndex),{});return i.children[je]=new Be(t.segments.slice(n.pathIndex),t.children),Ht(i,0,o)}return n.match&&0===o.length?new Be(t.segments,{}):n.match&&!t.hasChildren()?zt(t,e,r):n.match?Ht(t,0,o):zt(t,e,r)}function Ht(t,e,r){if(0===r.length)return new Be(t.segments,{});var n=Ut(r),o={};return I(n,function(r,n){null!==r&&(o[n]=Bt(t.children[n],e,r))}),I(t.children,function(t,e){void 0===n[e]&&(o[e]=t)}),new Be(t.segments,o)}function qt(t,e,r){for(var n=0,o=e,i={match:!1,pathIndex:0,commandIndex:0};o<t.segments.length;){if(n>=r.length)return i;var s=t.segments[o],a=Ft(r[n]),u=n<r.length-1?r[n+1]:null;if(o>0&&void 0===a)break;if(a&&u&&"object"==typeof u&&void 0===u.outlets){if(!$t(a,u,s))return i;n+=2}else{if(!$t(a,{},s))return i;n++}o++}return{match:!0,pathIndex:o,commandIndex:n}}function zt(t,e,r){for(var n=t.segments.slice(0,e),o=0;o<r.length;){if("object"==typeof r[o]&&void 0!==r[o].outlets){var i=Gt(r[o].outlets);return new Be(n,i)}if(0===o&&It(r[0])){var s=t.segments[e];n.push(new He(s.path,r[0])),o++}else{var a=Ft(r[o]),u=o<r.length-1?r[o+1]:null;a&&u&&It(u)?(n.push(new He(a,Wt(u))),o+=2):(n.push(new He(a,{})),o++)}}return new Be(n,{})}function Gt(t){var e={};return I(t,function(t,r){null!==t&&(e[r]=zt(new Be([],{}),0,t))}),e}function Wt(t){var e={};return I(t,function(t,r){return e[r]=""+t}),e}function $t(t,e,r){return t==r.path&&M(e,r.parameters)}function Kt(t,e,r,n){return new pr(t,e,r,n).recognize()}function Qt(t){t.sort(function(t,e){return t.value.outlet===je?-1:e.value.outlet===je?1:t.value.outlet.localeCompare(e.value.outlet)})}function Xt(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}function Zt(t,e,r){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||r.length>0))throw new lr;return{consumedSegments:[],lastChild:0,parameters:{}}}var n=e.matcher||x,o=n(r,t,e);if(!o)throw new lr;var i={};I(o.posParams,function(t,e){i[e]=t.path});var s=cr({},i,o.consumed[o.consumed.length-1].parameters);return{consumedSegments:o.consumed,lastChild:o.consumed.length,parameters:s}}function Yt(t){var e={};t.forEach(function(t){var r=e[t.value.outlet];if(r){var n=r.url.map(function(t){return t.toString()}).join("/"),o=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+n+"' and '"+o+"'.")}e[t.value.outlet]=t.value})}function Jt(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function te(t){for(var e=t,r=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)e=e._sourceSegment,r+=e._segmentIndexShift?e._segmentIndexShift:0;return r-1}function ee(t,e,r,n){if(r.length>0&&oe(t,r,n)){var o=new Be(e,ne(t,e,n,new Be(r,t.children)));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:[]}}if(0===r.length&&ie(t,r,n)){var i=new Be(t.segments,re(t,r,n,t.children));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:r}}var s=new Be(t.segments,t.children);return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:r}}function re(t,e,r,n){for(var o={},i=0,s=r;i<s.length;i++){var a=s[i];if(se(t,e,a)&&!n[ae(a)]){var u=new Be([],{});u._sourceSegment=t,u._segmentIndexShift=t.segments.length,o[ae(a)]=u}}return cr({},n,o)}function ne(t,e,r,n){var o={};o[je]=n,n._sourceSegment=t,n._segmentIndexShift=e.length;for(var i=0,s=r;i<s.length;i++){var a=s[i];if(""===a.path&&ae(a)!==je){var u=new Be([],{});u._sourceSegment=t,u._segmentIndexShift=e.length,o[ae(a)]=u}}return o}function oe(t,e,r){return r.some(function(r){return se(t,e,r)&&ae(r)!==je})}function ie(t,e,r){return r.some(function(r){return se(t,e,r)})}function se(t,e,r){return(t.hasChildren()||e.length>0)&&"full"===r.pathMatch?!1:""===r.path&&void 0===r.redirectTo}function ae(t){return t.outlet||je}function ue(t){return t.data||{}}function ce(t){return t.resolve||{}}function le(t){throw t}function pe(){return s.of(null)}function he(t){xt(t.value),t.children.forEach(he)}function fe(t){for(var e=t.parent;e;e=e.parent){var r=e._routeConfig;if(r&&r._loadedConfig)return r._loadedConfig;if(r&&r.component)return null}return null}function de(t){if(!t)return null;for(var e=t.parent;e;e=e.parent){var r=e._routeConfig;if(r&&r._loadedConfig)return r._loadedConfig}return null}function me(t){var e={};return t&&t.children.forEach(function(t){return e[t.value.outlet]=t}),e}function ye(t,e){var r=t._outlets[e.outlet];if(!r){var n=e.component.name;throw new Error(e.outlet===je?"Cannot find primary outlet to load '"+n+"'":"Cannot find the outlet "+e.outlet+" to load '"+n+"'")}return r}function ve(t){for(var e=0;e<t.length;e++){var r=t[e];if(null==r)throw new Error("The requested path contains "+r+" segment at index "+e)}}function ge(t){return""===t||!!t}function _e(){return new r.NgProbeToken("Router",_r)}function be(t,r,n){return void 0===n&&(n={}),n.useHash?new e.HashLocationStrategy(t,r):new e.PathLocationStrategy(t,r)}function we(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function Ce(t){return[{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:t},{provide:hr,multi:!0,useValue:t}]}function Ee(t,e,r,n,o,i,s,a,u,c,l){void 0===u&&(u={});var p=new _r(null,e,r,n,o,i,s,R(a));if(c&&(p.urlHandlingStrategy=c),l&&(p.routeReuseStrategy=l),u.errorHandler&&(p.errorHandler=u.errorHandler),u.enableTracing){var h=b.ɵgetDOM();p.events.subscribe(function(t){h.logGroup("Router Event: "+t.constructor.name),h.log(t.toString()),h.log(t),h.logGroupEnd()})}return p}function Se(t){return t.routerState.root}function xe(t){return t.appInitializer.bind(t)}function Te(t){return t.bootstrapListener.bind(t)}function Pe(){return[Fr,{provide:r.APP_INITIALIZER,multi:!0,useFactory:xe,deps:[Fr]},{provide:Ur,useFactory:Te,deps:[Fr]},{provide:r.APP_BOOTSTRAP_LISTENER,multi:!0,useExisting:Ur}]}var Ae=void 0||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},Oe=function(){function t(t,e){this.id=t,this.url=e}return t.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},t}(),Me=function(){function t(t,e,r){this.id=t,this.url=e,this.urlAfterRedirects=r}return t.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},t}(),Re=function(){function t(t,e,r){this.id=t,this.url=e,this.reason=r}return t.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},t}(),ke=function(){function t(t,e,r){this.id=t,this.url=e,this.error=r}return t.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},t}(),Ie=function(){function t(t,e,r,n){this.id=t,this.url=e,this.urlAfterRedirects=r,this.state=n}return t.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(),Ne=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadStart(path: "+this.route.path+")"},t}(),De=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadEnd(path: "+this.route.path+")"},t}(),je="primary",Le=function(){function t(t){this.params=t||{}}return t.prototype.has=function(t){return this.params.hasOwnProperty(t)},t.prototype.get=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e[0]:e}return null},t.prototype.getAll=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e:[e]}return[]},Object.defineProperty(t.prototype,"keys",{get:function(){return Object.keys(this.params)},enumerable:!0,configurable:!0}),t}(),Ve="ngNavigationCancelingError",Fe=function(){function t(t,e){this.routes=t,this.module=e}return t}(),Ue=function(){function t(t,e,r){this.root=t,this.queryParams=e,this.fragment=r}return Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=C(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Ge.serialize(this)},t}(),Be=function(){function t(t,e){var r=this;this.segments=t,this.children=e,this.parent=null,I(e,function(t){return t.parent=r})}return t.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(t.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return $(this)},t}(),He=function(){function t(t,e){this.path=t,this.parameters=e}return Object.defineProperty(t.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=C(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Z(this)},t}(),qe=function(){function t(){}return t.prototype.parse=function(){},t.prototype.serialize=function(){},t}(),ze=function(){function t(){}return t.prototype.parse=function(t){var e=new Qe(t);return new Ue(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},t.prototype.serialize=function(t){var e="/"+K(t.root,!0),r=J(t.queryParams),n="string"==typeof t.fragment?"#"+encodeURI(t.fragment):"";return""+e+r+n},t}(),Ge=new ze,We=/^[^\/()?;=&#]+/,$e=/^[^=?&#]+/,Ke=/^[^?&#]+/,Qe=function(){function t(t){this.url=t,this.remaining=t}return t.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Be([],{}):new Be([],this.parseChildren())},t.prototype.parseQueryParams=function(){var t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t},t.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURI(this.remaining):null},t.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(r[je]=new Be(t,e)),r},t.prototype.parseSegment=function(){var t=tt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(t),new He(X(t),this.parseMatrixParams())},t.prototype.parseMatrixParams=function(){for(var t={};this.consumeOptional(";");)this.parseParam(t);return t},t.prototype.parseParam=function(t){var e=tt(this.remaining);if(e){this.capture(e);var r="";if(this.consumeOptional("=")){var n=tt(this.remaining);n&&(r=n,this.capture(r))}t[X(e)]=X(r)}},t.prototype.parseQueryParam=function(t){var e=et(this.remaining);if(e){this.capture(e);var r="";if(this.consumeOptional("=")){var n=rt(this.remaining);n&&(r=n,this.capture(r))}var o=X(e),i=X(r);if(t.hasOwnProperty(o)){var s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}},t.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var r=tt(this.remaining),n=this.remaining[r.length];if("/"!==n&&")"!==n&&";"!==n)throw new Error("Cannot parse url '"+this.url+"'");var o=void 0;r.indexOf(":")>-1?(o=r.substr(0,r.indexOf(":")),this.capture(o),this.capture(":")):t&&(o=je);var i=this.parseChildren();e[o]=1===Object.keys(i).length?i[je]:new Be([],i),this.consumeOptional("//")}return e},t.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},t.prototype.consumeOptional=function(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1},t.prototype.capture=function(t){if(!this.consumeOptional(t))throw new Error('Expected "'+t+'".')},t}(),Xe=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},Ze=function(){function t(t){this.segmentGroup=t||null}return t}(),Ye=function(){function t(t){this.urlTree=t}return t}(),Je=function(){function t(t,e,n,o,i){this.configLoader=e,this.urlSerializer=n,this.urlTree=o,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(r.NgModuleRef)}return t.prototype.apply=function(){var t=this,e=this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,je),r=l.map.call(e,function(e){return t.createUrlTree(e,t.urlTree.queryParams,t.urlTree.fragment)});return d._catch.call(r,function(e){if(e instanceof Ye)return t.allowRedirects=!1,t.match(e.urlTree);if(e instanceof Ze)throw t.noMatchError(e);throw e})},t.prototype.match=function(t){var e=this,r=this.expandSegmentGroup(this.ngModule,this.config,t.root,je),n=l.map.call(r,function(r){return e.createUrlTree(r,t.queryParams,t.fragment)});return d._catch.call(n,function(t){if(t instanceof Ze)throw e.noMatchError(t);throw t})},t.prototype.noMatchError=function(t){return new Error("Cannot match any routes. URL Segment: '"+t.segmentGroup+"'")},t.prototype.createUrlTree=function(t,e,r){var n=t.segments.length>0?new Be([],(o={},o[je]=t,o)):t;return new Ue(n,e,r);var o},t.prototype.expandSegmentGroup=function(t,e,r,n){return 0===r.segments.length&&r.hasChildren()?l.map.call(this.expandChildren(t,e,r),function(t){return new Be([],t)}):this.expandSegment(t,r,e,r.segments,n,!0)},t.prototype.expandChildren=function(t,e,r){var n=this;return N(r.children,function(r,o){return n.expandSegmentGroup(t,e,o,r)})},t.prototype.expandSegment=function(t,e,r,n,o,i){var a=this,u=s.of.apply(void 0,r),p=l.map.call(u,function(u){var c=a.expandSegmentAgainstRoute(t,e,r,u,n,o,i);return d._catch.call(c,function(t){if(t instanceof Ze)return s.of(null);throw t})}),h=m.concatAll.call(p),f=c.first.call(h,function(t){return!!t});return d._catch.call(f,function(t){if(t instanceof y.EmptyError){if(a.noLeftoversInUrl(e,n,o))return s.of(new Be([],{}));throw new Ze(e)}throw t})},t.prototype.noLeftoversInUrl=function(t,e,r){return 0===e.length&&!t.children[r]},t.prototype.expandSegmentAgainstRoute=function(t,e,r,n,o,i,s){return vt(n)!==i?nt(e):void 0===n.redirectTo?this.matchSegmentAgainstRoute(t,e,n,o):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,r,n,o,i):nt(e)},t.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,r,n,o,i){return"**"===n.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,n,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,r,n,o,i)},t.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t,e,r,n){var o=this,i=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?ot(i):p.mergeMap.call(this.lineralizeSegments(r,i),function(r){var i=new Be(r,{});return o.expandSegment(t,i,e,r,n,!1)})},t.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,r,n,o,i){var s=this,a=ct(e,n,o),u=a.matched,c=a.consumedSegments,l=a.lastChild,h=a.positionalParamSegments;if(!u)return nt(e);var f=this.applyRedirectCommands(c,n.redirectTo,h);return n.redirectTo.startsWith("/")?ot(f):p.mergeMap.call(this.lineralizeSegments(n,f),function(n){return s.expandSegment(t,e,r,n.concat(o.slice(l)),i,!1)})},t.prototype.matchSegmentAgainstRoute=function(t,e,r,n){var o=this;if("**"===r.path)return r.loadChildren?l.map.call(this.configLoader.load(t.injector,r),function(t){return r._loadedConfig=t,new Be(n,{})}):s.of(new Be(n,{}));var i=ct(e,r,n),a=i.matched,u=i.consumedSegments,c=i.lastChild;if(!a)return nt(e);var h=n.slice(c),f=this.getChildConfig(t,r);return p.mergeMap.call(f,function(t){var r=t.module,n=t.routes,i=lt(e,u,h,n),a=i.segmentGroup,c=i.slicedSegments;if(0===c.length&&a.hasChildren()){var p=o.expandChildren(r,n,a);return l.map.call(p,function(t){return new Be(u,t)})}if(0===n.length&&0===c.length)return s.of(new Be(u,{}));var f=o.expandSegment(r,a,n,c,je,!0);return l.map.call(f,function(t){return new Be(u.concat(t.segments),t.children)})})},t.prototype.getChildConfig=function(t,e){var r=this;return e.children?s.of(new Fe(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?s.of(e._loadedConfig):p.mergeMap.call(ut(t.injector,e),function(n){return n?l.map.call(r.configLoader.load(t.injector,e),function(t){return e._loadedConfig=t,t}):st(e)}):s.of(new Fe([],t))},t.prototype.lineralizeSegments=function(t,e){for(var r=[],n=e.root;;){if(r=r.concat(n.segments),0===n.numberOfChildren)return s.of(r);if(n.numberOfChildren>1||!n.children[je])return it(t.redirectTo);n=n.children[je]}},t.prototype.applyRedirectCommands=function(t,e,r){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,r)},t.prototype.applyRedirectCreatreUrlTree=function(t,e,r,n){var o=this.createSegmentGroup(t,e.root,r,n);return new Ue(o,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)},t.prototype.createQueryParams=function(t,e){var r={};return I(t,function(t,n){r[n]=t.startsWith(":")?e[t.substring(1)]:t}),r},t.prototype.createSegmentGroup=function(t,e,r,n){var o=this,i=this.createSegments(t,e.segments,r,n),s={};return I(e.children,function(e,i){s[i]=o.createSegmentGroup(t,e,r,n)}),new Be(i,s)},t.prototype.createSegments=function(t,e,r,n){var o=this;return e.map(function(e){return e.path.startsWith(":")?o.findPosParam(t,e,n):o.findOrReturn(e,r)})},t.prototype.findPosParam=function(t,e,r){var n=r[e.path.substring(1)];if(!n)throw new Error("Cannot redirect to '"+t+"'. Cannot find '"+e.path+"'.");return n},t.prototype.findOrReturn=function(t,e){for(var r=0,n=0,o=e;n<o.length;n++){var i=o[n];if(i.path===t.path)return e.splice(r),i;r++}return t},t}(),tr=function(){function t(t){this._root=t}return Object.defineProperty(t.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),t.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},t.prototype.children=function(t){var e=gt(t,this._root);return e?e.children.map(function(t){return t.value}):[]},t.prototype.firstChild=function(t){var e=gt(t,this._root);return e&&e.children.length>0?e.children[0].value:null},t.prototype.siblings=function(t){var e=_t(t,this._root,[]);if(e.length<2)return[];var r=e[e.length-2].children.map(function(t){return t.value});return r.filter(function(e){return e!==t})},t.prototype.pathFromRoot=function(t){return _t(t,this._root,[]).map(function(t){return t.value})},t}(),er=function(){function t(t,e){this.value=t,this.children=e}return t.prototype.toString=function(){return"TreeNode("+this.value+")"},t}(),rr=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},nr=function(t){function e(e,r){var n=t.call(this,e)||this;return n.snapshot=r,Et(n,e),n}return Ae(e,t),e.prototype.toString=function(){return this.snapshot.toString()},e}(tr),or=function(){function t(t,e,r,n,o,i,s,a){this.url=t,this.params=e,this.queryParams=r,this.fragment=n,this.data=o,this.outlet=i,this.component=s,this._futureSnapshot=a}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=l.map.call(this.params,function(t){return C(t)})),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=l.map.call(this.queryParams,function(t){return C(t)})),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},t}(),ir=function(){function t(t,e,r,n,o,i,s,a,u,c,l){this.url=t,this.params=e,this.queryParams=r,this.fragment=n,this.data=o,this.outlet=i,this.component=s,this._routeConfig=a,this._urlSegment=u,this._lastPathIndex=c,this._resolve=l}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=C(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=C(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){var t=this.url.map(function(t){return t.toString()}).join("/"),e=this._routeConfig?this._routeConfig.path:"";return"Route(url:'"+t+"', path:'"+e+"')"},t}(),sr=function(t){function e(e,r){var n=t.call(this,r)||this;return n.url=e,Et(n,r),n}return Ae(e,t),e.prototype.toString=function(){return St(this._root)},e}(tr),ar=function(){function t(t,e,r){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=r,t&&r.length>0&&It(r[0]))throw new Error("Root segment cannot have matrix parameters");var n=r.find(function(t){return"object"==typeof t&&null!=t&&t.outlets});if(n&&n!==k(r))throw new Error("{outlets:{}} has to be the last command")}return t.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},t}(),ur=function(){function t(t,e,r){this.segmentGroup=t,this.processChildren=e,this.index=r}return t}(),cr=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},lr=function(){function t(){}return t}(),pr=function(){function t(t,e,r,n){this.rootComponentType=t,this.config=e,this.urlTree=r,this.url=n}return t.prototype.recognize=function(){try{var t=ee(this.urlTree.root,[],[],this.config).segmentGroup,e=this.processSegmentGroup(this.config,t,je),r=new ir([],Object.freeze({}),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,{},je,this.rootComponentType,null,this.urlTree.root,-1,{}),n=new er(r,e),o=new sr(this.url,n);return this.inheriteParamsAndData(o._root),s.of(o)}catch(i){return new f.Observable(function(t){return t.error(i)})}},t.prototype.inheriteParamsAndData=function(t){var e=this,r=t.value,n=Ct(r);r.params=Object.freeze(n.params),r.data=Object.freeze(n.data),t.children.forEach(function(t){return e.inheriteParamsAndData(t)})},t.prototype.processSegmentGroup=function(t,e,r){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,r)},t.prototype.processChildren=function(t,e){var r=this,n=W(e,function(e,n){return r.processSegmentGroup(t,e,n)});return Yt(n),Qt(n),n},t.prototype.processSegment=function(t,e,r,n){for(var o=0,i=t;o<i.length;o++){var s=i[o];try{return this.processSegmentAgainstRoute(s,e,r,n)}catch(a){if(!(a instanceof lr))throw a}}if(this.noLeftoversInUrl(e,r,n))return[];throw new lr},t.prototype.noLeftoversInUrl=function(t,e,r){return 0===e.length&&!t.children[r]},t.prototype.processSegmentAgainstRoute=function(t,e,r,n){if(t.redirectTo)throw new lr;if((t.outlet||je)!==n)throw new lr;if("**"===t.path){var o=r.length>0?k(r).parameters:{},i=new ir(r,o,Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,ue(t),n,t.component,t,Jt(e),te(e)+r.length,ce(t));return[new er(i,[])]}var s=Zt(e,t,r),a=s.consumedSegments,u=s.parameters,c=s.lastChild,l=r.slice(c),p=Xt(t),h=ee(e,a,l,p),f=h.segmentGroup,d=h.slicedSegments,m=new ir(a,u,Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,ue(t),n,t.component,t,Jt(e),te(e)+a.length,ce(t));if(0===d.length&&f.hasChildren()){var y=this.processChildren(p,f);return[new er(m,y)]}if(0===p.length&&0===d.length)return[new er(m,[])];var v=this.processSegment(p,f,d,je);return[new er(m,v)]},t}(),hr=new r.InjectionToken("ROUTES"),fr=function(){function t(t,e,r,n){this.loader=t,this.compiler=e,this.onLoadStartListener=r,this.onLoadEndListener=n}return t.prototype.load=function(t,e){var r=this;this.onLoadStartListener&&this.onLoadStartListener(e);var n=this.loadModuleFactory(e.loadChildren);return l.map.call(n,function(n){r.onLoadEndListener&&r.onLoadEndListener(e);var o=n.create(t);return new Fe(R(o.injector.get(hr)),o)})},t.prototype.loadModuleFactory=function(t){var e=this;return"string"==typeof t?v.fromPromise(this.loader.load(t)):p.mergeMap.call(j(t()),function(t){return t instanceof r.NgModuleFactory?s.of(t):v.fromPromise(e.compiler.compileModuleAsync(t))})},t}(),dr=function(){function t(){this._outlets={}}return t.prototype.registerOutlet=function(t,e){this._outlets[t]=e},t.prototype.removeOutlet=function(t){this._outlets[t]=void 0},t}(),mr=function(){function t(){}return t.prototype.shouldProcessUrl=function(){},t.prototype.extract=function(){},t.prototype.merge=function(){},t}(),yr=function(){function t(){}return t.prototype.shouldProcessUrl=function(){return!0},t.prototype.extract=function(t){return t},t.prototype.merge=function(t){return t},t}(),vr=void 0||Object.assign||function(t){for(var e,r=1,n=arguments.length;n>r;r++){e=arguments[r];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},gr=function(){function t(){}return t.prototype.shouldDetach=function(){return!1},t.prototype.store=function(){},t.prototype.shouldAttach=function(){return!1},t.prototype.retrieve=function(){return null},t.prototype.shouldReuseRoute=function(t,e){return t.routeConfig===e.routeConfig},t}(),_r=function(){function t(t,e,i,s,a,u,c,l){var p=this;this.rootComponentType=t,this.urlSerializer=e,this.outletMap=i,this.location=s,this.config=l,this.navigations=new n.BehaviorSubject(null),this.routerEvents=new o.Subject,this.navigationId=0,this.errorHandler=le,this.navigated=!1,this.hooks={beforePreactivation:pe,afterPreactivation:pe},this.urlHandlingStrategy=new yr,this.routeReuseStrategy=new gr;var h=function(t){return p.triggerEvent(new Ne(t))},f=function(t){return p.triggerEvent(new De(t))};this.ngModule=a.get(r.NgModuleRef),this.resetConfig(l),this.currentUrlTree=L(),this.rawUrlTree=this.currentUrlTree,this.configLoader=new fr(u,c,h,f),this.currentRouterState=bt(this.currentUrlTree,this.rootComponentType),this.processNavigations()}return t.prototype.resetRootComponentType=function(t){this.rootComponentType=t,this.currentRouterState.root.component=this.rootComponentType},t.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},t.prototype.setUpLocationChangeListener=function(){var t=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe(Zone.current.wrap(function(e){var r=t.urlSerializer.parse(e.url),n="popstate"===e.type?"popstate":"hashchange";setTimeout(function(){t.scheduleNavigation(r,n,{replaceUrl:!0})},0)})))},Object.defineProperty(t.prototype,"routerState",{get:function(){return this.currentRouterState},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"events",{get:function(){return this.routerEvents},enumerable:!0,configurable:!0}),t.prototype.triggerEvent=function(t){this.routerEvents.next(t)},t.prototype.resetConfig=function(t){T(t),this.config=t},t.prototype.ngOnDestroy=function(){this.dispose()},t.prototype.dispose=function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)},t.prototype.createUrlTree=function(t,e){var n=void 0===e?{}:e,o=n.relativeTo,i=n.queryParams,s=n.fragment,a=n.preserveQueryParams,u=n.queryParamsHandling,c=n.preserveFragment;r.isDevMode()&&a&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");var l=o||this.routerState.root,p=c?this.currentUrlTree.fragment:s,h=null;if(u)switch(u){case"merge":h=vr({},this.currentUrlTree.queryParams,i);break;case"preserve":h=this.currentUrlTree.queryParams;break;default:h=i||null}else h=a?this.currentUrlTree.queryParams:i||null;return kt(l,this.currentUrlTree,t,h,p)},t.prototype.navigateByUrl=function(t,e){void 0===e&&(e={skipLocationChange:!1});var r=t instanceof Ue?t:this.parseUrl(t),n=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(n,"imperative",e)},t.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),ve(t),"object"==typeof e.queryParams&&null!==e.queryParams&&(e.queryParams=this.removeEmptyProps(e.queryParams)),this.navigateByUrl(this.createUrlTree(t,e),e)},t.prototype.serializeUrl=function(t){return this.urlSerializer.serialize(t)},t.prototype.parseUrl=function(t){
-return this.urlSerializer.parse(t)},t.prototype.isActive=function(t,e){if(t instanceof Ue)return V(this.currentUrlTree,t,e);var r=this.urlSerializer.parse(t);return V(this.currentUrlTree,r,e)},t.prototype.removeEmptyProps=function(t){return Object.keys(t).reduce(function(e,r){var n=t[r];return null!==n&&void 0!==n&&(e[r]=n),e},{})},t.prototype.processNavigations=function(){var t=this;a.concatMap.call(this.navigations,function(e){return e?(t.executeScheduledNavigation(e),e.promise["catch"](function(){})):s.of(null)}).subscribe(function(){})},t.prototype.scheduleNavigation=function(t,e,r){var n=this.navigations.value;if(n&&"imperative"!==e&&"imperative"===n.source&&n.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(n&&"hashchange"==e&&"popstate"===n.source&&n.rawUrl.toString()===t.toString())return Promise.resolve(!0);var o=null,i=null,s=new Promise(function(t,e){o=t,i=e}),a=++this.navigationId;return this.navigations.next({id:a,source:e,rawUrl:t,extras:r,resolve:o,reject:i,promise:s}),s["catch"](function(t){return Promise.reject(t)})},t.prototype.executeScheduledNavigation=function(t){var e=this,r=t.id,n=t.rawUrl,o=t.extras,i=t.resolve,s=t.reject,a=this.urlHandlingStrategy.extract(n),u=!this.navigated||a.toString()!==this.currentUrlTree.toString();u&&this.urlHandlingStrategy.shouldProcessUrl(n)?(this.routerEvents.next(new Oe(r,this.serializeUrl(a))),Promise.resolve().then(function(){return e.runNavigate(a,n,!!o.skipLocationChange,!!o.replaceUrl,r,null)}).then(i,s)):u&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)?(this.routerEvents.next(new Oe(r,this.serializeUrl(a))),Promise.resolve().then(function(){return e.runNavigate(a,n,!1,!1,r,bt(a,e.rootComponentType).snapshot)}).then(i,s)):(this.rawUrlTree=n,i(null))},t.prototype.runNavigate=function(t,e,r,n,o,i){var a=this;return o!==this.navigationId?(this.location.go(this.urlSerializer.serialize(this.currentUrlTree)),this.routerEvents.next(new Re(o,this.serializeUrl(t),"Navigation ID "+o+" is not equal to the current navigation id "+this.navigationId)),Promise.resolve(!1)):new Promise(function(u,c){var h;if(i)h=s.of({appliedUrl:t,snapshot:i});else{var f=a.ngModule.injector,d=at(f,a.configLoader,a.urlSerializer,t,a.config);h=p.mergeMap.call(d,function(e){return l.map.call(Kt(a.rootComponentType,a.config,e,a.serializeUrl(e)),function(r){return a.routerEvents.next(new Ie(o,a.serializeUrl(t),a.serializeUrl(e),r)),{appliedUrl:e,snapshot:r}})})}var m,y,v=p.mergeMap.call(h,function(t){return l.map.call(a.hooks.beforePreactivation(t.snapshot),function(){return t})}),g=l.map.call(v,function(t){var e=t.appliedUrl,r=t.snapshot,n=a.ngModule.injector;return m=new Cr(r,a.currentRouterState.snapshot,n),m.traverse(a.outletMap),{appliedUrl:e,snapshot:r}}),_=p.mergeMap.call(g,function(t){var e=t.appliedUrl,r=t.snapshot;return a.navigationId!==o?s.of(!1):l.map.call(m.checkGuards(),function(t){return{appliedUrl:e,snapshot:r,shouldActivate:t}})}),b=p.mergeMap.call(_,function(t){return a.navigationId!==o?s.of(!1):t.shouldActivate?l.map.call(m.resolveData(),function(){return t}):s.of(t)}),w=p.mergeMap.call(b,function(t){return l.map.call(a.hooks.afterPreactivation(t.snapshot),function(){return t})}),C=l.map.call(w,function(t){var e=t.appliedUrl,r=t.snapshot,n=t.shouldActivate;if(n){var o=Pt(a.routeReuseStrategy,r,a.currentRouterState);return{appliedUrl:e,state:o,shouldActivate:n}}return{appliedUrl:e,state:null,shouldActivate:n}}),E=a.currentRouterState,x=a.currentUrlTree;C.forEach(function(t){var i=t.appliedUrl,s=t.state,u=t.shouldActivate;if(!u||o!==a.navigationId)return void(y=!1);if(a.currentUrlTree=i,a.rawUrlTree=a.urlHandlingStrategy.merge(a.currentUrlTree,e),a.currentRouterState=s,!r){var c=a.urlSerializer.serialize(a.rawUrlTree);a.location.isCurrentPathEqualTo(c)||n?a.location.replaceState(c):a.location.go(c)}new Er(a.routeReuseStrategy,s,E).activate(a.outletMap),y=!0}).then(function(){y?(a.navigated=!0,a.routerEvents.next(new Me(o,a.serializeUrl(t),a.serializeUrl(a.currentUrlTree))),u(!0)):(a.resetUrlToCurrentUrlTree(),a.routerEvents.next(new Re(o,a.serializeUrl(t),"")),u(!1))},function(r){if(S(r))a.resetUrlToCurrentUrlTree(),a.navigated=!0,a.routerEvents.next(new Re(o,a.serializeUrl(t),r.message)),u(!1);else{a.routerEvents.next(new ke(o,a.serializeUrl(t),r));try{u(a.errorHandler(r))}catch(n){c(n)}}a.currentRouterState=E,a.currentUrlTree=x,a.rawUrlTree=a.urlHandlingStrategy.merge(a.currentUrlTree,e),a.location.replaceState(a.serializeUrl(a.rawUrlTree))})})},t.prototype.resetUrlToCurrentUrlTree=function(){var t=this.urlSerializer.serialize(this.rawUrlTree);this.location.replaceState(t)},t}(),br=function(){function t(t){this.path=t}return Object.defineProperty(t.prototype,"route",{get:function(){return this.path[this.path.length-1]},enumerable:!0,configurable:!0}),t}(),wr=function(){function t(t,e){this.component=t,this.route=e}return t}(),Cr=function(){function t(t,e,r){this.future=t,this.curr=e,this.moduleInjector=r,this.canActivateChecks=[],this.canDeactivateChecks=[]}return t.prototype.traverse=function(t){var e=this.future._root,r=this.curr?this.curr._root:null;this.traverseChildRoutes(e,r,t,[e.value])},t.prototype.checkGuards=function(){var t=this;if(0===this.canDeactivateChecks.length&&0===this.canActivateChecks.length)return s.of(!0);var e=this.runCanDeactivateChecks();return p.mergeMap.call(e,function(e){return e?t.runCanActivateChecks():s.of(!1)})},t.prototype.resolveData=function(){var t=this;if(0===this.canActivateChecks.length)return s.of(null);var e=i.from(this.canActivateChecks),r=a.concatMap.call(e,function(e){return t.runResolve(e.route)});return h.reduce.call(r,function(t){return t})},t.prototype.traverseChildRoutes=function(t,e,r,n){var o=this,i=me(e);t.children.forEach(function(t){o.traverseRoutes(t,i[t.value.outlet],r,n.concat([t.value])),delete i[t.value.outlet]}),I(i,function(t,e){return o.deactiveRouteAndItsChildren(t,r._outlets[e])})},t.prototype.traverseRoutes=function(t,e,r,n){var o=t.value,i=e?e.value:null,s=r?r._outlets[t.value.outlet]:null;i&&o._routeConfig===i._routeConfig?(this.shouldRunGuardsAndResolvers(i,o,o._routeConfig.runGuardsAndResolvers)?(this.canActivateChecks.push(new br(n)),this.canDeactivateChecks.push(new wr(s.component,i))):(o.data=i.data,o._resolvedData=i._resolvedData),o.component?this.traverseChildRoutes(t,e,s?s.outletMap:null,n):this.traverseChildRoutes(t,e,r,n)):(i&&this.deactiveRouteAndItsChildren(e,s),this.canActivateChecks.push(new br(n)),o.component?this.traverseChildRoutes(t,null,s?s.outletMap:null,n):this.traverseChildRoutes(t,null,r,n))},t.prototype.shouldRunGuardsAndResolvers=function(t,e,r){switch(r){case"always":return!0;case"paramsOrQueryParamsChange":return!Tt(t,e)||!M(t.queryParams,e.queryParams);case"paramsChange":default:return!Tt(t,e)}},t.prototype.deactiveRouteAndItsChildren=function(t,e){var r=this,n=me(t),o=t.value;I(n,function(t,n){o.component?e?r.deactiveRouteAndItsChildren(t,e.outletMap._outlets[n]):r.deactiveRouteAndItsChildren(t,null):r.deactiveRouteAndItsChildren(t,e)}),this.canDeactivateChecks.push(o.component?e&&e.isActivated?new wr(e.component,o):new wr(null,o):new wr(null,o))},t.prototype.runCanDeactivateChecks=function(){var t=this,e=i.from(this.canDeactivateChecks),r=p.mergeMap.call(e,function(e){return t.runCanDeactivate(e.component,e.route)});return u.every.call(r,function(t){return t===!0})},t.prototype.runCanActivateChecks=function(){var t=this,e=i.from(this.canActivateChecks),r=p.mergeMap.call(e,function(e){return D(i.from([t.runCanActivateChild(e.path),t.runCanActivate(e.route)]))});return u.every.call(r,function(t){return t===!0})},t.prototype.runCanActivate=function(t){var e=this,r=t._routeConfig?t._routeConfig.canActivate:null;if(!r||0===r.length)return s.of(!0);var n=l.map.call(i.from(r),function(r){var n,o=e.getToken(r,t);return n=j(o.canActivate?o.canActivate(t,e.future):o(t,e.future)),c.first.call(n)});return D(n)},t.prototype.runCanActivateChild=function(t){var e=this,r=t[t.length-1],n=t.slice(0,t.length-1).reverse().map(function(t){return e.extractCanActivateChild(t)}).filter(function(t){return null!==t});return D(l.map.call(i.from(n),function(t){var n=l.map.call(i.from(t.guards),function(n){var o,i=e.getToken(n,t.node);return o=j(i.canActivateChild?i.canActivateChild(r,e.future):i(r,e.future)),c.first.call(o)});return D(n)}))},t.prototype.extractCanActivateChild=function(t){var e=t._routeConfig?t._routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null},t.prototype.runCanDeactivate=function(t,e){var r=this,n=e&&e._routeConfig?e._routeConfig.canDeactivate:null;if(!n||0===n.length)return s.of(!0);var o=p.mergeMap.call(i.from(n),function(n){var o,i=r.getToken(n,e);return o=j(i.canDeactivate?i.canDeactivate(t,e,r.curr,r.future):i(t,e,r.curr,r.future)),c.first.call(o)});return u.every.call(o,function(t){return t===!0})},t.prototype.runResolve=function(t){var e=t._resolve;return l.map.call(this.resolveNode(e,t),function(e){return t._resolvedData=e,t.data=vr({},t.data,Ct(t).resolve),null})},t.prototype.resolveNode=function(t,e){var r=this;return N(t,function(t,n){var o=r.getToken(n,e);return j(o.resolve?o.resolve(e,r.future):o(e,r.future))})},t.prototype.getToken=function(t,e){var r=de(e),n=r?r.module.injector:this.moduleInjector;return n.get(t)},t}(),Er=function(){function t(t,e,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=r}return t.prototype.activate=function(t){var e=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,r,t),xt(this.futureState.root),this.activateChildRoutes(e,r,t)},t.prototype.deactivateChildRoutes=function(t,e,r){var n=this,o=me(e);t.children.forEach(function(t){n.deactivateRoutes(t,o[t.value.outlet],r),delete o[t.value.outlet]}),I(o,function(t){return n.deactiveRouteAndItsChildren(t,r)})},t.prototype.activateChildRoutes=function(t,e,r){var n=this,o=me(e);t.children.forEach(function(t){n.activateRoutes(t,o[t.value.outlet],r)})},t.prototype.deactivateRoutes=function(t,e,r){var n=t.value,o=e?e.value:null;if(n===o)if(n.component){var i=ye(r,n);this.deactivateChildRoutes(t,e,i.outletMap)}else this.deactivateChildRoutes(t,e,r);else o&&this.deactiveRouteAndItsChildren(e,r)},t.prototype.activateRoutes=function(t,e,r){var n=t.value,o=e?e.value:null;if(n===o)if(xt(n),n.component){var i=ye(r,n);this.activateChildRoutes(t,e,i.outletMap)}else this.activateChildRoutes(t,e,r);else if(n.component){xt(n);var i=ye(r,t.value);if(this.routeReuseStrategy.shouldAttach(n.snapshot)){var s=this.routeReuseStrategy.retrieve(n.snapshot);this.routeReuseStrategy.store(n.snapshot,null),i.attach(s.componentRef,s.route.value),he(s.route)}else{var a=new dr;this.placeComponentIntoOutlet(a,n,i),this.activateChildRoutes(t,null,a)}}else xt(n),this.activateChildRoutes(t,null,r)},t.prototype.placeComponentIntoOutlet=function(t,e,r){var n=fe(e.snapshot),o=n?n.module.componentFactoryResolver:null;r.activateWith(e,o,t)},t.prototype.deactiveRouteAndItsChildren=function(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactiveRouteAndOutlet(t,e)},t.prototype.detachAndStoreRouteSubtree=function(t,e){var r=ye(e,t.value),n=r.detach();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:n,route:t})},t.prototype.deactiveRouteAndOutlet=function(t,e){var r=this,n=me(t),o=null;try{o=ye(e,t.value)}catch(i){return}var s=o.outletMap;I(n,function(n){t.value.component?r.deactiveRouteAndItsChildren(n,s):r.deactiveRouteAndItsChildren(n,e)}),o&&o.isActivated&&o.deactivate()},t}(),Sr=function(){function t(t,e,r,n,o){this.router=t,this.route=e,this.commands=[],null==r&&n.setElementAttribute(o.nativeElement,"tabindex","0")}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){r.isDevMode()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated!, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.onClick=function(){var t={skipLocationChange:ge(this.skipLocationChange),replaceUrl:ge(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:ge(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:ge(this.preserveFragment)})},enumerable:!0,configurable:!0}),t}();Sr.decorators=[{type:r.Directive,args:[{selector:":not(a)[routerLink]"}]}],Sr.ctorParameters=function(){return[{type:_r},{type:or},{type:void 0,decorators:[{type:r.Attribute,args:["tabindex"]}]},{type:r.Renderer},{type:r.ElementRef}]},Sr.propDecorators={queryParams:[{type:r.Input}],fragment:[{type:r.Input}],queryParamsHandling:[{type:r.Input}],preserveFragment:[{type:r.Input}],skipLocationChange:[{type:r.Input}],replaceUrl:[{type:r.Input}],routerLink:[{type:r.Input}],preserveQueryParams:[{type:r.Input}],onClick:[{type:r.HostListener,args:["click"]}]};var xr=function(){function t(t,e,r){var n=this;this.router=t,this.route=e,this.locationStrategy=r,this.commands=[],this.subscription=t.events.subscribe(function(t){t instanceof Me&&n.updateTargetUrlAndHref()})}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){r.isDevMode()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(){this.updateTargetUrlAndHref()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.onClick=function(t,e,r){if(0!==t||e||r)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;var n={skipLocationChange:ge(this.skipLocationChange),replaceUrl:ge(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,n),!1},t.prototype.updateTargetUrlAndHref=function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:ge(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:ge(this.preserveFragment)})},enumerable:!0,configurable:!0}),t}();xr.decorators=[{type:r.Directive,args:[{selector:"a[routerLink]"}]}],xr.ctorParameters=function(){return[{type:_r},{type:or},{type:e.LocationStrategy}]},xr.propDecorators={target:[{type:r.HostBinding,args:["attr.target"]},{type:r.Input}],queryParams:[{type:r.Input}],fragment:[{type:r.Input}],queryParamsHandling:[{type:r.Input}],preserveFragment:[{type:r.Input}],skipLocationChange:[{type:r.Input}],replaceUrl:[{type:r.Input}],href:[{type:r.HostBinding}],routerLink:[{type:r.Input}],preserveQueryParams:[{type:r.Input}],onClick:[{type:r.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]};var Tr=function(){function t(t,e,r,n){var o=this;this.router=t,this.element=e,this.renderer=r,this.cdr=n,this.classes=[],this.active=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(function(t){t instanceof Me&&o.update()})}return Object.defineProperty(t.prototype,"isActive",{get:function(){return this.active},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){var t=this;this.links.changes.subscribe(function(){return t.update()}),this.linksWithHrefs.changes.subscribe(function(){return t.update()}),this.update()},Object.defineProperty(t.prototype,"routerLinkActive",{set:function(t){var e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(function(t){return!!t})},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(){this.update()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.update=function(){var t=this;if(this.links&&this.linksWithHrefs&&this.router.navigated){var e=this.hasActiveLinks();this.active!==e&&(this.classes.forEach(function(r){return t.renderer.setElementClass(t.element.nativeElement,r,e)}),Promise.resolve(e).then(function(e){return t.active=e}))}},t.prototype.isLinkActive=function(t){var e=this;return function(r){return t.isActive(r.urlTree,e.routerLinkActiveOptions.exact)}},t.prototype.hasActiveLinks=function(){return this.links.some(this.isLinkActive(this.router))||this.linksWithHrefs.some(this.isLinkActive(this.router))},t}();Tr.decorators=[{type:r.Directive,args:[{selector:"[routerLinkActive]",exportAs:"routerLinkActive"}]}],Tr.ctorParameters=function(){return[{type:_r},{type:r.ElementRef},{type:r.Renderer},{type:r.ChangeDetectorRef}]},Tr.propDecorators={links:[{type:r.ContentChildren,args:[Sr,{descendants:!0}]}],linksWithHrefs:[{type:r.ContentChildren,args:[xr,{descendants:!0}]}],routerLinkActiveOptions:[{type:r.Input}],routerLinkActive:[{type:r.Input}]};var Pr=function(){function t(t,e,n,o){this.parentOutletMap=t,this.location=e,this.resolver=n,this.name=o,this.activateEvents=new r.EventEmitter,this.deactivateEvents=new r.EventEmitter,t.registerOutlet(o?o:je,this)}return t.prototype.ngOnDestroy=function(){this.parentOutletMap.removeOutlet(this.name?this.name:je)},Object.defineProperty(t.prototype,"locationInjector",{get:function(){return this.location.injector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"locationFactoryResolver",{get:function(){return this.resolver},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isActivated",{get:function(){return!!this.activated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activatedRoute",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute},enumerable:!0,configurable:!0}),t.prototype.detach=function(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();var t=this.activated;return this.activated=null,this._activatedRoute=null,t},t.prototype.attach=function(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)},t.prototype.deactivate=function(){if(this.activated){var t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}},t.prototype.activate=function(t,e,n,o,i){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this.outletMap=i,this._activatedRoute=t;var s=t._futureSnapshot,a=s._routeConfig.component,u=e.resolveComponentFactory(a),c=r.ReflectiveInjector.fromResolvedProviders(o,n);this.activated=this.location.createComponent(u,this.location.length,c,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},t.prototype.activateWith=function(t,e,r){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this.outletMap=r,this._activatedRoute=t;var n=t._futureSnapshot,o=n._routeConfig.component;e=e||this.resolver;var i=e.resolveComponentFactory(o),s=new Ar(t,r,this.location.injector);this.activated=this.location.createComponent(i,this.location.length,s,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},t}();Pr.decorators=[{type:r.Directive,args:[{selector:"router-outlet"}]}],Pr.ctorParameters=function(){return[{type:dr},{type:r.ViewContainerRef},{type:r.ComponentFactoryResolver},{type:void 0,decorators:[{type:r.Attribute,args:["name"]}]}]},Pr.propDecorators={activateEvents:[{type:r.Output,args:["activate"]}],deactivateEvents:[{type:r.Output,args:["deactivate"]}]};var Ar=function(){function t(t,e,r){this.route=t,this.map=e,this.parent=r}return t.prototype.get=function(t,e){return t===or?this.route:t===dr?this.map:this.parent.get(t,e)},t}(),Or=function(){function t(){}return t.prototype.shouldDetach=function(){},t.prototype.store=function(){},t.prototype.shouldAttach=function(){},t.prototype.retrieve=function(){},t.prototype.shouldReuseRoute=function(){},t}(),Mr=function(){function t(){}return t.prototype.preload=function(){},t}(),Rr=function(){function t(){}return t.prototype.preload=function(t,e){return d._catch.call(e(),function(){return s.of(null)})},t}(),kr=function(){function t(){}return t.prototype.preload=function(){return s.of(null)},t}(),Ir=function(){function t(t,e,r,n,o){this.router=t,this.injector=n,this.preloadingStrategy=o;var i=function(e){return t.triggerEvent(new Ne(e))},s=function(e){return t.triggerEvent(new De(e))};this.loader=new fr(e,r,i,s)}return t.prototype.setUpPreloading=function(){var t=this,e=w.filter.call(this.router.events,function(t){return t instanceof Me});this.subscription=a.concatMap.call(e,function(){return t.preload()}).subscribe(function(){})},t.prototype.preload=function(){var t=this.injector.get(r.NgModuleRef);return this.processRoutes(t,this.router.config)},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.processRoutes=function(t,e){for(var r=[],n=0,o=e;n<o.length;n++){var s=o[n];if(s.loadChildren&&!s.canLoad&&s._loadedConfig){var a=s._loadedConfig;r.push(this.processRoutes(a.module,a.routes))}else s.loadChildren&&!s.canLoad?r.push(this.preloadConfig(t,s)):s.children&&r.push(this.processRoutes(t,s.children))}return _.mergeAll.call(i.from(r))},t.prototype.preloadConfig=function(t,e){var r=this;return this.preloadingStrategy.preload(e,function(){var n=r.loader.load(t.injector,e);return p.mergeMap.call(n,function(t){return e._loadedConfig=t,r.processRoutes(t.module,t.routes)})})},t}();Ir.decorators=[{type:r.Injectable}],Ir.ctorParameters=function(){return[{type:_r},{type:r.NgModuleFactoryLoader},{type:r.Compiler},{type:r.Injector},{type:Mr}]};var Nr=[Pr,Sr,xr,Tr],Dr=new r.InjectionToken("ROUTER_CONFIGURATION"),jr=new r.InjectionToken("ROUTER_FORROOT_GUARD"),Lr=[e.Location,{provide:qe,useClass:ze},{provide:_r,useFactory:Ee,deps:[r.ApplicationRef,qe,dr,e.Location,r.Injector,r.NgModuleFactoryLoader,r.Compiler,hr,Dr,[mr,new r.Optional],[Or,new r.Optional]]},dr,{provide:or,useFactory:Se,deps:[_r]},{provide:r.NgModuleFactoryLoader,useClass:r.SystemJsNgModuleLoader},Ir,kr,Rr,{provide:Dr,useValue:{enableTracing:!1}}],Vr=function(){function t(){}return t.forRoot=function(n,o){return{ngModule:t,providers:[Lr,Ce(n),{provide:jr,useFactory:we,deps:[[_r,new r.Optional,new r.SkipSelf]]},{provide:Dr,useValue:o?o:{}},{provide:e.LocationStrategy,useFactory:be,deps:[e.PlatformLocation,[new r.Inject(e.APP_BASE_HREF),new r.Optional],Dr]},{provide:Mr,useExisting:o&&o.preloadingStrategy?o.preloadingStrategy:kr},{provide:r.NgProbeToken,multi:!0,useFactory:_e},Pe()]}},t.forChild=function(e){return{ngModule:t,providers:[Ce(e)]}},t}();Vr.decorators=[{type:r.NgModule,args:[{declarations:Nr,exports:Nr}]}],Vr.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[jr]}]},{type:_r,decorators:[{type:r.Optional}]}]};var Fr=function(){function t(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new o.Subject}return t.prototype.appInitializer=function(){var t=this,r=this.injector.get(e.LOCATION_INITIALIZED,Promise.resolve(null));return r.then(function(){var e=null,r=new Promise(function(t){return e=t}),n=t.injector.get(_r),o=t.injector.get(Dr);if(t.isLegacyDisabled(o)||t.isLegacyEnabled(o))e(!0);else if("disabled"===o.initialNavigation)n.setUpLocationChangeListener(),e(!0);else{if("enabled"!==o.initialNavigation)throw new Error("Invalid initialNavigation options: '"+o.initialNavigation+"'");n.hooks.afterPreactivation=function(){return t.initNavigation?s.of(null):(t.initNavigation=!0,e(!0),t.resultOfPreactivationDone)},n.initialNavigation()}return r})},t.prototype.bootstrapListener=function(t){var e=this.injector.get(Dr),n=this.injector.get(Ir),o=this.injector.get(_r),i=this.injector.get(r.ApplicationRef);t===i.components[0]&&(this.isLegacyEnabled(e)?o.initialNavigation():this.isLegacyDisabled(e)&&o.setUpLocationChangeListener(),n.setUpPreloading(),o.resetRootComponentType(i.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())},t.prototype.isLegacyEnabled=function(t){return"legacy_enabled"===t.initialNavigation||t.initialNavigation===!0||void 0===t.initialNavigation},t.prototype.isLegacyDisabled=function(t){return"legacy_disabled"===t.initialNavigation||t.initialNavigation===!1},t}();Fr.decorators=[{type:r.Injectable}],Fr.ctorParameters=function(){return[{type:r.Injector}]};var Ur=new r.InjectionToken("Router Initializer"),Br=new r.Version("4.1.0");t.RouterLink=Sr,t.RouterLinkWithHref=xr,t.RouterLinkActive=Tr,t.RouterOutlet=Pr,t.NavigationCancel=Re,t.NavigationEnd=Me,t.NavigationError=ke,t.NavigationStart=Oe,t.RouteConfigLoadEnd=De,t.RouteConfigLoadStart=Ne,t.RoutesRecognized=Ie,t.RouteReuseStrategy=Or,t.Router=_r,t.ROUTES=hr,t.ROUTER_CONFIGURATION=Dr,t.ROUTER_INITIALIZER=Ur,t.RouterModule=Vr,t.provideRoutes=Ce,t.RouterOutletMap=dr,t.NoPreloading=kr,t.PreloadAllModules=Rr,t.PreloadingStrategy=Mr,t.RouterPreloader=Ir,t.ActivatedRoute=or,t.ActivatedRouteSnapshot=ir,t.RouterState=nr,t.RouterStateSnapshot=sr,t.PRIMARY_OUTLET=je,t.convertToParamMap=C,t.UrlHandlingStrategy=mr,t.DefaultUrlSerializer=ze,t.UrlSegment=He,t.UrlSegmentGroup=Be,t.UrlSerializer=qe,t.UrlTree=Ue,t.VERSION=Br,t.ɵROUTER_PROVIDERS=Lr,t.ɵflatten=R,t.ɵa=jr,t.ɵg=Fr,t.ɵh=xe,t.ɵi=Te,t.ɵd=we,t.ɵc=be,t.ɵj=Pe,t.ɵf=Se,t.ɵb=_e,t.ɵe=Ee,t.ɵk=tr,t.ɵl=er,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/core":8,"@angular/platform-browser":12,"rxjs/BehaviorSubject":14,"rxjs/Observable":17,"rxjs/Subject":20,"rxjs/observable/from":35,"rxjs/observable/fromPromise":36,"rxjs/observable/of":38,"rxjs/operator/catch":39,"rxjs/operator/concatAll":40,"rxjs/operator/concatMap":41,"rxjs/operator/every":42,"rxjs/operator/filter":43,"rxjs/operator/first":44,"rxjs/operator/last":45,"rxjs/operator/map":46,"rxjs/operator/mergeAll":48,"rxjs/operator/mergeMap":49,"rxjs/operator/reduce":52,"rxjs/util/EmptyError":57}],14:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./Subject"),i=t("./util/ObjectUnsubscribedError"),s=function(t){function e(e){t.call(this),this._value=e}return n(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var r=t.prototype._subscribe.call(this,e);return r&&!r.closed&&e.next(this._value),r},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new i.ObjectUnsubscribedError;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(o.Subject);r.BehaviorSubject=s},{"./Subject":20,"./util/ObjectUnsubscribedError":58}],15:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./Subscriber"),i=function(t){function e(e,r,n){t.call(this),this.parent=e,this.outerValue=r,this.outerIndex=n,this.index=0}return n(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(o.Subscriber);r.InnerSubscriber=i},{"./Subscriber":22}],16:[function(t,e,r){"use strict";var n=t("./Observable"),o=function(){function t(t,e,r){this.kind=t,this.value=e,this.error=r,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype["do"]=function(t,e,r){var n=this.kind;switch(n){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return r&&r()}},t.prototype.accept=function(t,e,r){return t&&"function"==typeof t.next?this.observe(t):this["do"](t,e,r)},t.prototype.toObservable=function(){var t=this.kind;switch(t){case"N":return n.Observable.of(this.value);case"E":return n.Observable["throw"](this.error);case"C":return n.Observable.empty()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return"undefined"!=typeof e?new t("N",e):this.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return this.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}();r.Notification=o},{"./Observable":17}],17:[function(t,e,r){"use strict";var n=t("./util/root"),o=t("./util/toSubscriber"),i=t("./symbol/observable"),s=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var r=new t;return r.source=this,r.operator=e,r},t.prototype.subscribe=function(t,e,r){var n=this.operator,i=o.toSubscriber(t,e,r);if(n?n.call(i,this.source):i.add(this._trySubscribe(i)),i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.syncErrorThrown=!0,t.syncErrorValue=e,t.error(e)}},t.prototype.forEach=function(t,e){var r=this;if(e||(n.root.Rx&&n.root.Rx.config&&n.root.Rx.config.Promise?e=n.root.Rx.config.Promise:n.root.Promise&&(e=n.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var o=r.subscribe(function(e){if(o)try{t(e)}catch(r){n(r),o.unsubscribe()}else t(e)},n,e)})},t.prototype._subscribe=function(t){return this.source.subscribe(t)},t.prototype[i.$$observable]=function(){return this},t.create=function(e){return new t(e)},t}();r.Observable=s},{"./symbol/observable":55,"./util/root":67,"./util/toSubscriber":69}],18:[function(t,e,r){"use strict";r.empty={closed:!0,next:function(){},error:function(t){throw t},complete:function(){}}},{}],19:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./Subscriber"),i=function(t){function e(){t.apply(this,arguments)}return n(e,t),e.prototype.notifyNext=function(t,e){this.destination.next(e)},e.prototype.notifyError=function(t){this.destination.error(t)},e.prototype.notifyComplete=function(){this.destination.complete()},e}(o.Subscriber);r.OuterSubscriber=i},{"./Subscriber":22}],20:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./Observable"),i=t("./Subscriber"),s=t("./Subscription"),a=t("./util/ObjectUnsubscribedError"),u=t("./SubjectSubscription"),c=t("./symbol/rxSubscriber"),l=function(t){function e(e){t.call(this,e),this.destination=e}return n(e,t),e}(i.Subscriber);r.SubjectSubscriber=l;var p=function(t){function e(){t.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return n(e,t),e.prototype[c.$$rxSubscriber]=function(){return new l(this)},e.prototype.lift=function(t){var e=new h(this,this);return e.operator=t,e},e.prototype.next=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;if(!this.isStopped)for(var e=this.observers,r=e.length,n=e.slice(),o=0;r>o;o++)n[o].next(t);
-
-},e.prototype.error=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=t,this.isStopped=!0;for(var e=this.observers,r=e.length,n=e.slice(),o=0;r>o;o++)n[o].error(t);this.observers.length=0},e.prototype.complete=function(){if(this.closed)throw new a.ObjectUnsubscribedError;this.isStopped=!0;for(var t=this.observers,e=t.length,r=t.slice(),n=0;e>n;n++)r[n].complete();this.observers.length=0},e.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},e.prototype._trySubscribe=function(e){if(this.closed)throw new a.ObjectUnsubscribedError;return t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;return this.hasError?(t.error(this.thrownError),s.Subscription.EMPTY):this.isStopped?(t.complete(),s.Subscription.EMPTY):(this.observers.push(t),new u.SubjectSubscription(this,t))},e.prototype.asObservable=function(){var t=new o.Observable;return t.source=this,t},e.create=function(t,e){return new h(t,e)},e}(o.Observable);r.Subject=p;var h=function(t){function e(e,r){t.call(this),this.destination=e,this.source=r}return n(e,t),e.prototype.next=function(t){var e=this.destination;e&&e.next&&e.next(t)},e.prototype.error=function(t){var e=this.destination;e&&e.error&&this.destination.error(t)},e.prototype.complete=function(){var t=this.destination;t&&t.complete&&this.destination.complete()},e.prototype._subscribe=function(t){var e=this.source;return e?this.source.subscribe(t):s.Subscription.EMPTY},e}(p);r.AnonymousSubject=h},{"./Observable":17,"./SubjectSubscription":21,"./Subscriber":22,"./Subscription":23,"./symbol/rxSubscriber":56,"./util/ObjectUnsubscribedError":58}],21:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./Subscription"),i=function(t){function e(e,r){t.call(this),this.subject=e,this.subscriber=r,this.closed=!1}return n(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var r=e.indexOf(this.subscriber);-1!==r&&e.splice(r,1)}}},e}(o.Subscription);r.SubjectSubscription=i},{"./Subscription":23}],22:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("./util/isFunction"),i=t("./Subscription"),s=t("./Observer"),a=t("./symbol/rxSubscriber"),u=function(t){function e(r,n,o){switch(t.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.empty;break;case 1:if(!r){this.destination=s.empty;break}if("object"==typeof r){r instanceof e?(this.destination=r,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new c(this,r));break}default:this.syncErrorThrowable=!0,this.destination=new c(this,r,n,o)}}return n(e,t),e.prototype[a.$$rxSubscriber]=function(){return this},e.create=function(t,r,n){var o=new e(t,r,n);return o.syncErrorThrowable=!1,o},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this,e=t._parent,r=t._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=r,this},e}(i.Subscription);r.Subscriber=u;var c=function(t){function e(e,r,n,i){t.call(this),this._parentSubscriber=e;var s,a=this;o.isFunction(r)?s=r:r&&(a=r,s=r.next,n=r.error,i=r.complete,o.isFunction(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this)),this._context=a,this._next=s,this._error=n,this._complete=i}return n(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber;if(this._error)e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else{if(!e.syncErrorThrowable)throw this.unsubscribe(),t;e.syncErrorValue=t,e.syncErrorThrown=!0,this.unsubscribe()}}},e.prototype.complete=function(){if(!this.isStopped){var t=this._parentSubscriber;this._complete?t.syncErrorThrowable?(this.__tryOrSetError(t,this._complete),this.unsubscribe()):(this.__tryOrUnsub(this._complete),this.unsubscribe()):this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(r){throw this.unsubscribe(),r}},e.prototype.__tryOrSetError=function(t,e,r){try{e.call(this._context,r)}catch(n){return t.syncErrorValue=n,t.syncErrorThrown=!0,!0}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(u)},{"./Observer":18,"./Subscription":23,"./symbol/rxSubscriber":56,"./util/isFunction":63}],23:[function(t,e,r){"use strict";function n(t){return t.reduce(function(t,e){return t.concat(e instanceof c.UnsubscriptionError?e.errors:e)},[])}var o=t("./util/isArray"),i=t("./util/isObject"),s=t("./util/isFunction"),a=t("./util/tryCatch"),u=t("./util/errorObject"),c=t("./util/UnsubscriptionError"),l=function(){function t(t){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return t.prototype.unsubscribe=function(){var t,e=!1;if(!this.closed){var r=this,l=r._parent,p=r._parents,h=r._unsubscribe,f=r._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var d=-1,m=p?p.length:0;l;)l.remove(this),l=++d<m&&p[d]||null;if(s.isFunction(h)){var y=a.tryCatch(h).call(this);y===u.errorObject&&(e=!0,t=t||(u.errorObject.e instanceof c.UnsubscriptionError?n(u.errorObject.e.errors):[u.errorObject.e]))}if(o.isArray(f))for(d=-1,m=f.length;++d<m;){var v=f[d];if(i.isObject(v)){var y=a.tryCatch(v.unsubscribe).call(v);if(y===u.errorObject){e=!0,t=t||[];var g=u.errorObject.e;g instanceof c.UnsubscriptionError?t=t.concat(n(g.errors)):t.push(g)}}}if(e)throw new c.UnsubscriptionError(t)}},t.prototype.add=function(e){if(!e||e===t.EMPTY)return t.EMPTY;if(e===this)return this;var r=e;switch(typeof e){case"function":r=new t(e);case"object":if(r.closed||"function"!=typeof r.unsubscribe)return r;if(this.closed)return r.unsubscribe(),r;if("function"!=typeof r._addParent){var n=r;r=new t,r._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}var o=this._subscriptions||(this._subscriptions=[]);return o.push(r),r._addParent(this),r},t.prototype.remove=function(t){var e=this._subscriptions;if(e){var r=e.indexOf(t);-1!==r&&e.splice(r,1)}},t.prototype._addParent=function(t){var e=this,r=e._parent,n=e._parents;r&&r!==t?n?-1===n.indexOf(t)&&n.push(t):this._parents=[t]:this._parent=t},t.EMPTY=function(t){return t.closed=!0,t}(new t),t}();r.Subscription=l},{"./util/UnsubscriptionError":59,"./util/errorObject":60,"./util/isArray":61,"./util/isFunction":63,"./util/isObject":64,"./util/tryCatch":70}],24:[function(t){"use strict";var e=t("../../Observable"),r=t("../../operator/map");e.Observable.prototype.map=r.map},{"../../Observable":17,"../../operator/map":46}],25:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Observable"),i=t("./ScalarObservable"),s=t("./EmptyObservable"),a=function(t){function e(e,r){t.call(this),this.arrayLike=e,this.scheduler=r,r||1!==e.length||(this._isScalar=!0,this.value=e[0])}return n(e,t),e.create=function(t,r){var n=t.length;return 0===n?new s.EmptyObservable:1===n?new i.ScalarObservable(t[0],r):new e(t,r)},e.dispatch=function(t){var e=t.arrayLike,r=t.index,n=t.length,o=t.subscriber;if(!o.closed){if(r>=n)return void o.complete();o.next(e[r]),t.index=r+1,this.schedule(t)}},e.prototype._subscribe=function(t){var r=0,n=this,o=n.arrayLike,i=n.scheduler,s=o.length;if(i)return i.schedule(e.dispatch,0,{arrayLike:o,index:r,length:s,subscriber:t});for(var a=0;s>a&&!t.closed;a++)t.next(o[a]);t.complete()},e}(o.Observable);r.ArrayLikeObservable=a},{"../Observable":17,"./EmptyObservable":28,"./ScalarObservable":33}],26:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Observable"),i=t("./ScalarObservable"),s=t("./EmptyObservable"),a=t("../util/isScheduler"),u=function(t){function e(e,r){t.call(this),this.array=e,this.scheduler=r,r||1!==e.length||(this._isScalar=!0,this.value=e[0])}return n(e,t),e.create=function(t,r){return new e(t,r)},e.of=function(){for(var t=[],r=0;r<arguments.length;r++)t[r-0]=arguments[r];var n=t[t.length-1];a.isScheduler(n)?t.pop():n=null;var o=t.length;return o>1?new e(t,n):1===o?new i.ScalarObservable(t[0],n):new s.EmptyObservable(n)},e.dispatch=function(t){var e=t.array,r=t.index,n=t.count,o=t.subscriber;return r>=n?void o.complete():(o.next(e[r]),void(o.closed||(t.index=r+1,this.schedule(t))))},e.prototype._subscribe=function(t){var r=0,n=this.array,o=n.length,i=this.scheduler;if(i)return i.schedule(e.dispatch,0,{array:n,index:r,count:o,subscriber:t});for(var s=0;o>s&&!t.closed;s++)t.next(n[s]);t.complete()},e}(o.Observable);r.ArrayObservable=u},{"../Observable":17,"../util/isScheduler":66,"./EmptyObservable":28,"./ScalarObservable":33}],27:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Subject"),i=t("../Observable"),s=t("../Subscriber"),a=t("../Subscription"),u=function(t){function e(e,r){t.call(this),this.source=e,this.subjectFactory=r,this._refCount=0}return n(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(t=this._connection=new a.Subscription,t.add(this.source.subscribe(new c(this.getSubject(),this))),t.closed?(this._connection=null,t=a.Subscription.EMPTY):this._connection=t),t},e.prototype.refCount=function(){return this.lift(new l(this))},e}(i.Observable);r.ConnectableObservable=u,r.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subscribe:{value:u.prototype._subscribe},getSubject:{value:u.prototype.getSubject},connect:{value:u.prototype.connect},refCount:{value:u.prototype.refCount}};var c=function(t){function e(e,r){t.call(this,e),this.connectable=r}return n(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(o.SubjectSubscriber),l=function(){function t(t){this.connectable=t}return t.prototype.call=function(t,e){var r=this.connectable;r._refCount++;var n=new p(t,r),o=e.subscribe(n);return n.closed||(n.connection=r.connect()),o},t}(),p=function(t){function e(e,r){t.call(this,e),this.connectable=r}return n(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(!t)return void(this.connection=null);this.connectable=null;var e=t._refCount;if(0>=e)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);var r=this.connection,n=t._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()},e}(s.Subscriber)},{"../Observable":17,"../Subject":20,"../Subscriber":22,"../Subscription":23}],28:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Observable"),i=function(t){function e(e){t.call(this),this.scheduler=e}return n(e,t),e.create=function(t){return new e(t)},e.dispatch=function(t){var e=t.subscriber;e.complete()},e.prototype._subscribe=function(t){var r=this.scheduler;return r?r.schedule(e.dispatch,0,{subscriber:t}):void t.complete()},e}(o.Observable);r.EmptyObservable=i},{"../Observable":17}],29:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Observable"),i=t("./EmptyObservable"),s=t("../util/isArray"),a=t("../util/subscribeToResult"),u=t("../OuterSubscriber"),c=function(t){function e(e,r){t.call(this),this.sources=e,this.resultSelector=r}return n(e,t),e.create=function(){for(var t=[],r=0;r<arguments.length;r++)t[r-0]=arguments[r];if(null===t||0===arguments.length)return new i.EmptyObservable;var n=null;return"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&s.isArray(t[0])&&(t=t[0]),0===t.length?new i.EmptyObservable:new e(t,n)},e.prototype._subscribe=function(t){return new l(t,this.sources,this.resultSelector)},e}(o.Observable);r.ForkJoinObservable=c;var l=function(t){function e(e,r,n){t.call(this,e),this.sources=r,this.resultSelector=n,this.completed=0,this.haveValues=0;var o=r.length;this.total=o,this.values=new Array(o);for(var i=0;o>i;i++){var s=r[i],u=a.subscribeToResult(this,s,null,i);u&&(u.outerIndex=i,this.add(u))}}return n(e,t),e.prototype.notifyNext=function(t,e,r,n,o){this.values[r]=e,o._hasValue||(o._hasValue=!0,this.haveValues++)},e.prototype.notifyComplete=function(t){var e=this.destination,r=this,n=r.haveValues,o=r.resultSelector,i=r.values,s=i.length;if(!t._hasValue)return void e.complete();if(this.completed++,this.completed===s){if(n===s){var a=o?o.apply(this,i):i;e.next(a)}e.complete()}},e}(u.OuterSubscriber)},{"../Observable":17,"../OuterSubscriber":19,"../util/isArray":61,"../util/subscribeToResult":68,"./EmptyObservable":28}],30:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../util/isArray"),i=t("../util/isArrayLike"),s=t("../util/isPromise"),a=t("./PromiseObservable"),u=t("./IteratorObservable"),c=t("./ArrayObservable"),l=t("./ArrayLikeObservable"),p=t("../symbol/iterator"),h=t("../Observable"),f=t("../operator/observeOn"),d=t("../symbol/observable"),m=function(t){function e(e,r){t.call(this,null),this.ish=e,this.scheduler=r}return n(e,t),e.create=function(t,r){if(null!=t){if("function"==typeof t[d.$$observable])return t instanceof h.Observable&&!r?t:new e(t,r);if(o.isArray(t))return new c.ArrayObservable(t,r);if(s.isPromise(t))return new a.PromiseObservable(t,r);if("function"==typeof t[p.$$iterator]||"string"==typeof t)return new u.IteratorObservable(t,r);if(i.isArrayLike(t))return new l.ArrayLikeObservable(t,r)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")},e.prototype._subscribe=function(t){var e=this.ish,r=this.scheduler;return e[d.$$observable]().subscribe(null==r?t:new f.ObserveOnSubscriber(t,r,0))},e}(h.Observable);r.FromObservable=m},{"../Observable":17,"../operator/observeOn":51,"../symbol/iterator":54,"../symbol/observable":55,"../util/isArray":61,"../util/isArrayLike":62,"../util/isPromise":65,"./ArrayLikeObservable":25,"./ArrayObservable":26,"./IteratorObservable":31,"./PromiseObservable":32}],31:[function(t,e,r){"use strict";function n(t){var e=t[l.$$iterator];if(!e&&"string"==typeof t)return new h(t);if(!e&&void 0!==t.length)return new f(t);if(!e)throw new TypeError("object is not iterable");return t[l.$$iterator]()}function o(t){var e=+t.length;return isNaN(e)?0:0!==e&&i(e)?(e=s(e)*Math.floor(Math.abs(e)),0>=e?0:e>d?d:e):e}function i(t){return"number"==typeof t&&u.root.isFinite(t)}function s(t){var e=+t;return 0===e?e:isNaN(e)?e:0>e?-1:1}var a=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},u=t("../util/root"),c=t("../Observable"),l=t("../symbol/iterator"),p=function(t){function e(e,r){if(t.call(this),this.scheduler=r,null==e)throw new Error("iterator cannot be null.");this.iterator=n(e)}return a(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.index,r=t.hasError,n=t.iterator,o=t.subscriber;if(r)return void o.error(t.error);var i=n.next();return i.done?void o.complete():(o.next(i.value),t.index=e+1,o.closed?void("function"==typeof n["return"]&&n["return"]()):void this.schedule(t))},e.prototype._subscribe=function(t){var r=0,n=this,o=n.iterator,i=n.scheduler;if(i)return i.schedule(e.dispatch,0,{index:r,iterator:o,subscriber:t});for(;;){var s=o.next();if(s.done){t.complete();break}if(t.next(s.value),t.closed){"function"==typeof o["return"]&&o["return"]();break}}},e}(c.Observable);r.IteratorObservable=p;var h=function(){function t(t,e,r){void 0===e&&(e=0),void 0===r&&(r=t.length),this.str=t,this.idx=e,this.len=r}return t.prototype[l.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},t}(),f=function(){function t(t,e,r){void 0===e&&(e=0),void 0===r&&(r=o(t)),this.arr=t,this.idx=e,this.len=r}return t.prototype[l.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},t}(),d=Math.pow(2,53)-1},{"../Observable":17,"../symbol/iterator":54,"../util/root":67}],32:[function(t,e,r){"use strict";function n(t){var e=t.value,r=t.subscriber;r.closed||(r.next(e),r.complete())}function o(t){var e=t.err,r=t.subscriber;r.closed||r.error(e)}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},s=t("../util/root"),a=t("../Observable"),u=function(t){function e(e,r){t.call(this),this.promise=e,this.scheduler=r}return i(e,t),e.create=function(t,r){return new e(t,r)},e.prototype._subscribe=function(t){var e=this,r=this.promise,i=this.scheduler;if(null==i)this._isScalar?t.closed||(t.next(this.value),t.complete()):r.then(function(r){e.value=r,e._isScalar=!0,t.closed||(t.next(r),t.complete())},function(e){t.closed||t.error(e)}).then(null,function(t){s.root.setTimeout(function(){throw t})});else if(this._isScalar){if(!t.closed)return i.schedule(n,0,{value:this.value,subscriber:t})}else r.then(function(r){e.value=r,e._isScalar=!0,t.closed||t.add(i.schedule(n,0,{value:r,subscriber:t}))},function(e){t.closed||t.add(i.schedule(o,0,{err:e,subscriber:t}))}).then(null,function(t){s.root.setTimeout(function(){throw t})})},e}(a.Observable);r.PromiseObservable=u},{"../Observable":17,"../util/root":67}],33:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=t("../Observable"),i=function(t){function e(e,r){t.call(this),this.value=e,this.scheduler=r,this._isScalar=!0,r&&(this._isScalar=!1)}return n(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.done,r=t.value,n=t.subscriber;return e?void n.complete():(n.next(r),void(n.closed||(t.done=!0,this.schedule(t))))},e.prototype._subscribe=function(t){var r=this.value,n=this.scheduler;return n?n.schedule(e.dispatch,0,{done:!1,value:r,subscriber:t}):(t.next(r),void(t.closed||t.complete()))},e}(o.Observable);r.ScalarObservable=i},{"../Observable":17}],34:[function(t,e,r){"use strict";var n=t("./ForkJoinObservable");r.forkJoin=n.ForkJoinObservable.create},{"./ForkJoinObservable":29}],35:[function(t,e,r){"use strict";var n=t("./FromObservable");r.from=n.FromObservable.create},{"./FromObservable":30}],36:[function(t,e,r){"use strict";var n=t("./PromiseObservable");r.fromPromise=n.PromiseObservable.create},{"./PromiseObservable":32}],37:[function(t,e,r){"use strict";var n=t("../operator/merge");r.merge=n.mergeStatic},{"../operator/merge":47}],38:[function(t,e,r){"use strict";var n=t("./ArrayObservable");r.of=n.ArrayObservable.of},{"./ArrayObservable":26}],39:[function(t,e,r){"use strict";function n(t){var e=new a(t),r=this.lift(e);return e.caught=r}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../OuterSubscriber"),s=t("../util/subscribeToResult");r._catch=n;var a=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.selector,this.caught))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.selector=r,this.caught=n}return o(e,t),e.prototype.error=function(e){if(!this.isStopped){var r=void 0;try{r=this.selector(e,this.caught)}catch(n){return void t.prototype.error.call(this,n)}this._unsubscribeAndRecycle(),this.add(s.subscribeToResult(this,r))}},e}(i.OuterSubscriber)},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],40:[function(t,e,r){"use strict";function n(){return this.lift(new o.MergeAllOperator(1))}var o=t("./mergeAll");r.concatAll=n},{"./mergeAll":48}],41:[function(t,e,r){"use strict";function n(t,e){return this.lift(new o.MergeMapOperator(t,e,1))}var o=t("./mergeMap");r.concatMap=n},{"./mergeMap":49}],42:[function(t,e,r){"use strict";function n(t,e){return this.lift(new s(t,e,this))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber");r.every=n;var s=function(){function t(t,e,r){this.predicate=t,this.thisArg=e,this.source=r}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.predicate,this.thisArg,this.source))},t}(),a=function(t){function e(e,r,n,o){t.call(this,e),this.predicate=r,this.thisArg=n,this.source=o,this.index=0,this.thisArg=n||this}return o(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(r){return void this.destination.error(r)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(i.Subscriber)},{"../Subscriber":22}],43:[function(t,e,r){"use strict";function n(t,e){return this.lift(new s(t,e))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber");r.filter=n;var s=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.predicate,this.thisArg))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.predicate=r,this.thisArg=n,this.count=0,this.predicate=r}return o(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(r){return void this.destination.error(r)}e&&this.destination.next(t)},e}(i.Subscriber)},{"../Subscriber":22}],44:[function(t,e,r){"use strict";function n(t,e,r){return this.lift(new a(t,e,r,this))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber"),s=t("../util/EmptyError");r.first=n;var a=function(){function t(t,e,r,n){this.predicate=t,this.resultSelector=e,this.defaultValue=r,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),u=function(t){function e(e,r,n,o,i){t.call(this,e),this.predicate=r,this.resultSelector=n,this.defaultValue=o,this.source=i,this.index=0,this.hasCompleted=!1,this._emitted=!1}return o(e,t),e.prototype._next=function(t){var e=this.index++;this.predicate?this._tryPredicate(t,e):this._emit(t,e)},e.prototype._tryPredicate=function(t,e){var r;try{r=this.predicate(t,e,this.source)}catch(n){return void this.destination.error(n)}r&&this._emit(t,e)},e.prototype._emit=function(t,e){return this.resultSelector?void this._tryResultSelector(t,e):void this._emitFinal(t)},e.prototype._tryResultSelector=function(t,e){var r;try{r=this.resultSelector(t,e)}catch(n){return void this.destination.error(n)}this._emitFinal(r)},e.prototype._emitFinal=function(t){var e=this.destination;this._emitted||(this._emitted=!0,e.next(t),e.complete(),this.hasCompleted=!0)},e.prototype._complete=function(){var t=this.destination;this.hasCompleted||"undefined"==typeof this.defaultValue?this.hasCompleted||t.error(new s.EmptyError):(t.next(this.defaultValue),t.complete())},e}(i.Subscriber)},{"../Subscriber":22,"../util/EmptyError":57}],45:[function(t,e,r){"use strict";function n(t,e,r){return this.lift(new a(t,e,r,this))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber"),s=t("../util/EmptyError");r.last=n;var a=function(){function t(t,e,r,n){this.predicate=t,this.resultSelector=e,this.defaultValue=r,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),u=function(t){function e(e,r,n,o,i){t.call(this,e),this.predicate=r,this.resultSelector=n,this.defaultValue=o,this.source=i,this.hasValue=!1,this.index=0,"undefined"!=typeof o&&(this.lastValue=o,this.hasValue=!0)}return o(e,t),e.prototype._next=function(t){var e=this.index++;if(this.predicate)this._tryPredicate(t,e);else{if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryPredicate=function(t,e){var r;try{r=this.predicate(t,e,this.source)}catch(n){return void this.destination.error(n)}if(r){if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryResultSelector=function(t,e){var r;try{r=this.resultSelector(t,e)}catch(n){return void this.destination.error(n)}this.lastValue=r,this.hasValue=!0},e.prototype._complete=function(){var t=this.destination;this.hasValue?(t.next(this.lastValue),t.complete()):t.error(new s.EmptyError)},e}(i.Subscriber)},{"../Subscriber":22,"../util/EmptyError":57}],46:[function(t,e,r){"use strict";function n(t,e){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new s(t,e))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber");r.map=n;var s=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.project,this.thisArg))},t}();r.MapOperator=s;var a=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.count=0,this.thisArg=n||this}return o(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(r){return void this.destination.error(r)}this.destination.next(e)},e}(i.Subscriber)},{"../Subscriber":22}],47:[function(t,e,r){"use strict";function n(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return this.lift.call(o.apply(void 0,[this].concat(t)))}function o(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];var r=Number.POSITIVE_INFINITY,n=null,o=t[t.length-1];return u.isScheduler(o)?(n=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(r=t.pop())):"number"==typeof o&&(r=t.pop()),null===n&&1===t.length&&t[0]instanceof i.Observable?t[0]:new s.ArrayObservable(t,n).lift(new a.MergeAllOperator(r))}var i=t("../Observable"),s=t("../observable/ArrayObservable"),a=t("./mergeAll"),u=t("../util/isScheduler");r.merge=n,r.mergeStatic=o},{"../Observable":17,"../observable/ArrayObservable":26,"../util/isScheduler":66,"./mergeAll":48}],48:[function(t,e,r){"use strict";function n(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),this.lift(new a(t))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../OuterSubscriber"),s=t("../util/subscribeToResult");r.mergeAll=n;var a=function(){function t(t){this.concurrent=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.concurrent))},t}();r.MergeAllOperator=a;var u=function(t){function e(e,r){t.call(this,e),this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0}return o(e,t),e.prototype._next=function(t){this.active<this.concurrent?(this.active++,this.add(s.subscribeToResult(this,t))):this.buffer.push(t)},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(i.OuterSubscriber);r.MergeAllSubscriber=u},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],49:[function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"number"==typeof e&&(r=e,e=null),this.lift(new a(t,e,r))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../util/subscribeToResult"),s=t("../OuterSubscriber");r.mergeMap=n;var a=function(){function t(t,e,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.project=t,this.resultSelector=e,this.concurrent=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.project,this.resultSelector,this.concurrent))},t}();r.MergeMapOperator=a;var u=function(t){function e(e,r,n,o){void 0===o&&(o=Number.POSITIVE_INFINITY),t.call(this,e),this.project=r,this.resultSelector=n,this.concurrent=o,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return o(e,t),e.prototype._next=function(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)},e.prototype._tryNext=function(t){var e,r=this.index++;try{e=this.project(t,r)}catch(n){return void this.destination.error(n)}this.active++,this._innerSub(e,t,r)},e.prototype._innerSub=function(t,e,r){this.add(i.subscribeToResult(this,t,e,r))},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},e.prototype.notifyNext=function(t,e,r,n){this.resultSelector?this._notifyResultSelector(t,e,r,n):this.destination.next(e);
-
-},e.prototype._notifyResultSelector=function(t,e,r,n){var o;try{o=this.resultSelector(t,e,r,n)}catch(i){return void this.destination.error(i)}this.destination.next(o)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(s.OuterSubscriber);r.MergeMapSubscriber=u},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],50:[function(t,e,r){"use strict";function n(t,e){var r;if(r="function"==typeof t?t:function(){return t},"function"==typeof e)return this.lift(new i(r,e));var n=Object.create(this,o.connectableObservableDescriptor);return n.source=this,n.subjectFactory=r,n}var o=t("../observable/ConnectableObservable");r.multicast=n;var i=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var r=this.selector,n=this.subjectFactory(),o=r(n).subscribe(t);return o.add(e.subscribe(n)),o},t}();r.MulticastOperator=i},{"../observable/ConnectableObservable":27}],51:[function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=0),this.lift(new a(t,e))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber"),s=t("../Notification");r.observeOn=n;var a=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.scheduler,this.delay))},t}();r.ObserveOnOperator=a;var u=function(t){function e(e,r,n){void 0===n&&(n=0),t.call(this,e),this.scheduler=r,this.delay=n}return o(e,t),e.dispatch=function(t){var e=t.notification,r=t.destination;e.observe(r),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.add(this.scheduler.schedule(e.dispatch,this.delay,new c(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(s.Notification.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(s.Notification.createError(t))},e.prototype._complete=function(){this.scheduleMessage(s.Notification.createComplete())},e}(i.Subscriber);r.ObserveOnSubscriber=u;var c=function(){function t(t,e){this.notification=t,this.destination=e}return t}();r.ObserveOnMessage=c},{"../Notification":16,"../Subscriber":22}],52:[function(t,e,r){"use strict";function n(t,e){var r=!1;return arguments.length>=2&&(r=!0),this.lift(new s(t,e,r))}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=t("../Subscriber");r.reduce=n;var s=function(){function t(t,e,r){void 0===r&&(r=!1),this.accumulator=t,this.seed=e,this.hasSeed=r}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.accumulator,this.seed,this.hasSeed))},t}();r.ReduceOperator=s;var a=function(t){function e(e,r,n,o){t.call(this,e),this.accumulator=r,this.hasSeed=o,this.index=0,this.hasValue=!1,this.acc=n,this.hasSeed||this.index++}return o(e,t),e.prototype._next=function(t){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(t):(this.acc=t,this.hasValue=!0)},e.prototype._tryReduce=function(t){var e;try{e=this.accumulator(this.acc,t,this.index++)}catch(r){return void this.destination.error(r)}this.acc=e},e.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc),this.destination.complete()},e}(i.Subscriber);r.ReduceSubscriber=a},{"../Subscriber":22}],53:[function(t,e,r){"use strict";function n(){return new s.Subject}function o(){return i.multicast.call(this,n).refCount()}var i=t("./multicast"),s=t("../Subject");r.share=o},{"../Subject":20,"./multicast":50}],54:[function(t,e,r){"use strict";function n(t){var e=t.Symbol;if("function"==typeof e)return e.iterator||(e.iterator=e("iterator polyfill")),e.iterator;var r=t.Set;if(r&&"function"==typeof(new r)["@@iterator"])return"@@iterator";var n=t.Map;if(n)for(var o=Object.getOwnPropertyNames(n.prototype),i=0;i<o.length;++i){var s=o[i];if("entries"!==s&&"size"!==s&&n.prototype[s]===n.prototype.entries)return s}return"@@iterator"}var o=t("../util/root");r.symbolIteratorPonyfill=n,r.$$iterator=n(o.root)},{"../util/root":67}],55:[function(t,e,r){"use strict";function n(t){var e,r=t.Symbol;return"function"==typeof r?r.observable?e=r.observable:(e=r("observable"),r.observable=e):e="@@observable",e}var o=t("../util/root");r.getSymbolObservable=n,r.$$observable=n(o.root)},{"../util/root":67}],56:[function(t,e,r){"use strict";var n=t("../util/root"),o=n.root.Symbol;r.$$rxSubscriber="function"==typeof o&&"function"==typeof o["for"]?o["for"]("rxSubscriber"):"@@rxSubscriber"},{"../util/root":67}],57:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=function(t){function e(){var e=t.call(this,"no elements in sequence");this.name=e.name="EmptyError",this.stack=e.stack,this.message=e.message}return n(e,t),e}(Error);r.EmptyError=o},{}],58:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=function(t){function e(){var e=t.call(this,"object unsubscribed");this.name=e.name="ObjectUnsubscribedError",this.stack=e.stack,this.message=e.message}return n(e,t),e}(Error);r.ObjectUnsubscribedError=o},{}],59:[function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=function(t){function e(e){t.call(this),this.errors=e;var r=Error.call(this,e?e.length+" errors occurred during unsubscription:\n  "+e.map(function(t,e){return e+1+") "+t.toString()}).join("\n  "):"");this.name=r.name="UnsubscriptionError",this.stack=r.stack,this.message=r.message}return n(e,t),e}(Error);r.UnsubscriptionError=o},{}],60:[function(t,e,r){"use strict";r.errorObject={e:{}}},{}],61:[function(t,e,r){"use strict";r.isArray=Array.isArray||function(t){return t&&"number"==typeof t.length}},{}],62:[function(t,e,r){"use strict";r.isArrayLike=function(t){return t&&"number"==typeof t.length}},{}],63:[function(t,e,r){"use strict";function n(t){return"function"==typeof t}r.isFunction=n},{}],64:[function(t,e,r){"use strict";function n(t){return null!=t&&"object"==typeof t}r.isObject=n},{}],65:[function(t,e,r){"use strict";function n(t){return t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}r.isPromise=n},{}],66:[function(t,e,r){"use strict";function n(t){return t&&"function"==typeof t.schedule}r.isScheduler=n},{}],67:[function(t,e,r){(function(t){"use strict";if(r.root="object"==typeof window&&window.window===window&&window||"object"==typeof self&&self.self===self&&self||"object"==typeof t&&t.global===t&&t,!r.root)throw new Error("RxJS could not find any global context (window, self, global)")}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],68:[function(t,e,r){"use strict";function n(t,e,r,n){var h=new l.InnerSubscriber(t,r,n);if(h.closed)return null;if(e instanceof u.Observable)return e._isScalar?(h.next(e.value),h.complete(),null):e.subscribe(h);if(i.isArrayLike(e)){for(var f=0,d=e.length;d>f&&!h.closed;f++)h.next(e[f]);h.closed||h.complete()}else{if(s.isPromise(e))return e.then(function(t){h.closed||(h.next(t),h.complete())},function(t){return h.error(t)}).then(null,function(t){o.root.setTimeout(function(){throw t})}),h;if(e&&"function"==typeof e[c.$$iterator])for(var m=e[c.$$iterator]();;){var y=m.next();if(y.done){h.complete();break}if(h.next(y.value),h.closed)break}else if(e&&"function"==typeof e[p.$$observable]){var v=e[p.$$observable]();if("function"==typeof v.subscribe)return v.subscribe(new l.InnerSubscriber(t,r,n));h.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var g=a.isObject(e)?"an invalid object":"'"+e+"'",_="You provided "+g+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";h.error(new TypeError(_))}}return null}var o=t("./root"),i=t("./isArrayLike"),s=t("./isPromise"),a=t("./isObject"),u=t("../Observable"),c=t("../symbol/iterator"),l=t("../InnerSubscriber"),p=t("../symbol/observable");r.subscribeToResult=n},{"../InnerSubscriber":15,"../Observable":17,"../symbol/iterator":54,"../symbol/observable":55,"./isArrayLike":62,"./isObject":64,"./isPromise":65,"./root":67}],69:[function(t,e,r){"use strict";function n(t,e,r){if(t){if(t instanceof o.Subscriber)return t;if(t[i.$$rxSubscriber])return t[i.$$rxSubscriber]()}return t||e||r?new o.Subscriber(t,e,r):new o.Subscriber(s.empty)}var o=t("../Subscriber"),i=t("../symbol/rxSubscriber"),s=t("../Observer");r.toSubscriber=n},{"../Observer":18,"../Subscriber":22,"../symbol/rxSubscriber":56}],70:[function(t,e,r){"use strict";function n(){try{return i.apply(this,arguments)}catch(t){return s.errorObject.e=t,s.errorObject}}function o(t){return i=t,n}var i,s=t("./errorObject");r.tryCatch=o},{"./errorObject":60}]},{},[5])(5)});
\ No newline at end of file
+!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).main=t()}}(function(){return function t(e,n,r){function o(s,a){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}};e[s][0].call(l.exports,function(t){var n=e[s][1][t];return o(n||t)},l,l.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(n,"__esModule",{value:!0});var o=t("@angular/core"),i=function(){function t(){}return t}();i=r([o.Component({selector:"my-app",template:"<router-outlet></router-outlet>"})],i),n.AppComponent=i},{"@angular/core":8}],2:[function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(n,"__esModule",{value:!0});var o=t("@angular/core"),i=t("@angular/platform-browser"),s=t("@angular/router"),a=t("@angular/http"),u=t("@angular/forms"),c=t("./app.component"),l=t("./profile.component"),p=t("./signature-book.component"),h=function(){function t(){}return t}();h=r([o.NgModule({imports:[i.BrowserModule,u.FormsModule,s.RouterModule.forRoot([{path:"profile",component:l.ProfileComponent},{path:":basketId/signatureBook/:resId",component:p.SignatureBookComponent},{path:"**",redirectTo:"",pathMatch:"full"}],{useHash:!0}),a.HttpModule],declarations:[c.AppComponent,l.ProfileComponent,p.SignatureBookComponent,p.SafeUrlPipe],bootstrap:[c.AppComponent]})],h),n.AppModule=h},{"./app.component":1,"./profile.component":3,"./signature-book.component":4,"@angular/core":8,"@angular/forms":9,"@angular/http":10,"@angular/platform-browser":12,"@angular/router":13}],3:[function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("@angular/core"),s=t("@angular/http");t("rxjs/add/operator/map");var a=function(){function t(t,e){var n=this;this.http=t,this.zone=e,this.user={lang:{}},this.passwordModel={currentPassword:"",newPassword:"",reNewPassword:""},this.signatureModel={base64:"",base64ForJs:"",name:"",type:"",size:0,label:""},this.mailSignatureModel={selected:0,htmlBody:"",title:""},this.showPassword=!1,this.selectedSignature=-1,this.selectedSignatureLabel="",this.resultInfo="",this.loading=!1,window.angularProfileComponent={componentAfterUpload:function(t){return n.processAfterUpload(t)}}}return t.prototype.prepareProfile=function(){if($j("#inner_content").remove(),$j("#menunav").hide(),$j("#divList").remove(),$j("#magicContactsTable").remove(),$j("#manageBasketsOrderTable").remove(),$j("#container").width("99%"),$j("#content h1")[0]&&$j("#content h1")[0]!=$j("my-app h1")[0]&&$j("#content h1")[0].remove(),Prototype.BrowserFeatures.ElementExtensions){var t=["collapse","dropdown","modal","tooltip","popover","tab"];disablePrototypeJS("show",t),disablePrototypeJS("hide",t)}tinymce.baseURL="../../node_modules/tinymce",tinymce.suffix=".min",tinymce.init({selector:"textarea#emailSignature",statusbar:!1,language:"fr_FR",language_url:"tools/tinymce/langs/fr_FR.js",height:"200",plugins:["textcolor"],external_plugins:{bdesk_photo:"../../apps/maarch_entreprise/tools/tinymce/bdesk_photo/plugin.min.js"},menubar:!1,toolbar:"undo | bold italic underline | alignleft aligncenter alignright | bdesk_photo | forecolor",theme_buttons1_add:"fontselect,fontsizeselect",theme_buttons2_add_before:"cut,copy,paste,pastetext,pasteword,separator,search,replace,separator",theme_buttons2_add:"separator,insertdate,inserttime,preview,separator,forecolor,backcolor",theme_buttons3_add_before:"tablecontrols,separator",theme_buttons3_add:"separator,print,separator,ltr,rtl,separator,fullscreen,separator,insertlayer,moveforward,movebackward,absolut",theme_toolbar_align:"left",theme_advanced_toolbar_location:"top",theme_styles:"Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1"})},t.prototype.updateBreadcrumb=function(t){$j("#ariane")[0]&&($j("#ariane")[0].innerHTML="<a href='index.php?reinit=true'>"+t+"</a> > Profil")},t.prototype.ngOnInit=function(){var t=this;this.prepareProfile(),this.updateBreadcrumb(angularGlobals.applicationName),this.coreUrl=angularGlobals.coreUrl,this.loading=!0,this.http.get(this.coreUrl+"rest/user/profile").map(function(t){return t.json()}).subscribe(function(e){t.user=e,t.loading=!1})},t.prototype.processAfterUpload=function(t){var e=this;this.zone.run(function(){return e.resfreshUpload(t)})},t.prototype.resfreshUpload=function(t){this.signatureModel.size<=2e6?(this.signatureModel.base64=t.replace(/^data:.*?;base64,/,""),this.signatureModel.base64ForJs=t):(this.signatureModel.name="",this.signatureModel.size=0,this.signatureModel.type="",this.signatureModel.base64="",this.signatureModel.base64ForJs="",this.resultInfo="Taille maximum de fichier dépassée (2 MB)",$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))},t.prototype.displayPassword=function(){this.showPassword=!this.showPassword},t.prototype.clickOnUploader=function(t){$j("#"+t).click()},t.prototype.uploadSignatureTrigger=function(t){if(t.target.files&&t.target.files[0]){var e=new FileReader;this.signatureModel.name=t.target.files[0].name,this.signatureModel.size=t.target.files[0].size,this.signatureModel.type=t.target.files[0].type,""==this.signatureModel.label&&(this.signatureModel.label=this.signatureModel.name),e.readAsDataURL(t.target.files[0]),e.onload=function(t){window.angularProfileComponent.componentAfterUpload(t.target.result)}}},t.prototype.displaySignatureEditionForm=function(t){this.selectedSignature=t,this.selectedSignatureLabel=this.user.signatures[t].signature_label},t.prototype.changeEmailSignature=function(){var t=$j("#emailSignaturesSelect").prop("selectedIndex");this.mailSignatureModel.selected=t,t>0?(tinymce.get("emailSignature").setContent(this.user.emailSignatures[t-1].html_body),this.mailSignatureModel.title=this.user.emailSignatures[t-1].title):(tinymce.get("emailSignature").setContent(""),this.mailSignatureModel.title="")},t.prototype.getAbsenceInfos=function(){var t=this;this.http.get(this.coreUrl+"rest/currentUser/baskets/absence").map(function(t){return t.json()}).subscribe(function(e){t.loading=!1})},t.prototype.updatePassword=function(){var t=this;this.http.put(this.coreUrl+"rest/currentUser/password",this.passwordModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.showPassword=!1,t.passwordModel={currentPassword:"",newPassword:"",reNewPassword:""},t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.submitEmailSignature=function(){var t=this;this.mailSignatureModel.htmlBody=tinymce.get("emailSignature").getContent(),this.http.post(this.coreUrl+"rest/currentUser/emailSignature",this.mailSignatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures=e.emailSignatures,t.mailSignatureModel={selected:0,htmlBody:"",title:""},tinymce.get("emailSignature").setContent(""),t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.updateEmailSignature=function(){var t=this;this.mailSignatureModel.htmlBody=tinymce.get("emailSignature").getContent();var e=this.user.emailSignatures[this.mailSignatureModel.selected-1].id;this.http.put(this.coreUrl+"rest/currentUser/emailSignature/"+e,this.mailSignatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures[t.mailSignatureModel.selected-1].title=e.emailSignature.title,t.user.emailSignatures[t.mailSignatureModel.selected-1].html_body=e.emailSignature.html_body,t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.deleteEmailSignature=function(){var t=this;if(confirm("Voulez-vous vraiment supprimer la signature de mail ?")){var e=this.user.emailSignatures[this.mailSignatureModel.selected-1].id;this.http.delete(this.coreUrl+"rest/currentUser/emailSignature/"+e).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.emailSignatures=e.emailSignatures,t.mailSignatureModel={selected:0,htmlBody:"",title:""},tinymce.get("emailSignature").setContent(""),t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})}},t.prototype.submitSignature=function(){var t=this;this.http.post(this.coreUrl+"rest/currentUser/signature",this.signatureModel).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.signatures=e.signatures,t.signatureModel={base64:"",base64ForJs:"",name:"",type:"",size:0,label:""},t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.updateSignature=function(){var t=this,e=this.user.signatures[this.selectedSignature].id;this.http.put(this.coreUrl+"rest/currentUser/signature/"+e,{label:this.selectedSignatureLabel}).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.user.signatures[t.selectedSignature].signature_label=e.signature.signature_label,t.selectedSignature=-1,t.selectedSignatureLabel="",t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.deleteSignature=function(t){var e=this;confirm("Voulez-vous vraiment supprimer la signature ?")&&this.http.delete(this.coreUrl+"rest/currentUser/signature/"+t).map(function(t){return t.json()}).subscribe(function(t){t.errors?(e.resultInfo=t.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(e.user.signatures=t.signatures,e.resultInfo=t.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))})},t.prototype.onSubmit=function(){var t=this;this.http.put(this.coreUrl+"rest/user/profile",this.user).map(function(t){return t.json()}).subscribe(function(e){e.errors?(t.resultInfo=e.errors,$j("#resultInfo").removeClass().addClass("alert alert-danger alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)})):(t.resultInfo=e.success,$j("#resultInfo").removeClass().addClass("alert alert-success alert-dismissible"),$j("#resultInfo").fadeTo(3e3,500).slideUp(500,function(){$j("#resultInfo").slideUp(500)}))},function(t){alert(t.statusText)})},t.prototype.absenceModal=function(){createModal(this.user.absence,"modal_redirect","auto","950px"),autocomplete(this.user.countBasketsForAbsence,"index.php?display=true&module=basket&page=autocomplete_users_list")},t}();a=r([i.Component({templateUrl:angularGlobals.profileView,styleUrls:["../../node_modules/bootstrap/dist/css/bootstrap.min.css","js/angular/app/Css/profile.component.css"]}),o("design:paramtypes",[s.Http,i.NgZone])],a),n.ProfileComponent=a},{"@angular/core":8,"@angular/http":10,"rxjs/add/operator/map":24}],4:[function(t,e,n){"use strict";var r=this&&this.__decorate||function(t,e,n,r){var o,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(n,"__esModule",{value:!0});var i=t("@angular/core"),s=t("@angular/http"),a=t("@angular/platform-browser"),u=t("@angular/router");t("rxjs/add/operator/map");var c=function(){function t(t){this.sanitizer=t}return t.prototype.transform=function(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)},t}();c=r([i.Pipe({name:"safeUrl"}),o("design:paramtypes",[a.DomSanitizer])],c),n.SafeUrlPipe=c;var l=function(){function t(t,e,n,r){var o=this;this.http=t,this.route=e,this.router=n,this.zone=r,this.signatureBook={currentAction:{},consigne:"",documents:[],attachments:[],resList:[],resListIndex:0,lang:{}},this.rightSelectedThumbnail=0,this.leftSelectedThumbnail=0,this.rightViewerLink="",this.leftViewerLink="",this.headerTab=1,this.showTopRightPanel=!1,this.showTopLeftPanel=!1,this.showResLeftPanel=!0,this.showLeftPanel=!0,this.showRightPanel=!0,this.showAttachmentPanel=!1,this.showSignaturesPanel=!1,this.loading=!1,this.loadingSign=!1,this.leftContentWidth="44%",this.rightContentWidth="44%",this.notesViewerLink="",this.visaViewerLink="",this.histViewerLink="",this.linksViewerLink="",this.attachmentsViewerLink="",window.angularSignatureBookComponent={componentAfterAttach:function(t){return o.processAfterAttach(t)},componentAfterAction:function(){return o.processAfterAction()},componentAfterNotes:function(){return o.processAfterNotes()}}}return t.prototype.prepareSignatureBook=function(){$j("#inner_content").remove(),$j("#header").remove(),$j("#viewBasketsTitle").remove(),$j("#homePageWelcomeTitle").remove(),$j("#footer").remove(),$j("#container").width("99%")},t.prototype.ngOnInit=function(){var t=this;this.prepareSignatureBook(),this.coreUrl=angularGlobals.coreUrl,this.loading=!0,this.route.params.subscribe(function(e){t.resId=+e.resId,t.basketId=e.basketId,lockDocument(t.resId),setInterval(function(){lockDocument(t.resId)},5e4),t.http.get(t.coreUrl+"rest/"+t.basketId+"/signatureBook/"+t.resId).map(function(t){return t.json()}).subscribe(function(e){if(e.error)return location.hash="",void(location.search="");t.signatureBook=e,t.headerTab=1,t.leftSelectedThumbnail=0,t.rightSelectedThumbnail=0,t.leftViewerLink="",t.rightViewerLink="",t.showLeftPanel=!0,t.showRightPanel=!0,t.showResLeftPanel=!0,t.showTopLeftPanel=!1,t.showTopRightPanel=!1,t.showAttachmentPanel=!1,t.notesViewerLink="index.php?display=true&module=notes&page=notes&identifier="+t.resId+"&origin=document&coll_id=letterbox_coll&load&size=full",t.visaViewerLink="index.php?display=true&page=show_visa_tab&module=visa&resId="+t.resId+"&collId=letterbox_coll&visaStep=true",t.histViewerLink="index.php?display=true&page=show_history_tab&resId="+t.resId+"&collId=letterbox_coll",t.linksViewerLink="index.php?display=true&page=show_links_tab&id="+t.resId,t.attachmentsViewerLink="index.php?display=true&module=attachments&page=frame_list_attachments&resId="+t.resId+"&noModification=true&template_selected=documents_list_attachments_simple&load&attach_type_exclude=converted_pdf,print_folder",t.leftContentWidth="44%",t.rightContentWidth="44%",t.signatureBook.documents[0]&&(t.leftViewerLink=t.signatureBook.documents[0].viewerLink,"outgoing"==t.signatureBook.documents[0].category_id&&(t.headerTab=3)),t.signatureBook.attachments[0]&&(t.rightViewerLink=t.signatureBook.attachments[0].viewerLink),t.displayPanel("RESLEFT"),t.loading=!1,setTimeout(function(){$j("#rightPanelContent").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),$j(".pjSign").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),0==$j(".tooltipstered").length&&$j("#obsVersion").tooltipster({interactive:!0})},0)})})},t.prototype.ngOnDestroy=function(){delete window.angularSignatureBookComponent},t.prototype.processAfterAttach=function(t){var e=this;this.zone.run(function(){return e.refreshAttachments(t)})},t.prototype.processAfterNotes=function(){var t=this;this.zone.run(function(){return t.refreshNotes()})},t.prototype.processAfterAction=function(){for(var t=this,e=-1,n=this.signatureBook.resList.length,r=0;r<n;r++)this.signatureBook.resList[r].res_id==this.resId&&(this.signatureBook.resList[r+1]?e=this.signatureBook.resList[r+1].res_id:r>0&&(e=this.signatureBook.resList[r-1].res_id));unlockDocument(this.resId),e>=0?($j("#send").removeAttr("disabled"),$j("#send").css("opacity","1"),this.zone.run(function(){return t.changeLocation(e,"action")})):this.zone.run(function(){return t.backToBasket()})},t.prototype.changeSignatureBookLeftContent=function(t){this.headerTab=t,this.showTopLeftPanel=!1},t.prototype.changeRightViewer=function(t){this.showAttachmentPanel=!1,this.rightViewerLink=this.signatureBook.attachments[t].viewerLink,this.rightSelectedThumbnail=t},t.prototype.changeLeftViewer=function(t){this.leftViewerLink=this.signatureBook.documents[t].viewerLink,this.leftSelectedThumbnail=t},t.prototype.displayPanel=function(t){var e=this;"TOPRIGHT"==t?this.showTopRightPanel=!this.showTopRightPanel:"TOPLEFT"==t?this.showTopLeftPanel=!this.showTopLeftPanel:"LEFT"==t?(this.showLeftPanel=!this.showLeftPanel,this.showResLeftPanel=!1,this.showLeftPanel?(this.rightContentWidth="48%",this.leftContentWidth="48%",$j("#hideLeftContent").css("background","#CEE9F1")):(this.rightContentWidth="96%",$j("#hideLeftContent").css("background","none"))):"RESLEFT"==t?(this.showResLeftPanel=!this.showResLeftPanel,this.showResLeftPanel?(this.rightContentWidth="44%",this.leftContentWidth="44%",0==this.signatureBook.resList.length&&this.http.get(this.coreUrl+"rest/"+this.basketId+"/signatureBook/resList").map(function(t){return t.json()}).subscribe(function(t){e.signatureBook.resList=t.resList,e.signatureBook.resList.forEach(function(t,n){t.res_id==e.resId&&(e.signatureBook.resListIndex=n)}),setTimeout(function(){$j("#resListContent").niceScroll({touchbehavior:!1,cursorcolor:"#666",cursoropacitymax:.6,cursorwidth:4}),$j("#resListContent").scrollTop(0),$j("#resListContent").scrollTop($j(".resListContentFrameSelected").offset().top-42)},0)})):(this.rightContentWidth="48%",this.leftContentWidth="48%")):"MIDDLE"==t&&(this.showRightPanel=!this.showRightPanel,this.showResLeftPanel=!1,this.showRightPanel?(this.rightContentWidth="48%",this.leftContentWidth="48%",$j("#contentLeft").css("border-right","solid 1px")):(this.leftContentWidth="96%",$j("#contentLeft").css("border-right","none")))},t.prototype.displayAttachmentPanel=function(){this.showAttachmentPanel=!this.showAttachmentPanel,this.rightSelectedThumbnail=0,this.signatureBook.attachments[0]&&(this.rightViewerLink=this.signatureBook.attachments[0].viewerLink)},t.prototype.refreshAttachments=function(t){var e=this;"rightContent"==t?this.http.get(this.coreUrl+"rest/signatureBook/"+this.resId+"/incomingMailAttachments").map(function(t){return t.json()}).subscribe(function(t){e.signatureBook.documents=t}):this.http.get(this.coreUrl+"rest/signatureBook/"+this.resId+"/attachments").map(function(t){return t.json()}).subscribe(function(n){var r=0;if("add"==t){var o=!1;n.forEach(function(t,n){o||e.signatureBook.attachments[n]&&t.res_id==e.signatureBook.attachments[n].res_id||(r=n,o=!0)})}else if("edit"==t){var i=e.signatureBook.attachments[e.rightSelectedThumbnail].res_id;n.forEach(function(t,e){t.res_id==i&&(r=e)})}e.signatureBook.attachments=n,"add"==t||"edit"==t?e.changeRightViewer(r):"del"==t&&e.changeRightViewer(0)})},t.prototype.addAttachmentIframe=function(){showAttachmentsForm("index.php?display=true&module=attachments&page=attachments_content&docId="+this.resId)},t.prototype.editAttachmentIframe=function(t){if(t.canModify&&"SIGN"!=t.status){var e;0==t.res_id?e=t.res_id_version:0==t.res_id_version&&(e=t.res_id),modifyAttachmentsForm("index.php?display=true&module=attachments&page=attachments_content&id="+e+"&relation="+t.relation+"&docId="+this.resId,"98%","auto")}},t.prototype.delAttachment=function(t){var e=this;if(t.canDelete){if(this.signatureBook.attachments.length<=1)n=confirm("Attention, ceci est votre dernière pièce jointe pour ce courrier, voulez-vous vraiment la supprimer ?");else var n=confirm("Voulez-vous vraiment supprimer la pièce jointe ?");if(n){var r;0==t.res_id?r=t.res_id_version:0==t.res_id_version&&(r=t.res_id),this.http.get("index.php?display=true&module=attachments&page=del_attachment&id="+r+"&relation="+t.relation+"&rest=true").subscribe(function(){e.refreshAttachments("del")})}}},t.prototype.refreshNotes=function(){var t=this;this.http.get(this.coreUrl+"rest/res/"+this.resId+"/notes/count").map(function(t){return t.json()}).subscribe(function(e){t.signatureBook.nbNotes=e})},t.prototype.signFile=function(t,e){var n=this;if(!this.loadingSign&&this.signatureBook.canSign){this.loadingSign=!0;var r="index.php?display=true&module=visa&page=sign_file&collId=letterbox_coll&resIdMaster="+this.resId+"&signatureId="+e.id;0==t.res_id?"outgoing_mail"==t.attachment_type&&"outgoing"==this.signatureBook.documents[0].category_id?r+="&isVersion&isOutgoing&id="+t.res_id_version:r+="&isVersion&id="+t.res_id_version:0==t.res_id_version&&("outgoing_mail"==t.attachment_type&&"outgoing"==this.signatureBook.documents[0].category_id?r+="&isOutgoing&id="+t.res_id:r+="&id="+t.res_id),this.http.get(r,e).map(function(t){return t.json()}).subscribe(function(t){if(0==t.status){n.rightViewerLink="index.php?display=true&module=attachments&page=view_attachment&res_id_master="+n.resId+"&id="+t.new_id+"&isVersion=false",n.signatureBook.attachments[n.rightSelectedThumbnail].viewerLink=n.rightViewerLink,n.signatureBook.attachments[n.rightSelectedThumbnail].status="SIGN",n.signatureBook.attachments[n.rightSelectedThumbnail].idToDl=t.new_id;var e=!0;n.signatureBook.attachments.forEach(function(t){t.sign&&"SIGN"!=t.status&&(e=!1)}),n.signatureBook.resList.length>0&&(n.signatureBook.resList[n.signatureBook.resListIndex].allSigned=e)}else alert(t.error);n.showSignaturesPanel=!1,n.loadingSign=!1})}},t.prototype.unsignFile=function(t){var e,n,r,o=this;0==t.res_id?(n=t.res_id_version,e="res_version_attachments",r="true"):0==t.res_id_version&&(n=t.res_id,e="res_attachments",r="false"),this.http.put(this.coreUrl+"rest/"+e+"/"+n+"/unsign",{},{}).map(function(t){return t.json()}).subscribe(function(e){"OK"==e.status?(o.rightViewerLink="index.php?display=true&module=attachments&page=view_attachment&res_id_master="+o.resId+"&id="+t.viewerNoSignId+"&isVersion="+r,o.signatureBook.attachments[o.rightSelectedThumbnail].viewerLink=o.rightViewerLink,o.signatureBook.attachments[o.rightSelectedThumbnail].status="A_TRA",o.signatureBook.attachments[o.rightSelectedThumbnail].idToDl=n,o.signatureBook.resList.length>0&&(o.signatureBook.resList[o.signatureBook.resListIndex].allSigned=!1)):alert(e.error)})},t.prototype.backToBasket=function(){unlockDocument(this.resId),location.hash="",location.reload()},t.prototype.backToDetails=function(){unlockDocument(this.resId),location.hash="",location.search="?page=details&dir=indexing_searching&id="+this.resId},t.prototype.changeLocation=function(t,e){var n=this;this.http.get(this.coreUrl+"rest/res/"+t+"/lock").map(function(t){return t.json()}).subscribe(function(r){if(r.lock)"view"==e?alert("Courrier verouillé par "+r.lockBy):"action"==e&&(alert("Courrier suivant verouillé par "+r.lockBy),n.backToBasket());else{var o="/"+n.basketId+"/signatureBook/"+t;n.router.navigate([o])}})},t.prototype.validForm=function(){var t=this;""!=$j("#signatureBookActions option:selected")[0].value?(unlockDocument(this.resId),0==this.signatureBook.resList.length&&this.http.get(this.coreUrl+"rest/"+this.basketId+"/signatureBook/resList").map(function(t){return t.json()}).subscribe(function(e){t.signatureBook.resList=e.resList,valid_action_form("empty","index.php?display=true&page=manage_action&module=core",t.signatureBook.currentAction.id,t.resId,"res_letterbox","null","letterbox_coll","page",!1,[$j("#signatureBookActions option:selected")[0].value])})):alert("Aucune action choisie")},t}();l=r([i.Component({templateUrl:angularGlobals["signature-bookView"]}),o("design:paramtypes",[s.Http,u.ActivatedRoute,u.Router,i.NgZone])],l),n.SignatureBookComponent=l},{"@angular/core":8,"@angular/http":10,"@angular/platform-browser":12,"@angular/router":13,"rxjs/add/operator/map":24}],5:[function(t,e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=t("@angular/platform-browser-dynamic"),o=t("@angular/core"),i=t("./app/app.module");o.enableProdMode(),r.platformBrowserDynamic().bootstrapModule(i.AppModule)},{"./app/app.module":2,"@angular/core":8,"@angular/platform-browser-dynamic":11}],6:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/core")):o((r.ng=r.ng||{},r.ng.common=r.ng.common||{}),r.ng.core)}(this,function(t,e){"use strict";function n(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}function r(t){return t.replace(/\/index.html$/,"")}function o(t,e,n){var r="="+t;if(e.indexOf(r)>-1)return r;if(r=n.getPluralCategory(t),e.indexOf(r)>-1)return r;if(e.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+t+'"')}function i(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,r=n.toString().replace(/^[^.]*\.?/,""),o=Math.floor(Math.abs(n)),i=r.length,s=parseInt(r,10),a=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?H.One:H.Other;case"agq":case"bas":case"cu":case"dav":case"dje":case"dua":case"dyo":case"ebu":case"ewo":case"guz":case"kam":case"khq":case"ki":case"kln":case"kok":case"ksf":case"lrc":case"lu":case"luo":case"luy":case"mer":case"mfe":case"mgh":case"mua":case"mzn":case"nmg":case"nus":case"qu":case"rn":case"rw":case"sbp":case"twq":case"vai":case"yav":case"yue":case"zgh":case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?H.One:H.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===o||1===n?H.One:H.Other;case"ar":return 0===n?H.Zero:1===n?H.One:2===n?H.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?H.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?H.Many:H.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===o&&0===i?H.One:H.Other;case"be":return n%10==1&&n%100!=11?H.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?H.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?H.Many:H.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?H.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?H.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?H.Few:0!==n&&n%1e6==0?H.Many:H.Other;case"bs":case"hr":case"sr":return 0===i&&o%10==1&&o%100!=11||s%10==1&&s%100!=11?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)||s%10===Math.floor(s%10)&&s%10>=2&&s%10<=4&&!(s%100>=12&&s%100<=14)?H.Few:H.Other;case"cs":case"sk":return 1===o&&0===i?H.One:o===Math.floor(o)&&o>=2&&o<=4&&0===i?H.Few:0!==i?H.Many:H.Other;case"cy":return 0===n?H.Zero:1===n?H.One:2===n?H.Two:3===n?H.Few:6===n?H.Many:H.Other;case"da":return 1===n||0!==a&&(0===o||1===o)?H.One:H.Other;case"dsb":case"hsb":return 0===i&&o%100==1||s%100==1?H.One:0===i&&o%100==2||s%100==2?H.Two:0===i&&o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4||s%100===Math.floor(s%100)&&s%100>=3&&s%100<=4?H.Few:H.Other;case"ff":case"fr":case"hy":case"kab":return 0===o||1===o?H.One:H.Other;case"fil":return 0===i&&(1===o||2===o||3===o)||0===i&&o%10!=4&&o%10!=6&&o%10!=9||0!==i&&s%10!=4&&s%10!=6&&s%10!=9?H.One:H.Other;case"ga":return 1===n?H.One:2===n?H.Two:n===Math.floor(n)&&n>=3&&n<=6?H.Few:n===Math.floor(n)&&n>=7&&n<=10?H.Many:H.Other;case"gd":return 1===n||11===n?H.One:2===n||12===n?H.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?H.Few:H.Other;case"gv":return 0===i&&o%10==1?H.One:0===i&&o%10==2?H.Two:0!==i||o%100!=0&&o%100!=20&&o%100!=40&&o%100!=60&&o%100!=80?0!==i?H.Many:H.Other:H.Few;case"he":return 1===o&&0===i?H.One:2===o&&0===i?H.Two:0!==i||n>=0&&n<=10||n%10!=0?H.Other:H.Many;case"is":return 0===a&&o%10==1&&o%100!=11||0!==a?H.One:H.Other;case"ksh":return 0===n?H.Zero:1===n?H.One:H.Other;case"kw":case"naq":case"se":case"smn":return 1===n?H.One:2===n?H.Two:H.Other;case"lag":return 0===n?H.Zero:0!==o&&1!==o||0===n?H.Other:H.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?H.Few:0!==s?H.Many:H.Other:H.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&s%100===Math.floor(s%100)&&s%100>=11&&s%100<=19?H.Zero:n%10==1&&n%100!=11||2===i&&s%10==1&&s%100!=11||2!==i&&s%10==1?H.One:H.Other;case"mk":return 0===i&&o%10==1||s%10==1?H.One:H.Other;case"mt":return 1===n?H.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?H.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?H.Many:H.Other;case"pl":return 1===o&&0===i?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?H.Few:0===i&&1!==o&&o%10===Math.floor(o%10)&&o%10>=0&&o%10<=1||0===i&&o%10===Math.floor(o%10)&&o%10>=5&&o%10<=9||0===i&&o%100===Math.floor(o%100)&&o%100>=12&&o%100<=14?H.Many:H.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?H.One:H.Other;case"ro":return 1===o&&0===i?H.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?H.Few:H.Other;case"ru":case"uk":return 0===i&&o%10==1&&o%100!=11?H.One:0===i&&o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?H.Few:0===i&&o%10==0||0===i&&o%10===Math.floor(o%10)&&o%10>=5&&o%10<=9||0===i&&o%100===Math.floor(o%100)&&o%100>=11&&o%100<=14?H.Many:H.Other;case"shi":return 0===o||1===n?H.One:n===Math.floor(n)&&n>=2&&n<=10?H.Few:H.Other;case"si":return 0===n||1===n||0===o&&1===s?H.One:H.Other;case"sl":return 0===i&&o%100==1?H.One:0===i&&o%100==2?H.Two:0===i&&o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4||0!==i?H.Few:H.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?H.One:H.Other;default:return H.Other}}function s(t){return t.name||typeof t}function a(t,n){return Error("InvalidPipeArgument: '"+n+"' for pipe '"+e.ɵstringify(t)+"'")}function u(t){return t?t[0].toUpperCase()+t.substr(1).toLowerCase():t}function c(t){return function(e,n){var r=t(e,n);return 1==r.length?"0"+r:r}}function l(t){return function(e,n){return t(e,n).split(" ")[0]}}function p(t,e,n){return new Intl.DateTimeFormat(e,n).format(t).replace(/[\u200e\u200f]/g,"")}function h(t){var e={hour:"2-digit",hour12:!1,timeZoneName:t};return function(t,n){var r=p(t,n,e);return r?r.substring(3):""}}function f(t,e){return t.hour12=e,t}function d(t,e){var n={};return n[t]=2===e?"2-digit":"numeric",n}function y(t,e){var n={};return n[t]=e<4?e>1?"short":"narrow":"long",n}function m(t){return Object.assign.apply(Object,[{}].concat(t))}function v(t){return function(e,n){return p(e,n,t)}}function g(t,e,n){var r=yt[t];if(r)return r(e,n);var o=t,i=vt.get(o);if(!i){i=[];var s=void 0;dt.exec(t);for(var a=t;a;)(s=dt.exec(a))?a=(i=i.concat(s.slice(1))).pop():(i.push(a),a=null);vt.set(o,i)}return i.reduce(function(t,r){var o=mt[r];return t+(o?o(e,n):_(r))},"")}function _(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}function b(t,e,n,r,o,i,s){if(void 0===i&&(i=null),void 0===s&&(s=!1),null==n)return null;if("number"!=typeof(n="string"==typeof n&&C(n)?+n:n))throw a(t,n);var u=void 0,c=void 0,l=void 0;if(r!==ht.Currency&&(u=1,c=0,l=3),o){var p=o.match(_t);if(null===p)throw new Error(o+" is not a valid digit info for number pipes");null!=p[1]&&(u=w(p[1])),null!=p[3]&&(c=w(p[3])),null!=p[5]&&(l=w(p[5]))}return ft.format(n,e,r,{minimumIntegerDigits:u,minimumFractionDigits:c,maximumFractionDigits:l,currency:i,currencyAsSymbol:s})}function w(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}function C(t){return!isNaN(t-parseFloat(t))}function E(t){return null==t||""===t}function S(t){return t instanceof Date&&!isNaN(t.valueOf())}function x(t){var e=new Date(0),n=0,r=0,o=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=T(t[9]+t[10]),r=T(t[9]+t[11])),o.call(e,T(t[1]),T(t[2])-1,T(t[3]));var s=T(t[4]||"0")-n,a=T(t[5]||"0")-r,u=T(t[6]||"0"),c=Math.round(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,a,u,c),e}function T(t){return parseInt(t,10)}function P(t){return t===kt}function A(t){return t===It}function O(t){return t===Nt}function M(t){return t===Dt}var R=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},k=function(){function t(){}return t.prototype.getBaseHrefFromDOM=function(){},t.prototype.onPopState=function(t){},t.prototype.onHashChange=function(t){},t.prototype.pathname=function(){},t.prototype.search=function(){},t.prototype.hash=function(){},t.prototype.replaceState=function(t,e,n){},t.prototype.pushState=function(t,e,n){},t.prototype.forward=function(){},t.prototype.back=function(){},t}(),I=new e.InjectionToken("Location Initialized"),N=function(){function t(){}return t.prototype.path=function(t){},t.prototype.prepareExternalUrl=function(t){},t.prototype.pushState=function(t,e,n,r){},t.prototype.replaceState=function(t,e,n,r){},t.prototype.forward=function(){},t.prototype.back=function(){},t.prototype.onPopState=function(t){},t.prototype.getBaseHref=function(){},t}(),D=new e.InjectionToken("appBaseHref"),j=function(){function t(n){var o=this;this._subject=new e.EventEmitter,this._platformStrategy=n;var i=this._platformStrategy.getBaseHref();this._baseHref=t.stripTrailingSlash(r(i)),this._platformStrategy.onPopState(function(t){o._subject.emit({url:o.path(!0),pop:!0,type:t.type})})}return t.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},t.prototype.isCurrentPathEqualTo=function(e,n){return void 0===n&&(n=""),this.path()==this.normalize(e+t.normalizeQueryParams(n))},t.prototype.normalize=function(e){return t.stripTrailingSlash(n(this._baseHref,r(e)))},t.prototype.prepareExternalUrl=function(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},t.prototype.go=function(t,e){void 0===e&&(e=""),this._platformStrategy.pushState(null,"",t,e)},t.prototype.replaceState=function(t,e){void 0===e&&(e=""),this._platformStrategy.replaceState(null,"",t,e)},t.prototype.forward=function(){this._platformStrategy.forward()},t.prototype.back=function(){this._platformStrategy.back()},t.prototype.subscribe=function(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})},t.normalizeQueryParams=function(t){return t&&"?"!==t[0]?"?"+t:t},t.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e},t.stripTrailingSlash=function(t){return t.replace(/\/$/,"")},t}();j.decorators=[{type:e.Injectable}],j.ctorParameters=function(){return[{type:N}]};var L=function(t){function e(e,n){var r=t.call(this)||this;return r._platformLocation=e,r._baseHref="",null!=n&&(r._baseHref=n),r}return R(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e},e.prototype.prepareExternalUrl=function(t){var e=j.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},e.prototype.pushState=function(t,e,n,r){var o=this.prepareExternalUrl(n+j.normalizeQueryParams(r));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(t,e,o)},e.prototype.replaceState=function(t,e,n,r){var o=this.prepareExternalUrl(n+j.normalizeQueryParams(r));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,o)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(N);L.decorators=[{type:e.Injectable}],L.ctorParameters=function(){return[{type:k},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[D]}]}]};var V=function(t){function e(e,n){var r=t.call(this)||this;if(r._platformLocation=e,null==n&&(n=r._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return r._baseHref=n,r}return R(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.prepareExternalUrl=function(t){return j.joinWithSlash(this._baseHref,t)},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+j.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?""+e+n:e},e.prototype.pushState=function(t,e,n,r){var o=this.prepareExternalUrl(n+j.normalizeQueryParams(r));this._platformLocation.pushState(t,e,o)},e.prototype.replaceState=function(t,e,n,r){var o=this.prepareExternalUrl(n+j.normalizeQueryParams(r));this._platformLocation.replaceState(t,e,o)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(N);V.decorators=[{type:e.Injectable}],V.ctorParameters=function(){return[{type:k},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[D]}]}]};var F=function(){function t(){}return t.prototype.getPluralCategory=function(t){},t}(),U=function(t){function e(e){var n=t.call(this)||this;return n.locale=e,n}return R(e,t),e.prototype.getPluralCategory=function(t){switch(i(this.locale,t)){case H.Zero:return"zero";case H.One:return"one";case H.Two:return"two";case H.Few:return"few";case H.Many:return"many";default:return"other"}},e}(F);U.decorators=[{type:e.Injectable}],U.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var H={};H.Zero=0,H.One=1,H.Two=2,H.Few=3,H.Many=4,H.Other=5,H[H.Zero]="Zero",H[H.One]="One",H[H.Two]="Two",H[H.Few]="Few",H[H.Many]="Many",H[H.Other]="Other";var B=function(){function t(t,e,n,r){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=r,this._initialClasses=[]}return Object.defineProperty(t.prototype,"klass",{set:function(t){this._applyInitialClasses(!0),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyInitialClasses(!1),this._applyClasses(this._rawClass,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClass",{set:function(t){this._cleanupClasses(this._rawClass),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(e.ɵisListLikeIterable(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._iterableDiffer){var t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},t.prototype._cleanupClasses=function(t){this._applyClasses(t,!0),this._applyInitialClasses(!1)},t.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},t.prototype._applyIterableChanges=function(t){var n=this;t.forEachAddedItem(function(t){if("string"!=typeof t.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+e.ɵstringify(t.item));n._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){return n._toggleClass(t.item,!1)})},t.prototype._applyInitialClasses=function(t){var e=this;this._initialClasses.forEach(function(n){return e._toggleClass(n,!t)})},t.prototype._applyClasses=function(t,e){var n=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return n._toggleClass(t,!e)}):Object.keys(t).forEach(function(r){null!=t[r]&&n._toggleClass(r,!e)}))},t.prototype._toggleClass=function(t,e){var n=this;(t=t.trim())&&t.split(/\s+/g).forEach(function(t){n._renderer.setElementClass(n._ngEl.nativeElement,t,!!e)})},t}();B.decorators=[{type:e.Directive,args:[{selector:"[ngClass]"}]}],B.ctorParameters=function(){return[{type:e.IterableDiffers},{type:e.KeyValueDiffers},{type:e.ElementRef},{type:e.Renderer}]},B.propDecorators={klass:[{type:e.Input,args:["class"]}],ngClass:[{type:e.Input}]};var q=function(){function t(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}return t.prototype.ngOnChanges=function(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var n=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var r=n.get(e.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(r.injector)}else this._moduleRef=null;var o=(this._moduleRef?this._moduleRef.componentFactoryResolver:n.get(e.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(o,this._viewContainerRef.length,n,this.ngComponentOutletContent)}},t.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},t}();q.decorators=[{type:e.Directive,args:[{selector:"[ngComponentOutlet]"}]}],q.ctorParameters=function(){return[{type:e.ViewContainerRef}]},q.propDecorators={ngComponentOutlet:[{type:e.Input}],ngComponentOutletInjector:[{type:e.Input}],ngComponentOutletContent:[{type:e.Input}],ngComponentOutletNgModuleFactory:[{type:e.Input}]};var z=function(){function t(t,e,n,r){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=r}return Object.defineProperty(t.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),t}(),G=function(){function t(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._differ=null}return Object.defineProperty(t.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(t){e.isDevMode()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(t)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTemplate",{set:function(t){t&&(this._template=t)},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){if("ngForOf"in t){var e=t.ngForOf.currentValue;if(!this._differ&&e)try{this._differ=this._differs.find(e).create(this.ngForTrackBy)}catch(t){throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+s(e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}},t.prototype.ngDoCheck=function(){if(this._differ){var t=this._differ.diff(this.ngForOf);t&&this._applyChanges(t)}},t.prototype._applyChanges=function(t){var e=this,n=[];t.forEachOperation(function(t,r,o){if(null==t.previousIndex){var i=e._viewContainer.createEmbeddedView(e._template,new z(null,e.ngForOf,-1,-1),o),s=new W(t,i);n.push(s)}else if(null==o)e._viewContainer.remove(r);else{i=e._viewContainer.get(r);e._viewContainer.move(i,o);s=new W(t,i);n.push(s)}});for(r=0;r<n.length;r++)this._perViewChange(n[r].view,n[r].record);for(var r=0,o=this._viewContainer.length;r<o;r++){var i=this._viewContainer.get(r);i.context.index=r,i.context.count=o}t.forEachIdentityChange(function(t){e._viewContainer.get(t.currentIndex).context.$implicit=t.item})},t.prototype._perViewChange=function(t,e){t.context.$implicit=e.item},t}();G.decorators=[{type:e.Directive,args:[{selector:"[ngFor][ngForOf]"}]}],G.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:e.IterableDiffers}]},G.propDecorators={ngForOf:[{type:e.Input}],ngForTrackBy:[{type:e.Input}],ngForTemplate:[{type:e.Input}]};var W=function(){function t(t,e){this.record=t,this.view=e}return t}(),$=G,K=function(){function t(t,e){this._viewContainer=t,this._context=new Q,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}return Object.defineProperty(t.prototype,"ngIf",{set:function(t){this._context.$implicit=this._context.ngIf=t,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfThen",{set:function(t){this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfElse",{set:function(t){this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),t.prototype._updateView=function(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))},t}();K.decorators=[{type:e.Directive,args:[{selector:"[ngIf]"}]}],K.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef}]},K.propDecorators={ngIf:[{type:e.Input}],ngIfThen:[{type:e.Input}],ngIfElse:[{type:e.Input}]};var Q=function(){function t(){this.$implicit=null,this.ngIf=null}return t}(),X=function(){function t(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}return t.prototype.create=function(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)},t.prototype.destroy=function(){this._created=!1,this._viewContainerRef.clear()},t.prototype.enforceState=function(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()},t}(),Z=function(){function t(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}return Object.defineProperty(t.prototype,"ngSwitch",{set:function(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)},enumerable:!0,configurable:!0}),t.prototype._addCase=function(){return this._caseCount++},t.prototype._addDefault=function(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)},t.prototype._matchCase=function(t){var e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,++this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e},t.prototype._updateDefaultCases=function(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(var e=0;e<this._defaultViews.length;e++)this._defaultViews[e].enforceState(t)}},t}();Z.decorators=[{type:e.Directive,args:[{selector:"[ngSwitch]"}]}],Z.ctorParameters=function(){return[]},Z.propDecorators={ngSwitch:[{type:e.Input}]};var Y=function(){function t(t,e,n){this.ngSwitch=n,n._addCase(),this._view=new X(t,e)}return t.prototype.ngDoCheck=function(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))},t}();Y.decorators=[{type:e.Directive,args:[{selector:"[ngSwitchCase]"}]}],Y.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:Z,decorators:[{type:e.Host}]}]},Y.propDecorators={ngSwitchCase:[{type:e.Input}]};var J=function(){function t(t,e,n){n._addDefault(new X(t,e))}return t}();J.decorators=[{type:e.Directive,args:[{selector:"[ngSwitchDefault]"}]}],J.ctorParameters=function(){return[{type:e.ViewContainerRef},{type:e.TemplateRef},{type:Z,decorators:[{type:e.Host}]}]};var tt=function(){function t(t){this._localization=t,this._caseViews={}}return Object.defineProperty(t.prototype,"ngPlural",{set:function(t){this._switchValue=t,this._updateView()},enumerable:!0,configurable:!0}),t.prototype.addCase=function(t,e){this._caseViews[t]=e},t.prototype._updateView=function(){this._clearViews();var t=Object.keys(this._caseViews),e=o(this._switchValue,t,this._localization);this._activateView(this._caseViews[e])},t.prototype._clearViews=function(){this._activeView&&this._activeView.destroy()},t.prototype._activateView=function(t){t&&(this._activeView=t,this._activeView.create())},t}();tt.decorators=[{type:e.Directive,args:[{selector:"[ngPlural]"}]}],tt.ctorParameters=function(){return[{type:F}]},tt.propDecorators={ngPlural:[{type:e.Input}]};var et=function(){function t(t,e,n,r){this.value=t;var o=!isNaN(Number(t));r.addCase(o?"="+t:t,new X(n,e))}return t}();et.decorators=[{type:e.Directive,args:[{selector:"[ngPluralCase]"}]}],et.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Attribute,args:["ngPluralCase"]}]},{type:e.TemplateRef},{type:e.ViewContainerRef},{type:tt,decorators:[{type:e.Host}]}]};var nt=function(){function t(t,e,n){this._differs=t,this._ngEl=e,this._renderer=n}return Object.defineProperty(t.prototype,"ngStyle",{set:function(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._differ){var t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}},t.prototype._applyChanges=function(t){var e=this;t.forEachRemovedItem(function(t){return e._setStyle(t.key,null)}),t.forEachAddedItem(function(t){return e._setStyle(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._setStyle(t.key,t.currentValue)})},t.prototype._setStyle=function(t,e){var n=t.split("."),r=n[0],o=n[1];e=null!=e&&o?""+e+o:e,this._renderer.setElementStyle(this._ngEl.nativeElement,r,e)},t}();nt.decorators=[{type:e.Directive,args:[{selector:"[ngStyle]"}]}],nt.ctorParameters=function(){return[{type:e.KeyValueDiffers},{type:e.ElementRef},{type:e.Renderer}]},nt.propDecorators={ngStyle:[{type:e.Input}]};var rt=function(){function t(t){this._viewContainerRef=t}return Object.defineProperty(t.prototype,"ngOutletContext",{set:function(t){this.ngTemplateOutletContext=t},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this.ngTemplateOutlet&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext))},t}();rt.decorators=[{type:e.Directive,args:[{selector:"[ngTemplateOutlet]"}]}],rt.ctorParameters=function(){return[{type:e.ViewContainerRef}]},rt.propDecorators={ngTemplateOutletContext:[{type:e.Input}],ngTemplateOutlet:[{type:e.Input}],ngOutletContext:[{type:e.Input}]};var ot=[B,q,G,K,rt,nt,Z,Y,J,tt,et],it=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},t.prototype.dispose=function(t){t.unsubscribe()},t.prototype.onDestroy=function(t){t.unsubscribe()},t}(),st=new(function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},t.prototype.dispose=function(t){},t.prototype.onDestroy=function(t){},t}()),at=new it,ut=function(){function t(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}return t.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},t.prototype.transform=function(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,e.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)},t.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(n){return e._updateLatestValue(t,n)})},t.prototype._selectStrategy=function(n){if(e.ɵisPromise(n))return st;if(e.ɵisObservable(n))return at;throw a(t,n)},t.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},t.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},t}();ut.decorators=[{type:e.Pipe,args:[{name:"async",pure:!1}]}],ut.ctorParameters=function(){return[{type:e.ChangeDetectorRef}]};var ct=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.toLowerCase()},t}();ct.decorators=[{type:e.Pipe,args:[{name:"lowercase"}]}],ct.ctorParameters=function(){return[]};var lt=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.split(/\b/g).map(function(t){return u(t)}).join("")},t}();lt.decorators=[{type:e.Pipe,args:[{name:"titlecase"}]}],lt.ctorParameters=function(){return[]};var pt=function(){function t(){}return t.prototype.transform=function(e){if(!e)return e;if("string"!=typeof e)throw a(t,e);return e.toUpperCase()},t}();pt.decorators=[{type:e.Pipe,args:[{name:"uppercase"}]}],pt.ctorParameters=function(){return[]};var ht={};ht.Decimal=0,ht.Percent=1,ht.Currency=2,ht[ht.Decimal]="Decimal",ht[ht.Percent]="Percent",ht[ht.Currency]="Currency";var ft=function(){function t(){}return t.format=function(t,e,n,r){var o=void 0===r?{}:r,i=o.minimumIntegerDigits,s=o.minimumFractionDigits,a=o.maximumFractionDigits,u=o.currency,c=o.currencyAsSymbol,l=void 0!==c&&c,p={minimumIntegerDigits:i,minimumFractionDigits:s,maximumFractionDigits:a,style:ht[n].toLowerCase()};return n==ht.Currency&&(p.currency="string"==typeof u?u:void 0,p.currencyDisplay=l?"symbol":"code"),new Intl.NumberFormat(e,p).format(t)},t}(),dt=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,yt={yMMMdjms:v(m([d("year",1),y("month",3),d("day",1),d("hour",1),d("minute",1),d("second",1)])),yMdjm:v(m([d("year",1),d("month",1),d("day",1),d("hour",1),d("minute",1)])),yMMMMEEEEd:v(m([d("year",1),y("month",4),y("weekday",4),d("day",1)])),yMMMMd:v(m([d("year",1),y("month",4),d("day",1)])),yMMMd:v(m([d("year",1),y("month",3),d("day",1)])),yMd:v(m([d("year",1),d("month",1),d("day",1)])),jms:v(m([d("hour",1),d("second",1),d("minute",1)])),jm:v(m([d("hour",1),d("minute",1)]))},mt={yyyy:v(d("year",4)),yy:v(d("year",2)),y:v(d("year",1)),MMMM:v(y("month",4)),MMM:v(y("month",3)),MM:v(d("month",2)),M:v(d("month",1)),LLLL:v(y("month",4)),L:v(y("month",1)),dd:v(d("day",2)),d:v(d("day",1)),HH:c(l(v(f(d("hour",2),!1)))),H:l(v(f(d("hour",1),!1))),hh:c(l(v(f(d("hour",2),!0)))),h:l(v(f(d("hour",1),!0))),jj:v(d("hour",2)),j:v(d("hour",1)),mm:c(v(d("minute",2))),m:v(d("minute",1)),ss:c(v(d("second",2))),s:v(d("second",1)),sss:v(d("second",3)),EEEE:v(y("weekday",4)),EEE:v(y("weekday",3)),EE:v(y("weekday",2)),E:v(y("weekday",1)),a:function(t){return function(e,n){return t(e,n).split(" ")[1]}}(v(f(d("hour",1),!0))),Z:h("short"),z:h("long"),ww:v({}),w:v({}),G:v(y("era",1)),GG:v(y("era",2)),GGG:v(y("era",3)),GGGG:v(y("era",4))},vt=new Map,gt=function(){function t(){}return t.format=function(t,e,n){return g(n,t,e)},t}(),_t=/^(\d+)?\.((\d+)(-(\d+))?)?$/,bt=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,n){return b(t,this._locale,e,ht.Decimal,n)},t}();bt.decorators=[{type:e.Pipe,args:[{name:"number"}]}],bt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var wt=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,n){return b(t,this._locale,e,ht.Percent,n)},t}();wt.decorators=[{type:e.Pipe,args:[{name:"percent"}]}],wt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var Ct=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,n,r,o){return void 0===n&&(n="USD"),void 0===r&&(r=!1),b(t,this._locale,e,ht.Currency,o,n,r)},t}();Ct.decorators=[{type:e.Pipe,args:[{name:"currency"}]}],Ct.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var Et=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,St=function(){function t(t){this._locale=t}return t.prototype.transform=function(e,n){void 0===n&&(n="mediumDate");var r;if(E(e)||e!==e)return null;if("string"==typeof e&&(e=e.trim()),S(e))r=e;else if(C(e))r=new Date(parseFloat(e));else if("string"==typeof e&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){var o=e.split("-").map(function(t){return parseInt(t,10)}),i=o[0],s=o[1],u=o[2];r=new Date(i,s-1,u)}else r=new Date(e);if(!S(r)){var c=void 0;if("string"!=typeof e||!(c=e.match(Et)))throw a(t,e);r=x(c)}return gt.format(r,this._locale,t._ALIASES[n]||n)},t}();St._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},St.decorators=[{type:e.Pipe,args:[{name:"date",pure:!0}]}],St.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var xt=/#/g,Tt=function(){function t(t){this._localization=t}return t.prototype.transform=function(e,n){if(null==e)return"";if("object"!=typeof n||null===n)throw a(t,n);return n[o(e,Object.keys(n),this._localization)].replace(xt,e.toString())},t}();Tt.decorators=[{type:e.Pipe,args:[{name:"i18nPlural",pure:!0}]}],Tt.ctorParameters=function(){return[{type:F}]};var Pt=function(){function t(){}return t.prototype.transform=function(e,n){if(null==e)return"";if("object"!=typeof n||"string"!=typeof e)throw a(t,n);return n.hasOwnProperty(e)?n[e]:n.hasOwnProperty("other")?n.other:""},t}();Pt.decorators=[{type:e.Pipe,args:[{name:"i18nSelect",pure:!0}]}],Pt.ctorParameters=function(){return[]};var At=function(){function t(){}return t.prototype.transform=function(t){return JSON.stringify(t,null,2)},t}();At.decorators=[{type:e.Pipe,args:[{name:"json",pure:!1}]}],At.ctorParameters=function(){return[]};var Ot=function(){function t(){}return t.prototype.transform=function(e,n,r){if(null==e)return e;if(!this.supports(e))throw a(t,e);return e.slice(n,r)},t.prototype.supports=function(t){return"string"==typeof t||Array.isArray(t)},t}();Ot.decorators=[{type:e.Pipe,args:[{name:"slice",pure:!1}]}],Ot.ctorParameters=function(){return[]};var Mt=[ut,pt,ct,At,Ot,bt,wt,lt,Ct,St,Tt,Pt],Rt=function(){function t(){}return t}();Rt.decorators=[{type:e.NgModule,args:[{declarations:[ot,Mt],exports:[ot,Mt],providers:[{provide:F,useClass:U}]}]}],Rt.ctorParameters=function(){return[]};var kt="browser",It="server",Nt="browserWorkerApp",Dt="browserWorkerUi",jt=new e.Version("4.1.3");t.NgLocaleLocalization=U,t.NgLocalization=F,t.CommonModule=Rt,t.NgClass=B,t.NgFor=$,t.NgForOf=G,t.NgForOfContext=z,t.NgIf=K,t.NgIfContext=Q,t.NgPlural=tt,t.NgPluralCase=et,t.NgStyle=nt,t.NgSwitch=Z,t.NgSwitchCase=Y,t.NgSwitchDefault=J,t.NgTemplateOutlet=rt,t.NgComponentOutlet=q,t.AsyncPipe=ut,t.DatePipe=St,t.I18nPluralPipe=Tt,t.I18nSelectPipe=Pt,t.JsonPipe=At,t.LowerCasePipe=ct,t.CurrencyPipe=Ct,t.DecimalPipe=bt,t.PercentPipe=wt,t.SlicePipe=Ot,t.UpperCasePipe=pt,t.TitleCasePipe=lt,t.ɵPLATFORM_BROWSER_ID=kt,t.ɵPLATFORM_SERVER_ID=It,t.ɵPLATFORM_WORKER_APP_ID=Nt,t.ɵPLATFORM_WORKER_UI_ID=Dt,t.isPlatformBrowser=P,t.isPlatformServer=A,t.isPlatformWorkerApp=O,t.isPlatformWorkerUi=M,t.VERSION=jt,t.PlatformLocation=k,t.LOCATION_INITIALIZED=I,t.LocationStrategy=N,t.APP_BASE_HREF=D,t.HashLocationStrategy=L,t.PathLocationStrategy=V,t.Location=j,t.ɵa=ot,t.ɵb=Mt,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8}],7:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/core")):o((r.ng=r.ng||{},r.ng.compiler=r.ng.compiler||{}),r.ng.core)}(this,function(t,e){"use strict";function n(t,e,n){void 0===n&&(n=null);var r=[],o=t.visit?function(e){return t.visit(e,n)||e.visit(t,n)}:function(e){return e.visit(t,n)};return e.forEach(function(t){var e=o(t);e&&r.push(e)}),r}function r(t){if(":"!=t[0])return[null,t];var e=t.indexOf(":",1);if(-1==e)throw new Error('Unsupported format "'+t+'" expecting ":namespace:name"');return[t.slice(1,e),t.slice(e+1)]}function o(t){return"ng-container"===r(t)[1]}function i(t){return"ng-content"===r(t)[1]}function s(t){return"ng-template"===r(t)[1]}function a(t){return null===t?null:r(t)[0]}function u(t,e){return t?":"+t+":"+e:e}function c(t){return _o[t.toLowerCase()]||bo}function l(t){return t.replace(Po,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[1].toUpperCase()})}function p(t,e){return f(t,":",e)}function h(t,e){return f(t,".",e)}function f(t,e,n){var r=t.indexOf(e);return-1==r?n:[t.slice(0,r).trim(),t.slice(r+1).trim()]}function d(t,e,n){return Array.isArray(t)?e.visitArray(t,n):b(t)?e.visitStringMap(t,n):null==t||"string"==typeof t||"number"==typeof t||"boolean"==typeof t?e.visitPrimitive(t,n):e.visitOther(t,n)}function y(t){return null!==t&&void 0!==t}function m(t){return void 0===t?null:t}function v(t){var e=Error(t);return e[Mo]=!0,e}function g(t){return t[Mo]}function _(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(t){return"object"==typeof t&&null!==t&&Object.getPrototypeOf(t)===Ro}function w(t){for(var e="",n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r>=55296&&r<=56319&&t.length>n+1){var o=t.charCodeAt(n+1);o>=56320&&o<=57343&&(n++,r=(r-55296<<10)+o-56320+65536)}r<=127?e+=String.fromCharCode(r):r<=2047?e+=String.fromCharCode(r>>6&31|192,63&r|128):r<=65535?e+=String.fromCharCode(r>>12|224,r>>6&63|128,63&r|128):r<=2097151&&(e+=String.fromCharCode(r>>18&7|240,r>>12&63|128,r>>6&63|128,63&r|128))}return e}function C(t){return t.replace(/\W/g,"_")}function E(t){if(!t||!t.reference)return null;var n=t.reference;if(n instanceof fo)return n.name;if(n.__anonymousType)return n.__anonymousType;var r=e.ɵstringify(n);return r.indexOf("(")>=0?(r="anonymous_"+zo++,n.__anonymousType=r):r=C(r),r}function S(t){var n=t.reference;return n instanceof fo?n.filePath:e.ɵreflector.importUri(n)}function x(t,e){return"View_"+E({reference:t})+"_"+e}function T(t){return"RenderType_"+E({reference:t})}function P(t){return"HostView_"+E({reference:t})}function A(t){return"Wrapper_"+E({reference:t})}function O(t){return E({reference:t})+"NgFactory"}function M(t){return null!=t.value?C(t.value):E(t.identifier)}function R(t){return null!=t.identifier?t.identifier.reference:t.value}function k(t,n,r){var o=Co.parse(n.selector)[0].getMatchingElementTemplate();return Ko.create({isHost:!0,type:{reference:t,diDeps:[],lifecycleHooks:[]},template:new $o({encapsulation:e.ViewEncapsulation.None,template:o,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[],animations:[],isInline:!0,externalStylesheets:[],interpolation:null}),exportAs:null,changeDetection:e.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},isComponent:!0,selector:"*",providers:[],viewProviders:[],queries:[],viewQueries:[],componentViewType:r,rendererType:{id:"__Host__",encapsulation:e.ViewEncapsulation.None,styles:[],data:{}},entryComponents:[],componentFactory:null})}function I(t){return t||[]}function N(t){return t.reduce(function(t,e){var n=Array.isArray(e)?N(e):e;return t.concat(n)},[])}function D(t){return t.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}function j(t,e,n){var r;return r=n.isInline?e.type.reference instanceof fo?e.type.reference.filePath+"."+e.type.reference.name+".html":E(t)+"/"+E(e.type)+".html":n.templateUrl,D(r)}function L(t,e){var n=t.moduleUrl.split(/\/\\/g);return D("css/"+e+n[n.length-1]+".ngstyle.js")}function V(t){return D(E(t.type)+"/module.ngfactory.js")}function F(t,e){return D(E(t)+"/"+E(e.type)+".ngfactory.js")}function U(t){return t>=Ai&&t<=Ii||t==is}function H(t){return qi<=t&&t<=zi}function B(t){return t>=Xi&&t<=rs||t>=Gi&&t<=Ki}function q(t){return t>=Xi&&t<=Yi||t>=Gi&&t<=$i||H(t)}function z(){return function(t){return t}}function G(t,n){if(e.isDevMode()&&null!=n){if(!Array.isArray(n))throw new Error("Expected '"+t+"' to be an array of strings.");for(var r=0;r<n.length;r+=1)if("string"!=typeof n[r])throw new Error("Expected '"+t+"' to be an array of strings.")}}function W(t,n){if(!(null==n||Array.isArray(n)&&2==n.length))throw new Error("Expected '"+t+"' to be an array, [start, end].");if(e.isDevMode()&&null!=n){var r=n[0],o=n[1];as.forEach(function(t){if(t.test(r)||t.test(o))throw new Error("['"+r+"', '"+o+"'] contains unusable interpolation symbol.")})}}function $(t,e){return new fs(t,ls.Character,e,String.fromCharCode(e))}function K(t,e){return new fs(t,ls.Identifier,0,e)}function Q(t,e){return new fs(t,ls.Keyword,0,e)}function X(t,e){return new fs(t,ls.Operator,0,e)}function Z(t,e){return new fs(t,ls.String,0,e)}function Y(t,e){return new fs(t,ls.Number,e,"")}function J(t,e){return new fs(t,ls.Error,0,e)}function tt(t){return Xi<=t&&t<=rs||Gi<=t&&t<=Ki||t==Qi||t==Di}function et(t){if(0==t.length)return!1;var e=new ys(t);if(!tt(e.peek))return!1;for(e.advance();e.peek!==Pi;){if(!nt(e.peek))return!1;e.advance()}return!0}function nt(t){return B(t)||H(t)||t==Qi||t==Di}function rt(t){return t==Zi||t==Wi}function ot(t){return t==Vi||t==Li}function it(t){return t===ji||t===Ni||t===ss}function st(t){switch(t){case Ji:return Oi;case Yi:return Ri;case ts:return ki;case es:return Ai;case ns:return Mi;default:return t}}function at(t){var e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}function ut(t){var e=_(t.start)+"([\\s\\S]*?)"+_(t.end);return new RegExp(e,"g")}function ct(t,e){var n=S(e),r=null!=n?"in "+t+" "+E(e)+" in "+n:"in "+t+" "+E(e),o=new Cs("",r);return new Es(new ws(o,-1,-1,-1),new ws(o,-1,-1,-1))}function lt(t,e,n){void 0===n&&(n=null);var r=[],o=t.visit?function(e){return t.visit(e,n)||e.visit(t,n)}:function(e){return e.visit(t,n)};return e.forEach(function(t){var e=o(t);e&&r.push(e)}),r}function pt(t,e,n,r,o){return void 0===r&&(r=!1),void 0===o&&(o=cs),new Vs(new Cs(t,e),n,r,o).tokenize()}function ht(t){return'Unexpected character "'+(t===Pi?"EOF":String.fromCharCode(t))+'"'}function ft(t){return'Unknown entity "'+t+'" - use the "&#<decimal>;" or  "&#x<hex>;" syntax'}function dt(t){return!U(t)||t===Pi}function yt(t){return U(t)||t===Bi||t===Fi||t===ji||t===Ni||t===Hi}function mt(t){return(t<Xi||rs<t)&&(t<Gi||Ki<t)&&(t<qi||t>zi)}function vt(t){return t==Ui||t==Pi||!q(t)}function gt(t){return t==Ui||t==Pi||!B(t)}function _t(t,e,n){var r=!!n&&t.indexOf(n.start,e)==e;return t.charCodeAt(e)==os&&!r}function bt(t){return t===Hi||B(t)}function wt(t,e){return Ct(t)==Ct(e)}function Ct(t){return t>=Xi&&t<=rs?t-Xi+Gi:t}function Et(t){for(var e=[],n=void 0,r=0;r<t.length;r++){var o=t[r];n&&n.type==ks.TEXT&&o.type==ks.TEXT?(n.parts[0]+=o.parts[0],n.sourceSpan.end=o.sourceSpan.end):(n=o,e.push(n))}return e}function St(t,e){return t.length>0&&t[t.length-1]===e}function xt(t){var e=new ea(ta,t);return function(t,n,r,o){return e.toI18nMessage(t,n,r,o)}}function Tt(t){return t.split(na)[2]}function Pt(t,e,n,r){return new la(n,r).extract(t,e)}function At(t,e,n,r,o){return new la(r,o).merge(t,e,n)}function Ot(t){return!!(t instanceof Rs&&t.value&&t.value.startsWith("i18n"))}function Mt(t){return!!(t instanceof Rs&&t.value&&"/i18n"===t.value)}function Rt(t){return t.attrs.find(function(t){return t.name===oa})||null}function kt(t){if(!t)return{meaning:"",description:"",id:""};var e=t.indexOf(aa),n=t.indexOf(sa),r=e>-1?[t.slice(0,e),t.slice(e+2)]:[t,""],o=r[0],i=r[1],s=n>-1?[o.slice(0,n),o.slice(n+1)]:["",o];return{meaning:s[0],description:s[1],id:i}}function It(t){return pa}function Nt(t){return t.id||Lt(jt(t.nodes).join("")+"["+t.meaning+"]")}function Dt(t){if(t.id)return t.id;var e=new ya;return Ut(t.nodes.map(function(t){return t.visit(e,null)}).join(""),t.meaning)}function jt(t){return t.map(function(t){return t.visit(da,null)})}function Lt(t){var e=w(t),n=Qt(e,ma.Big),r=8*e.length,o=new Array(80),i=[1732584193,4023233417,2562383102,271733878,3285377520],s=i[0],a=i[1],u=i[2],c=i[3],l=i[4];n[r>>5]|=128<<24-r%32,n[15+(r+64>>9<<4)]=r;for(var p=0;p<n.length;p+=16){for(var h=[s,a,u,c,l],f=h[0],d=h[1],y=h[2],m=h[3],v=h[4],g=0;g<80;g++){o[g]=g<16?n[p+g]:$t(o[g-3]^o[g-8]^o[g-14]^o[g-16],1);var _=Vt(g,a,u,c),b=_[0],C=_[1],E=[$t(s,5),b,l,C,o[g]].reduce(qt);l=(S=[c,u,$t(a,30),s,E])[0],c=S[1],u=S[2],a=S[3],s=S[4]}s=(x=[qt(s,f),qt(a,d),qt(u,y),qt(c,m),qt(l,v)])[0],a=x[1],u=x[2],c=x[3],l=x[4]}return te(Yt([s,a,u,c,l]));var S,x}function Vt(t,e,n,r){return t<20?[e&n|~e&r,1518500249]:t<40?[e^n^r,1859775393]:t<60?[e&n|e&r|n&r,2400959708]:[e^n^r,3395469782]}function Ft(t){var e=w(t),n=[Ht(e,0),Ht(e,102072)],r=n[0],o=n[1];return 0!=r||0!=o&&1!=o||(r^=319790063,o^=-1801410264),[r,o]}function Ut(t,e){var n=Ft(t),r=n[0],o=n[1];if(e){var i=Ft(e),s=i[0],a=i[1];r=(u=Gt(Kt([r,o],1),[s,a]))[0],o=u[1]}return ee(Yt([2147483647&r,o]));var u}function Ht(t,e){var n,r=[2654435769,2654435769],o=r[0],i=r[1],s=t.length;for(n=0;n+12<=s;n+=12)o=(a=Bt([o=qt(o,Zt(t,n,ma.Little)),i=qt(i,Zt(t,n+4,ma.Little)),e=qt(e,Zt(t,n+8,ma.Little))]))[0],i=a[1],e=a[2];return o=qt(o,Zt(t,n,ma.Little)),i=qt(i,Zt(t,n+4,ma.Little)),e=qt(e,s),e=qt(e,Zt(t,n+8,ma.Little)<<8),Bt([o,i,e])[2];var a}function Bt(t){var e=t[0],n=t[1],r=t[2];return e=Wt(e,n),e=Wt(e,r),e^=r>>>13,n=Wt(n,r),n=Wt(n,e),n^=e<<8,r=Wt(r,e),r=Wt(r,n),r^=n>>>13,e=Wt(e,n),e=Wt(e,r),e^=r>>>12,n=Wt(n,r),n=Wt(n,e),n^=e<<16,r=Wt(r,e),r=Wt(r,n),r^=n>>>5,e=Wt(e,n),e=Wt(e,r),e^=r>>>3,n=Wt(n,r),n=Wt(n,e),n^=e<<10,r=Wt(r,e),r=Wt(r,n),r^=n>>>15,[e,n,r]}function qt(t,e){return zt(t,e)[1]}function zt(t,e){var n=(65535&t)+(65535&e),r=(t>>>16)+(e>>>16)+(n>>>16);return[r>>>16,r<<16|65535&n]}function Gt(t,e){var n=t[0],r=t[1],o=e[0],i=zt(r,e[1]),s=i[0],a=i[1];return[qt(qt(n,o),s),a]}function Wt(t,e){var n=(65535&t)-(65535&e);return(t>>16)-(e>>16)+(n>>16)<<16|65535&n}function $t(t,e){return t<<e|t>>>32-e}function Kt(t,e){var n=t[0],r=t[1];return[n<<e|r>>>32-e,r<<e|n>>>32-e]}function Qt(t,e){for(var n=Array(t.length+3>>>2),r=0;r<n.length;r++)n[r]=Zt(t,4*r,e);return n}function Xt(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function Zt(t,e,n){var r=0;if(n===ma.Big)for(o=0;o<4;o++)r+=Xt(t,e+o)<<24-8*o;else for(var o=0;o<4;o++)r+=Xt(t,e+o)<<8*o;return r}function Yt(t){return t.reduce(function(t,e){return t+Jt(e)},"")}function Jt(t){for(var e="",n=0;n<4;n++)e+=String.fromCharCode(t>>>8*(3-n)&255);return e}function te(t){for(var e="",n=0;n<t.length;n++){var r=Xt(t,n);e+=(r>>>4).toString(16)+(15&r).toString(16)}return e.toLowerCase()}function ee(t){for(var e="",n="1",r=t.length-1;r>=0;r--)e=ne(e,re(Xt(t,r),n)),n=re(256,n);return e.split("").reverse().join("")}function ne(t,e){for(var n="",r=Math.max(t.length,e.length),o=0,i=0;o<r||i;o++){var s=i+ +(t[o]||0)+ +(e[o]||0);s>=10?(i=1,n+=s-10):(i=0,n+=s)}return n}function re(t,e){for(var n="",r=e;0!==t;t>>>=1)1&t&&(n=ne(n,r)),r=ne(r,r);return n}function oe(t){return t.map(function(t){return t.visit(_a)}).join("")}function ie(t){return xa.reduce(function(t,e){return t.replace(e[0],e[1])},t)}function se(t){switch(t.toLowerCase()){case"br":return"lb";case"img":return"image";default:return"x-"+t}}function ae(t){switch(t.toLowerCase()){case"br":case"b":case"i":case"u":return"fmt";case"img":return"image";case"a":return"link";default:return"other"}}function ue(t){return Dt(t)}function ce(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function le(t,e,n){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){var r=n();return Object.defineProperty(t,e,{enumerable:!0,value:r}),r},set:function(t){throw new Error("Could not overwrite an XTB translation")}})}function pe(t){switch(t=(t||"xlf").toLowerCase()){case"xmb":return new Na;case"xtb":return new La;case"xliff2":case"xlf2":return new Ma;case"xliff":case"xlf":default:return new Ta}}function he(t){var n=t.name;return e.ɵreflector.resolveIdentifier(n,t.moduleUrl,null,t.runtime)}function fe(t){return{reference:he(t)}}function de(t){return{identifier:t}}function ye(t){return de(fe(t))}function me(t){var e=new Qa;return new $a(lt(e,t),e.isExpanded,e.errors)}function ve(t,e){var n=t.cases.map(function(t){-1!=Wa.indexOf(t.value)||t.value.match(/^=\d+$/)||e.push(new Ka(t.valueSourceSpan,'Plural cases should be "=<number>" or one of '+Wa.join(", ")));var n=me(t.expression);return e.push.apply(e,n.errors),new Ms("ng-template",[new Os("ngPluralCase",""+t.value,t.valueSourceSpan)],n.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),r=new Os("[ngPlural]",t.switchValue,t.switchValueSourceSpan);return new Ms("ng-container",[r],n,t.sourceSpan,t.sourceSpan,t.sourceSpan)}function ge(t,e){var n=t.cases.map(function(t){var n=me(t.expression);return e.push.apply(e,n.errors),"other"===t.value?new Ms("ng-template",[new Os("ngSwitchDefault","",t.valueSourceSpan)],n.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan):new Ms("ng-template",[new Os("ngSwitchCase",""+t.value,t.valueSourceSpan)],n.nodes,t.sourceSpan,t.sourceSpan,t.sourceSpan)}),r=new Os("[ngSwitch]",t.switchValue,t.switchValueSourceSpan);return new Ms("ng-container",[r],n,t.sourceSpan,t.sourceSpan,t.sourceSpan)}function _e(t,e){var n=e.useExisting,r=e.useValue,o=e.deps;return{token:t.token,useClass:t.useClass,useExisting:n,useFactory:t.useFactory,useValue:r,deps:o,multi:t.multi}}function be(t,e){var n=e.eager,r=e.providers;return new co(t.token,t.multiProvider,t.eager||n,r,t.providerType,t.lifecycleHooks,t.sourceSpan)}function we(t,e,n){var r=new Map;return t.forEach(function(t){Ce([{token:{identifier:t.type},useClass:t.type}],t.isComponent?lo.Component:lo.Directive,!0,e,n,r)}),t.filter(function(t){return t.isComponent}).concat(t.filter(function(t){return!t.isComponent})).forEach(function(t){Ce(t.providers,lo.PublicService,!1,e,n,r),Ce(t.viewProviders,lo.PrivateService,!1,e,n,r)}),r}function Ce(t,e,n,r,o,i){t.forEach(function(t){var s=i.get(R(t.token));if(null!=s&&!!s.multiProvider!=!!t.multi&&o.push(new Xa("Mixing multi and non multi provider is not possible for token "+M(s.token),r)),s)t.multi||(s.providers.length=0),s.providers.push(t);else{var a=t.token.identifier&&t.token.identifier.lifecycleHooks?t.token.identifier.lifecycleHooks:[],u=!(t.useClass||t.useExisting||t.useFactory);s=new co(t.token,!!t.multi,n||u,[t],e,a,r),i.set(R(t.token),s)}})}function Ee(t){var e=1,n=new Map;return t.viewQueries&&t.viewQueries.forEach(function(t){return xe(n,{meta:t,queryId:e++})}),n}function Se(t,e){var n=t,r=new Map;return e.forEach(function(t,e){t.queries&&t.queries.forEach(function(t){return xe(r,{meta:t,queryId:n++})})}),r}function xe(t,e){e.meta.selectors.forEach(function(n){var r=t.get(R(n));r||(r=[],t.set(R(n),r)),r.push(e)})}function Te(t){if(null==t||0===t.length||"/"==t[0])return!1;var e=t.match(ou);return null===e||"package"==e[1]||"asset"==e[1]}function Pe(t,e,n){var r=[],o=n.replace(ru,"").replace(nu,function(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];var i=n[1]||n[2];return Te(i)?(r.push(t.resolve(e,i)),""):n[0]});return new eu(o,r)}function Ae(t){return"@"==t[0]}function Oe(t,n,r,o){var i=[];return Co.parse(n).forEach(function(e){var n=e.element?[e.element]:t.allKnownElementNames(),s=new Set(e.notSelectors.filter(function(t){return t.isElementSelector()}).map(function(t){return t.element})),a=n.filter(function(t){return!s.has(t)});i.push.apply(i,a.map(function(e){return t.securityContext(e,r,o)}))}),0===i.length?[e.SecurityContext.NONE]:Array.from(new Set(i)).sort()}function Me(t){var e=null,n=null,r=null,o=!1,s=null;t.attrs.forEach(function(t){var i=t.name.toLowerCase();i==cu?e=t.value:i==hu?n=t.value:i==pu?r=t.value:t.name==mu?o=!0:t.name==vu&&t.value.length>0&&(s=t.value)}),e=Re(e);var a=t.name.toLowerCase(),u=gu.OTHER;return i(a)?u=gu.NG_CONTENT:a==du?u=gu.STYLE:a==yu?u=gu.SCRIPT:a==lu&&r==fu&&(u=gu.STYLESHEET),new _u(u,e,n,o,s)}function Re(t){return null===t||0===t.length?"*":t}function ke(t){return function(e){return-1===t.indexOf(e.msg)||(xu[e.msg]=(xu[e.msg]||0)+1,xu[e.msg]<=1)}}function Ie(t){return t.trim().split(/\s+/g)}function Ne(t,e){var n=new Co,o=r(t)[1];n.setElement(o);for(var i=0;i<e.length;i++){var s=e[i][0],a=r(s)[1],u=e[i][1];n.addAttribute(a,u),s.toLowerCase()==Cu&&Ie(u).forEach(function(t){return n.addClassName(t)})}return n}function De(t){return t instanceof Ts&&0==t.value.trim().length}function je(t){var e=new Map;return t.forEach(function(t){e.get(t.type.reference)||e.set(t.type.reference,t)}),Array.from(e.values())}function Le(t){return t instanceof Ei&&(t=t.ast),t instanceof oi}function Ve(t,e,n){if(s(t.name))return!0;var o=r(t.name)[1];return!(o.toLowerCase()!==wu||!e||o.toLowerCase()!==wu)&&(n(Su,t.sourceSpan),!0)}function Fe(){return new Vu}function Ue(){return new Vu(".")}function He(t){var e=qe(t);return e&&e[Uu.Scheme]||""}function Be(t,e,n,r,o,i,s){var a=[];return null!=t&&a.push(t+":"),null!=n&&(a.push("//"),null!=e&&a.push(e+"@"),a.push(n),null!=r&&a.push(":"+r)),null!=o&&a.push(o),null!=i&&a.push("?"+i),null!=s&&a.push("#"+s),a.join("")}function qe(t){return t.match(Fu)}function ze(t){if("/"==t)return"/";for(var e="/"==t[0]?"/":"",n="/"===t[t.length-1]?"/":"",r=t.split("/"),o=[],i=0,s=0;s<r.length;s++){var a=r[s];switch(a){case"":case".":break;case"..":o.length>0?o.pop():i++;break;default:o.push(a)}}if(""==e){for(;i-- >0;)o.unshift("..");0===o.length&&o.push(".")}return e+o.join("/")+n}function Ge(t){var e=t[Uu.Path];return e=null==e?"":ze(e),t[Uu.Path]=e,Be(t[Uu.Scheme],t[Uu.UserInfo],t[Uu.Domain],t[Uu.Port],e,t[Uu.QueryData],t[Uu.Fragment])}function We(t,e){var n=qe(encodeURI(e)),r=qe(t);if(null!=n[Uu.Scheme])return Ge(n);n[Uu.Scheme]=r[Uu.Scheme];for(var o=Uu.Scheme;o<=Uu.Port;o++)null==n[o]&&(n[o]=r[o]);if("/"==n[Uu.Path][0])return Ge(n);var i=r[Uu.Path];null==i&&(i="/");var s=i.lastIndexOf("/");return i=i.substring(0,s+1)+n[Uu.Path],n[Uu.Path]=i,Ge(n)}function $e(t){return t instanceof e.Directive}function Ke(t,e){for(var n=t.length-1;n>=0;n--)if(e(t[n]))return t[n];return null}function Qe(t){var e=Ye(t);return e[0]+".ngfactory"+e[1]}function Xe(t){return t.replace(Wu,".")}function Ze(t){return Wu.test(t)}function Ye(t){if(t.endsWith(".d.ts"))return[t.slice(0,-5),".ts"];var e=t.lastIndexOf(".");return-1!==e?[t.substring(0,e),t.substring(e)]:[t,""]}function Je(t){return t.replace(Gu,"")+".ngsummary.json"}function tn(t,n){return e.ɵreflector.hasLifecycleHook(n,en(t))}function en(t){switch(t){case e.ɵLifecycleHooks.OnInit:return"ngOnInit";case e.ɵLifecycleHooks.OnDestroy:return"ngOnDestroy";case e.ɵLifecycleHooks.DoCheck:return"ngDoCheck";case e.ɵLifecycleHooks.OnChanges:return"ngOnChanges";case e.ɵLifecycleHooks.AfterContentInit:return"ngAfterContentInit";case e.ɵLifecycleHooks.AfterContentChecked:return"ngAfterContentChecked";case e.ɵLifecycleHooks.AfterViewInit:return"ngAfterViewInit";case e.ɵLifecycleHooks.AfterViewChecked:return"ngAfterViewChecked"}}function nn(t){return t instanceof e.NgModule}function rn(t){return t instanceof e.Pipe}function on(t,n){if(void 0===n&&(n=[]),t)for(var r=0;r<t.length;r++){var o=e.resolveForwardRef(t[r]);Array.isArray(o)?on(o,n):n.push(o)}return n}function sn(t){return t?Array.from(new Set(t)):[]}function an(t){return sn(on(t))}function un(t){return t instanceof fo||t instanceof e.Type}function cn(t,e,n){if(e instanceof fo)return t.resourceUri(e);var r=n.moduleId;if("string"==typeof r)return He(r)?r:"package:"+r+To;if(null!==r&&void 0!==r)throw v('moduleId should be a string in "'+pn(e)+"\". See https://goo.gl/wIDDiL for more information.\nIf you're using Webpack you should inline the template and the styles, see https://goo.gl/X2J8zc.");return t.importUri(e)}function ln(t,e){d(t,new Yu,e)}function pn(t){return t instanceof fo?t.name+" in "+t.filePath:e.ɵstringify(t)}function hn(t){var n=Error("Can't compile synchronously as "+e.ɵstringify(t)+" is still being loaded!");return n[e.ɵERROR_COMPONENT_TYPE]=t,n}function fn(t){var e=new Jc;return e.visitAllStatements(t,null),e.varNames}function dn(t,e){if(!e)return t;var n=new tl(e);return t.visitStatement(n,null)}function yn(t,e){if(!e)return t;var n=new tl(e);return t.visitExpression(n,null)}function mn(t,e,n){return new hc(t,e,n)}function vn(t,e,n){return void 0===e&&(e=null),new wc(t,null,e,n)}function gn(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),null!=t?_n(vn(t,e,null),n):null}function _n(t,e){return void 0===e&&(e=null),null!=t?new rc(t,e):null}function bn(t,e,n){return new Mc(t,e,n)}function wn(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=!1),new kc(t.map(function(t){return new Rc(t[0],t[1],n)}),e,null)}function Cn(t,e){return new Ec(t,e)}function En(t,e,n,r){return new Tc(t,e,n,r)}function Sn(t,e,n){return new bc(t,e,n)}function xn(t){var e=t.parentArgs||[],n=t.parent?[Dc.callFn(e).toStmt()]:[],r=Tn(Array.isArray(t.builders)?t.builders:[t.builders]),o=new Wc(null,t.ctorParams||[],n.concat(r.ctorStmts));return new Kc(t.name,t.parent||null,r.fields,r.getters,o,r.methods,t.modifiers||[],t.sourceSpan)}function Tn(t){return{fields:[].concat.apply([],t.map(function(t){return t.fields||[]})),methods:[].concat.apply([],t.map(function(t){return t.methods||[]})),getters:[].concat.apply([],t.map(function(t){return t.getters||[]})),ctorStmts:[].concat.apply([],t.map(function(t){return t.ctorStmts||[]}))}}function Pn(t,e){return void 0===e&&(e=null),d(t,new el,e)}function An(t){return null!=t.value?Sn(t.value):vn(t.identifier)}function On(t){var e="";t=w(t);for(var n=0;n<t.length;){var r=t.charCodeAt(n++),o=t.charCodeAt(n++),i=t.charCodeAt(n++);e+=Rn(r>>2),e+=Rn((3&r)<<4|(isNaN(o)?0:o>>4)),e+=isNaN(o)?"=":Rn((15&o)<<2|i>>6),e+=isNaN(o)||isNaN(i)?"=":Rn(63&i)}return e}function Mn(t){t=t<0?1+(-t<<1):t<<1;var e="";do{var n=31&t;(t>>=5)>0&&(n|=32),e+=Rn(n)}while(t>0);return e}function Rn(t){if(t<0||t>=64)throw new Error("Can only encode value in the range [0, 63]");return cl[t]}function kn(t,e,n){if(void 0===n&&(n=!0),null==t)return null;var r=t.replace(ll,function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return"$"==t[0]?e?"\\$":"$":"\n"==t[0]?"\\n":"\r"==t[0]?"\\r":"\\"+t[0]});return n||!pl.test(r)?"'"+r+"'":r}function In(t){for(var e="",n=0;n<t;n++)e+=hl;return e}function Nn(t){var e=new bl(gl,{fileNameToModuleName:function(t,e){return t},getImportAs:function(t){return null},getTypeArity:function(t){return null}}),n=ml.createRoot([]);return(Array.isArray(t)?t:[t]).forEach(function(t){if(t instanceof Fc)t.visitStatement(e,n);else if(t instanceof lc)t.visitExpression(e,n);else{if(!(t instanceof tc))throw new Error("Don't know how to print debug info for "+t);t.visitType(e,n)}}),n.toSource()}function Dn(t,e){for(var n=0,r=e;n<r.length;n++){var o=r[n];wl[o.toLowerCase()]=t}}function jn(t){switch(t){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}function Ln(t){return t.replace($l,"")}function Vn(t){var e=t.match(Kl);return e?e[0]:""}function Fn(t,e){var n=Un(t),r=0;return n.escapedString.replace(Ql,function(){for(var t=[],o=0;o<arguments.length;o++)t[o]=arguments[o];var i=t[2],s="",a=t[4],u="";a&&a.startsWith("{"+Jl)&&(s=n.blocks[r++],a=a.substring(Jl.length+1),u="{");var c=e(new tp(i,s));return""+t[1]+c.selector+t[3]+u+c.content+a})}function Un(t){for(var e=t.split(Xl),n=[],r=[],o=0,i=[],s=0;s<e.length;s++){var a=e[s];a==Yl&&o--,o>0?i.push(a):(i.length>0&&(r.push(i.join("")),n.push(Jl),i=[]),n.push(a)),a==Zl&&o++}return i.length>0&&(r.push(i.join("")),n.push(Jl)),new ep(n.join(""),r)}function Hn(t){var e="styles";return t&&(e+="_"+E(t.type)),e}function Bn(t,e,n,r){t||(t=new hp);var o=qn({createLiteralArrayConverter:function(t){return function(t){return bn(t)}},createLiteralMapConverter:function(t){return function(e){return wn(t.map(function(t,n){return[t,e[n]]}))}},createPipeConverter:function(t){throw new Error("Illegal State: Actions are not allowed to contain pipes. Pipe: "+t)}},n),i=new pp(t,e,r),s=[];Yn(o.visit(i,cp.Statement),s),Kn(i.temporaryCount,r,s);var a=s.length-1,u=null;if(a>=0){var c=er(s[a]);c&&(u=tr(r),s[a]=u.set(c.cast(sc).notIdentical(Sn(!1))).toDeclStmt(null,[Vc.Final]))}return new ap(s,u)}function qn(t,e){return Gn(t,e)}function zn(t,e,n,r){t||(t=new hp);var o=Jn(r),i=[],s=new pp(t,e,r),a=n.visit(s,cp.Expression);if(s.temporaryCount)for(var u=0;u<s.temporaryCount;u++)i.push($n(r,u));return i.push(o.set(a).toDeclStmt(null,[Vc.Final])),new up(i,o)}function Gn(t,e){var n=new lp(t);return e.visit(n)}function Wn(t,e){return"tmp_"+t+"_"+e}function $n(t,e){return new Uc(Wn(t,e),jc)}function Kn(t,e,n){for(var r=t-1;r>=0;r--)n.unshift($n(e,r))}function Qn(t,e){if(t!==cp.Statement)throw new Error("Expected a statement, but saw "+e)}function Xn(t,e){if(t!==cp.Expression)throw new Error("Expected an expression, but saw "+e)}function Zn(t,e){return t===cp.Statement?e.toStmt():e}function Yn(t,e){Array.isArray(t)?t.forEach(function(t){return Yn(t,e)}):e.push(t)}function Jn(t){return mn("currVal_"+t)}function tr(t){return mn("pd_"+t)}function er(t){return t instanceof Bc?t.expr:t instanceof qc?t.value:null}function nr(t){return t.multiProvider?rr(t.providers):or(t.providerType,t.providers[0])}function rr(t){function e(t,e){return e.map(function(e,o){var i="p"+t+"_"+o;return r.push(new xc(i,sc)),n.push(sr(e)),mn(i)})}var n=[],r=[],o=t.map(function(t,n){var r;if(t.useClass){o=e(n,t.deps||t.useClass.diDeps);r=vn(t.useClass).instantiate(o)}else if(t.useFactory){var o=e(n,t.deps||t.useFactory.diDeps);r=vn(t.useFactory).callFn(o)}else r=t.useExisting?(o=e(n,[{token:t.useExisting}]))[0]:Pn(t.useValue);return r});return{providerExpr:En(r,[new qc(bn(o))],ac),flags:1024,depsExpr:bn(n)}}function or(t,e){var n,r,o;return t===lo.Directive||t===lo.Component?(n=vn(e.useClass),r=16384,o=e.deps||e.useClass.diDeps):e.useClass?(n=vn(e.useClass),r=512,o=e.deps||e.useClass.diDeps):e.useFactory?(n=vn(e.useFactory),r=1024,o=e.deps||e.useFactory.diDeps):e.useExisting?(n=jc,r=2048,o=[{token:e.useExisting}]):(n=Pn(e.useValue),r=256,o=[]),{providerExpr:n,flags:r,depsExpr:bn(o.map(function(t){return sr(t)}))}}function ir(t){return t.identifier?vn(t.identifier):Sn(t.value)}function sr(t){var e=t.isValue?Pn(t.value):ir(t.token),n=0;return t.isSkipSelf&&(n|=1),t.isOptional&&(n|=2),t.isValue&&(n|=8),0===n?e:bn([Sn(n),e])}function ar(t){var e=t[t.length-1];return e instanceof so?e.hasViewContainer:e instanceof io?o(e.name)&&e.children.length?ar(e.children):e.hasViewContainer:e instanceof po}function ur(t){var n=0;switch(t){case e.ɵLifecycleHooks.AfterContentChecked:n=2097152;break;case e.ɵLifecycleHooks.AfterContentInit:n=1048576;break;case e.ɵLifecycleHooks.AfterViewChecked:n=8388608;break;case e.ɵLifecycleHooks.AfterViewInit:n=4194304;break;case e.ɵLifecycleHooks.DoCheck:n=262144;break;case e.ɵLifecycleHooks.OnChanges:n=524288;break;case e.ɵLifecycleHooks.OnDestroy:n=131072;break;case e.ɵLifecycleHooks.OnInit:n=65536}return n}function cr(t,e){switch(t.type){case ho.Attribute:return bn([Sn(1),Sn(t.name),Sn(t.securityContext)]);case ho.Property:return bn([Sn(8),Sn(t.name),Sn(t.securityContext)]);case ho.Animation:return bn([Sn(8|(e&&e.directive.isComponent?32:16)),Sn("@"+t.name),Sn(t.securityContext)]);case ho.Class:return bn([Sn(2),Sn(t.name),jc]);case ho.Style:return bn([Sn(4),Sn(t.name),Sn(t.unit)])}}function lr(t){var e=Object.create(null);return t.attrs.forEach(function(t){e[t.name]=t.value}),t.directives.forEach(function(t){Object.keys(t.directive.hostAttributes).forEach(function(n){var r=t.directive.hostAttributes[n],o=e[n];e[n]=null!=o?pr(n,o,r):r})}),bn(Object.keys(e).sort().map(function(t){return bn([Sn(t),Sn(e[t])])}))}function pr(t,e,n){return t==dp||t==yp?e+" "+n:n}function hr(t,e){return e.length>10?bp.callFn([_p,Sn(t),Sn(1),bn(e)]):bp.callFn([_p,Sn(t),Sn(0)].concat(e))}function fr(t,e,n){return vn(fe(Ga.unwrapValue)).callFn([_p,Sn(t),Sn(e),n])}function dr(t,e){return void 0===e&&(e=new Map),t.forEach(function(t){var n=new Set,r=new Set,o=void 0;t instanceof io?(dr(t.children,e),t.children.forEach(function(t){var o=e.get(t);o.staticQueryIds.forEach(function(t){return n.add(t)}),o.dynamicQueryIds.forEach(function(t){return r.add(t)})}),o=t.queryMatches):t instanceof so&&(dr(t.children,e),t.children.forEach(function(t){var n=e.get(t);n.staticQueryIds.forEach(function(t){return r.add(t)}),n.dynamicQueryIds.forEach(function(t){return r.add(t)})}),o=t.queryMatches),o&&o.forEach(function(t){return n.add(t.queryId)}),r.forEach(function(t){return n.delete(t)}),e.set(t,{staticQueryIds:n,dynamicQueryIds:r})}),e}function yr(t){var e=new Set,n=new Set;return Array.from(t.values()).forEach(function(t){t.staticQueryIds.forEach(function(t){return e.add(t)}),t.dynamicQueryIds.forEach(function(t){return n.add(t)})}),n.forEach(function(t){return e.delete(t)}),{staticQueryIds:e,dynamicQueryIds:n}}function mr(t){var e=t.find(function(t){return t.directive.isComponent});if(e&&e.directive.entryComponents.length){var n=e.directive.entryComponents.map(function(t){return vn({reference:t.componentFactory})}),r=ye(Ga.ComponentFactoryResolver),o={diDeps:[{isValue:!0,value:bn(n)},{token:r,isSkipSelf:!0,isOptional:!0},{token:ye(Ga.NgModuleRef)}],lifecycleHooks:[],reference:he(Ga.CodegenComponentFactoryResolver)};return new co(r,!1,!0,[{token:r,multi:!1,useClass:o}],lo.PrivateService,[],e.sourceSpan)}return null}function vr(t,e){return t.isAnimation?{name:"@"+t.name+"."+t.phase,target:e&&e.directive.isComponent?"component":null}:t}function gr(t,e,n){var r=0;return!n||!t.staticQueryIds.has(e)&&t.dynamicQueryIds.has(e)?r|=536870912:r|=268435456,r}function _r(t,e,n,r){var o=new Tp(e,t);n.forEach(function(t){return o.addOrMergeSummary({symbol:t.symbol,metadata:t.metadata})});for(var i=0;i<o.symbols.length;i++){var s=o.symbols[i];if(t.isLibraryFile(s.filePath)){var a=t.resolveSummary(s);if(!a){var u=e.resolveSymbol(s);u&&(a={symbol:u.symbol,metadata:u.metadata})}a&&o.addOrMergeSummary(a)}}return r.forEach(function(e){if(o.addOrMergeSummary({symbol:e.type.reference,metadata:null,type:e}),e.summaryKind===Go.NgModule){var n=e;n.exportedDirectives.concat(n.exportedPipes).forEach(function(e){var n=e.reference;if(t.isLibraryFile(n.filePath)){var r=t.resolveSummary(n);r&&o.addOrMergeSummary(r)}})}}),o.serialize()}function br(t,e){return new Pp(t).deserialize(e)}function wr(t,e,n){return e.dependencies.forEach(function(e){e.valuePlaceholder.reference=t.getStaticSymbol(Cr(e.moduleUrl,e.isShimmed,n),e.name)}),e.statements}function Cr(t,e,n){return t+(e?".shim":"")+".ngstyle"+n}function Er(t){if(!t.isComponent)throw new Error("Could not compile '"+E(t.type)+"' because it is not a component.")}function Sr(t,e,n){var r=Ar(t,e,n);return Tr(t,r.ngModules,r.symbolsMissingModule,n)}function xr(t,e,n){var r=Sr(t,e,n);if(r.symbolsMissingModule&&r.symbolsMissingModule.length)throw v(r.symbolsMissingModule.map(function(t){return"Cannot determine the module for class "+t.name+" in "+t.filePath+"! Add "+t.name+" to the NgModule to fix it."}).join("\n"));return r}function Tr(t,e,n,r){var o=new Map;e.forEach(function(t){return o.set(t.type.reference,t)});var i=new Map,s=new Map,a=new Map,u=new Map,c=new Map,l=new Set;t.forEach(function(t){var e=t.filePath;l.add(e),r.isInjectable(t)&&c.set(e,(c.get(e)||[]).concat(t))}),e.forEach(function(t){var e=t.type.reference.filePath;l.add(e),s.set(e,(s.get(e)||[]).concat(t.type.reference)),t.declaredDirectives.forEach(function(e){var n=e.reference.filePath;l.add(n),a.set(n,(a.get(n)||[]).concat(e.reference)),i.set(e.reference,t)}),t.declaredPipes.forEach(function(e){var n=e.reference.filePath;l.add(n),u.set(n,(u.get(n)||[]).concat(e.reference)),i.set(e.reference,t)})});var p=[];return l.forEach(function(t){var e=a.get(t)||[],n=u.get(t)||[],r=s.get(t)||[],o=c.get(t)||[];p.push({srcUrl:t,directives:e,pipes:n,ngModules:r,injectables:o})}),{ngModuleByPipeOrDirective:i,files:p,ngModules:e,symbolsMissingModule:n}}function Pr(t,e,n){var r=[];return e.filter(function(t){return n.isSourceFile(t)}).forEach(function(e){t.getSymbolsOf(e).forEach(function(e){var n=t.resolveSymbol(e),o=n.metadata;o&&"error"!=o.__symbolic&&r.push(n.symbol)})}),r}function Ar(t,e,n){var r=new Map,o=[],i=new Set,s=function(t){if(r.has(t)||!e.isSourceFile(t.filePath))return!1;var o=n.getNgModuleMetadata(t,!1);return o&&(r.set(o.type.reference,o),o.declaredDirectives.forEach(function(t){return i.add(t.reference)}),o.declaredPipes.forEach(function(t){return i.add(t.reference)}),o.transitiveModule.modules.forEach(function(t){return s(t.reference)})),!!o};t.forEach(function(t){s(t)||!n.isDirective(t)&&!n.isPipe(t)||o.push(t)});var a=o.filter(function(t){return!i.has(t)});return{ngModules:Array.from(r.values()),symbolsMissingModule:a}}function Or(t){return"object"==typeof t&&t.name&&t.filePath}function Mr(t){return t&&"ignore"==t.__symbolic}function Rr(t){switch(t.message){case"Reference to non-exported class":if(t.context&&t.context.className)return"Reference to a non-exported class "+t.context.className+". Consider exporting the class";break;case"Variable not initialized":return"Only initialized variables and constants can be referenced because the value of this variable is needed by the template compiler";case"Destructuring not supported":return"Referencing an exported destructured variable or constant is not supported by the template compiler. Consider simplifying this to avoid destructuring";case"Could not resolve type":if(t.context&&t.context.typeName)return"Could not resolve type "+t.context.typeName;break;case"Function call not supported":return(t.context&&t.context.name?"Calling function '"+t.context.name+"', f":"F")+"unction calls are not supported. Consider replacing the function or lambda with a reference to an exported function";case"Reference to a local symbol":if(t.context&&t.context.name)return"Reference to a local (non-exported) symbol '"+t.context.name+"'. Consider exporting the symbol"}return t.message}function kr(t){return"Error encountered resolving symbol values statically. "+Rr(t)}function Ir(t,e){if(!t)return{};var n={};return Object.keys(t).forEach(function(r){var o=e(t[r],r);Mr(o)||(Rp.test(r)?Object.defineProperty(n,r,{enumerable:!1,configurable:!0,value:o}):n[r]=o)}),n}function Nr(t){return null===t||"function"!=typeof t&&"object"!=typeof t}function Dr(t,e,n,r){var o=new Error(t);return o.fileName=e,o.line=n,o.column=r,o}function jr(t){return t.startsWith("___")?t.substr(1):t}function Lr(t,n){var r=n.translations||"",o=Ue(),i=new yo,s=new Vp(t,i),a=new Lp(t,i,s),u=new Ip(s,a);Op.install(u);var c=new e.ɵConsole,l=new qa(new Ua,r,n.i18nFormat,e.MissingTranslationStrategy.Warning,c),p=new Jo({defaultEncapsulation:e.ViewEncapsulation.Emulated,useJit:!1,enableLegacyTemplate:!1!==n.enableLegacyTemplate}),h=new Hu({get:function(e){return t.loadResource(e)}},o,l,p),f=new gs(new hs),d=new Al,y=new Ou(p,f,d,l,c,[]),m=new Zu(p,new $u(u),new zu(u),new Ku(u),s,d,h,c,i,u),v={getImportAs:function(t){return a.getImportAs(t)},fileNameToModuleName:function(e,n){return t.fileNameToModuleName(e,n)},getTypeArity:function(t){return a.getTypeArity(t)}},g=new vp(p,d);return{compiler:new Ap(p,t,m,y,new ip(o),g,new ol,new _l(v),s,n.locale||null,n.i18nFormat||null,n.genFilePreamble||null,a),reflector:u}}function Vr(t,e){var n=t.concat([new qc(bn(e.map(function(t){return mn(t)})))]),r=new Fp(null,null,null,new Map),o=(new Hp).visitAllStatements(n,r);return null!=o?o.value:null}function Fr(t,e,n,r,o){for(var i=r.createChildWihtLocalVars(),s=0;s<t.length;s++)i.vars.set(t[s],e[s]);var a=o.visitAllStatements(n,i);return a?a.value:null}function Ur(t,e,n){var r={};t.getters.forEach(function(o){r[o.name]={configurable:!1,get:function(){var r=new Fp(e,this,t.name,e.vars);return Fr([],[],o.body,r,n)}}}),t.methods.forEach(function(o){var i=o.params.map(function(t){return t.name});r[o.name]={writable:!1,configurable:!1,value:function(){for(var r=[],s=0;s<arguments.length;s++)r[s]=arguments[s];var a=new Fp(e,this,t.name,e.vars);return Fr(i,r,o.body,a,n)}}});var o=t.constructorMethod.params.map(function(t){return t.name}),i=function(){for(var r=this,i=[],s=0;s<arguments.length;s++)i[s]=arguments[s];var a=new Fp(e,this,t.name,e.vars);t.fields.forEach(function(t){r[t.name]=void 0}),Fr(o,i,t.constructorMethod.body,a,n)},s=t.parent?t.parent.visitExpression(n,e):Object;return i.prototype=Object.create(s.prototype,r),i}function Hr(t,e,n,r){return function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return Fr(t,o,e,n,r)}}function Br(t,n,r){var o=n.toSource()+"\n//# sourceURL="+t,i=[],s=[];for(var a in r)i.push(a),s.push(r[a]);if(e.isDevMode()){var u=(new(Function.bind.apply(Function,[void 0].concat(i.concat("return null;"))))).toString(),c=u.slice(0,u.indexOf("return null;")).split("\n").length-1;o+="\n"+n.toSourceMapGenerator(t,t,c).toJsComment()}return(new(Function.bind.apply(Function,[void 0].concat(i.concat(o))))).apply(void 0,s)}function qr(t,e,n){var r=new zp,o=ml.createRoot(n),i=new qc(bn(n.map(function(t){return mn(t)})));return r.visitAllStatements(e.concat([i]),o),Br(t,o,r.getArgs())}function zr(t){if(!t.isComponent)throw new Error("Could not compile '"+E(t.type)+"' because it is not a component.")}function Gr(t,e,n,r,o){return new qa(t,e,n,r.missingTranslation,o)}function Wr(){e.ɵreflector.reflectionCapabilities=new e.ɵReflectionCapabilities}function $r(t){return{useJit:Kr(t.map(function(t){return t.useJit})),defaultEncapsulation:Kr(t.map(function(t){return t.defaultEncapsulation})),providers:Qr(t.map(function(t){return t.providers})),missingTranslation:Kr(t.map(function(t){return t.missingTranslation}))}}function Kr(t){for(var e=t.length-1;e>=0;e--)if(void 0!==t[e])return t[e]}function Qr(t){var e=[];return t.forEach(function(t){return t&&e.push.apply(e,t)}),e}var Xr=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},Zr=new e.Version("4.1.3"),Yr=function(){function t(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),Jr=function(){function t(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitBoundText(this,e)},t}(),to=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitAttr(this,e)},t}(),eo=function(){function t(t,e,n,r,o,i){this.name=t,this.type=e,this.securityContext=n,this.value=r,this.unit=o,this.sourceSpan=i}return t.prototype.visit=function(t,e){return t.visitElementProperty(this,e)},Object.defineProperty(t.prototype,"isAnimation",{get:function(){return this.type===ho.Animation},enumerable:!0,configurable:!0}),t}(),no=function(){function t(t,e,n,r,o){this.name=t,this.target=e,this.phase=n,this.handler=r,this.sourceSpan=o}return t.calcFullName=function(t,e,n){return e?e+":"+t:n?"@"+t+"."+n:t},t.prototype.visit=function(t,e){return t.visitEvent(this,e)},Object.defineProperty(t.prototype,"fullName",{get:function(){return t.calcFullName(this.name,this.target,this.phase)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimation",{get:function(){return!!this.phase},enumerable:!0,configurable:!0}),t}(),ro=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitReference(this,e)},t}(),oo=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitVariable(this,e)},t}(),io=function(){function t(t,e,n,r,o,i,s,a,u,c,l,p,h){this.name=t,this.attrs=e,this.inputs=n,this.outputs=r,this.references=o,this.directives=i,this.providers=s,this.hasViewContainer=a,this.queryMatches=u,this.children=c,this.ngContentIndex=l,this.sourceSpan=p,this.endSourceSpan=h}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t}(),so=function(){function t(t,e,n,r,o,i,s,a,u,c,l){this.attrs=t,this.outputs=e,this.references=n,this.variables=r,this.directives=o,this.providers=i,this.hasViewContainer=s,this.queryMatches=a,this.children=u,this.ngContentIndex=c,this.sourceSpan=l}return t.prototype.visit=function(t,e){return t.visitEmbeddedTemplate(this,e)},t}(),ao=function(){function t(t,e,n,r){this.directiveName=t,this.templateName=e,this.value=n,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitDirectiveProperty(this,e)},t}(),uo=function(){function t(t,e,n,r,o,i){this.directive=t,this.inputs=e,this.hostProperties=n,this.hostEvents=r,this.contentQueryStartId=o,this.sourceSpan=i}return t.prototype.visit=function(t,e){return t.visitDirective(this,e)},t}(),co=function(){function t(t,e,n,r,o,i,s){this.token=t,this.multiProvider=e,this.eager=n,this.providers=r,this.providerType=o,this.lifecycleHooks=i,this.sourceSpan=s}return t.prototype.visit=function(t,e){return null},t}(),lo={};lo.PublicService=0,lo.PrivateService=1,lo.Component=2,lo.Directive=3,lo.Builtin=4,lo[lo.PublicService]="PublicService",lo[lo.PrivateService]="PrivateService",lo[lo.Component]="Component",lo[lo.Directive]="Directive",lo[lo.Builtin]="Builtin";var po=function(){function t(t,e,n){this.index=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitNgContent(this,e)},t}(),ho={};ho.Property=0,ho.Attribute=1,ho.Class=2,ho.Style=3,ho.Animation=4,ho[ho.Property]="Property",ho[ho.Attribute]="Attribute",ho[ho.Class]="Class",ho[ho.Style]="Style",ho[ho.Animation]="Animation";var fo=function(){function t(t,e,n){this.filePath=t,this.name=e,this.members=n}return t.prototype.assertNoMembers=function(){if(this.members.length)throw new Error("Illegal state: symbol without members expected, but got "+JSON.stringify(this)+".")},t}(),yo=function(){function t(){this.cache=new Map}return t.prototype.get=function(t,e,n){var r='"'+t+'".'+e+((n=n||[]).length?"."+n.join("."):""),o=this.cache.get(r);return o||(o=new fo(t,e,n),this.cache.set(r,o)),o},t}(),mo={};mo.RAW_TEXT=0,mo.ESCAPABLE_RAW_TEXT=1,mo.PARSABLE_DATA=2,mo[mo.RAW_TEXT]="RAW_TEXT",mo[mo.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",mo[mo.PARSABLE_DATA]="PARSABLE_DATA";var vo={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞",int:"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"‎",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"‏",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"‍",zwnj:"‌"},go=function(){function t(t){var e=void 0===t?{}:t,n=e.closedByChildren,r=e.requiredParents,o=e.implicitNamespacePrefix,i=e.contentType,s=void 0===i?mo.PARSABLE_DATA:i,a=e.closedByParent,u=void 0!==a&&a,c=e.isVoid,l=void 0!==c&&c,p=e.ignoreFirstLf,h=void 0!==p&&p,f=this;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,n&&n.length>0&&n.forEach(function(t){return f.closedByChildren[t]=!0}),this.isVoid=l,this.closedByParent=u||l,r&&r.length>0&&(this.requiredParents={},this.parentToAdd=r[0],r.forEach(function(t){return f.requiredParents[t]=!0})),this.implicitNamespacePrefix=o||null,this.contentType=s,this.ignoreFirstLf=h}return t.prototype.requireExtraParent=function(t){if(!this.requiredParents)return!1;if(!t)return!0;var e=t.toLowerCase();return!("template"===e||"ng-template"===t)&&1!=this.requiredParents[e]},t.prototype.isClosedByChild=function(t){return this.isVoid||t.toLowerCase()in this.closedByChildren},t}(),_o={base:new go({isVoid:!0}),meta:new go({isVoid:!0}),area:new go({isVoid:!0}),embed:new go({isVoid:!0}),link:new go({isVoid:!0}),img:new go({isVoid:!0}),input:new go({isVoid:!0}),param:new go({isVoid:!0}),hr:new go({isVoid:!0}),br:new go({isVoid:!0}),source:new go({isVoid:!0}),track:new go({isVoid:!0}),wbr:new go({isVoid:!0}),p:new go({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new go({closedByChildren:["tbody","tfoot"]}),tbody:new go({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new go({closedByChildren:["tbody"],closedByParent:!0}),tr:new go({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new go({closedByChildren:["td","th"],closedByParent:!0}),th:new go({closedByChildren:["td","th"],closedByParent:!0}),col:new go({requiredParents:["colgroup"],isVoid:!0}),svg:new go({implicitNamespacePrefix:"svg"}),math:new go({implicitNamespacePrefix:"math"}),li:new go({closedByChildren:["li"],closedByParent:!0}),dt:new go({closedByChildren:["dt","dd"]}),dd:new go({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new go({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new go({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new go({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new go({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new go({closedByChildren:["optgroup"],closedByParent:!0}),option:new go({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new go({ignoreFirstLf:!0}),listing:new go({ignoreFirstLf:!0}),style:new go({contentType:mo.RAW_TEXT}),script:new go({contentType:mo.RAW_TEXT}),title:new go({contentType:mo.ESCAPABLE_RAW_TEXT}),textarea:new go({contentType:mo.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},bo=new go,wo=new RegExp("(\\:not\\()|([-\\w]+)|(?:\\.([-\\w]+))|(?:\\[([-.\\w*]+)(?:=([\"']?)([^\\]\"']*)\\5)?\\])|(\\))|(\\s*,\\s*)","g"),Co=function(){function t(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}return t.parse=function(e){var n,r=[],o=function(t,e){e.notSelectors.length>0&&!e.element&&0==e.classNames.length&&0==e.attrs.length&&(e.element="*"),t.push(e)},i=new t,s=i,a=!1;for(wo.lastIndex=0;n=wo.exec(e);){if(n[1]){if(a)throw new Error("Nesting :not is not allowed in a selector");a=!0,s=new t,i.notSelectors.push(s)}if(n[2]&&s.setElement(n[2]),n[3]&&s.addClassName(n[3]),n[4]&&s.addAttribute(n[4],n[6]),n[7]&&(a=!1,s=i),n[8]){if(a)throw new Error("Multiple selectors in :not are not supported");o(r,i),i=s=new t}}return o(r,i),r},t.prototype.isElementSelector=function(){return this.hasElementSelector()&&0==this.classNames.length&&0==this.attrs.length&&0===this.notSelectors.length},t.prototype.hasElementSelector=function(){return!!this.element},t.prototype.setElement=function(t){void 0===t&&(t=null),this.element=t},t.prototype.getMatchingElementTemplate=function(){for(var t=this.element||"div",e=this.classNames.length>0?' class="'+this.classNames.join(" ")+'"':"",n="",r=0;r<this.attrs.length;r+=2)n+=" "+this.attrs[r]+(""!==this.attrs[r+1]?'="'+this.attrs[r+1]+'"':"");return c(t).isVoid?"<"+t+e+n+"/>":"<"+t+e+n+"></"+t+">"},t.prototype.addAttribute=function(t,e){void 0===e&&(e=""),this.attrs.push(t,e&&e.toLowerCase()||"")},t.prototype.addClassName=function(t){this.classNames.push(t.toLowerCase())},t.prototype.toString=function(){var t=this.element||"";if(this.classNames&&this.classNames.forEach(function(e){return t+="."+e}),this.attrs)for(var e=0;e<this.attrs.length;e+=2){var n=this.attrs[e],r=this.attrs[e+1];t+="["+n+(r?"="+r:"")+"]"}return this.notSelectors.forEach(function(e){return t+=":not("+e+")"}),t},t}(),Eo=function(){function t(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}return t.createNotMatcher=function(e){var n=new t;return n.addSelectables(e,null),n},t.prototype.addSelectables=function(t,e){var n=null;t.length>1&&(n=new So(t),this._listContexts.push(n));for(var r=0;r<t.length;r++)this._addSelectable(t[r],e,n)},t.prototype._addSelectable=function(t,e,n){var r=this,o=t.element,i=t.classNames,s=t.attrs,a=new xo(t,e,n);if(o&&((u=0===s.length&&0===i.length)?this._addTerminal(r._elementMap,o,a):r=this._addPartial(r._elementPartialMap,o)),i)for(l=0;l<i.length;l++){var u=0===s.length&&l===i.length-1,c=i[l];u?this._addTerminal(r._classMap,c,a):r=this._addPartial(r._classPartialMap,c)}if(s)for(var l=0;l<s.length;l+=2){var u=l===s.length-2,p=s[l],h=s[l+1];if(u){var f=r._attrValueMap,d=f.get(p);d||(d=new Map,f.set(p,d)),this._addTerminal(d,h,a)}else{var y=r._attrValuePartialMap,m=y.get(p);m||(m=new Map,y.set(p,m)),r=this._addPartial(m,h)}}},t.prototype._addTerminal=function(t,e,n){var r=t.get(e);r||(r=[],t.set(e,r)),r.push(n)},t.prototype._addPartial=function(e,n){var r=e.get(n);return r||(r=new t,e.set(n,r)),r},t.prototype.match=function(t,e){for(var n=!1,r=t.element,o=t.classNames,i=t.attrs,s=0;s<this._listContexts.length;s++)this._listContexts[s].alreadyMatched=!1;if(n=this._matchTerminal(this._elementMap,r,t,e)||n,n=this._matchPartial(this._elementPartialMap,r,t,e)||n,o)for(s=0;s<o.length;s++){var a=o[s];n=this._matchTerminal(this._classMap,a,t,e)||n,n=this._matchPartial(this._classPartialMap,a,t,e)||n}if(i)for(s=0;s<i.length;s+=2){var u=i[s],c=i[s+1],l=this._attrValueMap.get(u);c&&(n=this._matchTerminal(l,"",t,e)||n),n=this._matchTerminal(l,c,t,e)||n;var p=this._attrValuePartialMap.get(u);c&&(n=this._matchPartial(p,"",t,e)||n),n=this._matchPartial(p,c,t,e)||n}return n},t.prototype._matchTerminal=function(t,e,n,r){if(!t||"string"!=typeof e)return!1;var o=t.get(e)||[],i=t.get("*");if(i&&(o=o.concat(i)),0===o.length)return!1;for(var s=!1,a=0;a<o.length;a++)s=o[a].finalize(n,r)||s;return s},t.prototype._matchPartial=function(t,e,n,r){if(!t||"string"!=typeof e)return!1;var o=t.get(e);return!!o&&o.match(n,r)},t}(),So=function(){function t(t){this.selectors=t,this.alreadyMatched=!1}return t}(),xo=function(){function t(t,e,n){this.selector=t,this.cbContext=e,this.listContext=n,this.notSelectors=t.notSelectors}return t.prototype.finalize=function(t,e){var n=!0;return!(this.notSelectors.length>0)||this.listContext&&this.listContext.alreadyMatched||(n=!Eo.createNotMatcher(this.notSelectors).match(t,null)),!n||!e||this.listContext&&this.listContext.alreadyMatched||(this.listContext&&(this.listContext.alreadyMatched=!0),e(this.selector,this.cbContext)),n},t}(),To="",Po=/-+([a-z0-9])/g,Ao=function(){function t(){}return t.prototype.visitArray=function(t,e){var n=this;return t.map(function(t){return d(t,n,e)})},t.prototype.visitStringMap=function(t,e){var n=this,r={};return Object.keys(t).forEach(function(o){r[o]=d(t[o],n,e)}),r},t.prototype.visitPrimitive=function(t,e){return t},t.prototype.visitOther=function(t,e){return t},t}(),Oo=function(){function t(t,e){void 0===e&&(e=null),this.syncResult=t,this.asyncResult=e,e||(this.asyncResult=Promise.resolve(t))}return t}(),Mo="ngSyntaxError",Ro=Object.getPrototypeOf({}),ko=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/,Io=function(){function t(t,e){void 0===t&&(t=null),void 0===e&&(e=null),this.name=t,this.definitions=e}return t}(),No=function(){function t(){}return t}(),Do=function(t){function e(e,n){var r=t.call(this)||this;return r.stateNameExpr=e,r.styles=n,r}return Xr(e,t),e}(No),jo=function(t){function e(e,n){var r=t.call(this)||this;return r.stateChangeExpr=e,r.steps=n,r}return Xr(e,t),e}(No),Lo=function(){function t(){}return t}(),Vo=function(t){function e(e){void 0===e&&(e=[]);var n=t.call(this)||this;return n.steps=e,n}return Xr(e,t),e}(Lo),Fo=function(t){function e(e,n){void 0===n&&(n=null);var r=t.call(this)||this;return r.offset=e,r.styles=n,r}return Xr(e,t),e}(Lo),Uo=function(t){function e(e,n){void 0===e&&(e=0),void 0===n&&(n=null);var r=t.call(this)||this;return r.timings=e,r.styles=n,r}return Xr(e,t),e}(Lo),Ho=function(t){function e(e){void 0===e&&(e=null);var n=t.call(this)||this;return n.steps=e,n}return Xr(e,t),e}(Lo),Bo=function(t){function e(e){return void 0===e&&(e=null),t.call(this,e)||this}return Xr(e,t),e}(Ho),qo=function(t){function e(e){return void 0===e&&(e=null),t.call(this,e)||this}return Xr(e,t),e}(Ho),zo=0,Go={};Go.Pipe=0,Go.Directive=1,Go.NgModule=2,Go.Injectable=3,Go[Go.Pipe]="Pipe",Go[Go.Directive]="Directive",Go[Go.NgModule]="NgModule",Go[Go.Injectable]="Injectable";var Wo=function(){function t(t){var e=void 0===t?{}:t,n=e.moduleUrl,r=e.styles,o=e.styleUrls;this.moduleUrl=n||null,this.styles=I(r),this.styleUrls=I(o)}return t}(),$o=function(){function t(t){var e=t.encapsulation,n=t.template,r=t.templateUrl,o=t.styles,i=t.styleUrls,s=t.externalStylesheets,a=t.animations,u=t.ngContentSelectors,c=t.interpolation,l=t.isInline;if(this.encapsulation=e,this.template=n,this.templateUrl=r,this.styles=I(o),this.styleUrls=I(i),this.externalStylesheets=I(s),this.animations=a?N(a):[],this.ngContentSelectors=u||[],c&&2!=c.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=c,this.isInline=l}return t.prototype.toSummary=function(){return{animations:this.animations.map(function(t){return t.name}),ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation}},t}(),Ko=function(){function t(t){var e=t.isHost,n=t.type,r=t.isComponent,o=t.selector,i=t.exportAs,s=t.changeDetection,a=t.inputs,u=t.outputs,c=t.hostListeners,l=t.hostProperties,p=t.hostAttributes,h=t.providers,f=t.viewProviders,d=t.queries,y=t.viewQueries,m=t.entryComponents,v=t.template,g=t.componentViewType,_=t.rendererType,b=t.componentFactory;this.isHost=!!e,this.type=n,this.isComponent=r,this.selector=o,this.exportAs=i,this.changeDetection=s,this.inputs=a,this.outputs=u,this.hostListeners=c,this.hostProperties=l,this.hostAttributes=p,this.providers=I(h),this.viewProviders=I(f),this.queries=I(d),this.viewQueries=I(y),this.entryComponents=I(m),this.template=v,this.componentViewType=g,this.rendererType=_,this.componentFactory=b}return t.create=function(e){var n=e.isHost,r=e.type,o=e.isComponent,i=e.selector,s=e.exportAs,a=e.changeDetection,u=e.inputs,c=e.outputs,l=e.host,h=e.providers,f=e.viewProviders,d=e.queries,y=e.viewQueries,m=e.entryComponents,v=e.template,g=e.componentViewType,_=e.rendererType,b=e.componentFactory,w={},C={},E={};null!=l&&Object.keys(l).forEach(function(t){var e=l[t],n=t.match(ko);null===n?E[t]=e:null!=n[1]?C[n[1]]=e:null!=n[2]&&(w[n[2]]=e)});var S={};null!=u&&u.forEach(function(t){var e=p(t,[t,t]);S[e[0]]=e[1]});var x={};return null!=c&&c.forEach(function(t){var e=p(t,[t,t]);x[e[0]]=e[1]}),new t({isHost:n,type:r,isComponent:!!o,selector:i,exportAs:s,changeDetection:a,inputs:S,outputs:x,hostListeners:w,hostProperties:C,hostAttributes:E,providers:h,viewProviders:f,queries:d,viewQueries:y,entryComponents:m,template:v,componentViewType:g,rendererType:_,componentFactory:b})},t.prototype.toSummary=function(){return{summaryKind:Go.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}},t}(),Qo=function(){function t(t){var e=t.type,n=t.name,r=t.pure;this.type=e,this.name=n,this.pure=!!r}return t.prototype.toSummary=function(){return{summaryKind:Go.Pipe,type:this.type,name:this.name,pure:this.pure}},t}(),Xo=function(){function t(t){var e=t.type,n=t.providers,r=t.declaredDirectives,o=t.exportedDirectives,i=t.declaredPipes,s=t.exportedPipes,a=t.entryComponents,u=t.bootstrapComponents,c=t.importedModules,l=t.exportedModules,p=t.schemas,h=t.transitiveModule,f=t.id;this.type=e||null,this.declaredDirectives=I(r),this.exportedDirectives=I(o),this.declaredPipes=I(i),this.exportedPipes=I(s),this.providers=I(n),this.entryComponents=I(a),this.bootstrapComponents=I(u),this.importedModules=I(c),this.exportedModules=I(l),this.schemas=I(p),this.id=f||null,this.transitiveModule=h||null}return t.prototype.toSummary=function(){var t=this.transitiveModule;return{summaryKind:Go.NgModule,type:this.type,entryComponents:t.entryComponents,providers:t.providers,modules:t.modules,exportedDirectives:t.exportedDirectives,exportedPipes:t.exportedPipes}},t}(),Zo=function(){function t(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}return t.prototype.addProvider=function(t,e){this.providers.push({provider:t,module:e})},t.prototype.addDirective=function(t){this.directivesSet.has(t.reference)||(this.directivesSet.add(t.reference),this.directives.push(t))},t.prototype.addExportedDirective=function(t){this.exportedDirectivesSet.has(t.reference)||(this.exportedDirectivesSet.add(t.reference),this.exportedDirectives.push(t))},t.prototype.addPipe=function(t){this.pipesSet.has(t.reference)||(this.pipesSet.add(t.reference),this.pipes.push(t))},t.prototype.addExportedPipe=function(t){this.exportedPipesSet.has(t.reference)||(this.exportedPipesSet.add(t.reference),this.exportedPipes.push(t))},t.prototype.addModule=function(t){this.modulesSet.has(t.reference)||(this.modulesSet.add(t.reference),this.modules.push(t))},t.prototype.addEntryComponent=function(t){this.entryComponentsSet.has(t.componentType)||(this.entryComponentsSet.add(t.componentType),this.entryComponents.push(t))},t}(),Yo=function(){function t(t,e){var n=e.useClass,r=e.useValue,o=e.useExisting,i=e.useFactory,s=e.deps,a=e.multi;this.token=t,this.useClass=n||null,this.useValue=r,this.useExisting=o,this.useFactory=i||null,this.dependencies=s||null,this.multi=!!a}return t}(),Jo=function(){function t(t){var n=void 0===t?{}:t,r=n.defaultEncapsulation,o=void 0===r?e.ViewEncapsulation.Emulated:r,i=n.useJit,s=void 0===i||i,a=n.missingTranslation,u=n.enableLegacyTemplate;this.defaultEncapsulation=o,this.useJit=!!s,this.missingTranslation=a||null,this.enableLegacyTemplate=!1!==u}return t}(),ti=function(){function t(t,e,n,r){this.input=e,this.errLocation=n,this.ctxLocation=r,this.message="Parser Error: "+t+" "+n+" ["+e+"] in "+r}return t}(),ei=function(){function t(t,e){this.start=t,this.end=e}return t}(),ni=function(){function t(t){this.span=t}return t.prototype.visit=function(t,e){return void 0===e&&(e=null),null},t.prototype.toString=function(){return"AST"},t}(),ri=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.prefix=n,i.uninterpretedExpression=r,i.location=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitQuote(this,e)},e.prototype.toString=function(){return"Quote"},e}(ni),oi=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.visit=function(t,e){void 0===e&&(e=null)},e}(ni),ii=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitImplicitReceiver(this,e)},e}(ni),si=function(t){function e(e,n){var r=t.call(this,e)||this;return r.expressions=n,r}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitChain(this,e)},e}(ni),ai=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.condition=n,i.trueExp=r,i.falseExp=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitConditional(this,e)},e}(ni),ui=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.receiver=n,o.name=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyRead(this,e)},e}(ni),ci=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.receiver=n,i.name=r,i.value=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyWrite(this,e)},e}(ni),li=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.receiver=n,o.name=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafePropertyRead(this,e)},e}(ni),pi=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.obj=n,o.key=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedRead(this,e)},e}(ni),hi=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.obj=n,i.key=r,i.value=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedWrite(this,e)},e}(ni),fi=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.exp=n,i.name=r,i.args=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPipe(this,e)},e}(ni),di=function(t){function e(e,n){var r=t.call(this,e)||this;return r.value=n,r}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralPrimitive(this,e)},e}(ni),yi=function(t){function e(e,n){var r=t.call(this,e)||this;return r.expressions=n,r}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralArray(this,e)},e}(ni),mi=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.keys=n,o.values=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralMap(this,e)},e}(ni),vi=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.strings=n,o.expressions=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitInterpolation(this,e)},e}(ni),gi=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.operation=n,i.left=r,i.right=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitBinary(this,e)},e}(ni),_i=function(t){function e(e,n){var r=t.call(this,e)||this;return r.expression=n,r}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPrefixNot(this,e)},e}(ni),bi=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.receiver=n,i.name=r,i.args=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitMethodCall(this,e)},e}(ni),wi=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;return i.receiver=n,i.name=r,i.args=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafeMethodCall(this,e)},e}(ni),Ci=function(t){function e(e,n,r){var o=t.call(this,e)||this;return o.target=n,o.args=r,o}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitFunctionCall(this,e)},e}(ni),Ei=function(t){function e(e,n,r,o){var i=t.call(this,new ei(0,null==n?0:n.length))||this;return i.ast=e,i.source=n,i.location=r,i.errors=o,i}return Xr(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),this.ast.visit(t,e)},e.prototype.toString=function(){return this.source+" in "+this.location},e}(ni),Si=function(){function t(t,e,n,r,o){this.span=t,this.key=e,this.keyIsVar=n,this.name=r,this.expression=o}return t}(),xi=function(){function t(){}return t.prototype.visitBinary=function(t,e){return t.left.visit(this),t.right.visit(this),null},t.prototype.visitChain=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitConditional=function(t,e){return t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this),null},t.prototype.visitPipe=function(t,e){return t.exp.visit(this),this.visitAll(t.args,e),null},t.prototype.visitFunctionCall=function(t,e){return t.target.visit(this),this.visitAll(t.args,e),null},t.prototype.visitImplicitReceiver=function(t,e){return null},t.prototype.visitInterpolation=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitKeyedRead=function(t,e){return t.obj.visit(this),t.key.visit(this),null},t.prototype.visitKeyedWrite=function(t,e){return t.obj.visit(this),t.key.visit(this),t.value.visit(this),null},t.prototype.visitLiteralArray=function(t,e){return this.visitAll(t.expressions,e)},t.prototype.visitLiteralMap=function(t,e){return this.visitAll(t.values,e)},t.prototype.visitLiteralPrimitive=function(t,e){return null},t.prototype.visitMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},t.prototype.visitPrefixNot=function(t,e){return t.expression.visit(this),null},t.prototype.visitPropertyRead=function(t,e){return t.receiver.visit(this),null},t.prototype.visitPropertyWrite=function(t,e){return t.receiver.visit(this),t.value.visit(this),null},t.prototype.visitSafePropertyRead=function(t,e){return t.receiver.visit(this),null},t.prototype.visitSafeMethodCall=function(t,e){return t.receiver.visit(this),this.visitAll(t.args,e)},t.prototype.visitAll=function(t,e){var n=this;return t.forEach(function(t){return t.visit(n,e)}),null},t.prototype.visitQuote=function(t,e){return null},t}(),Ti=function(){function t(){}return t.prototype.visitImplicitReceiver=function(t,e){return t},t.prototype.visitInterpolation=function(t,e){return new vi(t.span,t.strings,this.visitAll(t.expressions))},t.prototype.visitLiteralPrimitive=function(t,e){return new di(t.span,t.value)},t.prototype.visitPropertyRead=function(t,e){return new ui(t.span,t.receiver.visit(this),t.name)},t.prototype.visitPropertyWrite=function(t,e){return new ci(t.span,t.receiver.visit(this),t.name,t.value.visit(this))},t.prototype.visitSafePropertyRead=function(t,e){return new li(t.span,t.receiver.visit(this),t.name)},t.prototype.visitMethodCall=function(t,e){return new bi(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitSafeMethodCall=function(t,e){return new wi(t.span,t.receiver.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitFunctionCall=function(t,e){return new Ci(t.span,t.target.visit(this),this.visitAll(t.args))},t.prototype.visitLiteralArray=function(t,e){return new yi(t.span,this.visitAll(t.expressions))},t.prototype.visitLiteralMap=function(t,e){return new mi(t.span,t.keys,this.visitAll(t.values))},t.prototype.visitBinary=function(t,e){return new gi(t.span,t.operation,t.left.visit(this),t.right.visit(this))},t.prototype.visitPrefixNot=function(t,e){return new _i(t.span,t.expression.visit(this))},t.prototype.visitConditional=function(t,e){return new ai(t.span,t.condition.visit(this),t.trueExp.visit(this),t.falseExp.visit(this))},t.prototype.visitPipe=function(t,e){return new fi(t.span,t.exp.visit(this),t.name,this.visitAll(t.args))},t.prototype.visitKeyedRead=function(t,e){return new pi(t.span,t.obj.visit(this),t.key.visit(this))},t.prototype.visitKeyedWrite=function(t,e){return new hi(t.span,t.obj.visit(this),t.key.visit(this),t.value.visit(this))},t.prototype.visitAll=function(t){for(var e=new Array(t.length),n=0;n<t.length;++n)e[n]=t[n].visit(this);return e},t.prototype.visitChain=function(t,e){return new si(t.span,this.visitAll(t.expressions))},t.prototype.visitQuote=function(t,e){return new ri(t.span,t.prefix,t.uninterpretedExpression,t.location)},t}(),Pi=0,Ai=9,Oi=10,Mi=11,Ri=12,ki=13,Ii=32,Ni=34,Di=36,ji=39,Li=43,Vi=45,Fi=47,Ui=59,Hi=61,Bi=62,qi=48,zi=57,Gi=65,Wi=69,$i=70,Ki=90,Qi=95,Xi=97,Zi=101,Yi=102,Ji=110,ts=114,es=116,ns=118,rs=122,os=123,is=160,ss=96,as=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//],us=function(){function t(t,e){this.start=t,this.end=e}return t.fromArray=function(e){return e?(W("interpolation",e),new t(e[0],e[1])):cs},t}(),cs=new us("{{","}}"),ls={};ls.Character=0,ls.Identifier=1,ls.Keyword=2,ls.String=3,ls.Operator=4,ls.Number=5,ls.Error=6,ls[ls.Character]="Character",ls[ls.Identifier]="Identifier",ls[ls.Keyword]="Keyword",ls[ls.String]="String",ls[ls.Operator]="Operator",ls[ls.Number]="Number",ls[ls.Error]="Error";var ps=["var","let","as","null","undefined","true","false","if","else","this"],hs=function(){function t(){}return t.prototype.tokenize=function(t){for(var e=new ys(t),n=[],r=e.scanToken();null!=r;)n.push(r),r=e.scanToken();return n},t}();hs.decorators=[{type:z}],hs.ctorParameters=function(){return[]};var fs=function(){function t(t,e,n,r){this.index=t,this.type=e,this.numValue=n,this.strValue=r}return t.prototype.isCharacter=function(t){return this.type==ls.Character&&this.numValue==t},t.prototype.isNumber=function(){return this.type==ls.Number},t.prototype.isString=function(){return this.type==ls.String},t.prototype.isOperator=function(t){return this.type==ls.Operator&&this.strValue==t},t.prototype.isIdentifier=function(){return this.type==ls.Identifier},t.prototype.isKeyword=function(){return this.type==ls.Keyword},t.prototype.isKeywordLet=function(){return this.type==ls.Keyword&&"let"==this.strValue},t.prototype.isKeywordAs=function(){return this.type==ls.Keyword&&"as"==this.strValue},t.prototype.isKeywordNull=function(){return this.type==ls.Keyword&&"null"==this.strValue},t.prototype.isKeywordUndefined=function(){return this.type==ls.Keyword&&"undefined"==this.strValue},t.prototype.isKeywordTrue=function(){return this.type==ls.Keyword&&"true"==this.strValue},t.prototype.isKeywordFalse=function(){return this.type==ls.Keyword&&"false"==this.strValue},t.prototype.isKeywordThis=function(){return this.type==ls.Keyword&&"this"==this.strValue},t.prototype.isError=function(){return this.type==ls.Error},t.prototype.toNumber=function(){return this.type==ls.Number?this.numValue:-1},t.prototype.toString=function(){switch(this.type){case ls.Character:case ls.Identifier:case ls.Keyword:case ls.Operator:case ls.String:case ls.Error:return this.strValue;case ls.Number:return this.numValue.toString();default:return null}},t}(),ds=new fs(-1,ls.Character,0,""),ys=function(){function t(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}return t.prototype.advance=function(){this.peek=++this.index>=this.length?Pi:this.input.charCodeAt(this.index)},t.prototype.scanToken=function(){for(var t=this.input,e=this.length,n=this.peek,r=this.index;n<=Ii;){if(++r>=e){n=Pi;break}n=t.charCodeAt(r)}if(this.peek=n,this.index=r,r>=e)return null;if(tt(n))return this.scanIdentifier();if(H(n))return this.scanNumber(r);var o=r;switch(n){case 46:return this.advance(),H(this.peek)?this.scanNumber(o):$(o,46);case 40:case 41:case os:case 125:case 91:case 93:case 44:case 58:case Ui:return this.scanCharacter(o,n);case ji:case Ni:return this.scanString();case 35:case Li:case Vi:case 42:case Fi:case 37:case 94:return this.scanOperator(o,String.fromCharCode(n));case 63:return this.scanComplexOperator(o,"?",46,".");case 60:case Bi:return this.scanComplexOperator(o,String.fromCharCode(n),Hi,"=");case 33:case Hi:return this.scanComplexOperator(o,String.fromCharCode(n),Hi,"=",Hi,"=");case 38:return this.scanComplexOperator(o,"&",38,"&");case 124:return this.scanComplexOperator(o,"|",124,"|");case is:for(;U(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+String.fromCharCode(n)+"]",0)},t.prototype.scanCharacter=function(t,e){return this.advance(),$(t,e)},t.prototype.scanOperator=function(t,e){return this.advance(),X(t,e)},t.prototype.scanComplexOperator=function(t,e,n,r,o,i){this.advance();var s=e;return this.peek==n&&(this.advance(),s+=r),null!=o&&this.peek==o&&(this.advance(),s+=i),X(t,s)},t.prototype.scanIdentifier=function(){var t=this.index;for(this.advance();nt(this.peek);)this.advance();var e=this.input.substring(t,this.index);return ps.indexOf(e)>-1?Q(t,e):K(t,e)},t.prototype.scanNumber=function(t){var e=this.index===t;for(this.advance();;){if(H(this.peek));else if(46==this.peek)e=!1;else{if(!rt(this.peek))break;if(this.advance(),ot(this.peek)&&this.advance(),!H(this.peek))return this.error("Invalid exponent",-1);e=!1}this.advance()}var n=this.input.substring(t,this.index);return Y(t,e?at(n):parseFloat(n))},t.prototype.scanString=function(){var t=this.index,e=this.peek;this.advance();for(var n="",r=this.index,o=this.input;this.peek!=e;)if(92==this.peek){n+=o.substring(r,this.index),this.advance();var i=void 0;if(this.peek=this.peek,117==this.peek){var s=o.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(s))return this.error("Invalid unicode escape [\\u"+s+"]",0);i=parseInt(s,16);for(var a=0;a<5;a++)this.advance()}else i=st(this.peek),this.advance();n+=String.fromCharCode(i),r=this.index}else{if(this.peek==Pi)return this.error("Unterminated quote",0);this.advance()}var u=o.substring(r,this.index);return this.advance(),Z(t,n+u)},t.prototype.error=function(t,e){var n=this.index+e;return J(n,"Lexer Error: "+t+" at column "+n+" in expression ["+this.input+"]")},t}(),ms=function(){function t(t,e,n){this.strings=t,this.expressions=e,this.offsets=n}return t}(),vs=function(){function t(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}return t}(),gs=function(){function t(t){this._lexer=t,this.errors=[]}return t.prototype.parseAction=function(t,e,n){void 0===n&&(n=cs),this._checkNoInterpolation(t,e,n);var r=this._stripComments(t),o=this._lexer.tokenize(this._stripComments(t)),i=new _s(t,e,o,r.length,!0,this.errors,t.length-r.length).parseChain();return new Ei(i,t,e,this.errors)},t.prototype.parseBinding=function(t,e,n){void 0===n&&(n=cs);var r=this._parseBindingAst(t,e,n);return new Ei(r,t,e,this.errors)},t.prototype.parseSimpleBinding=function(t,e,n){void 0===n&&(n=cs);var r=this._parseBindingAst(t,e,n),o=bs.check(r);return o.length>0&&this._reportError("Host binding expression cannot contain "+o.join(" "),t,e),new Ei(r,t,e,this.errors)},t.prototype._reportError=function(t,e,n,r){this.errors.push(new ti(t,e,n,r))},t.prototype._parseBindingAst=function(t,e,n){var r=this._parseQuote(t,e);if(null!=r)return r;this._checkNoInterpolation(t,e,n);var o=this._stripComments(t),i=this._lexer.tokenize(o);return new _s(t,e,i,o.length,!1,this.errors,t.length-o.length).parseChain()},t.prototype._parseQuote=function(t,e){if(null==t)return null;var n=t.indexOf(":");if(-1==n)return null;var r=t.substring(0,n).trim();if(!et(r))return null;var o=t.substring(n+1);return new ri(new ei(0,t.length),r,o,e)},t.prototype.parseTemplateBindings=function(t,e,n){var r=this._lexer.tokenize(e);if(t){var o=this._lexer.tokenize(t).map(function(t){return t.index=0,t});r.unshift.apply(r,o)}return new _s(e,n,r,e.length,!1,this.errors,0).parseTemplateBindings()},t.prototype.parseInterpolation=function(t,e,n){void 0===n&&(n=cs);var r=this.splitInterpolation(t,e,n);if(null==r)return null;for(var o=[],i=0;i<r.expressions.length;++i){var s=r.expressions[i],a=this._stripComments(s),u=this._lexer.tokenize(this._stripComments(r.expressions[i])),c=new _s(t,e,u,a.length,!1,this.errors,r.offsets[i]+(s.length-a.length)).parseChain();o.push(c)}return new Ei(new vi(new ei(0,null==t?0:t.length),r.strings,o),t,e,this.errors)},t.prototype.splitInterpolation=function(t,e,n){void 0===n&&(n=cs);var r=ut(n),o=t.split(r);if(o.length<=1)return null;for(var i=[],s=[],a=[],u=0,c=0;c<o.length;c++){var l=o[c];c%2==0?(i.push(l),u+=l.length):l.trim().length>0?(u+=n.start.length,s.push(l),a.push(u),u+=l.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,"at column "+this._findInterpolationErrorColumn(o,c,n)+" in",e),s.push("$implict"),a.push(u))}return new ms(i,s,a)},t.prototype.wrapLiteralPrimitive=function(t,e){return new Ei(new di(new ei(0,null==t?0:t.length),t),t,e,this.errors)},t.prototype._stripComments=function(t){var e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t},t.prototype._commentStart=function(t){for(var e=null,n=0;n<t.length-1;n++){var r=t.charCodeAt(n),o=t.charCodeAt(n+1);if(r===Fi&&o==Fi&&null==e)return n;e===r?e=null:null==e&&it(r)&&(e=r)}return null},t.prototype._checkNoInterpolation=function(t,e,n){var r=ut(n),o=t.split(r);o.length>1&&this._reportError("Got interpolation ("+n.start+n.end+") where expression was expected",t,"at column "+this._findInterpolationErrorColumn(o,1,n)+" in",e)},t.prototype._findInterpolationErrorColumn=function(t,e,n){for(var r="",o=0;o<e;o++)r+=o%2==0?t[o]:""+n.start+t[o]+n.end;return r.length},t}();gs.decorators=[{type:z}],gs.ctorParameters=function(){return[{type:hs}]};var _s=function(){function t(t,e,n,r,o,i,s){this.input=t,this.location=e,this.tokens=n,this.inputLength=r,this.parseAction=o,this.errors=i,this.offset=s,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}return t.prototype.peek=function(t){var e=this.index+t;return e<this.tokens.length?this.tokens[e]:ds},Object.defineProperty(t.prototype,"next",{get:function(){return this.peek(0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputIndex",{get:function(){return this.index<this.tokens.length?this.next.index+this.offset:this.inputLength+this.offset},enumerable:!0,configurable:!0}),t.prototype.span=function(t){return new ei(t,this.inputIndex)},t.prototype.advance=function(){this.index++},t.prototype.optionalCharacter=function(t){return!!this.next.isCharacter(t)&&(this.advance(),!0)},t.prototype.peekKeywordLet=function(){return this.next.isKeywordLet()},t.prototype.peekKeywordAs=function(){return this.next.isKeywordAs()},t.prototype.expectCharacter=function(t){this.optionalCharacter(t)||this.error("Missing expected "+String.fromCharCode(t))},t.prototype.optionalOperator=function(t){return!!this.next.isOperator(t)&&(this.advance(),!0)},t.prototype.expectOperator=function(t){this.optionalOperator(t)||this.error("Missing expected operator "+t)},t.prototype.expectIdentifierOrKeyword=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier or keyword"),"")},t.prototype.expectIdentifierOrKeywordOrString=function(){var t=this.next;return t.isIdentifier()||t.isKeyword()||t.isString()?(this.advance(),t.toString()):(this.error("Unexpected token "+t+", expected identifier, keyword, or string"),"")},t.prototype.parseChain=function(){for(var t=[],e=this.inputIndex;this.index<this.tokens.length;){var n=this.parsePipe();if(t.push(n),this.optionalCharacter(Ui))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(Ui););else this.index<this.tokens.length&&this.error("Unexpected token '"+this.next+"'")}return 0==t.length?new oi(this.span(e)):1==t.length?t[0]:new si(this.span(e),t)},t.prototype.parsePipe=function(){var t=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{for(var e=this.expectIdentifierOrKeyword(),n=[];this.optionalCharacter(58);)n.push(this.parseExpression());t=new fi(this.span(t.span.start),t,e,n)}while(this.optionalOperator("|"))}return t},t.prototype.parseExpression=function(){return this.parseConditional()},t.prototype.parseConditional=function(){var t=this.inputIndex,e=this.parseLogicalOr();if(this.optionalOperator("?")){var n=this.parsePipe(),r=void 0;if(this.optionalCharacter(58))r=this.parsePipe();else{var o=this.inputIndex,i=this.input.substring(t,o);this.error("Conditional expression "+i+" requires all 3 expressions"),r=new oi(this.span(t))}return new ai(this.span(t),e,n,r)}return e},t.prototype.parseLogicalOr=function(){for(var t=this.parseLogicalAnd();this.optionalOperator("||");){var e=this.parseLogicalAnd();t=new gi(this.span(t.span.start),"||",t,e)}return t},t.prototype.parseLogicalAnd=function(){for(var t=this.parseEquality();this.optionalOperator("&&");){var e=this.parseEquality();t=new gi(this.span(t.span.start),"&&",t,e)}return t},t.prototype.parseEquality=function(){for(var t=this.parseRelational();this.next.type==ls.Operator;){var e=this.next.strValue;switch(e){case"==":case"===":case"!=":case"!==":this.advance();var n=this.parseRelational();t=new gi(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseRelational=function(){for(var t=this.parseAdditive();this.next.type==ls.Operator;){var e=this.next.strValue;switch(e){case"<":case">":case"<=":case">=":this.advance();var n=this.parseAdditive();t=new gi(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseAdditive=function(){for(var t=this.parseMultiplicative();this.next.type==ls.Operator;){var e=this.next.strValue;switch(e){case"+":case"-":this.advance();var n=this.parseMultiplicative();t=new gi(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseMultiplicative=function(){for(var t=this.parsePrefix();this.next.type==ls.Operator;){var e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();var n=this.parsePrefix();t=new gi(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parsePrefix=function(){if(this.next.type==ls.Operator){var t=this.inputIndex,e=this.next.strValue,n=void 0;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new gi(this.span(t),e,new di(new ei(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new _i(this.span(t),n)}}return this.parseCallChain()},t.prototype.parseCallChain=function(){for(var t=this.parsePrimary();;)if(this.optionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(91)){this.rbracketsExpected++;var e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(93),this.optionalOperator("=")){var n=this.parseConditional();t=new hi(this.span(t.span.start),t,e,n)}else t=new pi(this.span(t.span.start),t,e)}else{if(!this.optionalCharacter(40))return t;this.rparensExpected++;var r=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new Ci(this.span(t.span.start),t,r)}},t.prototype.parsePrimary=function(){var t=this.inputIndex;if(this.optionalCharacter(40)){this.rparensExpected++;var e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}if(this.next.isKeywordNull())return this.advance(),new di(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new di(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new di(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new di(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new ii(this.span(t));if(this.optionalCharacter(91)){this.rbracketsExpected++;var n=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new yi(this.span(t),n)}if(this.next.isCharacter(os))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new ii(this.span(t)),!1);if(this.next.isNumber()){var r=this.next.toNumber();return this.advance(),new di(this.span(t),r)}if(this.next.isString()){var o=this.next.toString();return this.advance(),new di(this.span(t),o)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new oi(this.span(t))):(this.error("Unexpected token "+this.next),new oi(this.span(t)))},t.prototype.parseExpressionList=function(t){var e=[];if(!this.next.isCharacter(t))do{e.push(this.parsePipe())}while(this.optionalCharacter(44));return e},t.prototype.parseLiteralMap=function(){var t=[],e=[],n=this.inputIndex;if(this.expectCharacter(os),!this.optionalCharacter(125)){this.rbracesExpected++;do{var r=this.expectIdentifierOrKeywordOrString();t.push(r),this.expectCharacter(58),e.push(this.parsePipe())}while(this.optionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new mi(this.span(n),t,e)},t.prototype.parseAccessMemberOrMethodCall=function(t,e){void 0===e&&(e=!1);var n=t.span.start,r=this.expectIdentifierOrKeyword();if(this.optionalCharacter(40)){this.rparensExpected++;var o=this.parseCallArguments();this.expectCharacter(41),this.rparensExpected--;var i=this.span(n);return e?new wi(i,t,r,o):new bi(i,t,r,o)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new oi(this.span(n))):new li(this.span(n),t,r);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new oi(this.span(n));var s=this.parseConditional();return new ci(this.span(n),t,r,s)}return new ui(this.span(n),t,r)},t.prototype.parseCallArguments=function(){if(this.next.isCharacter(41))return[];var t=[];do{t.push(this.parsePipe())}while(this.optionalCharacter(44));return t},t.prototype.expectTemplateBindingKey=function(){var t="",e=!1;do{t+=this.expectIdentifierOrKeywordOrString(),(e=this.optionalOperator("-"))&&(t+="-")}while(e);return t.toString()},t.prototype.parseTemplateBindings=function(){for(var t=[],e=null,n=[];this.index<this.tokens.length;){var r=this.inputIndex,o=this.peekKeywordLet();o&&this.advance();var i=this.expectTemplateBindingKey(),s=i;o||(null==e?e=s:s=e+s[0].toUpperCase()+s.substring(1)),this.optionalCharacter(58);var a=null,u=null;if(o)a=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.peekKeywordAs()){h=this.inputIndex;this.advance(),a=i,s=this.expectTemplateBindingKey(),o=!0}else if(this.next!==ds&&!this.peekKeywordLet()){var c=this.inputIndex,l=this.parsePipe(),p=this.input.substring(c-this.offset,this.inputIndex-this.offset);u=new Ei(l,p,this.location,this.errors)}if(t.push(new Si(this.span(r),s,o,a,u)),this.peekKeywordAs()&&!o){var h=this.inputIndex;this.advance();var f=this.expectTemplateBindingKey();t.push(new Si(this.span(h),f,!0,s,null))}this.optionalCharacter(Ui)||this.optionalCharacter(44)}return new vs(t,n,this.errors)},t.prototype.error=function(t,e){void 0===e&&(e=null),this.errors.push(new ti(t,this.input,this.locationText(e),this.location)),this.skip()},t.prototype.locationText=function(t){return void 0===t&&(t=null),null==t&&(t=this.index),t<this.tokens.length?"at column "+(this.tokens[t].index+1)+" in":"at the end of the expression"},t.prototype.skip=function(){for(var t=this.next;this.index<this.tokens.length&&!t.isCharacter(Ui)&&(this.rparensExpected<=0||!t.isCharacter(41))&&(this.rbracesExpected<=0||!t.isCharacter(125))&&(this.rbracketsExpected<=0||!t.isCharacter(93));)this.next.isError()&&this.errors.push(new ti(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next},t}(),bs=function(){function t(){this.errors=[]}return t.check=function(e){var n=new t;return e.visit(n),n.errors},t.prototype.visitImplicitReceiver=function(t,e){},t.prototype.visitInterpolation=function(t,e){},t.prototype.visitLiteralPrimitive=function(t,e){},t.prototype.visitPropertyRead=function(t,e){},t.prototype.visitPropertyWrite=function(t,e){},t.prototype.visitSafePropertyRead=function(t,e){},t.prototype.visitMethodCall=function(t,e){},t.prototype.visitSafeMethodCall=function(t,e){},t.prototype.visitFunctionCall=function(t,e){},t.prototype.visitLiteralArray=function(t,e){this.visitAll(t.expressions)},t.prototype.visitLiteralMap=function(t,e){this.visitAll(t.values)},t.prototype.visitBinary=function(t,e){},t.prototype.visitPrefixNot=function(t,e){},t.prototype.visitConditional=function(t,e){},t.prototype.visitPipe=function(t,e){this.errors.push("pipes")},t.prototype.visitKeyedRead=function(t,e){},t.prototype.visitKeyedWrite=function(t,e){},t.prototype.visitAll=function(t){var e=this;return t.map(function(t){return t.visit(e)})},t.prototype.visitChain=function(t,e){},t.prototype.visitQuote=function(t,e){},t}(),ws=function(){function t(t,e,n,r){this.file=t,this.offset=e,this.line=n,this.col=r}return t.prototype.toString=function(){return null!=this.offset?this.file.url+"@"+this.line+":"+this.col:this.file.url},t.prototype.moveBy=function(e){for(var n=this.file.content,r=n.length,o=this.offset,i=this.line,s=this.col;o>0&&e<0;)if(o--,e++,(u=n.charCodeAt(o))==Oi){i--;var a=n.substr(0,o-1).lastIndexOf(String.fromCharCode(Oi));s=a>0?o-a:o}else s--;for(;o<r&&e>0;){var u=n.charCodeAt(o);o++,e--,u==Oi?(i++,s=0):s++}return new t(this.file,o,i,s)},t.prototype.getContext=function(t,e){var n=this.file.content,r=this.offset;if(null!=r){r>n.length-1&&(r=n.length-1);for(var o=r,i=0,s=0;i<t&&r>0&&(r--,i++,"\n"!=n[r]||++s!=e););for(i=0,s=0;i<t&&o<n.length-1&&(o++,i++,"\n"!=n[o]||++s!=e););return{before:n.substring(r,this.offset),after:n.substring(this.offset,o+1)}}return null},t}(),Cs=function(){function t(t,e){this.content=t,this.url=e}return t}(),Es=function(){function t(t,e,n){void 0===n&&(n=null),this.start=t,this.end=e,this.details=n}return t.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},t}(),Ss={};Ss.WARNING=0,Ss.ERROR=1,Ss[Ss.WARNING]="WARNING",Ss[Ss.ERROR]="ERROR";var xs=function(){function t(t,e,n){void 0===n&&(n=Ss.ERROR),this.span=t,this.msg=e,this.level=n}return t.prototype.toString=function(){var t=this.span.start.getContext(100,3),e=t?' ("'+t.before+"["+Ss[this.level]+" ->]"+t.after+'")':"",n=this.span.details?", "+this.span.details:"";return""+this.msg+e+": "+this.span.start+n},t}(),Ts=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),Ps=function(){function t(t,e,n,r,o){this.switchValue=t,this.type=e,this.cases=n,this.sourceSpan=r,this.switchValueSourceSpan=o}return t.prototype.visit=function(t,e){return t.visitExpansion(this,e)},t}(),As=function(){function t(t,e,n,r,o){this.value=t,this.expression=e,this.sourceSpan=n,this.valueSourceSpan=r,this.expSourceSpan=o}return t.prototype.visit=function(t,e){return t.visitExpansionCase(this,e)},t}(),Os=function(){function t(t,e,n,r){this.name=t,this.value=e,this.sourceSpan=n,this.valueSpan=r}return t.prototype.visit=function(t,e){return t.visitAttribute(this,e)},t}(),Ms=function(){function t(t,e,n,r,o,i){void 0===o&&(o=null),void 0===i&&(i=null),this.name=t,this.attrs=e,this.children=n,this.sourceSpan=r,this.startSourceSpan=o,this.endSourceSpan=i}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t}(),Rs=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitComment(this,e)},t}(),ks={};ks.TAG_OPEN_START=0,ks.TAG_OPEN_END=1,ks.TAG_OPEN_END_VOID=2,ks.TAG_CLOSE=3,ks.TEXT=4,ks.ESCAPABLE_RAW_TEXT=5,ks.RAW_TEXT=6,ks.COMMENT_START=7,ks.COMMENT_END=8,ks.CDATA_START=9,ks.CDATA_END=10,ks.ATTR_NAME=11,ks.ATTR_VALUE=12,ks.DOC_TYPE=13,ks.EXPANSION_FORM_START=14,ks.EXPANSION_CASE_VALUE=15,ks.EXPANSION_CASE_EXP_START=16,ks.EXPANSION_CASE_EXP_END=17,ks.EXPANSION_FORM_END=18,ks.EOF=19,ks[ks.TAG_OPEN_START]="TAG_OPEN_START",ks[ks.TAG_OPEN_END]="TAG_OPEN_END",ks[ks.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",ks[ks.TAG_CLOSE]="TAG_CLOSE",ks[ks.TEXT]="TEXT",ks[ks.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",ks[ks.RAW_TEXT]="RAW_TEXT",ks[ks.COMMENT_START]="COMMENT_START",ks[ks.COMMENT_END]="COMMENT_END",ks[ks.CDATA_START]="CDATA_START",ks[ks.CDATA_END]="CDATA_END",ks[ks.ATTR_NAME]="ATTR_NAME",ks[ks.ATTR_VALUE]="ATTR_VALUE",ks[ks.DOC_TYPE]="DOC_TYPE",ks[ks.EXPANSION_FORM_START]="EXPANSION_FORM_START",ks[ks.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",ks[ks.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",ks[ks.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",ks[ks.EXPANSION_FORM_END]="EXPANSION_FORM_END",ks[ks.EOF]="EOF";var Is=function(){function t(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}return t}(),Ns=function(t){function e(e,n,r){var o=t.call(this,r,e)||this;return o.tokenType=n,o}return Xr(e,t),e}(xs),Ds=function(){function t(t,e){this.tokens=t,this.errors=e}return t}(),js=/\r\n?/g,Ls=function(){function t(t){this.error=t}return t}(),Vs=function(){function t(t,e,n,r){void 0===r&&(r=cs),this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=r,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}return t.prototype._processCarriageReturns=function(t){return t.replace(js,"\n")},t.prototype.tokenize=function(){for(;this._peek!==Pi;){var t=this._getLocation();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(t):this._attemptCharCode(Vi)?this._consumeComment(t):this._consumeDocType(t):this._attemptCharCode(Fi)?this._consumeTagClose(t):this._consumeTagOpen(t):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(t){if(!(t instanceof Ls))throw t;this.errors.push(t.error)}}return this._beginToken(ks.EOF),this._endToken([]),new Ds(Et(this.tokens),this.errors)},t.prototype._tokenizeExpansionForm=function(){if(_t(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if(bt(this._peek)&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(125===this._peek){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1},t.prototype._getLocation=function(){return new ws(this._file,this._index,this._line,this._column)},t.prototype._getSpan=function(t,e){return void 0===t&&(t=this._getLocation()),void 0===e&&(e=this._getLocation()),new Es(t,e)},t.prototype._beginToken=function(t,e){void 0===e&&(e=this._getLocation()),this._currentTokenStart=e,this._currentTokenType=t},t.prototype._endToken=function(t,e){void 0===e&&(e=this._getLocation());var n=new Is(this._currentTokenType,t,new Es(this._currentTokenStart,e));return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n},t.prototype._createError=function(t,e){this._isInExpansionForm()&&(t+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');var n=new Ns(t,this._currentTokenType,e);return this._currentTokenStart=null,this._currentTokenType=null,new Ls(n)},t.prototype._advance=function(){if(this._index>=this._length)throw this._createError(ht(Pi),this._getSpan());this._peek===Oi?(this._line++,this._column=0):this._peek!==Oi&&this._peek!==ki&&this._column++,this._index++,this._peek=this._index>=this._length?Pi:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?Pi:this._input.charCodeAt(this._index+1)},t.prototype._attemptCharCode=function(t){return this._peek===t&&(this._advance(),!0)},t.prototype._attemptCharCodeCaseInsensitive=function(t){return!!wt(this._peek,t)&&(this._advance(),!0)},t.prototype._requireCharCode=function(t){var e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(ht(this._peek),this._getSpan(e,e))},t.prototype._attemptStr=function(t){var e=t.length;if(this._index+e>this._length)return!1;for(var n=this._savePosition(),r=0;r<e;r++)if(!this._attemptCharCode(t.charCodeAt(r)))return this._restorePosition(n),!1;return!0},t.prototype._attemptStrCaseInsensitive=function(t){for(var e=0;e<t.length;e++)if(!this._attemptCharCodeCaseInsensitive(t.charCodeAt(e)))return!1;return!0},t.prototype._requireStr=function(t){var e=this._getLocation();if(!this._attemptStr(t))throw this._createError(ht(this._peek),this._getSpan(e))},t.prototype._attemptCharCodeUntilFn=function(t){for(;!t(this._peek);)this._advance()},t.prototype._requireCharCodeUntilFn=function(t,e){var n=this._getLocation();if(this._attemptCharCodeUntilFn(t),this._index-n.offset<e)throw this._createError(ht(this._peek),this._getSpan(n,n))},t.prototype._attemptUntilChar=function(t){for(;this._peek!==t;)this._advance()},t.prototype._readChar=function(t){if(t&&38===this._peek)return this._decodeEntity();var e=this._index;return this._advance(),this._input[e]},t.prototype._decodeEntity=function(){var t=this._getLocation();if(this._advance(),!this._attemptCharCode(35)){var e=this._savePosition();if(this._attemptCharCodeUntilFn(gt),this._peek!=Ui)return this._restorePosition(e),"&";this._advance();var n=this._input.substring(t.offset+1,this._index-1),r=vo[n];if(!r)throw this._createError(ft(n),this._getSpan(t));return r}var o=this._attemptCharCode(120)||this._attemptCharCode(88),i=this._getLocation().offset;if(this._attemptCharCodeUntilFn(vt),this._peek!=Ui)throw this._createError(ht(this._peek),this._getSpan());this._advance();var s=this._input.substring(i,this._index-1);try{var a=parseInt(s,o?16:10);return String.fromCharCode(a)}catch(e){var u=this._input.substring(t.offset+1,this._index-1);throw this._createError(ft(u),this._getSpan(t))}},t.prototype._consumeRawText=function(t,e,n){var r,o=this._getLocation();this._beginToken(t?ks.ESCAPABLE_RAW_TEXT:ks.RAW_TEXT,o);for(var i=[];;){if(r=this._getLocation(),this._attemptCharCode(e)&&n())break;for(this._index>r.offset&&i.push(this._input.substring(r.offset,this._index));this._peek!==e;)i.push(this._readChar(t))}return this._endToken([this._processCarriageReturns(i.join(""))],r)},t.prototype._consumeComment=function(t){var e=this;this._beginToken(ks.COMMENT_START,t),this._requireCharCode(Vi),this._endToken([]);var n=this._consumeRawText(!1,Vi,function(){return e._attemptStr("->")});this._beginToken(ks.COMMENT_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeCdata=function(t){var e=this;this._beginToken(ks.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);var n=this._consumeRawText(!1,93,function(){return e._attemptStr("]>")});this._beginToken(ks.CDATA_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeDocType=function(t){this._beginToken(ks.DOC_TYPE,t),this._attemptUntilChar(Bi),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])},t.prototype._consumePrefixAndName=function(){for(var t=this._index,e=null;58!==this._peek&&!mt(this._peek);)this._advance();var n;return 58===this._peek?(this._advance(),e=this._input.substring(t,this._index-1),n=this._index):n=t,this._requireCharCodeUntilFn(yt,this._index===n?1:0),[e,this._input.substring(n,this._index)]},t.prototype._consumeTagOpen=function(t){var e,n,r=this._savePosition();try{if(!B(this._peek))throw this._createError(ht(this._peek),this._getSpan());var o=this._index;for(this._consumeTagOpenStart(t),n=(e=this._input.substring(o,this._index)).toLowerCase(),this._attemptCharCodeUntilFn(dt);this._peek!==Fi&&this._peek!==Bi;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(dt),this._attemptCharCode(Hi)&&(this._attemptCharCodeUntilFn(dt),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(dt);this._consumeTagOpenEnd()}catch(e){if(e instanceof Ls)return this._restorePosition(r),this._beginToken(ks.TEXT,t),void this._endToken(["<"]);throw e}var i=this._getTagDefinition(e).contentType;i===mo.RAW_TEXT?this._consumeRawTextWithTagClose(n,!1):i===mo.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,!0)},t.prototype._consumeRawTextWithTagClose=function(t,e){var n=this,r=this._consumeRawText(e,60,function(){return!!n._attemptCharCode(Fi)&&(n._attemptCharCodeUntilFn(dt),!!n._attemptStrCaseInsensitive(t)&&(n._attemptCharCodeUntilFn(dt),n._attemptCharCode(Bi)))});this._beginToken(ks.TAG_CLOSE,r.sourceSpan.end),this._endToken([null,t])},t.prototype._consumeTagOpenStart=function(t){this._beginToken(ks.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},t.prototype._consumeAttributeName=function(){this._beginToken(ks.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},t.prototype._consumeAttributeValue=function(){this._beginToken(ks.ATTR_VALUE);var t;if(this._peek===ji||this._peek===Ni){var e=this._peek;this._advance();for(var n=[];this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{var r=this._index;this._requireCharCodeUntilFn(yt,1),t=this._input.substring(r,this._index)}this._endToken([this._processCarriageReturns(t)])},t.prototype._consumeTagOpenEnd=function(){var t=this._attemptCharCode(Fi)?ks.TAG_OPEN_END_VOID:ks.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(Bi),this._endToken([])},t.prototype._consumeTagClose=function(t){this._beginToken(ks.TAG_CLOSE,t),this._attemptCharCodeUntilFn(dt);var e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(dt),this._requireCharCode(Bi),this._endToken(e)},t.prototype._consumeExpansionFormStart=function(){this._beginToken(ks.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(os),this._endToken([]),this._expansionCaseStack.push(ks.EXPANSION_FORM_START),this._beginToken(ks.RAW_TEXT,this._getLocation());var t=this._readUntil(44);this._endToken([t],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(dt),this._beginToken(ks.RAW_TEXT,this._getLocation());var e=this._readUntil(44);this._endToken([e],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(dt)},t.prototype._consumeExpansionCaseStart=function(){this._beginToken(ks.EXPANSION_CASE_VALUE,this._getLocation());var t=this._readUntil(os).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._beginToken(ks.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(os),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._expansionCaseStack.push(ks.EXPANSION_CASE_EXP_START)},t.prototype._consumeExpansionCaseEnd=function(){this._beginToken(ks.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(125),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(dt),this._expansionCaseStack.pop()},t.prototype._consumeExpansionFormEnd=function(){this._beginToken(ks.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()},t.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(ks.TEXT,t);var e=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])},t.prototype._isTextEnd=function(){if(60===this._peek||this._peek===Pi)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(_t(this._input,this._index,this._interpolationConfig))return!0;if(125===this._peek&&this._isInExpansionCase())return!0}return!1},t.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},t.prototype._readUntil=function(t){var e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)},t.prototype._restorePosition=function(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];var e=t[4];e<this.tokens.length&&(this.tokens=this.tokens.slice(0,e))},t.prototype._isInExpansionCase=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ks.EXPANSION_CASE_EXP_START},t.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ks.EXPANSION_FORM_START},t}(),Fs=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return o.elementName=e,o}return Xr(e,t),e.create=function(t,n,r){return new e(t,n,r)},e}(xs),Us=function(){function t(t,e){this.rootNodes=t,this.errors=e}return t}(),Hs=function(){function t(t){this.getTagDefinition=t}return t.prototype.parse=function(t,e,n,r){void 0===n&&(n=!1),void 0===r&&(r=cs);var o=pt(t,e,this.getTagDefinition,n,r),i=new Bs(o.tokens,this.getTagDefinition).build();return new Us(i.rootNodes,o.errors.concat(i.errors))},t}(),Bs=function(){function t(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return t.prototype.build=function(){for(;this._peek.type!==ks.EOF;)this._peek.type===ks.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===ks.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===ks.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===ks.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===ks.TEXT||this._peek.type===ks.RAW_TEXT||this._peek.type===ks.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===ks.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new Us(this._rootNodes,this._errors)},t.prototype._advance=function(){var t=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],t},t.prototype._advanceIf=function(t){return this._peek.type===t?this._advance():null},t.prototype._consumeCdata=function(t){this._consumeText(this._advance()),this._advanceIf(ks.CDATA_END)},t.prototype._consumeComment=function(t){var e=this._advanceIf(ks.RAW_TEXT);this._advanceIf(ks.COMMENT_END);var n=null!=e?e.parts[0].trim():null;this._addToParent(new Rs(n,t.sourceSpan))},t.prototype._consumeExpansion=function(t){for(var e=this._advance(),n=this._advance(),r=[];this._peek.type===ks.EXPANSION_CASE_VALUE;){var o=this._parseExpansionCase();if(!o)return;r.push(o)}if(this._peek.type!==ks.EXPANSION_FORM_END)return void this._errors.push(Fs.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));var i=new Es(t.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new Ps(e.parts[0],n.parts[0],r,i,e.sourceSpan)),this._advance()},t.prototype._parseExpansionCase=function(){var e=this._advance();if(this._peek.type!==ks.EXPANSION_CASE_EXP_START)return this._errors.push(Fs.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;var n=this._advance(),r=this._collectExpansionExpTokens(n);if(!r)return null;var o=this._advance();r.push(new Is(ks.EOF,[],o.sourceSpan));var i=new t(r,this.getTagDefinition).build();if(i.errors.length>0)return this._errors=this._errors.concat(i.errors),null;var s=new Es(e.sourceSpan.start,o.sourceSpan.end),a=new Es(n.sourceSpan.start,o.sourceSpan.end);return new As(e.parts[0],i.rootNodes,s,e.sourceSpan,a)},t.prototype._collectExpansionExpTokens=function(t){for(var e=[],n=[ks.EXPANSION_CASE_EXP_START];;){if(this._peek.type!==ks.EXPANSION_FORM_START&&this._peek.type!==ks.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===ks.EXPANSION_CASE_EXP_END){if(!St(n,ks.EXPANSION_CASE_EXP_START))return this._errors.push(Fs.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0==n.length)return e}if(this._peek.type===ks.EXPANSION_FORM_END){if(!St(n,ks.EXPANSION_FORM_START))return this._errors.push(Fs.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===ks.EOF)return this._errors.push(Fs.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}},t.prototype._consumeText=function(t){var e=t.parts[0];if(e.length>0&&"\n"==e[0]){var n=this._getParentElement();null!=n&&0==n.children.length&&this.getTagDefinition(n.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new Ts(e,t.sourceSpan))},t.prototype._closeVoidElement=function(){if(this._elementStack.length>0){var t=this._elementStack[this._elementStack.length-1];this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()}},t.prototype._consumeStartTag=function(t){for(var e=t.parts[0],n=t.parts[1],r=[];this._peek.type===ks.ATTR_NAME;)r.push(this._consumeAttr(this._advance()));var o=this._getElementFullName(e,n,this._getParentElement()),i=!1;if(this._peek.type===ks.TAG_OPEN_END_VOID){this._advance(),i=!0;var s=this.getTagDefinition(o);s.canSelfClose||null!==a(o)||s.isVoid||this._errors.push(Fs.create(o,t.sourceSpan,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))}else this._peek.type===ks.TAG_OPEN_END&&(this._advance(),i=!1);var u=this._peek.sourceSpan.start,c=new Es(t.sourceSpan.start,u),l=new Ms(o,r,[],c,c,void 0);this._pushElement(l),i&&(this._popElement(o),l.endSourceSpan=c)},t.prototype._pushElement=function(t){if(this._elementStack.length>0){var e=this._elementStack[this._elementStack.length-1];this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop()}var n=this.getTagDefinition(t.name),r=this._getParentElementSkippingContainers(),o=r.parent,i=r.container;if(o&&n.requireExtraParent(o.name)){var s=new Ms(n.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(o,i,s)}this._addToParent(t),this._elementStack.push(t)},t.prototype._consumeEndTag=function(t){var e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid)this._errors.push(Fs.create(e,t.sourceSpan,'Void elements do not have end tags "'+t.parts[1]+'"'));else if(!this._popElement(e)){var n='Unexpected closing tag "'+e+'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags';this._errors.push(Fs.create(e,t.sourceSpan,n))}},t.prototype._popElement=function(t){for(var e=this._elementStack.length-1;e>=0;e--){var n=this._elementStack[e];if(n.name==t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1},t.prototype._consumeAttr=function(t){var e=u(t.parts[0],t.parts[1]),n=t.sourceSpan.end,r="",o=void 0;if(this._peek.type===ks.ATTR_VALUE){var i=this._advance();r=i.parts[0],n=i.sourceSpan.end,o=i.sourceSpan}return new Os(e,r,new Es(t.sourceSpan.start,n),o)},t.prototype._getParentElement=function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null},t.prototype._getParentElementSkippingContainers=function(){for(var t=null,e=this._elementStack.length-1;e>=0;e--){if(!o(this._elementStack[e].name))return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:this._elementStack[this._elementStack.length-1],container:t}},t.prototype._addToParent=function(t){var e=this._getParentElement();null!=e?e.children.push(t):this._rootNodes.push(t)},t.prototype._insertBeforeContainer=function(t,e,n){if(e){if(t){var r=t.children.indexOf(e);t.children[r]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)},t.prototype._getElementFullName=function(t,e,n){return null==t&&null==(t=this.getTagDefinition(e).implicitNamespacePrefix)&&null!=n&&(t=a(n.name)),u(t,e)},t}(),qs=function(){function t(t,e,n,r,o,i){this.nodes=t,this.placeholders=e,this.placeholderToMessage=n,this.meaning=r,this.description=o,this.id=i,t.length?this.sources=[{filePath:t[0].sourceSpan.start.file.url,startLine:t[0].sourceSpan.start.line+1,startCol:t[0].sourceSpan.start.col+1,endLine:t[t.length-1].sourceSpan.end.line+1,endCol:t[0].sourceSpan.start.col+1}]:this.sources=[]}return t}(),zs=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}(),Gs=function(){function t(t,e){this.children=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitContainer(this,e)},t}(),Ws=function(){function t(t,e,n,r){this.expression=t,this.type=e,this.cases=n,this.sourceSpan=r}return t.prototype.visit=function(t,e){return t.visitIcu(this,e)},t}(),$s=function(){function t(t,e,n,r,o,i,s){this.tag=t,this.attrs=e,this.startName=n,this.closeName=r,this.children=o,this.isVoid=i,this.sourceSpan=s}return t.prototype.visit=function(t,e){return t.visitTagPlaceholder(this,e)},t}(),Ks=function(){function t(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitPlaceholder(this,e)},t}(),Qs=function(){function t(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitIcuPlaceholder(this,e)},t}(),Xs=function(){function t(){}return t.prototype.visitText=function(t,e){return new zs(t.value,t.sourceSpan)},t.prototype.visitContainer=function(t,e){var n=this,r=t.children.map(function(t){return t.visit(n,e)});return new Gs(r,t.sourceSpan)},t.prototype.visitIcu=function(t,e){var n=this,r={};Object.keys(t.cases).forEach(function(o){return r[o]=t.cases[o].visit(n,e)});var o=new Ws(t.expression,t.type,r,t.sourceSpan);return o.expressionPlaceholder=t.expressionPlaceholder,o},t.prototype.visitTagPlaceholder=function(t,e){var n=this,r=t.children.map(function(t){return t.visit(n,e)});return new $s(t.tag,t.attrs,t.startName,t.closeName,r,t.isVoid,t.sourceSpan)},t.prototype.visitPlaceholder=function(t,e){return new Ks(t.value,t.name,t.sourceSpan)},t.prototype.visitIcuPlaceholder=function(t,e){return new Qs(t.value,t.name,t.sourceSpan)},t}(),Zs=function(){function t(){}return t.prototype.visitText=function(t,e){},t.prototype.visitContainer=function(t,e){var n=this;t.children.forEach(function(t){return t.visit(n)})},t.prototype.visitIcu=function(t,e){var n=this;Object.keys(t.cases).forEach(function(e){t.cases[e].visit(n)})},t.prototype.visitTagPlaceholder=function(t,e){var n=this;t.children.forEach(function(t){return t.visit(n)})},t.prototype.visitPlaceholder=function(t,e){},t.prototype.visitIcuPlaceholder=function(t,e){},t}(),Ys={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"},Js=function(){function t(){this._placeHolderNameCounts={},this._signatureToName={}}return t.prototype.getStartTagPlaceholderName=function(t,e,n){var r=this._hashTag(t,e,n);if(this._signatureToName[r])return this._signatureToName[r];var o=t.toUpperCase(),i=Ys[o]||"TAG_"+o,s=this._generateUniqueName(n?i:"START_"+i);return this._signatureToName[r]=s,s},t.prototype.getCloseTagPlaceholderName=function(t){var e=this._hashClosingTag(t);if(this._signatureToName[e])return this._signatureToName[e];var n=t.toUpperCase(),r=Ys[n]||"TAG_"+n,o=this._generateUniqueName("CLOSE_"+r);return this._signatureToName[e]=o,o},t.prototype.getPlaceholderName=function(t,e){var n=t.toUpperCase(),r="PH: "+n+"="+e;if(this._signatureToName[r])return this._signatureToName[r];var o=this._generateUniqueName(n);return this._signatureToName[r]=o,o},t.prototype.getUniquePlaceholder=function(t){return this._generateUniqueName(t.toUpperCase())},t.prototype._hashTag=function(t,e,n){return"<"+t+Object.keys(e).sort().map(function(t){return" "+t+"="+e[t]}).join("")+(n?"/>":"></"+t+">")},t.prototype._hashClosingTag=function(t){return this._hashTag("/"+t,{},!1)},t.prototype._generateUniqueName=function(t){if(!this._placeHolderNameCounts.hasOwnProperty(t))return this._placeHolderNameCounts[t]=1,t;var e=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=e+1,t+"_"+e},t}(),ta=new gs(new hs),ea=function(){function t(t,e){this._expressionParser=t,this._interpolationConfig=e}return t.prototype.toI18nMessage=function(t,e,n,r){this._isIcu=1==t.length&&t[0]instanceof Ps,this._icuDepth=0,this._placeholderRegistry=new Js,this._placeholderToContent={},this._placeholderToMessage={};var o=lt(this,t,{});return new qs(o,this._placeholderToContent,this._placeholderToMessage,e,n,r)},t.prototype.visitElement=function(t,e){var n=lt(this,t.children),r={};t.attrs.forEach(function(t){r[t.name]=t.value});var o=c(t.name).isVoid,i=this._placeholderRegistry.getStartTagPlaceholderName(t.name,r,o);this._placeholderToContent[i]=t.sourceSpan.toString();var s="";return o||(s=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[s]="</"+t.name+">"),new $s(t.name,r,i,s,n,o,t.sourceSpan)},t.prototype.visitAttribute=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitExpansion=function(e,n){var r=this;this._icuDepth++;var o={},i=new Ws(e.switchValue,e.type,o,e.sourceSpan);if(e.cases.forEach(function(t){o[t.value]=new Gs(t.expression.map(function(t){return t.visit(r,{})}),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){var s=this._placeholderRegistry.getUniquePlaceholder("VAR_"+e.type);return i.expressionPlaceholder=s,this._placeholderToContent[s]=e.switchValue,i}var a=this._placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString()),u=new t(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[a]=u.toI18nMessage([e],"","",""),new Qs(i,a,e.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){throw new Error("Unreachable code")},t.prototype._visitTextWithInterpolation=function(t,e){var n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new zs(t,e);for(var r=[],o=new Gs(r,e),i=this._interpolationConfig,s=i.start,a=i.end,u=0;u<n.strings.length-1;u++){var c=n.expressions[u],l=Tt(c)||"INTERPOLATION",p=this._placeholderRegistry.getPlaceholderName(l,c);n.strings[u].length&&r.push(new zs(n.strings[u],e)),r.push(new Ks(c,p,e)),this._placeholderToContent[p]=s+c+a}var h=n.strings.length-1;return n.strings[h].length&&r.push(new zs(n.strings[h],e)),o},t}(),na=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*("|')([\s\S]*?)\1[\s\S]*\)/g,ra=function(t){function e(e,n){return t.call(this,e,n)||this}return Xr(e,t),e}(xs),oa="i18n",ia=/^i18n:?/,sa="|",aa="@@",ua=function(){function t(t,e){this.messages=t,this.errors=e}return t}(),ca={};ca.Extract=0,ca.Merge=1,ca[ca.Extract]="Extract",ca[ca.Merge]="Merge";var la=function(){function t(t,e){this._implicitTags=t,this._implicitAttrs=e}return t.prototype.extract=function(t,e){var n=this;return this._init(ca.Extract,e),t.forEach(function(t){return t.visit(n,null)}),this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new ua(this._messages,this._errors)},t.prototype.merge=function(t,e,n){this._init(ca.Merge,n),this._translations=e;var r=new Ms("wrapper",[],t,void 0,void 0,void 0).visit(this,null);return this._inI18nBlock&&this._reportError(t[t.length-1],"Unclosed block"),new Us(r.children,this._errors)},t.prototype.visitExpansionCase=function(t,e){var n=lt(this,t.expression,e);if(this._mode===ca.Merge)return new As(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)},t.prototype.visitExpansion=function(t,e){this._mayBeAddBlockChildren(t);var n=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([t]),this._inIcu=!0);var r=lt(this,t.cases,e);return this._mode===ca.Merge&&(t=new Ps(t.switchValue,t.type,r,t.sourceSpan,t.switchValueSourceSpan)),this._inIcu=n,t},t.prototype.visitComment=function(t,e){var n=Ot(t);if(n&&this._isInTranslatableSection)return void this._reportError(t,"Could not start a block inside a translatable section");var r=Mt(t);if(r&&!this._inI18nBlock)return void this._reportError(t,"Trying to close an unopened block");if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(r){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(t,this._blockChildren),this._inI18nBlock=!1;var o=this._addMessage(this._blockChildren,this._blockMeaningAndDesc);return lt(this,this._translateMessage(t,o))}return void this._reportError(t,"I18N blocks should not cross element boundaries")}}else n&&(this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=t.value.replace(ia,"").trim(),this._openTranslatableSection(t))},t.prototype.visitText=function(t,e){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(t),t},t.prototype.visitElement=function(t,e){var n=this;this._mayBeAddBlockChildren(t),this._depth++;var r=this._inI18nNode,o=this._inImplicitNode,i=[],s=void 0,a=Rt(t),u=a?a.value:"",c=this._implicitTags.some(function(e){return t.name===e})&&!this._inIcu&&!this._isInTranslatableSection,l=!o&&c;if(this._inImplicitNode=o||c,this._isInTranslatableSection||this._inIcu)(a||l)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this._mode==ca.Extract&&lt(this,t.children);else{if(a||l){this._inI18nNode=!0;var p=this._addMessage(t.children,u);s=this._translateMessage(t,p)}if(this._mode==ca.Extract){var h=a||l;h&&this._openTranslatableSection(t),lt(this,t.children),h&&this._closeTranslatableSection(t,t.children)}}if(this._mode===ca.Merge&&(s||t.children).forEach(function(t){var r=t.visit(n,e);r&&!n._isInTranslatableSection&&(i=i.concat(r))}),this._visitAttributesOf(t),this._depth--,this._inI18nNode=r,this._inImplicitNode=o,this._mode===ca.Merge){var f=this._translateAttributes(t);return new Ms(t.name,f,i,t.sourceSpan,t.startSourceSpan,t.endSourceSpan)}return null},t.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},t.prototype._init=function(t,e){this._mode=t,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=xt(e)},t.prototype._visitAttributesOf=function(t){var e=this,n={},r=this._implicitAttrs[t.name]||[];t.attrs.filter(function(t){return t.name.startsWith("i18n-")}).forEach(function(t){return n[t.name.slice("i18n-".length)]=t.value}),t.attrs.forEach(function(t){t.name in n?e._addMessage([t],n[t.name]):r.some(function(e){return t.name===e})&&e._addMessage([t])})},t.prototype._addMessage=function(t,e){if(0==t.length||1==t.length&&t[0]instanceof Os&&!t[0].value)return null;var n=kt(e),r=n.meaning,o=n.description,i=n.id,s=this._createI18nMessage(t,r,o,i);return this._messages.push(s),s},t.prototype._translateMessage=function(t,e){if(e&&this._mode===ca.Merge){var n=this._translations.get(e);if(n)return n;this._reportError(t,'Translation unavailable for message id="'+this._translations.digest(e)+'"')}return[]},t.prototype._translateAttributes=function(t){var e=this,n=t.attrs,r={};n.forEach(function(t){t.name.startsWith("i18n-")&&(r[t.name.slice("i18n-".length)]=kt(t.value))});var o=[];return n.forEach(function(n){if(n.name!==oa&&!n.name.startsWith("i18n-"))if(n.value&&""!=n.value&&r.hasOwnProperty(n.name)){var i=r[n.name],s=i.meaning,a=i.description,u=i.id,c=e._createI18nMessage([n],s,a,u),l=e._translations.get(c);if(l)if(0==l.length)o.push(new Os(n.name,"",n.sourceSpan));else if(l[0]instanceof Ts){var p=l[0].value;o.push(new Os(n.name,p,n.sourceSpan))}else e._reportError(t,'Unexpected translation for attribute "'+n.name+'" (id="'+(u||e._translations.digest(c))+'")');else e._reportError(t,'Translation unavailable for attribute "'+n.name+'" (id="'+(u||e._translations.digest(c))+'")')}else o.push(n)}),o},t.prototype._mayBeAddBlockChildren=function(t){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(t)},t.prototype._openTranslatableSection=function(t){this._isInTranslatableSection?this._reportError(t,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length},Object.defineProperty(t.prototype,"_isInTranslatableSection",{get:function(){return void 0!==this._msgCountAtSectionStart},enumerable:!0,configurable:!0}),t.prototype._closeTranslatableSection=function(t,e){if(!this._isInTranslatableSection)return void this._reportError(t,"Unexpected section end");var n=this._msgCountAtSectionStart;if(1==e.reduce(function(t,e){return t+(e instanceof Rs?0:1)},0))for(var r=this._messages.length-1;r>=n;r--){var o=this._messages[r].nodes;if(!(1==o.length&&o[0]instanceof zs)){this._messages.splice(r,1);break}}this._msgCountAtSectionStart=void 0},t.prototype._reportError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),pa=new(function(){function t(){this.closedByParent=!1,this.contentType=mo.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return t.prototype.requireExtraParent=function(t){return!1},t.prototype.isClosedByChild=function(t){return!1},t}()),ha=function(t){function e(){return t.call(this,It)||this}return Xr(e,t),e.prototype.parse=function(e,n,r){return void 0===r&&(r=!1),t.prototype.parse.call(this,e,n,r)},e}(Hs),fa=function(){function t(){}return t.prototype.visitText=function(t,e){return t.value},t.prototype.visitContainer=function(t,e){var n=this;return"["+t.children.map(function(t){return t.visit(n)}).join(", ")+"]"},t.prototype.visitIcu=function(t,e){var n=this,r=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.expression+", "+t.type+", "+r.join(", ")+"}"},t.prototype.visitTagPlaceholder=function(t,e){var n=this;return t.isVoid?'<ph tag name="'+t.startName+'"/>':'<ph tag name="'+t.startName+'">'+t.children.map(function(t){return t.visit(n)}).join(", ")+'</ph name="'+t.closeName+'">'},t.prototype.visitPlaceholder=function(t,e){return t.value?'<ph name="'+t.name+'">'+t.value+"</ph>":'<ph name="'+t.name+'"/>'},t.prototype.visitIcuPlaceholder=function(t,e){return'<ph icu name="'+t.name+'">'+t.value.visit(this)+"</ph>"},t}(),da=new fa,ya=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.visitIcu=function(t,e){var n=this,r=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.type+", "+r.join(", ")+"}"},e}(fa),ma={};ma.Little=0,ma.Big=1,ma[ma.Little]="Little",ma[ma.Big]="Big";var va=function(){function t(){}return t.prototype.write=function(t,e){},t.prototype.load=function(t,e){},t.prototype.digest=function(t){},t.prototype.createNameMapper=function(t){return null},t}(),ga=function(t){function e(e,n){var r=t.call(this)||this;return r.mapName=n,r.internalToPublic={},r.publicToNextId={},r.publicToInternal={},e.nodes.forEach(function(t){return t.visit(r)}),r}return Xr(e,t),e.prototype.toPublicName=function(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null},e.prototype.toInternalName=function(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null},e.prototype.visitText=function(t,e){return null},e.prototype.visitTagPlaceholder=function(e,n){this.visitPlaceholderName(e.startName),t.prototype.visitTagPlaceholder.call(this,e,n),this.visitPlaceholderName(e.closeName)},e.prototype.visitPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitIcuPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitPlaceholderName=function(t){if(t&&!this.internalToPublic.hasOwnProperty(t)){var e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){var n=this.publicToNextId[e];this.publicToNextId[e]=n+1,e=e+"_"+n}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}},e}(Zs),_a=new(function(){function t(){}return t.prototype.visitTag=function(t){var e=this,n=this._serializeAttributes(t.attrs);if(0==t.children.length)return"<"+t.name+n+"/>";var r=t.children.map(function(t){return t.visit(e)});return"<"+t.name+n+">"+r.join("")+"</"+t.name+">"},t.prototype.visitText=function(t){return t.value},t.prototype.visitDeclaration=function(t){return"<?xml"+this._serializeAttributes(t.attrs)+" ?>"},t.prototype._serializeAttributes=function(t){var e=Object.keys(t).map(function(e){return e+'="'+t[e]+'"'}).join(" ");return e.length>0?" "+e:""},t.prototype.visitDoctype=function(t){return"<!DOCTYPE "+t.rootTag+" [\n"+t.dtd+"\n]>"},t}()),ba=function(){function t(t){var e=this;this.attrs={},Object.keys(t).forEach(function(n){e.attrs[n]=ie(t[n])})}return t.prototype.visit=function(t){return t.visitDeclaration(this)},t}(),wa=function(){function t(t,e){this.rootTag=t,this.dtd=e}return t.prototype.visit=function(t){return t.visitDoctype(this)},t}(),Ca=function(){function t(t,e,n){void 0===e&&(e={}),void 0===n&&(n=[]);var r=this;this.name=t,this.children=n,this.attrs={},Object.keys(e).forEach(function(t){r.attrs[t]=ie(e[t])})}return t.prototype.visit=function(t){return t.visitTag(this)},t}(),Ea=function(){function t(t){this.value=ie(t)}return t.prototype.visit=function(t){return t.visitText(this)},t}(),Sa=function(t){function e(e){return void 0===e&&(e=0),t.call(this,"\n"+new Array(e+1).join(" "))||this}return Xr(e,t),e}(Ea),xa=[[/&/g,"&amp;"],[/"/g,"&quot;"],[/'/g,"&apos;"],[/</g,"&lt;"],[/>/g,"&gt;"]],Ta=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.write=function(t,e){var n=new Pa,r=[];t.forEach(function(t){var e=[];t.sources.forEach(function(t){var n=new Ca("context-group",{purpose:"location"});n.children.push(new Sa(10),new Ca("context",{"context-type":"sourcefile"},[new Ea(t.filePath)]),new Sa(10),new Ca("context",{"context-type":"linenumber"},[new Ea(""+t.startLine)]),new Sa(8)),e.push(new Sa(8),n)});var o=new Ca("trans-unit",{id:t.id,datatype:"html"});(i=o.children).push.apply(i,[new Sa(8),new Ca("source",{},n.serialize(t.nodes)),new Sa(8),new Ca("target")].concat(e)),t.description&&o.children.push(new Sa(8),new Ca("note",{priority:"1",from:"description"},[new Ea(t.description)])),t.meaning&&o.children.push(new Sa(8),new Ca("note",{priority:"1",from:"meaning"},[new Ea(t.meaning)])),o.children.push(new Sa(6)),r.push(new Sa(6),o);var i});var o=new Ca("body",{},r.concat([new Sa(4)])),i=new Ca("file",{"source-language":e||"en",datatype:"plaintext",original:"ng2.template"},[new Sa(4),o,new Sa(2)]),s=new Ca("xliff",{version:"1.2",xmlns:"urn:oasis:names:tc:xliff:document:1.2"},[new Sa(2),i,new Sa]);return oe([new ba({version:"1.0",encoding:"UTF-8"}),new Sa,s,new Sa])},e.prototype.load=function(t,e){var n=(new Aa).parse(t,e),r=n.locale,o=n.msgIdToHtml,i=n.errors,s={},a=new Oa;if(Object.keys(o).forEach(function(t){var n=a.convert(o[t],e),r=n.i18nNodes,u=n.errors;i.push.apply(i,u),s[t]=r}),i.length)throw new Error("xliff parse errors:\n"+i.join("\n"));return{locale:r,i18nNodesByMsgId:s}},e.prototype.digest=function(t){return Nt(t)},e}(va),Pa=function(){function t(){}return t.prototype.visitText=function(t,e){return[new Ea(t.value)]},t.prototype.visitContainer=function(t,e){var n=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(n))}),r},t.prototype.visitIcu=function(t,e){var n=this,r=[new Ea("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(e){r.push.apply(r,[new Ea(e+" {")].concat(t.cases[e].visit(n),[new Ea("} ")]))}),r.push(new Ea("}")),r},t.prototype.visitTagPlaceholder=function(t,e){var n=se(t.tag),r=new Ca("x",{id:t.startName,ctype:n});if(t.isVoid)return[r];var o=new Ca("x",{id:t.closeName,ctype:n});return[r].concat(this.serialize(t.children),[o])},t.prototype.visitPlaceholder=function(t,e){return[new Ca("x",{id:t.name})]},t.prototype.visitIcuPlaceholder=function(t,e){return[new Ca("x",{id:t.name})]},t.prototype.serialize=function(t){var e=this;return[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),Aa=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._unitMlString=null,this._msgIdToHtml={};var n=(new ha).parse(t,e,!1);return this._errors=n.errors,lt(this,n.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t,e){switch(t.name){case"trans-unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var r=n.value;this._msgIdToHtml.hasOwnProperty(r)?this._addError(t,"Duplicated translations for msg "+r):(lt(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[r]=this._unitMlString:this._addError(t,"Message "+r+" misses a translation"))}else this._addError(t,'<trans-unit> misses the "id" attribute');break;case"source":break;case"target":var o=t.startSourceSpan.end.offset,i=t.endSourceSpan.start.offset,s=t.startSourceSpan.start.file.content.slice(o,i);this._unitMlString=s;break;case"file":var a=t.attrs.find(function(t){return"target-language"===t.name});a&&(this._locale=a.value),lt(this,t.children,null);break;default:lt(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Oa=function(){function t(){}return t.prototype.convert=function(t,e){var n=(new ha).parse(t,e,!0);return this._errors=n.errors,{i18nNodes:this._errors.length>0||0==n.rootNodes.length?[]:lt(this,n.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new zs(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){if("x"===t.name){var n=t.attrs.find(function(t){return"id"===t.name});if(n)return new Ks("",n.value,t.sourceSpan);this._addError(t,'<x> misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitExpansion=function(t,e){var n={};return lt(this,t.cases).forEach(function(e){n[e.value]=new Gs(e.nodes,t.sourceSpan)}),new Ws(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:lt(this,t.expression)}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Ma=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.write=function(t,e){var n=new Ra,r=[];t.forEach(function(t){var e=new Ca("unit",{id:t.id});if(t.description||t.meaning){var o=new Ca("notes");t.description&&o.children.push(new Sa(8),new Ca("note",{category:"description"},[new Ea(t.description)])),t.meaning&&o.children.push(new Sa(8),new Ca("note",{category:"meaning"},[new Ea(t.meaning)])),o.children.push(new Sa(6)),e.children.push(new Sa(6),o)}var i=new Ca("segment");i.children.push(new Sa(8),new Ca("source",{},n.serialize(t.nodes)),new Sa(6)),e.children.push(new Sa(6),i,new Sa(4)),r.push(new Sa(4),e)});var o=new Ca("file",{original:"ng.template",id:"ngi18n"},r.concat([new Sa(2)])),i=new Ca("xliff",{version:"2.0",xmlns:"urn:oasis:names:tc:xliff:document:2.0",srcLang:e||"en"},[new Sa(2),o,new Sa]);return oe([new ba({version:"1.0",encoding:"UTF-8"}),new Sa,i,new Sa])},e.prototype.load=function(t,e){var n=(new ka).parse(t,e),r=n.locale,o=n.msgIdToHtml,i=n.errors,s={},a=new Ia;if(Object.keys(o).forEach(function(t){var n=a.convert(o[t],e),r=n.i18nNodes,u=n.errors;i.push.apply(i,u),s[t]=r}),i.length)throw new Error("xliff2 parse errors:\n"+i.join("\n"));return{locale:r,i18nNodesByMsgId:s}},e.prototype.digest=function(t){return Dt(t)},e}(va),Ra=function(){function t(){}return t.prototype.visitText=function(t,e){return[new Ea(t.value)]},t.prototype.visitContainer=function(t,e){var n=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(n))}),r},t.prototype.visitIcu=function(t,e){var n=this,r=[new Ea("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(e){r.push.apply(r,[new Ea(e+" {")].concat(t.cases[e].visit(n),[new Ea("} ")]))}),r.push(new Ea("}")),r},t.prototype.visitTagPlaceholder=function(t,e){var n=this,r=ae(t.tag);if(t.isVoid)return[new Ca("ph",{id:(this._nextPlaceholderId++).toString(),equiv:t.startName,type:r,disp:"<"+t.tag+"/>"})];var o=new Ca("pc",{id:(this._nextPlaceholderId++).toString(),equivStart:t.startName,equivEnd:t.closeName,type:r,dispStart:"<"+t.tag+">",dispEnd:"</"+t.tag+">"}),i=[].concat.apply([],t.children.map(function(t){return t.visit(n)}));return i.length?i.forEach(function(t){return o.children.push(t)}):o.children.push(new Ea("")),[o]},t.prototype.visitPlaceholder=function(t,e){return[new Ca("ph",{id:(this._nextPlaceholderId++).toString(),equiv:t.name,disp:"{{"+t.value+"}}"})]},t.prototype.visitIcuPlaceholder=function(t,e){return[new Ca("ph",{id:(this._nextPlaceholderId++).toString()})]},t.prototype.serialize=function(t){var e=this;return this._nextPlaceholderId=0,[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),ka=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._unitMlString=null,this._msgIdToHtml={};var n=(new ha).parse(t,e,!1);return this._errors=n.errors,lt(this,n.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t,e){switch(t.name){case"unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var r=n.value;this._msgIdToHtml.hasOwnProperty(r)?this._addError(t,"Duplicated translations for msg "+r):(lt(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[r]=this._unitMlString:this._addError(t,"Message "+r+" misses a translation"))}else this._addError(t,'<unit> misses the "id" attribute');break;case"source":break;case"target":var o=t.startSourceSpan.end.offset,i=t.endSourceSpan.start.offset,s=t.startSourceSpan.start.file.content.slice(o,i);this._unitMlString=s;break;case"xliff":var a=t.attrs.find(function(t){return"trgLang"===t.name});a&&(this._locale=a.value);var u=t.attrs.find(function(t){return"version"===t.name});if(u){var c=u.value;"2.0"!==c?this._addError(t,"The XLIFF file version "+c+" is not compatible with XLIFF 2.0 serializer"):lt(this,t.children,null)}break;default:lt(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Ia=function(){function t(){}return t.prototype.convert=function(t,e){var n=(new ha).parse(t,e,!0);return this._errors=n.errors,{i18nNodes:this._errors.length>0||0==n.rootNodes.length?[]:[].concat.apply([],lt(this,n.rootNodes)),errors:this._errors}},t.prototype.visitText=function(t,e){return new zs(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){var n=this;switch(t.name){case"ph":var r=t.attrs.find(function(t){return"equiv"===t.name});if(r)return[new Ks("",r.value,t.sourceSpan)];this._addError(t,'<ph> misses the "equiv" attribute');break;case"pc":var o=t.attrs.find(function(t){return"equivStart"===t.name}),i=t.attrs.find(function(t){return"equivEnd"===t.name});if(o){if(i){var s=o.value,a=i.value,u=[];return u.concat.apply(u,[new Ks("",s,t.sourceSpan)].concat(t.children.map(function(t){return t.visit(n,null)}),[new Ks("",a,t.sourceSpan)]))}this._addError(t,'<ph> misses the "equivEnd" attribute')}else this._addError(t,'<ph> misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null},t.prototype.visitExpansion=function(t,e){var n={};return lt(this,t.cases).forEach(function(e){n[e.value]=new Gs(e.nodes,t.sourceSpan)}),new Ws(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:[].concat.apply([],lt(this,t.expression))}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Na=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.write=function(t,e){var n=new ja,r=new Da,o=new Ca("messagebundle");return t.forEach(function(t){var e={id:t.id};t.description&&(e.desc=t.description),t.meaning&&(e.meaning=t.meaning);var n=[];t.sources.forEach(function(t){n.push(new Ca("source",{},[new Ea(t.filePath+":"+t.startLine+(t.endLine!==t.startLine?","+t.endLine:""))]))}),o.children.push(new Sa(2),new Ca("msg",e,n.concat(r.serialize(t.nodes))))}),o.children.push(new Sa),oe([new ba({version:"1.0",encoding:"UTF-8"}),new Sa,new wa("messagebundle",'<!ELEMENT messagebundle (msg)*>\n<!ATTLIST messagebundle class CDATA #IMPLIED>\n\n<!ELEMENT msg (#PCDATA|ph|source)*>\n<!ATTLIST msg id CDATA #IMPLIED>\n<!ATTLIST msg seq CDATA #IMPLIED>\n<!ATTLIST msg name CDATA #IMPLIED>\n<!ATTLIST msg desc CDATA #IMPLIED>\n<!ATTLIST msg meaning CDATA #IMPLIED>\n<!ATTLIST msg obsolete (obsolete) #IMPLIED>\n<!ATTLIST msg xml:space (default|preserve) "default">\n<!ATTLIST msg is_hidden CDATA #IMPLIED>\n\n<!ELEMENT source (#PCDATA)>\n\n<!ELEMENT ph (#PCDATA|ex)*>\n<!ATTLIST ph name CDATA #REQUIRED>\n\n<!ELEMENT ex (#PCDATA)>'),new Sa,n.addDefaultExamples(o),new Sa])},e.prototype.load=function(t,e){throw new Error("Unsupported")},e.prototype.digest=function(t){return ue(t)},e.prototype.createNameMapper=function(t){return new ga(t,ce)},e}(va),Da=function(){function t(){}return t.prototype.visitText=function(t,e){return[new Ea(t.value)]},t.prototype.visitContainer=function(t,e){var n=this,r=[];return t.children.forEach(function(t){return r.push.apply(r,t.visit(n))}),r},t.prototype.visitIcu=function(t,e){var n=this,r=[new Ea("{"+t.expressionPlaceholder+", "+t.type+", ")];return Object.keys(t.cases).forEach(function(e){r.push.apply(r,[new Ea(e+" {")].concat(t.cases[e].visit(n),[new Ea("} ")]))}),r.push(new Ea("}")),r},t.prototype.visitTagPlaceholder=function(t,e){var n=new Ca("ex",{},[new Ea("<"+t.tag+">")]),r=new Ca("ph",{name:t.startName},[n]);if(t.isVoid)return[r];var o=new Ca("ex",{},[new Ea("</"+t.tag+">")]),i=new Ca("ph",{name:t.closeName},[o]);return[r].concat(this.serialize(t.children),[i])},t.prototype.visitPlaceholder=function(t,e){return[new Ca("ph",{name:t.name})]},t.prototype.visitIcuPlaceholder=function(t,e){return[new Ca("ph",{name:t.name})]},t.prototype.serialize=function(t){var e=this;return[].concat.apply([],t.map(function(t){return t.visit(e)}))},t}(),ja=function(){function t(){}return t.prototype.addDefaultExamples=function(t){return t.visit(this),t},t.prototype.visitTag=function(t){var e=this;if("ph"===t.name){if(!t.children||0==t.children.length){var n=new Ea(t.attrs.name||"...");t.children=[new Ca("ex",{},[n])]}}else t.children&&t.children.forEach(function(t){return t.visit(e)})},t.prototype.visitText=function(t){},t.prototype.visitDeclaration=function(t){},t.prototype.visitDoctype=function(t){},t}(),La=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.write=function(t,e){throw new Error("Unsupported")},e.prototype.load=function(t,e){var n=(new Va).parse(t,e),r=n.locale,o=n.msgIdToHtml,i=n.errors,s={},a=new Fa;if(Object.keys(o).forEach(function(t){le(s,t,function(){var n=a.convert(o[t],e),r=n.i18nNodes,i=n.errors;if(i.length)throw new Error("xtb parse errors:\n"+i.join("\n"));return r})}),i.length)throw new Error("xtb parse errors:\n"+i.join("\n"));return{locale:r,i18nNodesByMsgId:s}},e.prototype.digest=function(t){return ue(t)},e.prototype.createNameMapper=function(t){return new ga(t,ce)},e}(va),Va=function(){function t(){this._locale=null}return t.prototype.parse=function(t,e){this._bundleDepth=0,this._msgIdToHtml={};var n=(new ha).parse(t,e,!1);return this._errors=n.errors,lt(this,n.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors,locale:this._locale}},t.prototype.visitElement=function(t,e){switch(t.name){case"translationbundle":++this._bundleDepth>1&&this._addError(t,"<translationbundle> elements can not be nested");var n=t.attrs.find(function(t){return"lang"===t.name});n&&(this._locale=n.value),lt(this,t.children,null),this._bundleDepth--;break;case"translation":var r=t.attrs.find(function(t){return"id"===t.name});if(r){var o=r.value;if(this._msgIdToHtml.hasOwnProperty(o))this._addError(t,"Duplicated translations for msg "+o);else{var i=t.startSourceSpan.end.offset,s=t.endSourceSpan.start.offset,a=t.startSourceSpan.start.file.content.slice(i,s);this._msgIdToHtml[o]=a}}else this._addError(t,'<translation> misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Fa=function(){function t(){}return t.prototype.convert=function(t,e){var n=(new ha).parse(t,e,!0);return this._errors=n.errors,{i18nNodes:this._errors.length>0||0==n.rootNodes.length?[]:lt(this,n.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new zs(t.value,t.sourceSpan)},t.prototype.visitExpansion=function(t,e){var n={};return lt(this,t.cases).forEach(function(e){n[e.value]=new Gs(e.nodes,t.sourceSpan)}),new Ws(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:lt(this,t.expression)}},t.prototype.visitElement=function(t,e){if("ph"===t.name){var n=t.attrs.find(function(t){return"name"===t.name});if(n)return new Ks("",n.value,t.sourceSpan);this._addError(t,'<ph> misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),Ua=function(t){function e(){return t.call(this,c)||this}return Xr(e,t),e.prototype.parse=function(e,n,r,o){return void 0===r&&(r=!1),void 0===o&&(o=cs),t.prototype.parse.call(this,e,n,r,o)},e}(Hs);Ua.decorators=[{type:z}],Ua.ctorParameters=function(){return[]};var Ha=function(){function t(t,n,r,o,i,s){void 0===t&&(t={}),void 0===i&&(i=e.MissingTranslationStrategy.Warning),this._i18nNodesByMsgId=t,this.digest=r,this.mapperFactory=o,this._i18nToHtml=new Ba(t,n,r,o,i,s)}return t.load=function(e,n,r,o,i){var s=r.load(e,n),a=s.locale;return new t(s.i18nNodesByMsgId,a,function(t){return r.digest(t)},function(t){return r.createNameMapper(t)},o,i)},t.prototype.get=function(t){var e=this._i18nToHtml.convert(t);if(e.errors.length)throw new Error(e.errors.join("\n"));return e.nodes},t.prototype.has=function(t){return this.digest(t)in this._i18nNodesByMsgId},t}(),Ba=function(){function t(t,e,n,r,o,i){void 0===t&&(t={}),this._i18nNodesByMsgId=t,this._locale=e,this._digest=n,this._mapperFactory=r,this._missingTranslationStrategy=o,this._console=i,this._contextStack=[],this._errors=[]}return t.prototype.convert=function(t){this._contextStack.length=0,this._errors.length=0;var e=this._convertToText(t),n=t.nodes[0].sourceSpan.start.file.url,r=(new Ua).parse(e,n,!0);return{nodes:r.rootNodes,errors:this._errors.concat(r.errors)}},t.prototype.visitText=function(t,e){return t.value},t.prototype.visitContainer=function(t,e){var n=this;return t.children.map(function(t){return t.visit(n)}).join("")},t.prototype.visitIcu=function(t,e){var n=this,r=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+(this._srcMsg.placeholders.hasOwnProperty(t.expression)?this._srcMsg.placeholders[t.expression]:t.expression)+", "+t.type+", "+r.join(" ")+"}"},t.prototype.visitPlaceholder=function(t,e){var n=this._mapper(t.name);return this._srcMsg.placeholders.hasOwnProperty(n)?this._srcMsg.placeholders[n]:this._srcMsg.placeholderToMessage.hasOwnProperty(n)?this._convertToText(this._srcMsg.placeholderToMessage[n]):(this._addError(t,'Unknown placeholder "'+t.name+'"'),"")},t.prototype.visitTagPlaceholder=function(t,e){var n=this,r=""+t.tag,o=Object.keys(t.attrs).map(function(e){return e+'="'+t.attrs[e]+'"'}).join(" ");return t.isVoid?"<"+r+" "+o+"/>":"<"+r+" "+o+">"+t.children.map(function(t){return t.visit(n)}).join("")+"</"+r+">"},t.prototype.visitIcuPlaceholder=function(t,e){return this._convertToText(this._srcMsg.placeholderToMessage[t.name])},t.prototype._convertToText=function(t){var n,r=this,o=this._digest(t),i=this._mapperFactory?this._mapperFactory(t):null;if(this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(o))n=this._i18nNodesByMsgId[o],this._mapper=function(t){return i?i.toInternalName(t):t};else{if(this._missingTranslationStrategy===e.MissingTranslationStrategy.Error){s=this._locale?' for locale "'+this._locale+'"':"";this._addError(t.nodes[0],'Missing translation for message "'+o+'"'+s)}else if(this._console&&this._missingTranslationStrategy===e.MissingTranslationStrategy.Warning){var s=this._locale?' for locale "'+this._locale+'"':"";this._console.warn('Missing translation for message "'+o+'"'+s)}n=t.nodes,this._mapper=function(t){return t}}var a=n.map(function(t){return t.visit(r)}).join(""),u=this._contextStack.pop();return this._srcMsg=u.msg,this._mapper=u.mapper,a},t.prototype._addError=function(t,e){this._errors.push(new ra(t.sourceSpan,e))},t}(),qa=function(){function t(t,n,r,o,i){if(void 0===o&&(o=e.MissingTranslationStrategy.Warning),this._htmlParser=t,n){var s=pe(r);this._translationBundle=Ha.load(n,"i18n",s,o,i)}}return t.prototype.parse=function(t,e,n,r){void 0===n&&(n=!1),void 0===r&&(r=cs);var o=this._htmlParser.parse(t,e,n,r);return this._translationBundle?o.errors.length?new Us(o.rootNodes,o.errors):At(o.rootNodes,this._translationBundle,r,[],{}):o},t}(),za=function(t,e,n){return void 0===e&&(e=null),void 0===n&&(n="src"),null==e?"@angular/"+t:"@angular/"+t+"/"+n+"/"+e}("core"),Ga=function(){function t(){}return t}();Ga.ANALYZE_FOR_ENTRY_COMPONENTS={name:"ANALYZE_FOR_ENTRY_COMPONENTS",moduleUrl:za,runtime:e.ANALYZE_FOR_ENTRY_COMPONENTS},Ga.ElementRef={name:"ElementRef",moduleUrl:za,runtime:e.ElementRef},Ga.NgModuleRef={name:"NgModuleRef",moduleUrl:za,runtime:e.NgModuleRef},Ga.ViewContainerRef={name:"ViewContainerRef",moduleUrl:za,runtime:e.ViewContainerRef},Ga.ChangeDetectorRef={name:"ChangeDetectorRef",moduleUrl:za,runtime:e.ChangeDetectorRef},Ga.QueryList={name:"QueryList",moduleUrl:za,runtime:e.QueryList},Ga.TemplateRef={name:"TemplateRef",moduleUrl:za,runtime:e.TemplateRef},Ga.CodegenComponentFactoryResolver={name:"ɵCodegenComponentFactoryResolver",moduleUrl:za,runtime:e.ɵCodegenComponentFactoryResolver},Ga.ComponentFactoryResolver={name:"ComponentFactoryResolver",moduleUrl:za,runtime:e.ComponentFactoryResolver},Ga.ComponentFactory={name:"ComponentFactory",moduleUrl:za,runtime:e.ComponentFactory},Ga.ComponentRef={name:"ComponentRef",moduleUrl:za,runtime:e.ComponentRef},Ga.NgModuleFactory={name:"NgModuleFactory",moduleUrl:za,runtime:e.NgModuleFactory},Ga.NgModuleInjector={name:"ɵNgModuleInjector",moduleUrl:za,runtime:e.ɵNgModuleInjector},Ga.RegisterModuleFactoryFn={name:"ɵregisterModuleFactory",moduleUrl:za,runtime:e.ɵregisterModuleFactory},Ga.Injector={name:"Injector",moduleUrl:za,runtime:e.Injector},Ga.ViewEncapsulation={name:"ViewEncapsulation",moduleUrl:za,runtime:e.ViewEncapsulation},Ga.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleUrl:za,runtime:e.ChangeDetectionStrategy},Ga.SecurityContext={name:"SecurityContext",moduleUrl:za,runtime:e.SecurityContext},Ga.LOCALE_ID={name:"LOCALE_ID",moduleUrl:za,runtime:e.LOCALE_ID},Ga.TRANSLATIONS_FORMAT={name:"TRANSLATIONS_FORMAT",moduleUrl:za,runtime:e.TRANSLATIONS_FORMAT},Ga.inlineInterpolate={name:"ɵinlineInterpolate",moduleUrl:za,runtime:e.ɵinlineInterpolate},Ga.interpolate={name:"ɵinterpolate",moduleUrl:za,runtime:e.ɵinterpolate},Ga.EMPTY_ARRAY={name:"ɵEMPTY_ARRAY",moduleUrl:za,runtime:e.ɵEMPTY_ARRAY},Ga.EMPTY_MAP={name:"ɵEMPTY_MAP",moduleUrl:za,runtime:e.ɵEMPTY_MAP},Ga.Renderer={name:"Renderer",moduleUrl:za,runtime:e.Renderer},Ga.viewDef={name:"ɵvid",moduleUrl:za,runtime:e.ɵvid},Ga.elementDef={name:"ɵeld",moduleUrl:za,runtime:e.ɵeld},Ga.anchorDef={name:"ɵand",moduleUrl:za,runtime:e.ɵand},Ga.textDef={name:"ɵted",moduleUrl:za,runtime:e.ɵted},Ga.directiveDef={name:"ɵdid",moduleUrl:za,runtime:e.ɵdid},Ga.providerDef={name:"ɵprd",moduleUrl:za,runtime:e.ɵprd},Ga.queryDef={name:"ɵqud",moduleUrl:za,runtime:e.ɵqud},Ga.pureArrayDef={name:"ɵpad",moduleUrl:za,runtime:e.ɵpad},Ga.pureObjectDef={name:"ɵpod",moduleUrl:za,runtime:e.ɵpod},Ga.purePipeDef={name:"ɵppd",moduleUrl:za,runtime:e.ɵppd},Ga.pipeDef={name:"ɵpid",moduleUrl:za,runtime:e.ɵpid},Ga.nodeValue={name:"ɵnov",moduleUrl:za,runtime:e.ɵnov},Ga.ngContentDef={name:"ɵncd",moduleUrl:za,runtime:e.ɵncd},Ga.unwrapValue={name:"ɵunv",moduleUrl:za,runtime:e.ɵunv},Ga.createRendererType2={name:"ɵcrt",moduleUrl:za,runtime:e.ɵcrt},Ga.RendererType2={name:"RendererType2",moduleUrl:za,runtime:null},Ga.ViewDefinition={name:"ɵViewDefinition",moduleUrl:za,runtime:null},Ga.createComponentFactory={name:"ɵccf",moduleUrl:za,runtime:e.ɵccf};var Wa=["zero","one","two","few","many","other"],$a=function(){function t(t,e,n){this.nodes=t,this.expanded=e,this.errors=n}return t}(),Ka=function(t){function e(e,n){return t.call(this,e,n)||this}return Xr(e,t),e}(xs),Qa=function(){function t(){this.isExpanded=!1,this.errors=[]}return t.prototype.visitElement=function(t,e){return new Ms(t.name,t.attrs,lt(this,t.children),t.sourceSpan,t.startSourceSpan,t.endSourceSpan)},t.prototype.visitAttribute=function(t,e){return t},t.prototype.visitText=function(t,e){return t},t.prototype.visitComment=function(t,e){return t},t.prototype.visitExpansion=function(t,e){return this.isExpanded=!0,"plural"==t.type?ve(t,this.errors):ge(t,this.errors)},t.prototype.visitExpansionCase=function(t,e){throw new Error("Should not be reached")},t}(),Xa=function(t){function e(e,n){return t.call(this,n,e)||this}return Xr(e,t),e}(xs),Za=function(){function t(t){var e=this;this.component=t,this.errors=[],this.viewQueries=Ee(t),this.viewProviders=new Map,t.viewProviders.forEach(function(t){null==e.viewProviders.get(R(t.token))&&e.viewProviders.set(R(t.token),!0)})}return t}(),Ya=function(){function t(t,e,n,r,o,i,s,a,u){var c=this;this.viewContext=t,this._parent=e,this._isViewRoot=n,this._directiveAsts=r,this._sourceSpan=u,this._transformedProviders=new Map,this._seenProviders=new Map,this._hasViewContainer=!1,this._queriedTokens=new Map,this._attrs={},o.forEach(function(t){return c._attrs[t.name]=t.value});var l=r.map(function(t){return t.directive});if(this._allProviders=we(l,u,t.errors),this._contentQueries=Se(a,l),Array.from(this._allProviders.values()).forEach(function(t){c._addQueryReadsTo(t.token,t.token,c._queriedTokens)}),s){var p=ye(Ga.TemplateRef);this._addQueryReadsTo(p,p,this._queriedTokens)}i.forEach(function(t){var e=t.value||ye(Ga.ElementRef);c._addQueryReadsTo({value:t.name},e,c._queriedTokens)}),this._queriedTokens.get(he(Ga.ViewContainerRef))&&(this._hasViewContainer=!0),Array.from(this._allProviders.values()).forEach(function(t){(t.eager||c._queriedTokens.get(R(t.token)))&&c._getOrCreateLocalProvider(t.providerType,t.token,!0)})}return t.prototype.afterElement=function(){var t=this;Array.from(this._allProviders.values()).forEach(function(e){t._getOrCreateLocalProvider(e.providerType,e.token,!1)})},Object.defineProperty(t.prototype,"transformProviders",{get:function(){return Array.from(this._transformedProviders.values())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transformedDirectiveAsts",{get:function(){var t=this.transformProviders.map(function(t){return t.token.identifier}),e=this._directiveAsts.slice();return e.sort(function(e,n){return t.indexOf(e.directive.type)-t.indexOf(n.directive.type)}),e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"transformedHasViewContainer",{get:function(){return this._hasViewContainer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryMatches",{get:function(){var t=[];return this._queriedTokens.forEach(function(e){t.push.apply(t,e)}),t},enumerable:!0,configurable:!0}),t.prototype._addQueryReadsTo=function(t,e,n){this._getQueriesFor(t).forEach(function(t){var r=t.meta.read||e,o=R(r),i=n.get(o);i||(i=[],n.set(o,i)),i.push({queryId:t.queryId,value:r})})},t.prototype._getQueriesFor=function(t){for(var e,n=[],r=this,o=0;null!==r;)(e=r._contentQueries.get(R(t)))&&n.push.apply(n,e.filter(function(t){return t.meta.descendants||o<=1})),r._directiveAsts.length>0&&o++,r=r._parent;return(e=this.viewContext.viewQueries.get(R(t)))&&n.push.apply(n,e),n},t.prototype._getOrCreateLocalProvider=function(t,e,n){var r=this,o=this._allProviders.get(R(e));if(!o||(t===lo.Directive||t===lo.PublicService)&&o.providerType===lo.PrivateService||(t===lo.PrivateService||t===lo.PublicService)&&o.providerType===lo.Builtin)return null;var i=this._transformedProviders.get(R(e));if(i)return i;if(null!=this._seenProviders.get(R(e)))return this.viewContext.errors.push(new Xa("Cannot instantiate cyclic dependency! "+M(e),this._sourceSpan)),null;this._seenProviders.set(R(e),!0);var s=o.providers.map(function(t){var e=t.useValue,i=t.useExisting,s=void 0;if(null!=t.useExisting){var a=r._getDependency(o.providerType,{token:t.useExisting},n);null!=a.token?i=a.token:(i=null,e=a.value)}else if(t.useFactory)s=(u=t.deps||t.useFactory.diDeps).map(function(t){return r._getDependency(o.providerType,t,n)});else if(t.useClass){var u=t.deps||t.useClass.diDeps;s=u.map(function(t){return r._getDependency(o.providerType,t,n)})}return _e(t,{useExisting:i,useValue:e,deps:s})});return i=be(o,{eager:n,providers:s}),this._transformedProviders.set(R(e),i),i},t.prototype._getLocalDependency=function(t,e,n){if(void 0===n&&(n=!1),e.isAttribute){var r=this._attrs[e.token.value];return{isValue:!0,value:null==r?null:r}}if(null!=e.token){if(t===lo.Directive||t===lo.Component){if(R(e.token)===he(Ga.Renderer)||R(e.token)===he(Ga.ElementRef)||R(e.token)===he(Ga.ChangeDetectorRef)||R(e.token)===he(Ga.TemplateRef))return e;R(e.token)===he(Ga.ViewContainerRef)&&(this._hasViewContainer=!0)}if(R(e.token)===he(Ga.Injector))return e;if(null!=this._getOrCreateLocalProvider(t,e.token,n))return e}return null},t.prototype._getDependency=function(t,e,n){void 0===n&&(n=!1);var r=this,o=n,i=null;if(e.isSkipSelf||(i=this._getLocalDependency(t,e,n)),e.isSelf)!i&&e.isOptional&&(i={isValue:!0,value:null});else{for(;!i&&r._parent;){var s=r;r=r._parent,s._isViewRoot&&(o=!1),i=r._getLocalDependency(lo.PublicService,e,o)}i||(i=!e.isHost||this.viewContext.component.isHost||this.viewContext.component.type.reference===R(e.token)||null!=this.viewContext.viewProviders.get(R(e.token))?e:e.isOptional?i={isValue:!0,value:null}:null)}return i||this.viewContext.errors.push(new Xa("No provider for "+M(e.token),this._sourceSpan)),i},t}(),Ja=function(){function t(t,e,n){var r=this;this._transformedProviders=new Map,this._seenProviders=new Map,this._errors=[],this._allProviders=new Map,t.transitiveModule.modules.forEach(function(t){Ce([{token:{identifier:t},useClass:t}],lo.PublicService,!0,n,r._errors,r._allProviders)}),Ce(t.transitiveModule.providers.map(function(t){return t.provider}).concat(e),lo.PublicService,!1,n,this._errors,this._allProviders)}return t.prototype.parse=function(){var t=this;if(Array.from(this._allProviders.values()).forEach(function(e){t._getOrCreateLocalProvider(e.token,e.eager)}),this._errors.length>0){var e=this._errors.join("\n");throw new Error("Provider parse errors:\n"+e)}return Array.from(this._transformedProviders.values())},t.prototype._getOrCreateLocalProvider=function(t,e){var n=this,r=this._allProviders.get(R(t));if(!r)return null;var o=this._transformedProviders.get(R(t));if(o)return o;if(null!=this._seenProviders.get(R(t)))return this._errors.push(new Xa("Cannot instantiate cyclic dependency! "+M(t),r.sourceSpan)),null;this._seenProviders.set(R(t),!0);var i=r.providers.map(function(t){var o=t.useValue,i=t.useExisting,s=void 0;if(null!=t.useExisting){var a=n._getDependency({token:t.useExisting},e,r.sourceSpan);null!=a.token?i=a.token:(i=null,o=a.value)}else if(t.useFactory)s=(u=t.deps||t.useFactory.diDeps).map(function(t){return n._getDependency(t,e,r.sourceSpan)});else if(t.useClass){var u=t.deps||t.useClass.diDeps;s=u.map(function(t){return n._getDependency(t,e,r.sourceSpan)})}return _e(t,{useExisting:i,useValue:o,deps:s})});return o=be(r,{eager:e,providers:i}),this._transformedProviders.set(R(t),o),o},t.prototype._getDependency=function(t,e,n){void 0===e&&(e=!1);var r=!1;t.isSkipSelf||null==t.token||(R(t.token)===he(Ga.Injector)||R(t.token)===he(Ga.ComponentFactoryResolver)?r=!0:null!=this._getOrCreateLocalProvider(t.token,e)&&(r=!0));var o=t;return t.isSelf&&!r&&(t.isOptional?o={isValue:!0,value:null}:this._errors.push(new Xa("No provider for "+M(t.token),n))),o},t}(),tu=function(){function t(){}return t.prototype.hasProperty=function(t,e,n){},t.prototype.hasElement=function(t,e){},t.prototype.securityContext=function(t,e,n){},t.prototype.allKnownElementNames=function(){},t.prototype.getMappedPropName=function(t){},t.prototype.getDefaultComponentElementName=function(){},t.prototype.validateProperty=function(t){},t.prototype.validateAttribute=function(t){},t.prototype.normalizeAnimationStyleProperty=function(t){},t.prototype.normalizeAnimationStyleValue=function(t,e,n){},t}(),eu=function(){function t(t,e){this.style=t,this.styleUrls=e}return t}(),nu=/@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g,ru=/\/\*.+?\*\//g,ou=/^([^:/?#]+):/,iu={};iu.DEFAULT=0,iu.LITERAL_ATTR=1,iu.ANIMATION=2,iu[iu.DEFAULT]="DEFAULT",iu[iu.LITERAL_ATTR]="LITERAL_ATTR",iu[iu.ANIMATION]="ANIMATION";var su=function(){function t(t,e,n,r){this.name=t,this.expression=e,this.type=n,this.sourceSpan=r}return Object.defineProperty(t.prototype,"isLiteral",{get:function(){return this.type===iu.LITERAL_ATTR},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimation",{get:function(){return this.type===iu.ANIMATION},enumerable:!0,configurable:!0}),t}(),au=function(){function t(t,e,n,r,o){var i=this;this._exprParser=t,this._interpolationConfig=e,this._schemaRegistry=n,this._targetErrors=o,this.pipesByName=new Map,this._usedPipes=new Map,r.forEach(function(t){return i.pipesByName.set(t.name,t)})}return t.prototype.getUsedPipes=function(){return Array.from(this._usedPipes.values())},t.prototype.createDirectiveHostPropertyAsts=function(t,e,n){var r=this;if(t.hostProperties){var o=[];return Object.keys(t.hostProperties).forEach(function(e){var i=t.hostProperties[e];"string"==typeof i?r.parsePropertyBinding(e,i,!0,n,[],o):r._reportError('Value of the host property binding "'+e+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",n)}),o.map(function(t){return r.createElementPropertyAst(e,t)})}return null},t.prototype.createDirectiveHostEventAsts=function(t,e){var n=this;if(t.hostListeners){var r=[];return Object.keys(t.hostListeners).forEach(function(o){var i=t.hostListeners[o];"string"==typeof i?n.parseEvent(o,i,e,[],r):n._reportError('Value of the host listener "'+o+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",e)}),r}return null},t.prototype.parseInterpolation=function(t,e){var n=e.start.toString();try{var r=this._exprParser.parseInterpolation(t,n,this._interpolationConfig);return r&&this._reportExpressionParserErrors(r.errors,e),this._checkPipes(r,e),r}catch(t){return this._reportError(""+t,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype.parseInlineTemplateBinding=function(t,e,n,r,o,i){for(var s=this._parseTemplateBindings(t,e,n),a=0;a<s.length;a++){var u=s[a];u.keyIsVar?i.push(new oo(u.key,u.name,n)):u.expression?this._parsePropertyAst(u.key,u.expression,n,r,o):(r.push([u.key,""]),this.parseLiteralAttr(u.key,null,n,r,o))}},t.prototype._parseTemplateBindings=function(t,e,n){var r=this,o=n.start.toString();try{var i=this._exprParser.parseTemplateBindings(t,e,o);return this._reportExpressionParserErrors(i.errors,n),i.templateBindings.forEach(function(t){t.expression&&r._checkPipes(t.expression,n)}),i.warnings.forEach(function(t){r._reportError(t,n,Ss.WARNING)}),i.templateBindings}catch(t){return this._reportError(""+t,n),[]}},t.prototype.parseLiteralAttr=function(t,e,n,r,o){Ae(t)?(t=t.substring(1),e&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',n,Ss.ERROR),this._parseAnimation(t,e,n,r,o)):o.push(new su(t,this._exprParser.wrapLiteralPrimitive(e,""),iu.LITERAL_ATTR,n))},t.prototype.parsePropertyBinding=function(t,e,n,r,o,i){var s=!1;t.startsWith("animate-")?(s=!0,t=t.substring("animate-".length)):Ae(t)&&(s=!0,t=t.substring(1)),s?this._parseAnimation(t,e,r,o,i):this._parsePropertyAst(t,this._parseBinding(e,n,r),r,o,i)},t.prototype.parsePropertyInterpolation=function(t,e,n,r,o){var i=this.parseInterpolation(e,n);return!!i&&(this._parsePropertyAst(t,i,n,r,o),!0)},t.prototype._parsePropertyAst=function(t,e,n,r,o){r.push([t,e.source]),o.push(new su(t,e,iu.DEFAULT,n))},t.prototype._parseAnimation=function(t,e,n,r,o){var i=this._parseBinding(e||"null",!1,n);r.push([t,i.source]),o.push(new su(t,i,iu.ANIMATION,n))},t.prototype._parseBinding=function(t,e,n){var r=n.start.toString();try{var o=e?this._exprParser.parseSimpleBinding(t,r,this._interpolationConfig):this._exprParser.parseBinding(t,r,this._interpolationConfig);return o&&this._reportExpressionParserErrors(o.errors,n),this._checkPipes(o,n),o}catch(t){return this._reportError(""+t,n),this._exprParser.wrapLiteralPrimitive("ERROR",r)}},t.prototype.createElementPropertyAst=function(t,n){if(n.isAnimation)return new eo(n.name,ho.Animation,e.SecurityContext.NONE,n.expression,null,n.sourceSpan);var r=null,o=void 0,i=null,s=n.name.split("."),a=void 0;if(s.length>1)if("attr"==s[0]){i=s[1],this._validatePropertyOrAttributeName(i,n.sourceSpan,!0),a=Oe(this._schemaRegistry,t,i,!0);var c=i.indexOf(":");c>-1&&(i=u(i.substring(0,c),i.substring(c+1))),o=ho.Attribute}else"class"==s[0]?(i=s[1],o=ho.Class,a=[e.SecurityContext.NONE]):"style"==s[0]&&(r=s.length>2?s[2]:null,i=s[1],o=ho.Style,a=[e.SecurityContext.STYLE]);return null===i&&(i=this._schemaRegistry.getMappedPropName(n.name),a=Oe(this._schemaRegistry,t,i,!1),o=ho.Property,this._validatePropertyOrAttributeName(i,n.sourceSpan,!1)),new eo(i,o,a[0],n.expression,r,n.sourceSpan)},t.prototype.parseEvent=function(t,e,n,r,o){Ae(t)?(t=t.substr(1),this._parseAnimationEvent(t,e,n,o)):this._parseEvent(t,e,n,r,o)},t.prototype._parseAnimationEvent=function(t,e,n,r){var o=h(t,[t,""]),i=o[0],s=o[1].toLowerCase();if(s)switch(s){case"start":case"done":var a=this._parseAction(e,n);r.push(new no(i,null,s,a,n));break;default:this._reportError('The provided animation output phase value "'+s+'" for "@'+i+'" is not supported (use start or done)',n)}else this._reportError("The animation trigger output event (@"+i+") is missing its phase value name (start or done are currently supported)",n)},t.prototype._parseEvent=function(t,e,n,r,o){var i=p(t,[null,t]),s=i[0],a=i[1],u=this._parseAction(e,n);r.push([t,u.source]),o.push(new no(a,s,null,u,n))},t.prototype._parseAction=function(t,e){var n=e.start.toString();try{var r=this._exprParser.parseAction(t,n,this._interpolationConfig);return r&&this._reportExpressionParserErrors(r.errors,e),!r||r.ast instanceof oi?(this._reportError("Empty expressions are not allowed",e),this._exprParser.wrapLiteralPrimitive("ERROR",n)):(this._checkPipes(r,e),r)}catch(t){return this._reportError(""+t,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype._reportError=function(t,e,n){void 0===n&&(n=Ss.ERROR),this._targetErrors.push(new xs(e,t,n))},t.prototype._reportExpressionParserErrors=function(t,e){for(var n=0,r=t;n<r.length;n++){var o=r[n];this._reportError(o.message,e)}},t.prototype._checkPipes=function(t,e){var n=this;if(t){var r=new uu;t.visit(r),r.pipes.forEach(function(t,r){var o=n.pipesByName.get(r);o?n._usedPipes.set(r,o):n._reportError("The pipe '"+r+"' could not be found",new Es(e.start.moveBy(t.span.start),e.start.moveBy(t.span.end)))})}},t.prototype._validatePropertyOrAttributeName=function(t,e,n){var r=n?this._schemaRegistry.validateAttribute(t):this._schemaRegistry.validateProperty(t);r.error&&this._reportError(r.msg,e,Ss.ERROR)},t}(),uu=function(t){function e(){var e=t.apply(this,arguments)||this;return e.pipes=new Map,e}return Xr(e,t),e.prototype.visitPipe=function(t,e){return this.pipes.set(t.name,t),t.exp.visit(this),this.visitAll(t.args,e),null},e}(xi),cu="select",lu="link",pu="rel",hu="href",fu="stylesheet",du="style",yu="script",mu="ngNonBindable",vu="ngProjectAs",gu={};gu.NG_CONTENT=0,gu.STYLE=1,gu.STYLESHEET=2,gu.SCRIPT=3,gu.OTHER=4,gu[gu.NG_CONTENT]="NG_CONTENT",gu[gu.STYLE]="STYLE",gu[gu.STYLESHEET]="STYLESHEET",gu[gu.SCRIPT]="SCRIPT",gu[gu.OTHER]="OTHER";var _u=function(){function t(t,e,n,r,o){this.type=t,this.selectAttr=e,this.hrefAttr=n,this.nonBindable=r,this.projectAs=o}return t}(),bu=/^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/,wu="template",Cu="class",Eu=Co.parse("*")[0],Su="The <template> element is deprecated. Use <ng-template> instead",xu={},Tu=new e.InjectionToken("TemplateTransforms"),Pu=function(t){function e(e,n,r){return t.call(this,n,e,r)||this}return Xr(e,t),e}(xs),Au=function(){function t(t,e,n){this.templateAst=t,this.usedPipes=e,this.errors=n}return t}(),Ou=function(){function t(t,e,n,r,o,i){this._config=t,this._exprParser=e,this._schemaRegistry=n,this._htmlParser=r,this._console=o,this.transforms=i}return t.prototype.parse=function(t,e,n,r,o,i){var s=this.tryParse(t,e,n,r,o,i),a=s.errors.filter(function(t){return t.level===Ss.WARNING}).filter(ke(["The template attribute is deprecated. Use an ng-template element instead.",Su])),u=s.errors.filter(function(t){return t.level===Ss.ERROR});if(a.length>0&&this._console.warn("Template parse warnings:\n"+a.join("\n")),u.length>0)throw v("Template parse errors:\n"+u.join("\n"));return{template:s.templateAst,pipes:s.usedPipes}},t.prototype.tryParse=function(t,e,n,r,o,i){return this.tryParseHtml(this.expandHtml(this._htmlParser.parse(e,i,!0,this.getInterpolationConfig(t))),t,n,r,o)},t.prototype.tryParseHtml=function(t,e,r,o,i){var s,a=t.errors,u=[];if(t.rootNodes.length>0){var c=je(r),l=je(o),p=new Za(e),h=void 0;e.template&&e.template.interpolation&&(h={start:e.template.interpolation[0],end:e.template.interpolation[1]});var f=new au(this._exprParser,h,this._schemaRegistry,l,a),d=new Mu(this._config,p,c,f,this._schemaRegistry,i,a);s=lt(d,t.rootNodes,Nu),a.push.apply(a,p.errors),u.push.apply(u,f.getUsedPipes())}else s=[];return this._assertNoReferenceDuplicationOnTemplate(s,a),a.length>0?new Au(s,u,a):(this.transforms&&this.transforms.forEach(function(t){s=n(t,s)}),new Au(s,u,a))},t.prototype.expandHtml=function(t,e){void 0===e&&(e=!1);var n=t.errors;if(0==n.length||e){var r=me(t.rootNodes);n.push.apply(n,r.errors),t=new Us(r.nodes,n)}return t},t.prototype.getInterpolationConfig=function(t){if(t.template)return us.fromArray(t.template.interpolation)},t.prototype._assertNoReferenceDuplicationOnTemplate=function(t,e){var n=[];t.filter(function(t){return!!t.references}).forEach(function(t){return t.references.forEach(function(t){var r=t.name;if(n.indexOf(r)<0)n.push(r);else{var o=new Pu('Reference "#'+r+'" is defined several times',t.sourceSpan,Ss.ERROR);e.push(o)}})})},t}();Ou.decorators=[{type:z}],Ou.ctorParameters=function(){return[{type:Jo},{type:gs},{type:tu},{type:qa},{type:e.ɵConsole},{type:Array,decorators:[{type:e.Optional},{type:e.Inject,args:[Tu]}]}]};var Mu=function(){function t(t,e,n,r,o,i,s){var a=this;this.config=t,this.providerViewContext=e,this._bindingParser=r,this._schemaRegistry=o,this._schemas=i,this._targetErrors=s,this.selectorMatcher=new Eo,this.directivesIndex=new Map,this.ngContentCount=0,this.contentQueryStartId=e.component.viewQueries.length+1,n.forEach(function(t,e){var n=Co.parse(t.selector);a.selectorMatcher.addSelectables(n,t),a.directivesIndex.set(t,e)})}return t.prototype.visitExpansion=function(t,e){return null},t.prototype.visitExpansionCase=function(t,e){return null},t.prototype.visitText=function(t,e){var n=e.findNgContentIndex(Eu),r=this._bindingParser.parseInterpolation(t.value,t.sourceSpan);return r?new Jr(r,n,t.sourceSpan):new Yr(t.value,n,t.sourceSpan)},t.prototype.visitAttribute=function(t,e){return new to(t.name,t.value,t.sourceSpan)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitElement=function(t,e){var n=this,r=this.contentQueryStartId,o=t.name,i=Me(t);if(i.type===gu.SCRIPT||i.type===gu.STYLE)return null;if(i.type===gu.STYLESHEET&&Te(i.hrefAttr))return null;var s=[],a=[],u=[],c=[],l=[],p=[],h=[],f=[],d=!1,y=[],m=Ve(t,this.config.enableLegacyTemplate,function(t,e){return n._reportError(t,e,Ss.WARNING)});t.attrs.forEach(function(t){var e,r,o=n._parseAttr(m,t,s,a,l,u,c),i=n._normalizeAttributeName(t.name);n.config.enableLegacyTemplate&&"template"==i?(n._reportError("The template attribute is deprecated. Use an ng-template element instead.",t.sourceSpan,Ss.WARNING),e=t.value):i.startsWith("*")&&(e=t.value,r=i.substring("*".length)+":");var v=null!=e;v&&(d&&n._reportError("Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *",t.sourceSpan),d=!0,n._bindingParser.parseInlineTemplateBinding(r,e,t.sourceSpan,h,p,f)),o||v||(y.push(n.visitAttribute(t,null)),s.push([t.name,t.value]))});var v=Ne(o,s),g=this._parseDirectives(this.selectorMatcher,v),_=g.directives,b=g.matchElement,w=[],C=new Set,E=this._createDirectiveAsts(m,t.name,_,a,u,t.sourceSpan,w,C),S=this._createElementPropertyAsts(t.name,a,C),x=e.isTemplateElement||d,T=new Ya(this.providerViewContext,e.providerContext,x,E,y,w,m,r,t.sourceSpan),P=lt(i.nonBindable?Du:this,t.children,Iu.create(m,E,m?e.providerContext:T));T.afterElement();var A,O=null!=i.projectAs?Co.parse(i.projectAs)[0]:v,M=e.findNgContentIndex(O);if(i.type===gu.NG_CONTENT)t.children&&!t.children.every(De)&&this._reportError("<ng-content> element cannot have content.",t.sourceSpan),A=new po(this.ngContentCount++,d?null:M,t.sourceSpan);else if(m)this._assertAllEventsPublishedByDirectives(E,l),this._assertNoComponentsNorElementBindingsOnTemplate(E,S,t.sourceSpan),A=new so(y,l,w,c,T.transformedDirectiveAsts,T.transformProviders,T.transformedHasViewContainer,T.queryMatches,P,d?null:M,t.sourceSpan);else{this._assertElementExists(b,t),this._assertOnlyOneComponent(E,t.sourceSpan);var R=d?null:e.findNgContentIndex(O);A=new io(o,y,S,l,w,T.transformedDirectiveAsts,T.transformProviders,T.transformedHasViewContainer,T.queryMatches,P,d?null:R,t.sourceSpan,t.endSourceSpan||null)}if(d){var k=this.contentQueryStartId,I=Ne(wu,h),N=this._parseDirectives(this.selectorMatcher,I).directives,D=new Set,j=this._createDirectiveAsts(!0,t.name,N,p,[],t.sourceSpan,[],D),L=this._createElementPropertyAsts(t.name,p,D);this._assertNoComponentsNorElementBindingsOnTemplate(j,L,t.sourceSpan);var V=new Ya(this.providerViewContext,e.providerContext,e.isTemplateElement,j,[],[],!0,k,t.sourceSpan);V.afterElement(),A=new so([],[],[],f,V.transformedDirectiveAsts,V.transformProviders,V.transformedHasViewContainer,V.queryMatches,[A],M,t.sourceSpan)}return A},t.prototype._parseAttr=function(t,e,n,r,o,i,s){var a=this._normalizeAttributeName(e.name),u=e.value,c=e.sourceSpan,l=a.match(bu),p=!1;if(null!==l)if(p=!0,null!=l[1])this._bindingParser.parsePropertyBinding(l[7],u,!1,c,n,r);else if(l[2])if(t){h=l[7];this._parseVariable(h,u,c,s)}else this._reportError('"let-" is only supported on template elements.',c);else if(l[3]){var h=l[7];this._parseReference(h,u,c,i)}else l[4]?this._bindingParser.parseEvent(l[7],u,c,n,o):l[5]?(this._bindingParser.parsePropertyBinding(l[7],u,!1,c,n,r),this._parseAssignmentEvent(l[7],u,c,n,o)):l[6]?this._bindingParser.parseLiteralAttr(a,u,c,n,r):l[8]?(this._bindingParser.parsePropertyBinding(l[8],u,!1,c,n,r),this._parseAssignmentEvent(l[8],u,c,n,o)):l[9]?this._bindingParser.parsePropertyBinding(l[9],u,!1,c,n,r):l[10]&&this._bindingParser.parseEvent(l[10],u,c,n,o);else p=this._bindingParser.parsePropertyInterpolation(a,u,c,n,r);return p||this._bindingParser.parseLiteralAttr(a,u,c,n,r),p},t.prototype._normalizeAttributeName=function(t){return/^data-/i.test(t)?t.substring(5):t},t.prototype._parseVariable=function(t,e,n,r){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in variable names',n),r.push(new oo(t,e,n))},t.prototype._parseReference=function(t,e,n,r){t.indexOf("-")>-1&&this._reportError('"-" is not allowed in reference names',n),r.push(new ku(t,e,n))},t.prototype._parseAssignmentEvent=function(t,e,n,r,o){this._bindingParser.parseEvent(t+"Change",e+"=$event",n,r,o)},t.prototype._parseDirectives=function(t,e){var n=this,r=new Array(this.directivesIndex.size),o=!1;return t.match(e,function(t,e){r[n.directivesIndex.get(e)]=e,o=o||t.hasElementSelector()}),{directives:r.filter(function(t){return!!t}),matchElement:o}},t.prototype._createDirectiveAsts=function(t,e,n,r,o,i,s,a){var u=this,c=new Set,l=null,p=n.map(function(t){var n=new Es(i.start,i.end,"Directive "+E(t.type));t.isComponent&&(l=t);var p=[],h=u._bindingParser.createDirectiveHostPropertyAsts(t,e,n);h=u._checkPropertiesInSchema(e,h);var f=u._bindingParser.createDirectiveHostEventAsts(t,n);u._createDirectivePropertyAsts(t.inputs,r,p,a),o.forEach(function(e){(0===e.value.length&&t.isComponent||t.exportAs==e.value)&&(s.push(new ro(e.name,de(t.type),e.sourceSpan)),c.add(e.name))});var d=u.contentQueryStartId;return u.contentQueryStartId+=t.queries.length,new uo(t,p,h,f,d,n)});return o.forEach(function(e){if(e.value.length>0)c.has(e.name)||u._reportError('There is no directive with "exportAs" set to "'+e.value+'"',e.sourceSpan);else if(!l){var n=null;t&&(n=ye(Ga.TemplateRef)),s.push(new ro(e.name,n,e.sourceSpan))}}),p},t.prototype._createDirectivePropertyAsts=function(t,e,n,r){if(t){var o=new Map;e.forEach(function(t){var e=o.get(t.name);e&&!e.isLiteral||o.set(t.name,t)}),Object.keys(t).forEach(function(e){var i=t[e],s=o.get(i);s&&(r.add(s.name),Le(s.expression)||n.push(new ao(e,s.name,s.expression,s.sourceSpan)))})}},t.prototype._createElementPropertyAsts=function(t,e,n){var r=this,o=[];return e.forEach(function(e){e.isLiteral||n.has(e.name)||o.push(r._bindingParser.createElementPropertyAst(t,e))}),this._checkPropertiesInSchema(t,o)},t.prototype._findComponentDirectives=function(t){return t.filter(function(t){return t.directive.isComponent})},t.prototype._findComponentDirectiveNames=function(t){return this._findComponentDirectives(t).map(function(t){return E(t.directive.type)})},t.prototype._assertOnlyOneComponent=function(t,e){var n=this._findComponentDirectiveNames(t);n.length>1&&this._reportError("More than one component matched on this element.\nMake sure that only one component's selector can match a given element.\nConflicting components: "+n.join(","),e)},t.prototype._assertElementExists=function(t,e){var n=e.name.replace(/^:xhtml:/,"");if(!t&&!this._schemaRegistry.hasElement(n,this._schemas)){var r="'"+n+"' is not a known element:\n";r+="1. If '"+n+"' is an Angular component, then verify that it is part of this module.\n",n.indexOf("-")>-1?r+="2. If '"+n+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.":r+="2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.",this._reportError(r,e.sourceSpan)}},t.prototype._assertNoComponentsNorElementBindingsOnTemplate=function(t,e,n){var r=this,o=this._findComponentDirectiveNames(t);o.length>0&&this._reportError("Components on an embedded template: "+o.join(","),n),e.forEach(function(t){r._reportError("Property binding "+t.name+' not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "@NgModule.declarations".',n)})},t.prototype._assertAllEventsPublishedByDirectives=function(t,e){var n=this,r=new Set;t.forEach(function(t){Object.keys(t.directive.outputs).forEach(function(e){var n=t.directive.outputs[e];r.add(n)})}),e.forEach(function(t){null==t.target&&r.has(t.name)||n._reportError("Event binding "+t.fullName+' not emitted by any directive on an embedded template. Make sure that the event name is spelled correctly and all directives are listed in the "@NgModule.declarations".',t.sourceSpan)})},t.prototype._checkPropertiesInSchema=function(t,e){var n=this;return e.filter(function(e){if(e.type===ho.Property&&!n._schemaRegistry.hasProperty(t,e.name,n._schemas)){var r="Can't bind to '"+e.name+"' since it isn't a known property of '"+t+"'.";t.startsWith("ng-")?r+="\n1. If '"+e.name+"' is an Angular directive, then add 'CommonModule' to the '@NgModule.imports' of this component.\n2. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.":t.indexOf("-")>-1&&(r+="\n1. If '"+t+"' is an Angular component and it has '"+e.name+"' input, then verify that it is part of this module.\n2. If '"+t+"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.\n3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component."),n._reportError(r,e.sourceSpan)}return!Le(e.value)})},t.prototype._reportError=function(t,e,n){void 0===n&&(n=Ss.ERROR),this._targetErrors.push(new xs(e,t,n))},t}(),Ru=function(){function t(){}return t.prototype.visitElement=function(t,e){var n=Me(t);if(n.type===gu.SCRIPT||n.type===gu.STYLE||n.type===gu.STYLESHEET)return null;var r=t.attrs.map(function(t){return[t.name,t.value]}),o=Ne(t.name,r),i=e.findNgContentIndex(o),s=lt(this,t.children,Nu);return new io(t.name,lt(this,t.attrs),[],[],[],[],[],!1,[],s,i,t.sourceSpan,t.endSourceSpan)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitAttribute=function(t,e){return new to(t.name,t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){var n=e.findNgContentIndex(Eu);return new Yr(t.value,n,t.sourceSpan)},t.prototype.visitExpansion=function(t,e){return t},t.prototype.visitExpansionCase=function(t,e){return t},t}(),ku=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t}(),Iu=function(){function t(t,e,n,r){this.isTemplateElement=t,this._ngContentIndexMatcher=e,this._wildcardNgContentIndex=n,this.providerContext=r}return t.create=function(e,n,r){var o=new Eo,i=null,s=n.find(function(t){return t.directive.isComponent});if(s)for(var a=s.directive.template.ngContentSelectors,u=0;u<a.length;u++)"*"===a[u]?i=u:o.addSelectables(Co.parse(a[u]),u);return new t(e,o,i,r)},t.prototype.findNgContentIndex=function(t){var e=[];return this._ngContentIndexMatcher.match(t,function(t,n){e.push(n)}),e.sort(),null!=this._wildcardNgContentIndex&&e.push(this._wildcardNgContentIndex),e.length>0?e[0]:null},t}(),Nu=new Iu(!0,new Eo,null,null),Du=new Ru,ju=function(){function t(){}return t.prototype.get=function(t){return null},t}(),Lu={provide:e.PACKAGE_ROOT_URL,useValue:"/"},Vu=function(){function t(t){void 0===t&&(t=null),this._packagePrefix=t}return t.prototype.resolve=function(t,e){var n=e;null!=t&&t.length>0&&(n=We(t,n));var r=qe(n),o=this._packagePrefix;if(null!=o&&null!=r&&"package"==r[Uu.Scheme]){var i=r[Uu.Path];return o=o.replace(/\/+$/,""),i=i.replace(/^\/+/,""),o+"/"+i}return n},t}();Vu.decorators=[{type:z}],Vu.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[e.PACKAGE_ROOT_URL]}]}]};var Fu=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),Uu={};Uu.Scheme=1,Uu.UserInfo=2,Uu.Domain=3,Uu.Port=4,Uu.Path=5,Uu.QueryData=6,Uu.Fragment=7,Uu[Uu.Scheme]="Scheme",Uu[Uu.UserInfo]="UserInfo",Uu[Uu.Domain]="Domain",Uu[Uu.Port]="Port",Uu[Uu.Path]="Path",Uu[Uu.QueryData]="QueryData",Uu[Uu.Fragment]="Fragment";var Hu=function(){function t(t,e,n,r){this._resourceLoader=t,this._urlResolver=e,this._htmlParser=n,this._config=r,this._resourceLoaderCache=new Map}return t.prototype.clearCache=function(){this._resourceLoaderCache.clear()},t.prototype.clearCacheFor=function(t){var e=this;if(t.isComponent){var n=t.template;this._resourceLoaderCache.delete(n.templateUrl),n.externalStylesheets.forEach(function(t){e._resourceLoaderCache.delete(t.moduleUrl)})}},t.prototype._fetch=function(t){var e=this._resourceLoaderCache.get(t);return e||(e=this._resourceLoader.get(t),this._resourceLoaderCache.set(t,e)),e},t.prototype.normalizeTemplate=function(t){var n=this,r=null,o=void 0;if(y(t.template)){if(y(t.templateUrl))throw v("'"+e.ɵstringify(t.componentType)+"' component cannot define both template and templateUrl");if("string"!=typeof t.template)throw v("The template specified for component "+e.ɵstringify(t.componentType)+" is not a string");r=this.normalizeTemplateSync(t),o=Promise.resolve(r)}else{if(!y(t.templateUrl))throw v("No template specified for component "+e.ɵstringify(t.componentType));if("string"!=typeof t.templateUrl)throw v("The templateUrl specified for component "+e.ɵstringify(t.componentType)+" is not a string");o=this.normalizeTemplateAsync(t)}return r&&0===r.styleUrls.length?new Oo(r):new Oo(null,o.then(function(t){return n.normalizeExternalStylesheets(t)}))},t.prototype.normalizeTemplateSync=function(t){return this.normalizeLoadedTemplate(t,t.template,t.moduleUrl)},t.prototype.normalizeTemplateAsync=function(t){var e=this,n=this._urlResolver.resolve(t.moduleUrl,t.templateUrl);return this._fetch(n).then(function(r){return e.normalizeLoadedTemplate(t,r,n)})},t.prototype.normalizeLoadedTemplate=function(t,n,r){var o=!!t.template,i=us.fromArray(t.interpolation),s=this._htmlParser.parse(n,j({reference:t.ngModuleType},{type:{reference:t.componentType}},{isInline:o,templateUrl:r}),!0,i);if(s.errors.length>0)throw v("Template parse errors:\n"+s.errors.join("\n"));var a=this.normalizeStylesheet(new Wo({styles:t.styles,styleUrls:t.styleUrls,moduleUrl:t.moduleUrl})),u=new Bu;lt(u,s.rootNodes);var c=this.normalizeStylesheet(new Wo({styles:u.styles,styleUrls:u.styleUrls,moduleUrl:r})),l=t.encapsulation;null==l&&(l=this._config.defaultEncapsulation);var p=a.styles.concat(c.styles),h=a.styleUrls.concat(c.styleUrls);return l===e.ViewEncapsulation.Emulated&&0===p.length&&0===h.length&&(l=e.ViewEncapsulation.None),new $o({encapsulation:l,template:n,templateUrl:r,styles:p,styleUrls:h,ngContentSelectors:u.ngContentSelectors,animations:t.animations,interpolation:t.interpolation,isInline:o,externalStylesheets:[]})},t.prototype.normalizeExternalStylesheets=function(t){return this._loadMissingExternalStylesheets(t.styleUrls).then(function(e){return new $o({encapsulation:t.encapsulation,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,externalStylesheets:e,ngContentSelectors:t.ngContentSelectors,animations:t.animations,interpolation:t.interpolation,isInline:t.isInline})})},t.prototype._loadMissingExternalStylesheets=function(t,e){var n=this;return void 0===e&&(e=new Map),Promise.all(t.filter(function(t){return!e.has(t)}).map(function(t){return n._fetch(t).then(function(r){var o=n.normalizeStylesheet(new Wo({styles:[r],moduleUrl:t}));return e.set(t,o),n._loadMissingExternalStylesheets(o.styleUrls,e)})})).then(function(t){return Array.from(e.values())})},t.prototype.normalizeStylesheet=function(t){var e=this,n=t.moduleUrl,r=t.styleUrls.filter(Te).map(function(t){return e._urlResolver.resolve(n,t)}),o=t.styles.map(function(t){var o=Pe(e._urlResolver,n,t);return r.push.apply(r,o.styleUrls),o.style});return new Wo({styles:o,styleUrls:r,moduleUrl:n})},t}();Hu.decorators=[{type:z}],Hu.ctorParameters=function(){return[{type:ju},{type:Vu},{type:Ua},{type:Jo}]};var Bu=function(){function t(){this.ngContentSelectors=[],this.styles=[],this.styleUrls=[],this.ngNonBindableStackCount=0}return t.prototype.visitElement=function(t,e){var n=Me(t);switch(n.type){case gu.NG_CONTENT:0===this.ngNonBindableStackCount&&this.ngContentSelectors.push(n.selectAttr);break;case gu.STYLE:var r="";t.children.forEach(function(t){t instanceof Ts&&(r+=t.value)}),this.styles.push(r);break;case gu.STYLESHEET:this.styleUrls.push(n.hrefAttr)}return n.nonBindable&&this.ngNonBindableStackCount++,lt(this,t.children),n.nonBindable&&this.ngNonBindableStackCount--,null},t.prototype.visitExpansion=function(t,e){lt(this,t.cases)},t.prototype.visitExpansionCase=function(t,e){lt(this,t.expression)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitAttribute=function(t,e){return null},t.prototype.visitText=function(t,e){return null},t}(),qu=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},zu=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isDirective=function(t){var n=this._reflector.annotations(e.resolveForwardRef(t));return n&&n.some($e)},t.prototype.resolve=function(t,n){void 0===n&&(n=!0);var r=this._reflector.annotations(e.resolveForwardRef(t));if(r){var o=Ke(r,$e);if(o){var i=this._reflector.propMetadata(t);return this._mergeWithPropertyMetadata(o,i,t)}}if(n)throw new Error("No Directive annotation found on "+e.ɵstringify(t));return null},t.prototype._mergeWithPropertyMetadata=function(t,n,r){var o=[],i=[],s={},a={};return Object.keys(n).forEach(function(t){var r=Ke(n[t],function(t){return t instanceof e.Input});r&&(r.bindingPropertyName?o.push(t+": "+r.bindingPropertyName):o.push(t));var u=Ke(n[t],function(t){return t instanceof e.Output});u&&(u.bindingPropertyName?i.push(t+": "+u.bindingPropertyName):i.push(t)),n[t].filter(function(t){return t&&t instanceof e.HostBinding}).forEach(function(e){if(e.hostPropertyName){var n=e.hostPropertyName[0];if("("===n)throw new Error("@HostBinding can not bind to events. Use @HostListener instead.");if("["===n)throw new Error("@HostBinding parameter should be a property name, 'class.<name>', or 'attr.<name>'.");s["["+e.hostPropertyName+"]"]=t}else s["["+t+"]"]=t}),n[t].filter(function(t){return t&&t instanceof e.HostListener}).forEach(function(e){var n=e.args||[];s["("+e.eventName+")"]=t+"("+n.join(",")+")"});var c=Ke(n[t],function(t){return t instanceof e.Query});c&&(a[t]=c)}),this._merge(t,o,i,s,a,r)},t.prototype._extractPublicName=function(t){return p(t,[null,t])[1].trim()},t.prototype._dedupeBindings=function(t){for(var e=new Set,n=[],r=t.length-1;r>=0;r--){var o=t[r],i=this._extractPublicName(o);e.has(i)||(e.add(i),n.push(o))}return n.reverse()},t.prototype._merge=function(t,n,r,o,i,s){var a=this._dedupeBindings(t.inputs?t.inputs.concat(n):n),u=this._dedupeBindings(t.outputs?t.outputs.concat(r):r),c=t.host?qu({},t.host,o):o,l=t.queries?qu({},t.queries,i):i;return t instanceof e.Component?new e.Component({selector:t.selector,inputs:a,outputs:u,host:c,exportAs:t.exportAs,moduleId:t.moduleId,queries:l,changeDetection:t.changeDetection,providers:t.providers,viewProviders:t.viewProviders,entryComponents:t.entryComponents,template:t.template,templateUrl:t.templateUrl,styles:t.styles,styleUrls:t.styleUrls,encapsulation:t.encapsulation,animations:t.animations,interpolation:t.interpolation}):new e.Directive({selector:t.selector,inputs:a,outputs:u,host:c,exportAs:t.exportAs,queries:l,providers:t.providers})},t}();zu.decorators=[{type:z}],zu.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var Gu=/(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/,Wu=/\.ngfactory\./,$u=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isNgModule=function(t){return this._reflector.annotations(t).some(nn)},t.prototype.resolve=function(t,n){void 0===n&&(n=!0);var r=Ke(this._reflector.annotations(t),nn);if(r)return r;if(n)throw new Error("No NgModule metadata found for '"+e.ɵstringify(t)+"'.");return null},t}();$u.decorators=[{type:z}],$u.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var Ku=function(){function t(t){void 0===t&&(t=e.ɵreflector),this._reflector=t}return t.prototype.isPipe=function(t){var n=this._reflector.annotations(e.resolveForwardRef(t));return n&&n.some(rn)},t.prototype.resolve=function(t,n){void 0===n&&(n=!0);var r=this._reflector.annotations(e.resolveForwardRef(t));if(r){var o=Ke(r,rn);if(o)return o}if(n)throw new Error("No Pipe decorator found on "+e.ɵstringify(t));return null},t}();Ku.decorators=[{type:z}],Ku.ctorParameters=function(){return[{type:e.ɵReflectorReader}]};var Qu=function(){function t(){}return t.prototype.isLibraryFile=function(t){return!1},t.prototype.getLibraryFileName=function(t){return null},t.prototype.resolveSummary=function(t){return null},t.prototype.getSymbolsOf=function(t){return[]},t.prototype.getImportAs=function(t){return t},t}();Qu.decorators=[{type:z}],Qu.ctorParameters=function(){return[]};var Xu=new e.InjectionToken("ErrorCollector"),Zu=function(){function t(t,n,r,o,i,s,a,u,c,l,p){void 0===l&&(l=e.ɵreflector),this._config=t,this._ngModuleResolver=n,this._directiveResolver=r,this._pipeResolver=o,this._summaryResolver=i,this._schemaRegistry=s,this._directiveNormalizer=a,this._console=u,this._staticSymbolCache=c,this._reflector=l,this._errorCollector=p,this._nonNormalizedDirectiveCache=new Map,this._directiveCache=new Map,this._summaryCache=new Map,this._pipeCache=new Map,this._ngModuleCache=new Map,this._ngModuleOfTypes=new Map}return t.prototype.clearCacheFor=function(t){var e=this._directiveCache.get(t);this._directiveCache.delete(t),this._nonNormalizedDirectiveCache.delete(t),this._summaryCache.delete(t),this._pipeCache.delete(t),this._ngModuleOfTypes.delete(t),this._ngModuleCache.clear(),e&&this._directiveNormalizer.clearCacheFor(e)},t.prototype.clearCache=function(){this._directiveCache.clear(),this._nonNormalizedDirectiveCache.clear(),this._summaryCache.clear(),this._pipeCache.clear(),this._ngModuleCache.clear(),this._ngModuleOfTypes.clear(),this._directiveNormalizer.clearCache()},t.prototype._createProxyClass=function(t,n){var r=null,o=function(){if(!r)throw new Error("Illegal state: Class "+n+" for type "+e.ɵstringify(t)+" is not compiled yet!");return r.apply(this,arguments)};return o.setDelegate=function(t){r=t,o.prototype=t.prototype},o.overriddenName=n,o},t.prototype.getGeneratedClass=function(t,e){return t instanceof fo?this._staticSymbolCache.get(Qe(t.filePath),e):this._createProxyClass(t,e)},t.prototype.getComponentViewClass=function(t){return this.getGeneratedClass(t,x(t,0))},t.prototype.getHostComponentViewClass=function(t){return this.getGeneratedClass(t,P(t))},t.prototype.getHostComponentType=function(t){var e=E({reference:t})+"_Host";if(t instanceof fo)return this._staticSymbolCache.get(t.filePath,e);var n=function(){};return n.overriddenName=e,n},t.prototype.getRendererType=function(t){return t instanceof fo?this._staticSymbolCache.get(Qe(t.filePath),T(t)):{}},t.prototype.getComponentFactory=function(t,n,r,o){if(n instanceof fo)return this._staticSymbolCache.get(Qe(n.filePath),O(n));var i=this.getHostComponentViewClass(n);return e.ɵccf(t,n,i,r,o,[])},t.prototype.initComponentFactory=function(t,e){t instanceof fo||(n=t.ngContentSelectors).push.apply(n,e);var n},t.prototype._loadSummary=function(t,e){var n=this._summaryCache.get(t);if(!n){var r=this._summaryResolver.resolveSummary(t);n=r?r.type:null,this._summaryCache.set(t,n||null)}return n&&n.summaryKind===e?n:null},t.prototype._loadDirectiveMetadata=function(t,n,r){var o=this;if(this._directiveCache.has(n))return null;n=e.resolveForwardRef(n);var i=this.getNonNormalizedDirectiveMetadata(n),s=i.annotation,a=i.metadata,u=function(t){var e=new Ko({isHost:!1,type:a.type,isComponent:a.isComponent,selector:a.selector,exportAs:a.exportAs,changeDetection:a.changeDetection,inputs:a.inputs,outputs:a.outputs,hostListeners:a.hostListeners,hostProperties:a.hostProperties,hostAttributes:a.hostAttributes,providers:a.providers,viewProviders:a.viewProviders,queries:a.queries,viewQueries:a.viewQueries,entryComponents:a.entryComponents,componentViewType:a.componentViewType,rendererType:a.rendererType,componentFactory:a.componentFactory,template:t});return t&&o.initComponentFactory(a.componentFactory,t.ngContentSelectors),o._directiveCache.set(n,e),o._summaryCache.set(n,e.toSummary()),e};if(a.isComponent){var c=a.template,l=this._directiveNormalizer.normalizeTemplate({ngModuleType:t,componentType:n,moduleUrl:cn(this._reflector,n,s),encapsulation:c.encapsulation,template:c.template,templateUrl:c.templateUrl,styles:c.styles,styleUrls:c.styleUrls,animations:c.animations,interpolation:c.interpolation});return l.syncResult?(u(l.syncResult),null):r?(this._reportError(hn(n),n),null):l.asyncResult.then(u)}return u(null),null},t.prototype.getNonNormalizedDirectiveMetadata=function(t){var n=this;if(!(t=e.resolveForwardRef(t)))return null;var r=this._nonNormalizedDirectiveCache.get(t);if(r)return r;var o=this._directiveResolver.resolve(t,!1);if(!o)return null;var i=void 0;if(o instanceof e.Component){G("styles",o.styles),G("styleUrls",o.styleUrls),W("interpolation",o.interpolation);var s=o.animations;i=new $o({encapsulation:m(o.encapsulation),template:m(o.template),templateUrl:m(o.templateUrl),styles:o.styles||[],styleUrls:o.styleUrls||[],animations:s||[],interpolation:m(o.interpolation),isInline:!!o.template,externalStylesheets:[],ngContentSelectors:[]})}var a=null,u=[],c=[],l=o.selector;o instanceof e.Component?(a=o.changeDetection,o.viewProviders&&(u=this._getProvidersMetadata(o.viewProviders,c,'viewProviders for "'+pn(t)+'"',[],t)),o.entryComponents&&(c=an(o.entryComponents).map(function(t){return n._getEntryComponentMetadata(t)}).concat(c)),l||(l=this._schemaRegistry.getDefaultComponentElementName())):l||(this._reportError(v("Directive "+pn(t)+" has no selector, please add it!"),t),l="error");var p=[];null!=o.providers&&(p=this._getProvidersMetadata(o.providers,c,'providers for "'+pn(t)+'"',[],t));var h=[],f=[];null!=o.queries&&(h=this._getQueriesMetadata(o.queries,!1,t),f=this._getQueriesMetadata(o.queries,!0,t));var d=Ko.create({isHost:!1,selector:l,exportAs:m(o.exportAs),isComponent:!!i,type:this._getTypeMetadata(t),template:i,changeDetection:a,inputs:o.inputs||[],outputs:o.outputs||[],host:o.host||{},providers:p||[],viewProviders:u||[],queries:h||[],viewQueries:f||[],entryComponents:c,componentViewType:i?this.getComponentViewClass(t):null,rendererType:i?this.getRendererType(t):null,componentFactory:null});return i&&(d.componentFactory=this.getComponentFactory(l,t,d.inputs,d.outputs)),r={metadata:d,annotation:o},this._nonNormalizedDirectiveCache.set(t,r),r},t.prototype.getDirectiveMetadata=function(t){var e=this._directiveCache.get(t);return e||this._reportError(v("Illegal state: getDirectiveMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Directive "+pn(t)+"."),t),e},t.prototype.getDirectiveSummary=function(t){var e=this._loadSummary(t,Go.Directive);return e||this._reportError(v("Illegal state: Could not load the summary for directive "+pn(t)+"."),t),e},t.prototype.isDirective=function(t){return this._directiveResolver.isDirective(t)},t.prototype.isPipe=function(t){return this._pipeResolver.isPipe(t)},t.prototype.getNgModuleSummary=function(t){var e=this._loadSummary(t,Go.NgModule);if(!e){var n=this.getNgModuleMetadata(t,!1);(e=n?n.toSummary():null)&&this._summaryCache.set(t,e)}return e},t.prototype.loadNgModuleDirectiveAndPipeMetadata=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=this.getNgModuleMetadata(t,n),i=[];return o&&(o.declaredDirectives.forEach(function(n){var o=r._loadDirectiveMetadata(t,n.reference,e);o&&i.push(o)}),o.declaredPipes.forEach(function(t){return r._loadPipeMetadata(t.reference)})),Promise.all(i)},t.prototype.getNgModuleMetadata=function(t,n){var r=this;void 0===n&&(n=!0),t=e.resolveForwardRef(t);var o=this._ngModuleCache.get(t);if(o)return o;var i=this._ngModuleResolver.resolve(t,n);if(!i)return null;var s=[],a=[],u=[],c=[],l=[],p=[],h=[],f=[],d=[];i.imports&&an(i.imports).forEach(function(e){var n=void 0;if(un(e))n=e;else if(e&&e.ngModule){var o=e;n=o.ngModule,o.providers&&p.push.apply(p,r._getProvidersMetadata(o.providers,h,"provider for the NgModule '"+pn(n)+"'",[],e))}if(!n)return void r._reportError(v("Unexpected value '"+pn(e)+"' imported by the module '"+pn(t)+"'"),t);if(!r._checkSelfImport(t,n)){var i=r.getNgModuleSummary(n);if(!i)return void r._reportError(v("Unexpected "+r._getTypeDescriptor(e)+" '"+pn(e)+"' imported by the module '"+pn(t)+"'. Please add a @NgModule annotation."),t);c.push(i)}}),i.exports&&an(i.exports).forEach(function(e){if(!un(e))return void r._reportError(v("Unexpected value '"+pn(e)+"' exported by the module '"+pn(t)+"'"),t);var n=r.getNgModuleSummary(e);n?l.push(n):a.push(r._getIdentifierMetadata(e))});var y=this._getTransitiveNgModuleMetadata(c,l);i.declarations&&an(i.declarations).forEach(function(e){if(!un(e))return void r._reportError(v("Unexpected value '"+pn(e)+"' declared by the module '"+pn(t)+"'"),t);var n=r._getIdentifierMetadata(e);if(r._directiveResolver.isDirective(e))y.addDirective(n),s.push(n),r._addTypeToModule(e,t);else{if(!r._pipeResolver.isPipe(e))return void r._reportError(v("Unexpected "+r._getTypeDescriptor(e)+" '"+pn(e)+"' declared by the module '"+pn(t)+"'. Please add a @Pipe/@Directive/@Component annotation."),t);y.addPipe(n),y.pipes.push(n),u.push(n),r._addTypeToModule(e,t)}});var m=[],g=[];return a.forEach(function(e){if(y.directivesSet.has(e.reference))m.push(e),y.addExportedDirective(e);else{if(!y.pipesSet.has(e.reference))return void r._reportError(v("Can't export "+r._getTypeDescriptor(e.reference)+" "+pn(e.reference)+" from "+pn(t)+" as it was neither declared nor imported!"),t);g.push(e),y.addExportedPipe(e)}}),i.providers&&p.push.apply(p,this._getProvidersMetadata(i.providers,h,"provider for the NgModule '"+pn(t)+"'",[],t)),i.entryComponents&&h.push.apply(h,an(i.entryComponents).map(function(t){return r._getEntryComponentMetadata(t)})),i.bootstrap&&an(i.bootstrap).forEach(function(e){if(!un(e))return void r._reportError(v("Unexpected value '"+pn(e)+"' used in the bootstrap property of module '"+pn(t)+"'"),t);f.push(r._getIdentifierMetadata(e))}),h.push.apply(h,f.map(function(t){return r._getEntryComponentMetadata(t.reference)})),i.schemas&&d.push.apply(d,an(i.schemas)),o=new Xo({type:this._getTypeMetadata(t),providers:p,entryComponents:h,bootstrapComponents:f,schemas:d,declaredDirectives:s,exportedDirectives:m,declaredPipes:u,exportedPipes:g,importedModules:c,exportedModules:l,transitiveModule:y,id:i.id||null}),h.forEach(function(t){return y.addEntryComponent(t)}),p.forEach(function(t){return y.addProvider(t,o.type)}),y.addModule(o.type),this._ngModuleCache.set(t,o),o},t.prototype._checkSelfImport=function(t,e){return t===e&&(this._reportError(v("'"+pn(t)+"' module can't import itself"),t),!0)},t.prototype._getTypeDescriptor=function(t){return this._directiveResolver.isDirective(t)?"directive":this._pipeResolver.isPipe(t)?"pipe":this._ngModuleResolver.isNgModule(t)?"module":t.provide?"provider":"value"},t.prototype._addTypeToModule=function(t,e){var n=this._ngModuleOfTypes.get(t);if(n&&n!==e)return void this._reportError(v("Type "+pn(t)+" is part of the declarations of 2 modules: "+pn(n)+" and "+pn(e)+"! Please consider moving "+pn(t)+" to a higher module that imports "+pn(n)+" and "+pn(e)+". You can also create a new NgModule that exports and includes "+pn(t)+" then import that NgModule in "+pn(n)+" and "+pn(e)+"."),e);this._ngModuleOfTypes.set(t,e)},t.prototype._getTransitiveNgModuleMetadata=function(t,e){var n=new Zo,r=new Map;return t.concat(e).forEach(function(t){t.modules.forEach(function(t){return n.addModule(t)}),t.entryComponents.forEach(function(t){return n.addEntryComponent(t)});var e=new Set;t.providers.forEach(function(t){var o=R(t.provider.token),i=r.get(o);i||(i=new Set,r.set(o,i));var s=t.module.reference;!e.has(o)&&i.has(s)||(i.add(s),e.add(o),n.addProvider(t.provider,t.module))})}),e.forEach(function(t){t.exportedDirectives.forEach(function(t){return n.addExportedDirective(t)}),t.exportedPipes.forEach(function(t){return n.addExportedPipe(t)})}),t.forEach(function(t){t.exportedDirectives.forEach(function(t){return n.addDirective(t)}),t.exportedPipes.forEach(function(t){return n.addPipe(t)})}),n},t.prototype._getIdentifierMetadata=function(t){return t=e.resolveForwardRef(t),{reference:t}},t.prototype.isInjectable=function(t){return this._reflector.annotations(t).some(function(t){return t.constructor===e.Injectable})},t.prototype.getInjectableSummary=function(t){return{summaryKind:Go.Injectable,type:this._getTypeMetadata(t,null,!1)}},t.prototype._getInjectableMetadata=function(t,e){void 0===e&&(e=null);var n=this._loadSummary(t,Go.Injectable);return n?n.type:this._getTypeMetadata(t,e)},t.prototype._getTypeMetadata=function(t,n,r){void 0===n&&(n=null),void 0===r&&(r=!0);var o=this._getIdentifierMetadata(t);return{reference:o.reference,diDeps:this._getDependenciesMetadata(o.reference,n,r),lifecycleHooks:e.ɵLIFECYCLE_HOOKS_VALUES.filter(function(t){return tn(t,o.reference)})}},t.prototype._getFactoryMetadata=function(t,n){return void 0===n&&(n=null),t=e.resolveForwardRef(t),{reference:t,diDeps:this._getDependenciesMetadata(t,n)}},t.prototype.getPipeMetadata=function(t){var e=this._pipeCache.get(t);return e||this._reportError(v("Illegal state: getPipeMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Pipe "+pn(t)+"."),t),e||null},t.prototype.getPipeSummary=function(t){var e=this._loadSummary(t,Go.Pipe);return e||this._reportError(v("Illegal state: Could not load the summary for pipe "+pn(t)+"."),t),e},t.prototype.getOrLoadPipeMetadata=function(t){var e=this._pipeCache.get(t);return e||(e=this._loadPipeMetadata(t)),e},t.prototype._loadPipeMetadata=function(t){t=e.resolveForwardRef(t);var n=this._pipeResolver.resolve(t),r=new Qo({type:this._getTypeMetadata(t),name:n.name,pure:!!n.pure});return this._pipeCache.set(t,r),this._summaryCache.set(t,r.toSummary()),r},t.prototype._getDependenciesMetadata=function(t,n,r){var o=this;void 0===r&&(r=!0);var i=!1,s=(n||this._reflector.parameters(t)||[]).map(function(t){var n=!1,r=!1,s=!1,a=!1,u=!1,c=null;return Array.isArray(t)?t.forEach(function(t){t instanceof e.Host?r=!0:t instanceof e.Self?s=!0:t instanceof e.SkipSelf?a=!0:t instanceof e.Optional?u=!0:t instanceof e.Attribute?(n=!0,c=t.attributeName):t instanceof e.Inject?c=t.token:t instanceof e.InjectionToken?c=t:un(t)&&null==c&&(c=t)}):c=t,null==c?(i=!0,null):{isAttribute:n,isHost:r,isSelf:s,isSkipSelf:a,isOptional:u,token:o._getTokenMetadata(c)}});if(i){var a=s.map(function(t){return t?pn(t.token):"?"}).join(", "),u="Can't resolve all parameters for "+pn(t)+": ("+a+").";r?this._reportError(v(u),t):this._console.warn("Warning: "+u+" This will become an error in Angular v5.x")}return s},t.prototype._getTokenMetadata=function(t){return"string"==typeof(t=e.resolveForwardRef(t))?{value:t}:{identifier:{reference:t}}},t.prototype._getProvidersMetadata=function(t,n,r,o,i){var s=this;return void 0===o&&(o=[]),t.forEach(function(a,u){if(Array.isArray(a))s._getProvidersMetadata(a,n,r,o);else{var c=void 0;if((a=e.resolveForwardRef(a))&&"object"==typeof a&&a.hasOwnProperty("provide"))s._validateProvider(a),c=new Yo(a.provide,a);else{if(!un(a)){if(void 0===a)return void s._reportError(v("Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files."));var l=t.reduce(function(t,e,n){return n<u?t.push(""+pn(e)):n==u?t.push("?"+pn(e)+"?"):n==u+1&&t.push("..."),t},[]).join(", ");return void s._reportError(v("Invalid "+(r||"provider")+" - only instances of Provider and Type are allowed, got: ["+l+"]"),i)}c=new Yo(a,{useClass:a})}c.token===he(Ga.ANALYZE_FOR_ENTRY_COMPONENTS)?n.push.apply(n,s._getEntryComponentsFromProvider(c,i)):o.push(s.getProviderMetadata(c))}}),o},t.prototype._validateProvider=function(t){t.hasOwnProperty("useClass")&&null==t.useClass&&this._reportError(v("Invalid provider for "+pn(t.provide)+". useClass cannot be "+t.useClass+".\n           Usually it happens when:\n           1. There's a circular dependency (might be caused by using index.ts (barrel) files).\n           2. Class was used before it was declared. Use forwardRef in this case."))},t.prototype._getEntryComponentsFromProvider=function(t,e){var n=this,r=[],o=[];return t.useFactory||t.useExisting||t.useClass?(this._reportError(v("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports useValue!"),e),[]):t.multi?(ln(t.useValue,o),o.forEach(function(t){var e=n._getEntryComponentMetadata(t.reference,!1);e&&r.push(e)}),r):(this._reportError(v("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports 'multi = true'!"),e),[])},t.prototype._getEntryComponentMetadata=function(t,e){void 0===e&&(e=!0);var n=this.getNonNormalizedDirectiveMetadata(t);if(n&&n.metadata.isComponent)return{componentType:t,componentFactory:n.metadata.componentFactory};var r=this._loadSummary(t,Go.Directive);if(r&&r.isComponent)return{componentType:t,componentFactory:r.componentFactory};if(e)throw v(t.name+" cannot be used as an entry component.");return null},t.prototype.getProviderMetadata=function(t){var e=void 0,n=null,r=null,o=this._getTokenMetadata(t.token);return t.useClass?(e=(n=this._getInjectableMetadata(t.useClass,t.dependencies)).diDeps,t.token===t.useClass&&(o={identifier:n})):t.useFactory&&(e=(r=this._getFactoryMetadata(t.useFactory,t.dependencies)).diDeps),{token:o,useClass:n,useValue:t.useValue,useFactory:r,useExisting:t.useExisting?this._getTokenMetadata(t.useExisting):void 0,deps:e,multi:t.multi}},t.prototype._getQueriesMetadata=function(t,e,n){var r=this,o=[];return Object.keys(t).forEach(function(i){var s=t[i];s.isViewQuery===e&&o.push(r._getQueryMetadata(s,i,n))}),o},t.prototype._queryVarBindings=function(t){return t.split(/\s*,\s*/)},t.prototype._getQueryMetadata=function(t,e,n){var r,o=this;return"string"==typeof t.selector?r=this._queryVarBindings(t.selector).map(function(t){return o._getTokenMetadata(t)}):t.selector?r=[this._getTokenMetadata(t.selector)]:(this._reportError(v("Can't construct a query for the property \""+e+'" of "'+pn(n)+"\" since the query selector wasn't defined."),n),r=[]),{selectors:r,first:t.first,descendants:t.descendants,propertyName:e,read:t.read?this._getTokenMetadata(t.read):null}},t.prototype._reportError=function(t,e,n){if(!this._errorCollector)throw t;this._errorCollector(t,e),n&&this._errorCollector(t,n)},t}();Zu.decorators=[{type:z}],Zu.ctorParameters=function(){return[{type:Jo},{type:$u},{type:zu},{type:Ku},{type:Qu},{type:tu},{type:Hu},{type:e.ɵConsole},{type:yo,decorators:[{type:e.Optional}]},{type:e.ɵReflectorReader},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[Xu]}]}]};var Yu=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.visitOther=function(t,e){e.push({reference:t})},e}(Ao),Ju={};Ju.Const=0,Ju[Ju.Const]="Const";var tc=function(){function t(t){void 0===t&&(t=null),this.modifiers=t,t||(this.modifiers=[])}return t.prototype.visitType=function(t,e){},t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),ec={};ec.Dynamic=0,ec.Bool=1,ec.String=2,ec.Int=3,ec.Number=4,ec.Function=5,ec.Inferred=6,ec[ec.Dynamic]="Dynamic",ec[ec.Bool]="Bool",ec[ec.String]="String",ec[ec.Int]="Int",ec[ec.Number]="Number",ec[ec.Function]="Function",ec[ec.Inferred]="Inferred";var nc=function(t){function e(e,n){void 0===n&&(n=null);var r=t.call(this,n)||this;return r.name=e,r}return Xr(e,t),e.prototype.visitType=function(t,e){return t.visitBuiltintType(this,e)},e}(tc),rc=function(t){function e(e,n){void 0===n&&(n=null);var r=t.call(this,n)||this;return r.value=e,r}return Xr(e,t),e.prototype.visitType=function(t,e){return t.visitExpressionType(this,e)},e}(tc),oc=function(t){function e(e,n){void 0===n&&(n=null);var r=t.call(this,n)||this;return r.of=e,r}return Xr(e,t),e.prototype.visitType=function(t,e){return t.visitArrayType(this,e)},e}(tc),ic=function(t){function e(e,n){void 0===n&&(n=null);var r=t.call(this,n)||this;return r.valueType=e||null,r}return Xr(e,t),e.prototype.visitType=function(t,e){return t.visitMapType(this,e)},e}(tc),sc=new nc(ec.Dynamic),ac=new nc(ec.Inferred),uc=new nc(ec.Bool),cc=(new nc(ec.Int),new nc(ec.Number),new nc(ec.String),new nc(ec.Function),{});cc.Equals=0,cc.NotEquals=1,cc.Identical=2,cc.NotIdentical=3,cc.Minus=4,cc.Plus=5,cc.Divide=6,cc.Multiply=7,cc.Modulo=8,cc.And=9,cc.Or=10,cc.Lower=11,cc.LowerEquals=12,cc.Bigger=13,cc.BiggerEquals=14,cc[cc.Equals]="Equals",cc[cc.NotEquals]="NotEquals",cc[cc.Identical]="Identical",cc[cc.NotIdentical]="NotIdentical",cc[cc.Minus]="Minus",cc[cc.Plus]="Plus",cc[cc.Divide]="Divide",cc[cc.Multiply]="Multiply",cc[cc.Modulo]="Modulo",cc[cc.And]="And",cc[cc.Or]="Or",cc[cc.Lower]="Lower",cc[cc.LowerEquals]="LowerEquals",cc[cc.Bigger]="Bigger",cc[cc.BiggerEquals]="BiggerEquals";var lc=function(){function t(t,e){this.type=t||null,this.sourceSpan=e||null}return t.prototype.visitExpression=function(t,e){},t.prototype.prop=function(t,e){return new Ac(this,t,null,e)},t.prototype.key=function(t,e,n){return new Oc(this,t,e,n)},t.prototype.callMethod=function(t,e,n){return new vc(this,t,e,null,n)},t.prototype.callFn=function(t,e){return new gc(this,t,null,e)},t.prototype.instantiate=function(t,e,n){return new _c(this,t,e,n)},t.prototype.conditional=function(t,e,n){return void 0===e&&(e=null),new Cc(this,t,e,null,n)},t.prototype.equals=function(t,e){return new Pc(cc.Equals,this,t,null,e)},t.prototype.notEquals=function(t,e){return new Pc(cc.NotEquals,this,t,null,e)},t.prototype.identical=function(t,e){return new Pc(cc.Identical,this,t,null,e)},t.prototype.notIdentical=function(t,e){return new Pc(cc.NotIdentical,this,t,null,e)},t.prototype.minus=function(t,e){return new Pc(cc.Minus,this,t,null,e)},t.prototype.plus=function(t,e){return new Pc(cc.Plus,this,t,null,e)},t.prototype.divide=function(t,e){return new Pc(cc.Divide,this,t,null,e)},t.prototype.multiply=function(t,e){return new Pc(cc.Multiply,this,t,null,e)},t.prototype.modulo=function(t,e){return new Pc(cc.Modulo,this,t,null,e)},t.prototype.and=function(t,e){return new Pc(cc.And,this,t,null,e)},t.prototype.or=function(t,e){return new Pc(cc.Or,this,t,null,e)},t.prototype.lower=function(t,e){return new Pc(cc.Lower,this,t,null,e)},t.prototype.lowerEquals=function(t,e){return new Pc(cc.LowerEquals,this,t,null,e)},t.prototype.bigger=function(t,e){return new Pc(cc.Bigger,this,t,null,e)},t.prototype.biggerEquals=function(t,e){return new Pc(cc.BiggerEquals,this,t,null,e)},t.prototype.isBlank=function(t){return this.equals(Lc,t)},t.prototype.cast=function(t,e){return new Sc(this,t,e)},t.prototype.toStmt=function(){return new Bc(this,null)},t}(),pc={};pc.This=0,pc.Super=1,pc.CatchError=2,pc.CatchStack=3,pc[pc.This]="This",pc[pc.Super]="Super",pc[pc.CatchError]="CatchError",pc[pc.CatchStack]="CatchStack";var hc=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return"string"==typeof e?(o.name=e,o.builtin=null):(o.name=null,o.builtin=e),o}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadVarExpr(this,e)},e.prototype.set=function(t){if(!this.name)throw new Error("Built in variable "+this.builtin+" can not be assigned to.");return new fc(this.name,t,null,this.sourceSpan)},e}(lc),fc=function(t){function e(e,n,r,o){var i=t.call(this,r||n.type,o)||this;return i.name=e,i.value=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitWriteVarExpr(this,e)},e.prototype.toDeclStmt=function(t,e){return new Uc(this.name,this.value,t,e,this.sourceSpan)},e}(lc),dc=function(t){function e(e,n,r,o,i){var s=t.call(this,o||r.type,i)||this;return s.receiver=e,s.index=n,s.value=r,s}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitWriteKeyExpr(this,e)},e}(lc),yc=function(t){function e(e,n,r,o,i){var s=t.call(this,o||r.type,i)||this;return s.receiver=e,s.name=n,s.value=r,s}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitWritePropExpr(this,e)},e}(lc),mc={};mc.ConcatArray=0,mc.SubscribeObservable=1,mc.Bind=2,mc[mc.ConcatArray]="ConcatArray",mc[mc.SubscribeObservable]="SubscribeObservable",mc[mc.Bind]="Bind";var vc=function(t){function e(e,n,r,o,i){var s=t.call(this,o,i)||this;return s.receiver=e,s.args=r,"string"==typeof n?(s.name=n,s.builtin=null):(s.name=null,s.builtin=n),s}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitInvokeMethodExpr(this,e)},e}(lc),gc=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.fn=e,i.args=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitInvokeFunctionExpr(this,e)},e}(lc),_c=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.classExpr=e,i.args=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitInstantiateExpr(this,e)},e}(lc),bc=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return o.value=e,o}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralExpr(this,e)},e}(lc),wc=function(t){function e(e,n,r,o){void 0===r&&(r=null);var i=t.call(this,n,o)||this;return i.value=e,i.typeParams=r,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitExternalExpr(this,e)},e}(lc),Cc=function(t){function e(e,n,r,o,i){void 0===r&&(r=null);var s=t.call(this,o||n.type,i)||this;return s.condition=e,s.falseCase=r,s.trueCase=n,s}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitConditionalExpr(this,e)},e}(lc),Ec=function(t){function e(e,n){var r=t.call(this,uc,n)||this;return r.condition=e,r}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitNotExpr(this,e)},e}(lc),Sc=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return o.value=e,o}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitCastExpr(this,e)},e}(lc),xc=function(){function t(t,e){void 0===e&&(e=null),this.name=t,this.type=e}return t}(),Tc=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.params=e,i.statements=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitFunctionExpr(this,e)},e.prototype.toDeclStmt=function(t,e){return void 0===e&&(e=null),new Hc(t,this.params,this.statements,this.type,e,this.sourceSpan)},e}(lc),Pc=function(t){function e(e,n,r,o,i){var s=t.call(this,o||n.type,i)||this;return s.operator=e,s.rhs=r,s.lhs=n,s}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitBinaryOperatorExpr(this,e)},e}(lc),Ac=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.receiver=e,i.name=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadPropExpr(this,e)},e.prototype.set=function(t){return new yc(this.receiver,this.name,t,null,this.sourceSpan)},e}(lc),Oc=function(t){function e(e,n,r,o){var i=t.call(this,r,o)||this;return i.receiver=e,i.index=n,i}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitReadKeyExpr(this,e)},e.prototype.set=function(t){return new dc(this.receiver,this.index,t,null,this.sourceSpan)},e}(lc),Mc=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return o.entries=e,o}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralArrayExpr(this,e)},e}(lc),Rc=function(){function t(t,e,n){void 0===n&&(n=!1),this.key=t,this.value=e,this.quoted=n}return t}(),kc=function(t){function e(e,n,r){var o=t.call(this,n,r)||this;return o.entries=e,o.valueType=null,n&&(o.valueType=n.valueType),o}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitLiteralMapExpr(this,e)},e}(lc),Ic=function(t){function e(e,n){var r=t.call(this,e[e.length-1].type,n)||this;return r.parts=e,r}return Xr(e,t),e.prototype.visitExpression=function(t,e){return t.visitCommaExpr(this,e)},e}(lc),Nc=new hc(pc.This,null,null),Dc=new hc(pc.Super,null,null),jc=(new hc(pc.CatchError,null,null),new hc(pc.CatchStack,null,null),new bc(null,null,null)),Lc=new bc(null,ac,null),Vc={};Vc.Final=0,Vc.Private=1,Vc[Vc.Final]="Final",Vc[Vc.Private]="Private";var Fc=function(){function t(t,e){this.modifiers=t||[],this.sourceSpan=e||null}return t.prototype.visitStatement=function(t,e){},t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),Uc=function(t){function e(e,n,r,o,i){void 0===o&&(o=null);var s=t.call(this,o,i)||this;return s.name=e,s.value=n,s.type=r||n.type,s}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareVarStmt(this,e)},e}(Fc),Hc=function(t){function e(e,n,r,o,i,s){void 0===i&&(i=null);var a=t.call(this,i,s)||this;return a.name=e,a.params=n,a.statements=r,a.type=o||null,a}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareFunctionStmt(this,e)},e}(Fc),Bc=function(t){function e(e,n){var r=t.call(this,null,n)||this;return r.expr=e,r}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitExpressionStmt(this,e)},e}(Fc),qc=function(t){function e(e,n){var r=t.call(this,null,n)||this;return r.value=e,r}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitReturnStmt(this,e)},e}(Fc),zc=function(){function t(t,e){this.modifiers=e,e||(this.modifiers=[]),this.type=t||null}return t.prototype.hasModifier=function(t){return-1!==this.modifiers.indexOf(t)},t}(),Gc=function(t){function e(e,n,r){void 0===r&&(r=null);var o=t.call(this,n,r)||this;return o.name=e,o}return Xr(e,t),e}(zc),Wc=function(t){function e(e,n,r,o,i){void 0===i&&(i=null);var s=t.call(this,o,i)||this;return s.name=e,s.params=n,s.body=r,s}return Xr(e,t),e}(zc),$c=function(t){function e(e,n,r,o){void 0===o&&(o=null);var i=t.call(this,r,o)||this;return i.name=e,i.body=n,i}return Xr(e,t),e}(zc),Kc=function(t){function e(e,n,r,o,i,s,a,u){void 0===a&&(a=null);var c=t.call(this,a,u)||this;return c.name=e,c.parent=n,c.fields=r,c.getters=o,c.constructorMethod=i,c.methods=s,c}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitDeclareClassStmt(this,e)},e}(Fc),Qc=function(t){function e(e,n,r,o){void 0===r&&(r=[]);var i=t.call(this,null,o)||this;return i.condition=e,i.trueCase=n,i.falseCase=r,i}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitIfStmt(this,e)},e}(Fc),Xc=function(t){function e(e,n,r){var o=t.call(this,null,r)||this;return o.bodyStmts=e,o.catchStmts=n,o}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitTryCatchStmt(this,e)},e}(Fc),Zc=function(t){function e(e,n){var r=t.call(this,null,n)||this;return r.error=e,r}return Xr(e,t),e.prototype.visitStatement=function(t,e){return t.visitThrowStmt(this,e)},e}(Fc),Yc=function(){function t(){}return t.prototype.transformExpr=function(t,e){return t},t.prototype.transformStmt=function(t,e){return t},t.prototype.visitReadVarExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitWriteVarExpr=function(t,e){return this.transformExpr(new fc(t.name,t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitWriteKeyExpr=function(t,e){return this.transformExpr(new dc(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitWritePropExpr=function(t,e){return this.transformExpr(new yc(t.receiver.visitExpression(this,e),t.name,t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitInvokeMethodExpr=function(t,e){var n=t.builtin||t.name;return this.transformExpr(new vc(t.receiver.visitExpression(this,e),n,this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitInvokeFunctionExpr=function(t,e){return this.transformExpr(new gc(t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitInstantiateExpr=function(t,e){return this.transformExpr(new _c(t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitExternalExpr=function(t,e){return this.transformExpr(t,e)},t.prototype.visitConditionalExpr=function(t,e){return this.transformExpr(new Cc(t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitNotExpr=function(t,e){return this.transformExpr(new Ec(t.condition.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitCastExpr=function(t,e){return this.transformExpr(new Sc(t.value.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitFunctionExpr=function(t,e){return this.transformExpr(new Tc(t.params,this.visitAllStatements(t.statements,e),t.type,t.sourceSpan),e)},t.prototype.visitBinaryOperatorExpr=function(t,e){return this.transformExpr(new Pc(t.operator,t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitReadPropExpr=function(t,e){return this.transformExpr(new Ac(t.receiver.visitExpression(this,e),t.name,t.type,t.sourceSpan),e)},t.prototype.visitReadKeyExpr=function(t,e){return this.transformExpr(new Oc(t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralArrayExpr=function(t,e){return this.transformExpr(new Mc(this.visitAllExpressions(t.entries,e),t.type,t.sourceSpan),e)},t.prototype.visitLiteralMapExpr=function(t,e){var n=this,r=t.entries.map(function(t){return new Rc(t.key,t.value.visitExpression(n,e),t.quoted)}),o=new ic(t.valueType,null);return this.transformExpr(new kc(r,o,t.sourceSpan),e)},t.prototype.visitCommaExpr=function(t,e){return this.transformExpr(new Ic(this.visitAllExpressions(t.parts,e),t.sourceSpan),e)},t.prototype.visitAllExpressions=function(t,e){var n=this;return t.map(function(t){return t.visitExpression(n,e)})},t.prototype.visitDeclareVarStmt=function(t,e){return this.transformStmt(new Uc(t.name,t.value.visitExpression(this,e),t.type,t.modifiers,t.sourceSpan),e)},t.prototype.visitDeclareFunctionStmt=function(t,e){return this.transformStmt(new Hc(t.name,t.params,this.visitAllStatements(t.statements,e),t.type,t.modifiers,t.sourceSpan),e)},t.prototype.visitExpressionStmt=function(t,e){return this.transformStmt(new Bc(t.expr.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitReturnStmt=function(t,e){return this.transformStmt(new qc(t.value.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitDeclareClassStmt=function(t,e){var n=this,r=t.parent.visitExpression(this,e),o=t.getters.map(function(t){return new $c(t.name,n.visitAllStatements(t.body,e),t.type,t.modifiers)}),i=t.constructorMethod&&new Wc(t.constructorMethod.name,t.constructorMethod.params,this.visitAllStatements(t.constructorMethod.body,e),t.constructorMethod.type,t.constructorMethod.modifiers),s=t.methods.map(function(t){return new Wc(t.name,t.params,n.visitAllStatements(t.body,e),t.type,t.modifiers)});return this.transformStmt(new Kc(t.name,r,t.fields,o,i,s,t.modifiers,t.sourceSpan),e)},t.prototype.visitIfStmt=function(t,e){return this.transformStmt(new Qc(t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e),t.sourceSpan),e)},t.prototype.visitTryCatchStmt=function(t,e){return this.transformStmt(new Xc(this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e),t.sourceSpan),e)},t.prototype.visitThrowStmt=function(t,e){return this.transformStmt(new Zc(t.error.visitExpression(this,e),t.sourceSpan),e)},t.prototype.visitCommentStmt=function(t,e){return this.transformStmt(t,e)},t.prototype.visitAllStatements=function(t,e){var n=this;return t.map(function(t){return t.visitStatement(n,e)})},t}(),Jc=function(t){function e(){var e=t.apply(this,arguments)||this;return e.varNames=new Set,e}return Xr(e,t),e.prototype.visitDeclareFunctionStmt=function(t,e){return t},e.prototype.visitDeclareClassStmt=function(t,e){return t},e.prototype.visitReadVarExpr=function(t,e){return t.name&&this.varNames.add(t.name),null},e}(function(){function t(){}return t.prototype.visitReadVarExpr=function(t,e){return t},t.prototype.visitWriteVarExpr=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitWriteKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t.value.visitExpression(this,e),t},t.prototype.visitWritePropExpr=function(t,e){return t.receiver.visitExpression(this,e),t.value.visitExpression(this,e),t},t.prototype.visitInvokeMethodExpr=function(t,e){return t.receiver.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitInstantiateExpr=function(t,e){return t.classExpr.visitExpression(this,e),this.visitAllExpressions(t.args,e),t},t.prototype.visitLiteralExpr=function(t,e){return t},t.prototype.visitExternalExpr=function(t,e){return t},t.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e),t.trueCase.visitExpression(this,e),t.falseCase.visitExpression(this,e),t},t.prototype.visitNotExpr=function(t,e){return t.condition.visitExpression(this,e),t},t.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitFunctionExpr=function(t,e){return this.visitAllStatements(t.statements,e),t},t.prototype.visitBinaryOperatorExpr=function(t,e){return t.lhs.visitExpression(this,e),t.rhs.visitExpression(this,e),t},t.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),t},t.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),t.index.visitExpression(this,e),t},t.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e),t},t.prototype.visitLiteralMapExpr=function(t,e){var n=this;return t.entries.forEach(function(t){return t.value.visitExpression(n,e)}),t},t.prototype.visitCommaExpr=function(t,e){this.visitAllExpressions(t.parts,e)},t.prototype.visitAllExpressions=function(t,e){var n=this;t.forEach(function(t){return t.visitExpression(n,e)})},t.prototype.visitDeclareVarStmt=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitDeclareFunctionStmt=function(t,e){return this.visitAllStatements(t.statements,e),t},t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),t},t.prototype.visitReturnStmt=function(t,e){return t.value.visitExpression(this,e),t},t.prototype.visitDeclareClassStmt=function(t,e){var n=this;return t.parent.visitExpression(this,e),t.getters.forEach(function(t){return n.visitAllStatements(t.body,e)}),t.constructorMethod&&this.visitAllStatements(t.constructorMethod.body,e),t.methods.forEach(function(t){return n.visitAllStatements(t.body,e)}),t},t.prototype.visitIfStmt=function(t,e){return t.condition.visitExpression(this,e),this.visitAllStatements(t.trueCase,e),this.visitAllStatements(t.falseCase,e),t},t.prototype.visitTryCatchStmt=function(t,e){return this.visitAllStatements(t.bodyStmts,e),this.visitAllStatements(t.catchStmts,e),t},t.prototype.visitThrowStmt=function(t,e){return t.error.visitExpression(this,e),t},t.prototype.visitCommentStmt=function(t,e){return t},t.prototype.visitAllStatements=function(t,e){var n=this;t.forEach(function(t){return t.visitStatement(n,e)})},t}()),tl=function(t){function e(e){var n=t.call(this)||this;return n.sourceSpan=e,n}return Xr(e,t),e.prototype._clone=function(t){var e=Object.create(t.constructor.prototype);for(var n in t)e[n]=t[n];return e},e.prototype.transformExpr=function(t,e){return t.sourceSpan||((t=this._clone(t)).sourceSpan=this.sourceSpan),t},e.prototype.transformStmt=function(t,e){return t.sourceSpan||((t=this._clone(t)).sourceSpan=this.sourceSpan),t},e}(Yc),el=function(){function t(){}return t.prototype.visitArray=function(t,e){var n=this;return bn(t.map(function(t){return d(t,n,null)}),e)},t.prototype.visitStringMap=function(t,e){var n=this,r=[],o=new Set(t&&t.$quoted$);return Object.keys(t).forEach(function(e){r.push(new Rc(e,d(t[e],n,null),o.has(e)))}),new kc(r,e)},t.prototype.visitPrimitive=function(t,e){return Sn(t,e)},t.prototype.visitOther=function(t,e){return t instanceof lc?t:vn({reference:t})},t}(),nl=function(){function t(t){this.compType=t}return t}(),rl=function(){function t(t,e,n){this.statements=t,this.ngModuleFactoryVar=e,this.dependencies=n}return t}(),ol=function(){function t(){}return t.prototype.compile=function(t,e){var n=ct("NgModule",t.type),r=[],o=[],i=t.transitiveModule.entryComponents.map(function(e){return t.bootstrapComponents.some(function(t){return t.reference===e.componentType})&&o.push({reference:e.componentFactory}),r.push(new nl(e.componentType)),{reference:e.componentFactory}}),s=new il(t,i,o,n);new Ja(t,e,n).parse().forEach(function(t){return s.addProvider(t)});var a=s.build(),u=E(t.type)+"NgFactory",c=[a,mn(u).set(vn(fe(Ga.NgModuleFactory)).instantiate([mn(a.name),vn(t.type)],gn(fe(Ga.NgModuleFactory),[gn(t.type)],[Ju.Const]))).toDeclStmt(null,[Vc.Final])];if(t.id){var l=vn(fe(Ga.RegisterModuleFactoryFn)).callFn([Sn(t.id),mn(u)]).toStmt();c.push(l)}return new rl(c,u,r)},t}();ol.decorators=[{type:z}],ol.ctorParameters=function(){return[]};var il=function(){function t(t,e,n,r){this._ngModuleMeta=t,this._entryComponentFactories=e,this._bootstrapComponentFactories=n,this._sourceSpan=r,this.fields=[],this.getters=[],this.methods=[],this.ctorStmts=[],this._lazyProps=new Map,this._tokens=[],this._instances=new Map,this._createStmts=[],this._destroyStmts=[]}return t.prototype.addProvider=function(t){var n=this,r=t.providers.map(function(t){return n._getProviderValue(t)}),o="_"+M(t.token)+"_"+this._instances.size,i=this._createProviderProperty(o,t,r,t.multiProvider,t.eager);if(-1!==t.lifecycleHooks.indexOf(e.ɵLifecycleHooks.OnDestroy)){var s=i.callMethod("ngOnDestroy",[]);t.eager||(s=this._lazyProps.get(i.name).and(s)),this._destroyStmts.push(s.toStmt())}this._tokens.push(t.token),this._instances.set(R(t.token),i)},t.prototype.build=function(){var t=this,e=this._tokens.map(function(e){var n=t._instances.get(R(e));return new Qc(al.token.identical(An(e)),[new qc(n)])}),n=[new Wc("createInternal",[],this._createStmts.concat(new qc(this._instances.get(this._ngModuleMeta.type.reference))),gn(this._ngModuleMeta.type)),new Wc("getInternal",[new xc(al.token.name,sc),new xc(al.notFoundResult.name,sc)],e.concat([new qc(al.notFoundResult)]),sc),new Wc("destroyInternal",[],this._destroyStmts)],r=[mn(sl.parent.name),bn(this._entryComponentFactories.map(function(t){return vn(t)})),bn(this._bootstrapComponentFactories.map(function(t){return vn(t)}))];return xn({name:E(this._ngModuleMeta.type)+"Injector",ctorParams:[new xc(sl.parent.name,gn(fe(Ga.Injector)))],parent:vn(fe(Ga.NgModuleInjector),[gn(this._ngModuleMeta.type)]),parentArgs:r,builders:[{methods:n},this]})},t.prototype._getProviderValue=function(t){var e,n=this;if(null!=t.useExisting)e=this._getDependency({token:t.useExisting});else if(null!=t.useFactory){o=(r=t.deps||t.useFactory.diDeps).map(function(t){return n._getDependency(t)});e=vn(t.useFactory).callFn(o)}else if(null!=t.useClass){var r=t.deps||t.useClass.diDeps,o=r.map(function(t){return n._getDependency(t)});e=vn(t.useClass).instantiate(o,gn(t.useClass))}else e=Pn(t.useValue);return e},t.prototype._createProviderProperty=function(t,e,n,r,o){var i,s;if(r?(i=bn(n),s=new oc(sc)):(i=n[0],s=n[0].type),s||(s=sc),o)this.fields.push(new Gc(t,s)),this._createStmts.push(Nc.prop(t).set(i).toStmt());else{var a=Nc.prop("_"+t);this.fields.push(new Gc(a.name,s));var u=[new Qc(a.isBlank(),[a.set(i).toStmt()]),new qc(a)];this.getters.push(new $c(t,u,s)),this._lazyProps.set(t,a)}return Nc.prop(t)},t.prototype._getDependency=function(t){var e=null;if(t.isValue&&(e=Sn(t.value)),t.isSkipSelf||(t.token&&(R(t.token)===he(Ga.Injector)?e=Nc:R(t.token)===he(Ga.ComponentFactoryResolver)&&(e=Nc.prop("componentFactoryResolver"))),e||(e=this._instances.get(R(t.token)))),!e){var n=[An(t.token)];t.isOptional&&n.push(jc),e=sl.parent.callMethod("get",n)}return e},t}(),sl=function(){function t(){}return t}();sl.parent=Nc.prop("parent");var al=function(){function t(){}return t}();al.token=mn("token"),al.notFoundResult=mn("notFoundResult");var ul=function(){function t(t){void 0===t&&(t=null),this.file=t,this.sourcesContent=new Map,this.lines=[],this.lastCol0=0,this.hasMappings=!1}return t.prototype.addSource=function(t,e){return void 0===e&&(e=null),this.sourcesContent.has(t)||this.sourcesContent.set(t,e),this},t.prototype.addLine=function(){return this.lines.push([]),this.lastCol0=0,this},t.prototype.addMapping=function(t,e,n,r){if(!this.currentLine)throw new Error("A line must be added before mappings can be added");if(null!=e&&!this.sourcesContent.has(e))throw new Error('Unknown source file "'+e+'"');if(null==t)throw new Error("The column in the generated code must be provided");if(t<this.lastCol0)throw new Error("Mapping should be added in output order");if(e&&(null==n||null==r))throw new Error("The source location must be provided when a source url is provided");return this.hasMappings=!0,this.lastCol0=t,this.currentLine.push({col0:t,sourceUrl:e,sourceLine0:n,sourceCol0:r}),this},Object.defineProperty(t.prototype,"currentLine",{get:function(){return this.lines.slice(-1)[0]},enumerable:!0,configurable:!0}),t.prototype.toJSON=function(){var t=this;if(!this.hasMappings)return null;var e=new Map,n=[],r=[];Array.from(this.sourcesContent.keys()).forEach(function(o,i){e.set(o,i),n.push(o),r.push(t.sourcesContent.get(o)||null)});var o="",i=0,s=0,a=0,u=0;return this.lines.forEach(function(t){i=0,o+=t.map(function(t){var n=Mn(t.col0-i);return i=t.col0,null!=t.sourceUrl&&(n+=Mn(e.get(t.sourceUrl)-s),s=e.get(t.sourceUrl),n+=Mn(t.sourceLine0-a),a=t.sourceLine0,n+=Mn(t.sourceCol0-u),u=t.sourceCol0),n}).join(","),o+=";"}),o=o.slice(0,-1),{file:this.file||"",version:3,sourceRoot:"",sources:n,sourcesContent:r,mappings:o}},t.prototype.toJsComment=function(){return this.hasMappings?"//# sourceMappingURL=data:application/json;base64,"+On(JSON.stringify(this,null,0)):""},t}(),cl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ll=/'|\\|\n|\r|\$/g,pl=/^[$A-Z_][0-9A-Z_$]*$/i,hl="  ",fl=mn("error",null,null),dl=mn("stack",null,null),yl=function(){function t(t){this.indent=t,this.parts=[],this.srcSpans=[]}return t}(),ml=function(){function t(t,e){this._exportedVars=t,this._indent=e,this._classes=[],this._lines=[new yl(e)]}return t.createRoot=function(e){return new t(e,0)},Object.defineProperty(t.prototype,"_currentLine",{get:function(){return this._lines[this._lines.length-1]},enumerable:!0,configurable:!0}),t.prototype.isExportedVar=function(t){return-1!==this._exportedVars.indexOf(t)},t.prototype.println=function(t,e){void 0===e&&(e=""),this.print(t||null,e,!0)},t.prototype.lineIsEmpty=function(){return 0===this._currentLine.parts.length},t.prototype.print=function(t,e,n){void 0===n&&(n=!1),e.length>0&&(this._currentLine.parts.push(e),this._currentLine.srcSpans.push(t&&t.sourceSpan||null)),n&&this._lines.push(new yl(this._indent))},t.prototype.removeEmptyLastLine=function(){this.lineIsEmpty()&&this._lines.pop()},t.prototype.incIndent=function(){this._indent++,this._currentLine.indent=this._indent},t.prototype.decIndent=function(){this._indent--,this._currentLine.indent=this._indent},t.prototype.pushClass=function(t){this._classes.push(t)},t.prototype.popClass=function(){return this._classes.pop()},Object.defineProperty(t.prototype,"currentClass",{get:function(){return this._classes.length>0?this._classes[this._classes.length-1]:null},enumerable:!0,configurable:!0}),t.prototype.toSource=function(){return this.sourceLines.map(function(t){return t.parts.length>0?In(t.indent)+t.parts.join(""):""}).join("\n")},t.prototype.toSourceMapGenerator=function(t,e,n){void 0===n&&(n=0);for(var r=new ul(e),o=!1,i=function(){o||(r.addSource(t," ").addMapping(0,t,0,0),o=!0)},s=0;s<n;s++)r.addLine(),i();return this.sourceLines.forEach(function(t,e){r.addLine();for(var n=t.srcSpans,s=t.parts,a=t.indent*hl.length,u=0;u<n.length&&!n[u];)a+=s[u].length,u++;for(u<n.length&&0===e&&0===a?o=!0:i();u<n.length;){var c=n[u],l=c.start.file,p=c.start.line,h=c.start.col;for(r.addSource(l.url,l.content).addMapping(a,l.url,p,h),a+=s[u].length,u++;u<n.length&&(c===n[u]||!n[u]);)a+=s[u].length,u++}}),r},Object.defineProperty(t.prototype,"sourceLines",{get:function(){return this._lines.length&&0===this._lines[this._lines.length-1].parts.length?this._lines.slice(0,-1):this._lines},enumerable:!0,configurable:!0}),t}(),vl=function(){function t(t){this._escapeDollarInStrings=t}return t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitReturnStmt=function(t,e){return e.print(t,"return "),t.value.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitCastExpr=function(t,e){},t.prototype.visitDeclareClassStmt=function(t,e){},t.prototype.visitIfStmt=function(t,e){e.print(t,"if ("),t.condition.visitExpression(this,e),e.print(t,") {");var n=null!=t.falseCase&&t.falseCase.length>0;return t.trueCase.length<=1&&!n?(e.print(t," "),this.visitAllStatements(t.trueCase,e),e.removeEmptyLastLine(),e.print(t," ")):(e.println(),e.incIndent(),this.visitAllStatements(t.trueCase,e),e.decIndent(),n&&(e.println(t,"} else {"),e.incIndent(),this.visitAllStatements(t.falseCase,e),e.decIndent())),e.println(t,"}"),null},t.prototype.visitTryCatchStmt=function(t,e){},t.prototype.visitThrowStmt=function(t,e){return e.print(t,"throw "),t.error.visitExpression(this,e),e.println(t,";"),null},t.prototype.visitCommentStmt=function(t,e){return t.comment.split("\n").forEach(function(n){e.println(t,"// "+n)}),null},t.prototype.visitDeclareVarStmt=function(t,e){},t.prototype.visitWriteVarExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print(t,"("),e.print(t,t.name+" = "),t.value.visitExpression(this,e),n||e.print(t,")"),null},t.prototype.visitWriteKeyExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print(t,"("),t.receiver.visitExpression(this,e),e.print(t,"["),t.index.visitExpression(this,e),e.print(t,"] = "),t.value.visitExpression(this,e),n||e.print(t,")"),null},t.prototype.visitWritePropExpr=function(t,e){var n=e.lineIsEmpty();return n||e.print(t,"("),t.receiver.visitExpression(this,e),e.print(t,"."+t.name+" = "),t.value.visitExpression(this,e),n||e.print(t,")"),null},t.prototype.visitInvokeMethodExpr=function(t,e){t.receiver.visitExpression(this,e);var n=t.name;return null!=t.builtin&&null==(n=this.getBuiltinMethodName(t.builtin))?null:(e.print(t,"."+n+"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null)},t.prototype.getBuiltinMethodName=function(t){},t.prototype.visitInvokeFunctionExpr=function(t,e){return t.fn.visitExpression(this,e),e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},t.prototype.visitReadVarExpr=function(t,e){var n=t.name;if(null!=t.builtin)switch(t.builtin){case pc.Super:n="super";break;case pc.This:n="this";break;case pc.CatchError:n=fl.name;break;case pc.CatchStack:n=dl.name;break;default:throw new Error("Unknown builtin variable "+t.builtin)}return e.print(t,n),null},t.prototype.visitInstantiateExpr=function(t,e){return e.print(t,"new "),t.classExpr.visitExpression(this,e),e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},t.prototype.visitLiteralExpr=function(t,e){var n=t.value;return"string"==typeof n?e.print(t,kn(n,this._escapeDollarInStrings)):e.print(t,""+n),null},t.prototype.visitExternalExpr=function(t,e){},t.prototype.visitConditionalExpr=function(t,e){return e.print(t,"("),t.condition.visitExpression(this,e),e.print(t,"? "),t.trueCase.visitExpression(this,e),e.print(t,": "),t.falseCase.visitExpression(this,e),e.print(t,")"),null},t.prototype.visitNotExpr=function(t,e){return e.print(t,"!"),t.condition.visitExpression(this,e),null},t.prototype.visitFunctionExpr=function(t,e){},t.prototype.visitDeclareFunctionStmt=function(t,e){},t.prototype.visitBinaryOperatorExpr=function(t,e){var n;switch(t.operator){case cc.Equals:n="==";break;case cc.Identical:n="===";break;case cc.NotEquals:n="!=";break;case cc.NotIdentical:n="!==";break;case cc.And:n="&&";break;case cc.Or:n="||";break;case cc.Plus:n="+";break;case cc.Minus:n="-";break;case cc.Divide:n="/";break;case cc.Multiply:n="*";break;case cc.Modulo:n="%";break;case cc.Lower:n="<";break;case cc.LowerEquals:n="<=";break;case cc.Bigger:n=">";break;case cc.BiggerEquals:n=">=";break;default:throw new Error("Unknown operator "+t.operator)}return e.print(t,"("),t.lhs.visitExpression(this,e),e.print(t," "+n+" "),t.rhs.visitExpression(this,e),e.print(t,")"),null},t.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print(t,"."),e.print(t,t.name),null},t.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e),e.print(t,"["),t.index.visitExpression(this,e),e.print(t,"]"),null},t.prototype.visitLiteralArrayExpr=function(t,e){var n=t.entries.length>1;return e.print(t,"[",n),e.incIndent(),this.visitAllExpressions(t.entries,e,",",n),e.decIndent(),e.print(t,"]",n),null},t.prototype.visitLiteralMapExpr=function(t,e){var n=this,r=t.entries.length>1;return e.print(t,"{",r),e.incIndent(),this.visitAllObjects(function(r){e.print(t,kn(r.key,n._escapeDollarInStrings,r.quoted)+": "),r.value.visitExpression(n,e)},t.entries,e,",",r),e.decIndent(),e.print(t,"}",r),null},t.prototype.visitCommaExpr=function(t,e){return e.print(t,"("),this.visitAllExpressions(t.parts,e,","),e.print(t,")"),null},t.prototype.visitAllExpressions=function(t,e,n,r){var o=this;void 0===r&&(r=!1),this.visitAllObjects(function(t){return t.visitExpression(o,e)},t,e,n,r)},t.prototype.visitAllObjects=function(t,e,n,r,o){void 0===o&&(o=!1);for(var i=0;i<e.length;i++)i>0&&n.print(null,r,o),t(e[i]);o&&n.println()},t.prototype.visitAllStatements=function(t,e){var n=this;t.forEach(function(t){return t.visitStatement(n,e)})},t}(),gl="/debug/lib",_l=function(){function t(t){this._importResolver=t}return t.prototype.emitStatements=function(t,e,n,r,o){var i=this;void 0===o&&(o="");var s=new bl(e,this._importResolver),a=ml.createRoot(r);s.visitAllStatements(n,a);var u=o?o.split("\n"):[];s.reexports.forEach(function(t,n){var r=t.map(function(t){return t.name+" as "+t.as}).join(",");u.push("export {"+r+"} from '"+i._importResolver.fileNameToModuleName(n,e)+"';")}),s.importsWithPrefixes.forEach(function(t,n){u.push("import * as "+t+" from '"+i._importResolver.fileNameToModuleName(n,e)+"';")});var c=a.toSourceMapGenerator(t,e,u.length).toJsComment(),l=u.concat([a.toSource(),c]);return c&&l.push(""),l.join("\n")},t}(),bl=function(t){function e(e,n){var r=t.call(this,!1)||this;return r._genFilePath=e,r._importResolver=n,r.typeExpression=0,r.importsWithPrefixes=new Map,r.reexports=new Map,r}return Xr(e,t),e.prototype.visitType=function(t,e,n){void 0===n&&(n="any"),t?(this.typeExpression++,t.visitType(this,e),this.typeExpression--):e.print(null,n)},e.prototype.visitLiteralExpr=function(e,n){var r=e.value;return null==r&&e.type!=ac?(n.print(e,"("+r+" as any)"),null):t.prototype.visitLiteralExpr.call(this,e,n)},e.prototype.visitLiteralArrayExpr=function(e,n){0===e.entries.length&&n.print(e,"(");var r=t.prototype.visitLiteralArrayExpr.call(this,e,n);return 0===e.entries.length&&n.print(e," as any[])"),r},e.prototype.visitExternalExpr=function(t,e){return this._visitIdentifier(t.value,t.typeParams,e),null},e.prototype.visitDeclareVarStmt=function(t,e){if(e.isExportedVar(t.name)&&t.value instanceof wc&&!t.type){var n=this._resolveStaticSymbol(t.value.value),r=n.name,o=n.filePath;if(0===n.members.length&&o!==this._genFilePath){var i=this.reexports.get(o);return i||(i=[],this.reexports.set(o,i)),i.push({name:r,as:t.name}),null}}return e.isExportedVar(t.name)&&e.print(t,"export "),t.hasModifier(Vc.Final)?e.print(t,"const"):e.print(t,"var"),e.print(t," "+t.name),this._printColonType(t.type,e),e.print(t," = "),t.value.visitExpression(this,e),e.println(t,";"),null},e.prototype.visitCastExpr=function(t,e){return e.print(t,"(<"),t.type.visitType(this,e),e.print(t,">"),t.value.visitExpression(this,e),e.print(t,")"),null},e.prototype.visitInstantiateExpr=function(t,e){return e.print(t,"new "),this.typeExpression++,t.classExpr.visitExpression(this,e),this.typeExpression--,e.print(t,"("),this.visitAllExpressions(t.args,e,","),e.print(t,")"),null},e.prototype.visitDeclareClassStmt=function(t,e){var n=this;return e.pushClass(t),e.isExportedVar(t.name)&&e.print(t,"export "),e.print(t,"class "+t.name),null!=t.parent&&(e.print(t," extends "),this.typeExpression++,t.parent.visitExpression(this,e),this.typeExpression--),e.println(t," {"),e.incIndent(),t.fields.forEach(function(t){return n._visitClassField(t,e)}),null!=t.constructorMethod&&this._visitClassConstructor(t,e),t.getters.forEach(function(t){return n._visitClassGetter(t,e)}),t.methods.forEach(function(t){return n._visitClassMethod(t,e)}),e.decIndent(),e.println(t,"}"),e.popClass(),null},e.prototype._visitClassField=function(t,e){t.hasModifier(Vc.Private)&&e.print(null,"/*private*/ "),e.print(null,t.name),this._printColonType(t.type,e),e.println(null,";")},e.prototype._visitClassGetter=function(t,e){t.hasModifier(Vc.Private)&&e.print(null,"private "),e.print(null,"get "+t.name+"()"),this._printColonType(t.type,e),e.println(null," {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println(null,"}")},e.prototype._visitClassConstructor=function(t,e){e.print(t,"constructor("),this._visitParams(t.constructorMethod.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.constructorMethod.body,e),e.decIndent(),e.println(t,"}")},e.prototype._visitClassMethod=function(t,e){t.hasModifier(Vc.Private)&&e.print(null,"private "),e.print(null,t.name+"("),this._visitParams(t.params,e),e.print(null,")"),this._printColonType(t.type,e,"void"),e.println(null," {"),e.incIndent(),this.visitAllStatements(t.body,e),e.decIndent(),e.println(null,"}")},e.prototype.visitFunctionExpr=function(t,e){return e.print(t,"("),this._visitParams(t.params,e),e.print(t,")"),this._printColonType(t.type,e,"void"),e.println(t," => {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print(t,"}"),null},e.prototype.visitDeclareFunctionStmt=function(t,e){return e.isExportedVar(t.name)&&e.print(t,"export "),e.print(t,"function "+t.name+"("),this._visitParams(t.params,e),e.print(t,")"),this._printColonType(t.type,e,"void"),e.println(t," {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitTryCatchStmt=function(t,e){e.println(t,"try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println(t,"} catch ("+fl.name+") {"),e.incIndent();var n=[dl.set(fl.prop("stack",null)).toDeclStmt(null,[Vc.Final])].concat(t.catchStmts);return this.visitAllStatements(n,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitBuiltintType=function(t,e){var n;switch(t.name){case ec.Bool:n="boolean";break;case ec.Dynamic:n="any";break;case ec.Function:n="Function";break;case ec.Number:case ec.Int:n="number";break;case ec.String:n="string";break;default:throw new Error("Unsupported builtin type "+t.name)}return e.print(null,n),null},e.prototype.visitExpressionType=function(t,e){return t.value.visitExpression(this,e),null},e.prototype.visitArrayType=function(t,e){return this.visitType(t.of,e),e.print(null,"[]"),null},e.prototype.visitMapType=function(t,e){return e.print(null,"{[key: string]:"),this.visitType(t.valueType,e),e.print(null,"}"),null},e.prototype.getBuiltinMethodName=function(t){var e;switch(t){case mc.ConcatArray:e="concat";break;case mc.SubscribeObservable:e="subscribe";break;case mc.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},e.prototype._visitParams=function(t,e){var n=this;this.visitAllObjects(function(t){e.print(null,t.name),n._printColonType(t.type,e)},t,e,",")},e.prototype._resolveStaticSymbol=function(t){var e=t.reference;if(!(e instanceof fo))throw new Error("Internal error: unknown identifier "+JSON.stringify(t));var n=this._importResolver.getTypeArity(e)||void 0,r=this._importResolver.getImportAs(e)||e;return{name:r.name,filePath:r.filePath,members:r.members,arity:n}},e.prototype._visitIdentifier=function(t,e,n){var r=this,o=this._resolveStaticSymbol(t),i=o.name,s=o.filePath,a=o.members,u=o.arity;if(s!=this._genFilePath){var c=this.importsWithPrefixes.get(s);null==c&&(c="import"+this.importsWithPrefixes.size,this.importsWithPrefixes.set(s,c)),n.print(null,c+".")}if(a.length?(n.print(null,i),n.print(null,"."),n.print(null,a.join("."))):n.print(null,i),this.typeExpression>0){var l=e&&e.length||0,p=(u||0)-l;if(l>0||p>0){if(n.print(null,"<"),l>0&&this.visitAllObjects(function(t){return t.visitType(r,n)},e,n,","),p>0)for(var h=0;h<p;h++)(h>0||l>0)&&n.print(null,","),n.print(null,"any");n.print(null,">")}}},e.prototype._printColonType=function(t,e,n){t!==ac&&(e.print(null,":"),this.visitType(t,e,n))},e}(vl),wl={};Dn(e.SecurityContext.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),Dn(e.SecurityContext.STYLE,["*|style"]),Dn(e.SecurityContext.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","img|srcset","input|src","ins|cite","q|cite","source|src","source|srcset","track|src","video|poster","video|src"]),Dn(e.SecurityContext.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"]);var Cl="boolean",El="number",Sl="string",xl="object",Tl=["[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop","[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","media^[HTMLElement]|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume",":svg:^[HTMLElement]|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username","area^[HTMLElement]|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username","audio^media|","br^[HTMLElement]|clear","base^[HTMLElement]|href,target","body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^[HTMLElement]|#height,#width","content^[HTMLElement]|select","dl^[HTMLElement]|!compact","datalist^[HTMLElement]|","details^[HTMLElement]|!open","dialog^[HTMLElement]|!open,returnValue","dir^[HTMLElement]|!compact","div^[HTMLElement]|align","embed^[HTMLElement]|align,height,name,src,type,width","fieldset^[HTMLElement]|!disabled,name","font^[HTMLElement]|color,face,size","form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^[HTMLElement]|align,color,!noShade,size,width","head^[HTMLElement]|","h1,h2,h3,h4,h5,h6^[HTMLElement]|align","html^[HTMLElement]|version","iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","keygen^[HTMLElement]|!autofocus,challenge,!disabled,keytype,name","li^[HTMLElement]|type,#value","label^[HTMLElement]|htmlFor","legend^[HTMLElement]|align","link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type","map^[HTMLElement]|name","marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^[HTMLElement]|!compact","meta^[HTMLElement]|content,httpEquiv,name,scheme","meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value","ins,del^[HTMLElement]|cite,dateTime","ol^[HTMLElement]|!compact,!reversed,#start,type","object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^[HTMLElement]|!disabled,label","option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value","output^[HTMLElement]|defaultValue,%htmlFor,name,value","p^[HTMLElement]|align","param^[HTMLElement]|name,type,value,valueType","picture^[HTMLElement]|","pre^[HTMLElement]|#width","progress^[HTMLElement]|#max,#value","q,blockquote,cite^[HTMLElement]|","script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type","select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","shadow^[HTMLElement]|","source^[HTMLElement]|media,sizes,src,srcset,type","span^[HTMLElement]|","style^[HTMLElement]|!disabled,media,type","caption^[HTMLElement]|align","th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width","table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign","template^[HTMLElement]|","textarea^[HTMLElement]|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","title^[HTMLElement]|text","track^[HTMLElement]|!default,kind,label,src,srclang","ul^[HTMLElement]|!compact,type","unknown^[HTMLElement]|","video^media|#height,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:cursor^:svg:|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan","data^[HTMLElement]|value","menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default","summary^[HTMLElement]|","time^[HTMLElement]|dateTime"],Pl={class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},Al=function(t){function n(){var e=t.call(this)||this;return e._schema={},Tl.forEach(function(t){var n={},r=t.split("|"),o=r[0],i=r[1].split(","),s=o.split("^"),a=s[0],u=s[1];a.split(",").forEach(function(t){return e._schema[t.toLowerCase()]=n});var c=u&&e._schema[u.toLowerCase()];c&&Object.keys(c).forEach(function(t){n[t]=c[t]}),i.forEach(function(t){if(t.length>0)switch(t[0]){case"*":break;case"!":n[t.substring(1)]=Cl;break;case"#":n[t.substring(1)]=El;break;case"%":n[t.substring(1)]=xl;break;default:n[t]=Sl}})}),e}return Xr(n,t),n.prototype.hasProperty=function(t,n,r){if(r.some(function(t){return t.name===e.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if(o(t)||i(t))return!1;if(r.some(function(t){return t.name===e.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}return!!(this._schema[t.toLowerCase()]||this._schema.unknown)[n]},n.prototype.hasElement=function(t,n){if(n.some(function(t){return t.name===e.NO_ERRORS_SCHEMA.name}))return!0;if(t.indexOf("-")>-1){if(o(t)||i(t))return!0;if(n.some(function(t){return t.name===e.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}return!!this._schema[t.toLowerCase()]},n.prototype.securityContext=function(t,n,r){r&&(n=this.getMappedPropName(n)),t=t.toLowerCase(),n=n.toLowerCase();var o=wl[t+"|"+n];return o||((o=wl["*|"+n])||e.SecurityContext.NONE)},n.prototype.getMappedPropName=function(t){return Pl[t]||t},n.prototype.getDefaultComponentElementName=function(){return"ng-component"},n.prototype.validateProperty=function(t){return t.toLowerCase().startsWith("on")?{error:!0,msg:"Binding to event property '"+t+"' is disallowed for security reasons, please use ("+t.slice(2)+")=...\nIf '"+t+"' is a directive input, make sure the directive is imported by the current module."}:{error:!1}},n.prototype.validateAttribute=function(t){return t.toLowerCase().startsWith("on")?{error:!0,msg:"Binding to event attribute '"+t+"' is disallowed for security reasons, please use ("+t.slice(2)+")=..."}:{error:!1}},n.prototype.allKnownElementNames=function(){return Object.keys(this._schema)},n.prototype.normalizeAnimationStyleProperty=function(t){return l(t)},n.prototype.normalizeAnimationStyleValue=function(t,e,n){var r="",o=n.toString().trim(),i=null;if(jn(t)&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{var s=n.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&(i="Please provide a CSS unit value for "+e+":"+n)}return{error:i,value:o+r}},n}(tu);Al.decorators=[{type:z}],Al.ctorParameters=function(){return[]};var Ol=function(){function t(){this.strictStyling=!0}return t.prototype.shimCssText=function(t,e,n){void 0===n&&(n="");var r=Vn(t);return t=Ln(t),t=this._insertDirectives(t),this._scopeCssText(t,e,n)+r},t.prototype._insertDirectives=function(t){return t=this._insertPolyfillDirectivesInCssText(t),this._insertPolyfillRulesInCssText(t)},t.prototype._insertPolyfillDirectivesInCssText=function(t){return t.replace(Rl,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[2]+"{"})},t.prototype._insertPolyfillRulesInCssText=function(t){return t.replace(kl,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t[0].replace(t[1],"").replace(t[2],"");return t[4]+n})},t.prototype._scopeCssText=function(t,e,n){var r=this._extractUnscopedRulesFromCssText(t);return t=this._insertPolyfillHostInCssText(t),t=this._convertColonHost(t),t=this._convertColonHostContext(t),t=this._convertShadowDOMSelectors(t),e&&(t=this._scopeSelectors(t,e,n)),(t=t+"\n"+r).trim()},t.prototype._extractUnscopedRulesFromCssText=function(t){var e,n="";for(Il.lastIndex=0;null!==(e=Il.exec(t));)n+=e[0].replace(e[2],"").replace(e[1],e[4])+"\n\n";return n},t.prototype._convertColonHost=function(t){return this._convertColonRule(t,Ll,this._colonHostPartReplacer)},t.prototype._convertColonHostContext=function(t){return this._convertColonRule(t,Vl,this._colonHostContextPartReplacer)},t.prototype._convertColonRule=function(t,e,n){return t.replace(e,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(t[2]){for(var r=t[2].split(","),o=[],i=0;i<r.length;i++){var s=r[i].trim();if(!s)break;o.push(n(Fl,s,t[3]))}return o.join(",")}return Fl+t[3]})},t.prototype._colonHostContextPartReplacer=function(t,e,n){return e.indexOf(Nl)>-1?this._colonHostPartReplacer(t,e,n):t+e+n+", "+e+" "+t+n},t.prototype._colonHostPartReplacer=function(t,e,n){return t+e.replace(Nl,"")+n},t.prototype._convertShadowDOMSelectors=function(t){return Hl.reduce(function(t,e){return t.replace(e," ")},t)},t.prototype._scopeSelectors=function(t,e,n){var r=this;return Fn(t,function(t){var o=t.selector,i=t.content;return"@"!=t.selector[0]?o=r._scopeSelector(t.selector,e,n,r.strictStyling):(t.selector.startsWith("@media")||t.selector.startsWith("@supports")||t.selector.startsWith("@page")||t.selector.startsWith("@document"))&&(i=r._scopeSelectors(t.content,e,n)),new tp(o,i)})},t.prototype._scopeSelector=function(t,e,n,r){var o=this;return t.split(",").map(function(t){return t.trim().split(Bl)}).map(function(t){var i=t[0],s=t.slice(1);return[function(t){return o._selectorNeedsScoping(t,e)?r?o._applyStrictSelectorScope(t,e,n):o._applySelectorScope(t,e,n):t}(i)].concat(s).join(" ")}).join(", ")},t.prototype._selectorNeedsScoping=function(t,e){return!this._makeScopeMatcher(e).test(t)},t.prototype._makeScopeMatcher=function(t){var e=/\[/g,n=/\]/g;return t=t.replace(e,"\\[").replace(n,"\\]"),new RegExp("^("+t+")"+ql,"m")},t.prototype._applySelectorScope=function(t,e,n){return this._applySimpleSelectorScope(t,e,n)},t.prototype._applySimpleSelectorScope=function(t,e,n){if(zl.lastIndex=0,zl.test(t)){var r=this.strictStyling?"["+n+"]":e;return t.replace(Ul,function(t,e){return e.replace(/([^:]*)(:*)(.*)/,function(t,e,n,o){return e+r+n+o})}).replace(zl,r+" ")}return e+" "+t},t.prototype._applyStrictSelectorScope=function(t,e,n){for(var r,o=this,i=/\[is=([^\]]*)\]/g,s="["+(e=e.replace(i,function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e[0]}))+"]",a=function(t){var r=t.trim();if(!r)return"";if(t.indexOf(Fl)>-1)r=o._applySimpleSelectorScope(t,e,n);else{var i=t.replace(zl,"");if(i.length>0){var a=i.match(/([^:]*)(:*)(.*)/);a&&(r=a[1]+s+a[2]+a[3])}}return r},u=new Ml(t),c="",l=0,p=/( |>|\+|~(?!=))\s*/g,h=(t=u.content()).indexOf(Fl);null!==(r=p.exec(t));){var f=r[1],d=t.slice(l,r.index).trim();c+=(l>=h?a(d):d)+" "+f+" ",l=p.lastIndex}return c+=a(t.substring(l)),u.restore(c)},t.prototype._insertPolyfillHostInCssText=function(t){return t.replace(Wl,Dl).replace(Gl,Nl)},t}(),Ml=function(){function t(t){var e=this;this.placeholders=[],this.index=0,t=t.replace(/(\[[^\]]*\])/g,function(t,n){var r="__ph-"+e.index+"__";return e.placeholders.push(n),e.index++,r}),this._content=t.replace(/(:nth-[-\w]+)(\([^)]+\))/g,function(t,n,r){var o="__ph-"+e.index+"__";return e.placeholders.push(r),e.index++,n+o})}return t.prototype.restore=function(t){var e=this;return t.replace(/__ph-(\d+)__/g,function(t,n){return e.placeholders[+n]})},t.prototype.content=function(){return this._content},t}(),Rl=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,kl=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,Il=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,Nl="-shadowcsshost",Dl="-shadowcsscontext",jl=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",Ll=new RegExp("("+Nl+jl,"gim"),Vl=new RegExp("("+Dl+jl,"gim"),Fl=Nl+"-no-combinator",Ul=/-shadowcsshost-no-combinator([^\s]*)/,Hl=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],Bl=/(?:>>>)|(?:\/deep\/)/g,ql="([>\\s~+[.,{:][\\s\\S]*)?$",zl=/-shadowcsshost/gim,Gl=/:host/gim,Wl=/:host-context/gim,$l=/\/\*\s*[\s\S]*?\*\//g,Kl=/\/\*\s*#\s*sourceMappingURL=[\s\S]+?\*\//,Ql=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,Xl=/([{}])/g,Zl="{",Yl="}",Jl="%BLOCK%",tp=function(){function t(t,e){this.selector=t,this.content=e}return t}(),ep=function(){function t(t,e){this.escapedString=t,this.blocks=e}return t}(),np=function(){function t(t,e,n,r){this.name=t,this.moduleUrl=e,this.isShimmed=n,this.valuePlaceholder=r}return t}(),rp=function(){function t(t,e){this.componentStylesheet=t,this.externalStylesheets=e}return t}(),op=function(){function t(t,e,n,r,o){this.statements=t,this.stylesVar=e,this.dependencies=n,this.isShimmed=r,this.meta=o}return t}(),ip=function(){function t(t){this._urlResolver=t,this._shadowCss=new Ol}return t.prototype.compileComponent=function(t){var e=this,n=t.template,r=[],o=this._compileStyles(t,new Wo({styles:n.styles,styleUrls:n.styleUrls,moduleUrl:S(t.type)}),!0);return n.externalStylesheets.forEach(function(n){var o=e._compileStyles(t,n,!1);r.push(o)}),new rp(o,r)},t.prototype._compileStyles=function(t,n,r){for(var o=this,i=t.template.encapsulation===e.ViewEncapsulation.Emulated,s=n.styles.map(function(t){return Sn(o._shimIfNeeded(t,i))}),a=[],u=0;u<n.styleUrls.length;u++){var c={reference:null};a.push(new np(Hn(null),n.styleUrls[u],i,c)),s.push(new wc(c))}var l=Hn(r?t:null),p=mn(l).set(bn(s,new oc(sc,[Ju.Const]))).toDeclStmt(null,[Vc.Final]);return new op([p],l,a,i,n)},t.prototype._shimIfNeeded=function(t,e){return e?this._shadowCss.shimCssText(t,"_ngcontent-%COMP%","_nghost-%COMP%"):t},t}();ip.decorators=[{type:z}],ip.ctorParameters=function(){return[{type:Vu}]};var sp=function(){function t(){}return t}();sp.event=mn("$event");var ap=function(){function t(t,e){this.stmts=t,this.allowDefault=e}return t}(),up=function(){function t(t,e){this.stmts=t,this.currValExpr=e}return t}(),cp={};cp.Statement=0,cp.Expression=1,cp[cp.Statement]="Statement",cp[cp.Expression]="Expression";var lp=function(t){function e(e){var n=t.call(this)||this;return n._converterFactory=e,n}return Xr(e,t),e.prototype.visitPipe=function(t,e){var n=this,r=[t.exp].concat(t.args).map(function(t){return t.visit(n,e)});return new fp(t.span,r,this._converterFactory.createPipeConverter(t.name,r.length))},e.prototype.visitLiteralArray=function(t,e){var n=this,r=t.expressions.map(function(t){return t.visit(n,e)});return new fp(t.span,r,this._converterFactory.createLiteralArrayConverter(t.expressions.length))},e.prototype.visitLiteralMap=function(t,e){var n=this,r=t.values.map(function(t){return t.visit(n,e)});return new fp(t.span,r,this._converterFactory.createLiteralMapConverter(t.keys))},e}(Ti),pp=function(){function t(t,e,n){this._localResolver=t,this._implicitReceiver=e,this.bindingId=n,this._nodeMap=new Map,this._resultMap=new Map,this._currentTemporary=0,this.temporaryCount=0}return t.prototype.visitBinary=function(t,e){var n;switch(t.operation){case"+":n=cc.Plus;break;case"-":n=cc.Minus;break;case"*":n=cc.Multiply;break;case"/":n=cc.Divide;break;case"%":n=cc.Modulo;break;case"&&":n=cc.And;break;case"||":n=cc.Or;break;case"==":n=cc.Equals;break;case"!=":n=cc.NotEquals;break;case"===":n=cc.Identical;break;case"!==":n=cc.NotIdentical;break;case"<":n=cc.Lower;break;case">":n=cc.Bigger;break;case"<=":n=cc.LowerEquals;break;case">=":n=cc.BiggerEquals;break;default:throw new Error("Unsupported operation "+t.operation)}return Zn(e,new Pc(n,this.visit(t.left,cp.Expression),this.visit(t.right,cp.Expression)))},t.prototype.visitChain=function(t,e){return Qn(e,t),this.visitAll(t.expressions,e)},t.prototype.visitConditional=function(t,e){return Zn(e,this.visit(t.condition,cp.Expression).conditional(this.visit(t.trueExp,cp.Expression),this.visit(t.falseExp,cp.Expression)))},t.prototype.visitPipe=function(t,e){throw new Error("Illegal state: Pipes should have been converted into functions. Pipe: "+t.name)},t.prototype.visitFunctionCall=function(t,e){var n,r=this.visitAll(t.args,cp.Expression);return n=t instanceof fp?t.converter(r):this.visit(t.target,cp.Expression).callFn(r),Zn(e,n)},t.prototype.visitImplicitReceiver=function(t,e){return Xn(e,t),this._implicitReceiver},t.prototype.visitInterpolation=function(t,e){Xn(e,t);for(var n=[Sn(t.expressions.length)],r=0;r<t.strings.length-1;r++)n.push(Sn(t.strings[r])),n.push(this.visit(t.expressions[r],cp.Expression));return n.push(Sn(t.strings[t.strings.length-1])),t.expressions.length<=9?vn(fe(Ga.inlineInterpolate)).callFn(n):vn(fe(Ga.interpolate)).callFn([n[0],bn(n.slice(1))])},t.prototype.visitKeyedRead=function(t,e){var n=this.leftMostSafeNode(t);return n?this.convertSafeAccess(t,n,e):Zn(e,this.visit(t.obj,cp.Expression).key(this.visit(t.key,cp.Expression)))},t.prototype.visitKeyedWrite=function(t,e){var n=this.visit(t.obj,cp.Expression),r=this.visit(t.key,cp.Expression),o=this.visit(t.value,cp.Expression);return Zn(e,n.key(r).set(o))},t.prototype.visitLiteralArray=function(t,e){throw new Error("Illegal State: literal arrays should have been converted into functions")},t.prototype.visitLiteralMap=function(t,e){throw new Error("Illegal State: literal maps should have been converted into functions")},t.prototype.visitLiteralPrimitive=function(t,e){return Zn(e,Sn(t.value))},t.prototype._getLocal=function(t){return this._localResolver.getLocal(t)},t.prototype.visitMethodCall=function(t,e){var n=this.leftMostSafeNode(t);if(n)return this.convertSafeAccess(t,n,e);var r=this.visitAll(t.args,cp.Expression),o=null,i=this.visit(t.receiver,cp.Expression);if(i===this._implicitReceiver){var s=this._getLocal(t.name);s&&(o=s.callFn(r))}return null==o&&(o=i.callMethod(t.name,r)),Zn(e,o)},t.prototype.visitPrefixNot=function(t,e){return Zn(e,Cn(this.visit(t.expression,cp.Expression)))},t.prototype.visitPropertyRead=function(t,e){var n=this.leftMostSafeNode(t);if(n)return this.convertSafeAccess(t,n,e);var r=null,o=this.visit(t.receiver,cp.Expression);return o===this._implicitReceiver&&(r=this._getLocal(t.name)),null==r&&(r=o.prop(t.name)),Zn(e,r)},t.prototype.visitPropertyWrite=function(t,e){var n=this.visit(t.receiver,cp.Expression);if(n===this._implicitReceiver&&this._getLocal(t.name))throw new Error("Cannot assign to a reference or variable!");return Zn(e,n.prop(t.name).set(this.visit(t.value,cp.Expression)))},t.prototype.visitSafePropertyRead=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},t.prototype.visitSafeMethodCall=function(t,e){return this.convertSafeAccess(t,this.leftMostSafeNode(t),e)},t.prototype.visitAll=function(t,e){var n=this;return t.map(function(t){return n.visit(t,e)})},t.prototype.visitQuote=function(t,e){throw new Error("Quotes are not supported for evaluation!\n        Statement: "+t.uninterpretedExpression+" located at "+t.location)},t.prototype.visit=function(t,e){var n=this._resultMap.get(t);return n||(this._nodeMap.get(t)||t).visit(this,e)},t.prototype.convertSafeAccess=function(t,e,n){var r=this.visit(e.receiver,cp.Expression),o=void 0;this.needsTemporary(e.receiver)&&(r=(o=this.allocateTemporary()).set(r),this._resultMap.set(e.receiver,o));var i=r.isBlank();e instanceof wi?this._nodeMap.set(e,new bi(e.span,e.receiver,e.name,e.args)):this._nodeMap.set(e,new ui(e.span,e.receiver,e.name));var s=this.visit(t,cp.Expression);return this._nodeMap.delete(e),o&&this.releaseTemporary(o),Zn(n,i.conditional(Sn(null),s))},t.prototype.leftMostSafeNode=function(t){var e=this,n=function(t,n){return(e._nodeMap.get(n)||n).visit(t)};return t.visit({visitBinary:function(t){return null},visitChain:function(t){return null},visitConditional:function(t){return null},visitFunctionCall:function(t){return null},visitImplicitReceiver:function(t){return null},visitInterpolation:function(t){return null},visitKeyedRead:function(t){return n(this,t.obj)},visitKeyedWrite:function(t){return null},visitLiteralArray:function(t){return null},visitLiteralMap:function(t){return null},visitLiteralPrimitive:function(t){return null},visitMethodCall:function(t){return n(this,t.receiver)},visitPipe:function(t){return null},visitPrefixNot:function(t){return null},visitPropertyRead:function(t){return n(this,t.receiver)},visitPropertyWrite:function(t){return null},visitQuote:function(t){return null},visitSafeMethodCall:function(t){return n(this,t.receiver)||t},visitSafePropertyRead:function(t){return n(this,t.receiver)||t}})},t.prototype.needsTemporary=function(t){var e=this,n=function(t,n){return n&&(e._nodeMap.get(n)||n).visit(t)},r=function(t,e){return e.some(function(e){return n(t,e)})};return t.visit({visitBinary:function(t){return n(this,t.left)||n(this,t.right)},visitChain:function(t){return!1},visitConditional:function(t){return n(this,t.condition)||n(this,t.trueExp)||n(this,t.falseExp)},visitFunctionCall:function(t){return!0},visitImplicitReceiver:function(t){return!1},visitInterpolation:function(t){return r(this,t.expressions)},visitKeyedRead:function(t){return!1},visitKeyedWrite:function(t){return!1},visitLiteralArray:function(t){return!0},visitLiteralMap:function(t){return!0},visitLiteralPrimitive:function(t){return!1},visitMethodCall:function(t){return!0},visitPipe:function(t){return!0},visitPrefixNot:function(t){return n(this,t.expression)},visitPropertyRead:function(t){return!1},visitPropertyWrite:function(t){return!1},visitQuote:function(t){return!1},visitSafeMethodCall:function(t){return!0},visitSafePropertyRead:function(t){return!1}})},t.prototype.allocateTemporary=function(){var t=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new hc(Wn(this.bindingId,t))},t.prototype.releaseTemporary=function(t){if(this._currentTemporary--,t.name!=Wn(this.bindingId,this._currentTemporary))throw new Error("Temporary "+t.name+" released out of order")},t}(),hp=function(){function t(){}return t.prototype.getLocal=function(t){return t===sp.event.name?sp.event:null},t}(),fp=function(t){function e(e,n,r){var o=t.call(this,e,null,n)||this;return o.args=n,o.converter=r,o}return Xr(e,t),e}(Ci),dp="class",yp="style",mp=function(){function t(t,e,n){this.statements=t,this.viewClassVar=e,this.rendererTypeVar=n}return t}(),vp=function(){function t(t,e){this._genConfigNext=t,this._schemaRegistry=e}return t.prototype.compileComponent=function(t,e,n,r){var o=0,i=dr(e),s=[],a=void 0;if(!t.isHost){var u=t.template,c=[];u.animations&&u.animations.length&&c.push(new Rc("animation",Pn(u.animations),!0));var l=mn(T(t.type.reference));a=l.name,s.push(l.set(vn(fe(Ga.createRendererType2)).callFn([new kc([new Rc("encapsulation",Sn(u.encapsulation)),new Rc("styles",n),new Rc("data",new kc(c))])])).toDeclStmt(gn(fe(Ga.RendererType2)),[Vc.Final]))}var p=function(e){var n=o++;return new Sp(e,t,n,r,i,p)},h=p(null);return h.visitAll([],e),s.push.apply(s,h.build()),new mp(s,h.viewName,a)},t}();vp.decorators=[{type:z}],vp.ctorParameters=function(){return[{type:Jo},{type:tu}]};var gp=mn("l"),_p=mn("v"),bp=mn("ck"),wp=mn("co"),Cp=mn("en"),Ep=mn("ad"),Sp=function(){function t(t,e,n,r,o,i){this.parent=t,this.component=e,this.embeddedViewIndex=n,this.usedPipes=r,this.staticQueryIds=o,this.viewBuilderFactory=i,this.nodes=[],this.purePipeNodeIndices=Object.create(null),this.refNodeIndices=Object.create(null),this.variables=[],this.children=[],this.compType=this.embeddedViewIndex>0?sc:gn(this.component.type)}return Object.defineProperty(t.prototype,"viewName",{get:function(){return x(this.component.type.reference,this.embeddedViewIndex)},enumerable:!0,configurable:!0}),t.prototype.visitAll=function(t,e){var r=this;if(this.variables=t,this.parent||this.usedPipes.forEach(function(t){t.pure&&(r.purePipeNodeIndices[t.name]=r._createPipe(null,t))}),!this.parent){var o=yr(this.staticQueryIds);this.component.viewQueries.forEach(function(t,e){var n=e+1,i=t.first?0:1,s=134217728|gr(o,n,t.first);r.nodes.push(function(){return{sourceSpan:null,nodeFlags:s,nodeDef:vn(fe(Ga.queryDef)).callFn([Sn(s),Sn(n),new kc([new Rc(t.propertyName,Sn(i))])])}})})}n(this,e),this.parent&&(0===e.length||ar(e))&&this.nodes.push(function(){return{sourceSpan:null,nodeFlags:1,nodeDef:vn(fe(Ga.anchorDef)).callFn([Sn(0),jc,jc,Sn(0)])}})},t.prototype.build=function(t){void 0===t&&(t=[]),this.children.forEach(function(e){return e.build(t)});var n=this._createNodeExpressions(),r=n.updateRendererStmts,o=n.updateDirectivesStmts,i=n.nodeDefExprs,s=this._createUpdateFn(r),a=this._createUpdateFn(o),u=0;this.parent||this.component.changeDetection!==e.ChangeDetectionStrategy.OnPush||(u|=2);var c=new Hc(this.viewName,[new xc(gp.name)],[new qc(vn(fe(Ga.viewDef)).callFn([Sn(u),bn(i),a,s]))],gn(fe(Ga.ViewDefinition)));return t.push(c),t},t.prototype._createUpdateFn=function(t){var e;if(t.length>0){var n=[];!this.component.isHost&&fn(t).has(wp.name)&&n.push(wp.set(_p.prop("component")).toDeclStmt(this.compType)),e=En([new xc(bp.name,ac),new xc(_p.name,ac)],n.concat(t),ac)}else e=jc;return e},t.prototype.visitNgContent=function(t,e){this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:8,nodeDef:vn(fe(Ga.ngContentDef)).callFn([Sn(t.ngContentIndex),Sn(t.index)])}})},t.prototype.visitText=function(t,e){this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:2,nodeDef:vn(fe(Ga.textDef)).callFn([Sn(t.ngContentIndex),bn([Sn(t.value)])])}})},t.prototype.visitBoundText=function(t,e){var n=this,r=this.nodes.length;this.nodes.push(null);var o=t.value.ast,i=o.expressions.map(function(e,o){return n._preprocessUpdateExpression({nodeIndex:r,bindingIndex:o,sourceSpan:t.sourceSpan,context:wp,value:e})});this.nodes[r]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:2,nodeDef:vn(fe(Ga.textDef)).callFn([Sn(t.ngContentIndex),bn(o.strings.map(function(t){return Sn(t)}))]),updateRenderer:i}}},t.prototype.visitEmbeddedTemplate=function(t,e){var n=this,r=this.nodes.length;this.nodes.push(null);var o=this._visitElementOrTemplate(r,t),i=o.flags,s=o.queryMatchesExpr,a=o.hostEvents,u=this.viewBuilderFactory(this);this.children.push(u),u.visitAll(t.variables,t.children);var c=this.nodes.length-r-1;this.nodes[r]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:1|i,nodeDef:vn(fe(Ga.anchorDef)).callFn([Sn(i),s,Sn(t.ngContentIndex),Sn(c),n._createElementHandleEventFn(r,a),mn(u.viewName)])}}},t.prototype.visitElement=function(t,e){var r=this,i=this.nodes.length;this.nodes.push(null);var s=o(t.name)?null:t.name,a=this._visitElementOrTemplate(i,t),u=a.flags,c=a.usedEvents,l=a.queryMatchesExpr,p=a.hostBindings,h=a.hostEvents,f=[],d=[],y=[];if(s){var m=t.inputs.map(function(t){return{context:wp,inputAst:t,dirAst:null}}).concat(p);m.length&&(d=m.map(function(t,e){return r._preprocessUpdateExpression({context:t.context,nodeIndex:i,bindingIndex:e,sourceSpan:t.inputAst.sourceSpan,value:t.inputAst.value})}),f=m.map(function(t){return cr(t.inputAst,t.dirAst)})),y=c.map(function(t){var e=t[0],n=t[1];return bn([Sn(e),Sn(n)])})}n(this,t.children);var v=this.nodes.length-i-1,g=t.directives.find(function(t){return t.directive.isComponent}),_=jc,b=jc;g&&(b=vn({reference:g.directive.componentViewType}),_=vn({reference:g.directive.rendererType})),this.nodes[i]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:1|u,nodeDef:vn(fe(Ga.elementDef)).callFn([Sn(u),l,Sn(t.ngContentIndex),Sn(v),Sn(s),s?lr(t):jc,f.length?bn(f):jc,y.length?bn(y):jc,r._createElementHandleEventFn(i,h),b,_]),updateRenderer:d}}},t.prototype._visitElementOrTemplate=function(t,n){var r=this,o=0;n.hasViewContainer&&(o|=16777216);var i=new Map;n.outputs.forEach(function(t){var n=vr(t,null),r=n.name,o=n.target;i.set(e.ɵelementEventFullName(o,r),[o,r])}),n.directives.forEach(function(t){t.hostEvents.forEach(function(n){var r=vr(n,t),o=r.name,s=r.target;i.set(e.ɵelementEventFullName(s,o),[s,o])})});var s=[],a=[],u=mr(n.directives);u&&this._visitProvider(u,n.queryMatches),n.providers.forEach(function(e,o){var u=void 0,c=void 0;if(n.directives.forEach(function(t,n){t.directive.type.reference===R(e.token)&&(u=t,c=n)}),u){var l=r._visitDirective(e,u,c,t,n.references,n.queryMatches,i,r.staticQueryIds.get(n)),p=l.hostBindings,h=l.hostEvents;s.push.apply(s,p),a.push.apply(a,h)}else r._visitProvider(e,n.queryMatches)});var c=[];return n.queryMatches.forEach(function(t){var e=void 0;R(t.value)===he(Ga.ElementRef)?e=0:R(t.value)===he(Ga.ViewContainerRef)?e=3:R(t.value)===he(Ga.TemplateRef)&&(e=2),null!=e&&c.push(bn([Sn(t.queryId),Sn(e)]))}),n.references.forEach(function(e){var n=void 0;e.value?R(e.value)===he(Ga.TemplateRef)&&(n=2):n=1,null!=n&&(r.refNodeIndices[e.name]=t,c.push(bn([Sn(e.name),Sn(n)])))}),n.outputs.forEach(function(t){a.push({context:wp,eventAst:t,dirAst:null})}),{flags:o,usedEvents:Array.from(i.values()),queryMatchesExpr:c.length?bn(c):jc,hostBindings:s,hostEvents:a}},t.prototype._visitDirective=function(t,e,n,r,o,i,s,a){var u=this,c=this.nodes.length;this.nodes.push(null),e.directive.queries.forEach(function(t,n){var r=e.contentQueryStartId+n,o=67108864|gr(a,r,t.first),i=t.first?0:1;u.nodes.push(function(){return{sourceSpan:e.sourceSpan,nodeFlags:o,nodeDef:vn(fe(Ga.queryDef)).callFn([Sn(o),Sn(r),new kc([new Rc(t.propertyName,Sn(i))])])}})});var l=this.nodes.length-c-1,p=this._visitProviderOrDirective(t,i),h=p.flags,f=p.queryMatchExprs,d=p.providerExpr,y=p.depsExpr;o.forEach(function(e){e.value&&R(e.value)===R(t.token)&&(u.refNodeIndices[e.name]=c,f.push(bn([Sn(e.name),Sn(4)])))}),e.directive.isComponent&&(h|=32768);var m=e.inputs.map(function(t,e){var n=bn([Sn(e),Sn(t.directiveName)]);return new Rc(t.directiveName,n,!1)}),v=[],g=e.directive;Object.keys(g.outputs).forEach(function(t){var e=g.outputs[t];s.has(e)&&v.push(new Rc(t,Sn(e),!1))});var _=[];(e.inputs.length||(327680&h)>0)&&(_=e.inputs.map(function(t,e){return u._preprocessUpdateExpression({nodeIndex:c,bindingIndex:e,sourceSpan:t.sourceSpan,context:wp,value:t.value})}));var b=vn(fe(Ga.nodeValue)).callFn([_p,Sn(c)]),w=e.hostProperties.map(function(t){return{context:b,dirAst:e,inputAst:t}}),C=e.hostEvents.map(function(t){return{context:b,eventAst:t,dirAst:e}});return this.nodes[c]=function(){return{sourceSpan:e.sourceSpan,nodeFlags:16384|h,nodeDef:vn(fe(Ga.directiveDef)).callFn([Sn(h),f.length?bn(f):jc,Sn(l),d,y,m.length?new kc(m):jc,v.length?new kc(v):jc]),updateDirectives:_,directive:e.directive.type}},{hostBindings:w,hostEvents:C}},t.prototype._visitProvider=function(t,e){var n=this.nodes.length;this.nodes.push(null);var r=this._visitProviderOrDirective(t,e),o=r.flags,i=r.queryMatchExprs,s=r.providerExpr,a=r.depsExpr;this.nodes[n]=function(){return{sourceSpan:t.sourceSpan,nodeFlags:o,nodeDef:vn(fe(Ga.providerDef)).callFn([Sn(o),i.length?bn(i):jc,ir(t.token),s,a])}}},t.prototype._visitProviderOrDirective=function(t,n){var r=0;t.eager||(r|=4096),t.providerType===lo.PrivateService&&(r|=8192),t.lifecycleHooks.forEach(function(n){n!==e.ɵLifecycleHooks.OnDestroy&&t.providerType!==lo.Directive&&t.providerType!==lo.Component||(r|=ur(n))});var o=[];n.forEach(function(e){R(e.value)===R(t.token)&&o.push(bn([Sn(e.queryId),Sn(4)]))});var i=nr(t),s=i.providerExpr,a=i.depsExpr,u=i.flags;return{flags:r|u,queryMatchExprs:o,providerExpr:s,depsExpr:a}},t.prototype.getLocal=function(t){if(t==sp.event.name)return sp.event;for(var e=_p,n=this;n;n=n.parent,e=e.prop("parent").cast(sc)){var r=n.refNodeIndices[t];if(null!=r)return vn(fe(Ga.nodeValue)).callFn([e,Sn(r)]);var o=n.variables.find(function(e){return e.name===t});if(o){var i=o.value||"$implicit";return e.prop("context").prop(i)}}return null},t.prototype.createLiteralArrayConverter=function(t,e){if(0===e){var n=vn(fe(Ga.EMPTY_ARRAY));return function(){return n}}var r=this.nodes.length;return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:32,nodeDef:vn(fe(Ga.pureArrayDef)).callFn([Sn(e)])}}),function(t){return hr(r,t)}},t.prototype.createLiteralMapConverter=function(t,e){if(0===e.length){var n=vn(fe(Ga.EMPTY_MAP));return function(){return n}}var r=this.nodes.length;return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:64,nodeDef:vn(fe(Ga.pureObjectDef)).callFn([bn(e.map(function(t){return Sn(t)}))])}}),function(t){return hr(r,t)}},t.prototype.createPipeConverter=function(t,e,n){var r=this.usedPipes.find(function(t){return t.name===e});if(r.pure){var o=this.nodes.length;this.nodes.push(function(){return{sourceSpan:t.sourceSpan,nodeFlags:128,nodeDef:vn(fe(Ga.purePipeDef)).callFn([Sn(n)])}});for(var i=_p,s=this;s.parent;)s=s.parent,i=i.prop("parent").cast(sc);var a=s.purePipeNodeIndices[e],u=vn(fe(Ga.nodeValue)).callFn([i,Sn(a)]);return function(e){return fr(t.nodeIndex,t.bindingIndex,hr(o,[u].concat(e)))}}var c=this._createPipe(t.sourceSpan,r),l=vn(fe(Ga.nodeValue)).callFn([_p,Sn(c)]);return function(e){return fr(t.nodeIndex,t.bindingIndex,l.callMethod("transform",e))}},t.prototype._createPipe=function(t,n){var r=this.nodes.length,o=0;n.type.lifecycleHooks.forEach(function(t){t===e.ɵLifecycleHooks.OnDestroy&&(o|=ur(t))});var i=n.type.diDeps.map(sr);return this.nodes.push(function(){return{sourceSpan:t,nodeFlags:16,nodeDef:vn(fe(Ga.pipeDef)).callFn([Sn(o),vn(n.type),bn(i)])}}),r},t.prototype._preprocessUpdateExpression=function(t){var e=this;return{nodeIndex:t.nodeIndex,bindingIndex:t.bindingIndex,sourceSpan:t.sourceSpan,context:t.context,value:qn({createLiteralArrayConverter:function(n){return e.createLiteralArrayConverter(t.sourceSpan,n)},createLiteralMapConverter:function(n){return e.createLiteralMapConverter(t.sourceSpan,n)},createPipeConverter:function(n,r){return e.createPipeConverter(t,n,r)}},t.value)}},t.prototype._createNodeExpressions=function(){function t(t,r,o,i){var s=[],a=o.map(function(t){var r=t.sourceSpan,o=t.context,i=t.value,a=""+n++,u=zn(o===wp?e:null,o,i,a),c=u.stmts,l=u.currValExpr;return s.push.apply(s,c.map(function(t){return dn(t,r)})),yn(l,r)});return(o.length||i)&&s.push(dn(hr(t,a).toStmt(),r)),s}var e=this,n=0,r=[],o=[],i=this.nodes.map(function(e,n){var i=e(),s=i.nodeDef,a=i.nodeFlags,u=i.updateDirectives,c=i.updateRenderer,l=i.sourceSpan;return c&&r.push.apply(r,t(n,l,c,!1)),u&&o.push.apply(o,t(n,l,u,(327680&a)>0)),yn(3&a?new Ic([gp.callFn([]).callFn([]),s]):s,l)});return{updateRendererStmts:r,updateDirectivesStmts:o,nodeDefExprs:i}},t.prototype._createElementHandleEventFn=function(t,n){var r=this,o=[],i=0;n.forEach(function(t){var n=t.context,s=t.eventAst,a=t.dirAst,u=""+i++,c=Bn(n===wp?r:null,n,s.handler,u),l=c.stmts,p=c.allowDefault,h=l;p&&h.push(Ep.set(p.and(Ep)).toStmt());var f=vr(s,a),d=f.target,y=f.name,m=e.ɵelementEventFullName(d,y);o.push(dn(new Qc(Sn(m).identical(Cp),h),s.sourceSpan))});var s;if(o.length>0){var a=[Ep.set(Sn(!0)).toDeclStmt(uc)];!this.component.isHost&&fn(o).has(wp.name)&&a.push(wp.set(_p.prop("component")).toDeclStmt(this.compType)),s=En([new xc(_p.name,ac),new xc(Cp.name,ac),new xc(sp.event.name,ac)],a.concat(o,[new qc(Ep)]),ac)}else s=jc;return s},t.prototype.visitDirective=function(t,e){},t.prototype.visitDirectiveProperty=function(t,e){},t.prototype.visitReference=function(t,e){},t.prototype.visitVariable=function(t,e){},t.prototype.visitEvent=function(t,e){},t.prototype.visitElementProperty=function(t,e){},t.prototype.visitAttr=function(t,e){},t}(),xp=function(){function t(t,e,n){this.srcFileUrl=t,this.genFileUrl=e,this.source=n}return t}(),Tp=function(t){function e(e,n){var r=t.call(this)||this;return r.symbolResolver=e,r.summaryResolver=n,r.symbols=[],r.indexBySymbol=new Map,r.processedSummaryBySymbol=new Map,r.processedSummaries=[],r}return Xr(e,t),e.prototype.addOrMergeSummary=function(t){var e=t.metadata;if(e&&"class"===e.__symbolic){var n={};Object.keys(e).forEach(function(t){"decorators"!==t&&(n[t]=e[t])}),e=n}var r=this.processedSummaryBySymbol.get(t.symbol);r||(r=this.processValue({symbol:t.symbol}),this.processedSummaries.push(r),this.processedSummaryBySymbol.set(t.symbol,r)),null==r.metadata&&null!=e&&(r.metadata=this.processValue(e)),null==r.type&&null!=t.type&&(r.type=this.processValue(t.type))},e.prototype.serialize=function(){var t=this,e=[];return{json:JSON.stringify({summaries:this.processedSummaries,symbols:this.symbols.map(function(n,r){n.assertNoMembers();var o=void 0;return t.summaryResolver.isLibraryFile(n.filePath)&&(o=n.name+"_"+r,e.push({symbol:n,exportAs:o})),{__symbol:r,name:n.name,filePath:t.summaryResolver.getLibraryFileName(n.filePath),importAs:o}})}),exportAs:e}},e.prototype.processValue=function(t){return d(t,this,null)},e.prototype.visitOther=function(t,e){if(t instanceof fo){var n=this.symbolResolver.getStaticSymbol(t.filePath,t.name),r=this.indexBySymbol.get(n);return null==r&&(r=this.indexBySymbol.size,this.indexBySymbol.set(n,r),this.symbols.push(n)),{__symbol:r,members:t.members}}},e}(Ao),Pp=function(t){function e(e){var n=t.call(this)||this;return n.symbolCache=e,n}return Xr(e,t),e.prototype.deserialize=function(t){var e=this,n=JSON.parse(t),r=[];return this.symbols=[],n.symbols.forEach(function(t){var n=e.symbolCache.get(t.filePath,t.name);e.symbols.push(n),t.importAs&&r.push({symbol:n,importAs:t.importAs})}),{summaries:d(n.summaries,this,null),importAs:r}},e.prototype.visitStringMap=function(e,n){if("__symbol"in e){var r=this.symbols[e.__symbol],o=e.members;return o.length?this.symbolCache.get(r.filePath,r.name,o):r}return t.prototype.visitStringMap.call(this,e,n)},e}(Ao),Ap=function(){function t(t,e,n,r,o,i,s,a,u,c,l,p,h){this._config=t,this._host=e,this._metadataResolver=n,this._templateParser=r,this._styleCompiler=o,this._viewCompiler=i,this._ngModuleCompiler=s,this._outputEmitter=a,this._summaryResolver=u,this._localeId=c,this._translationFormat=l,this._genFilePreamble=p,this._symbolResolver=h}return t.prototype.clearCache=function(){this._metadataResolver.clearCache()},t.prototype.compileAll=function(t){var e=this,n=xr(Pr(this._symbolResolver,t,this._host),this._host,this._metadataResolver),r=n.ngModuleByPipeOrDirective,o=n.files,i=n.ngModules;return Promise.all(i.map(function(t){return e._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.type.reference,!1)})).then(function(){return N(o.map(function(t){return e._compileSrcFile(t.srcUrl,r,t.directives,t.pipes,t.ngModules,t.injectables)}))})},t.prototype._compileSrcFile=function(t,e,n,r,o,i){var s=this,a=Ye(t)[1],u=[],c=[],l=[];if(l.push(this._createSummary(t,n,r,o,i,u,c)),c.push.apply(c,o.map(function(t){return s._compileModule(t,u)})),n.forEach(function(n){var r=s._metadataResolver.getDirectiveMetadata(n);if(!r.isComponent)return Promise.resolve(null);var o=e.get(n);if(!o)throw new Error("Internal Error: cannot determine the module for component "+E(r.type)+"!");Er(r);var i=s._styleCompiler.compileComponent(r);i.externalStylesheets.forEach(function(e){l.push(s._codgenStyles(t,e,a))});var p=s._compileComponent(r,o,o.transitiveModule.directives,i.componentStylesheet,a,u);c.push(s._compileComponentFactory(r,o,a,u),p.viewClassVar,p.compRenderTypeVar)}),u.length>0){var p=this._codegenSourceModule(t,Qe(t),u,c);l.unshift(p)}return l},t.prototype._createSummary=function(t,e,n,r,o,i,s){var a=this,u=this._symbolResolver.getSymbolsOf(t).map(function(t){return a._symbolResolver.resolveSymbol(t)}),c=r.map(function(t){return a._metadataResolver.getNgModuleSummary(t)}).concat(e.map(function(t){return a._metadataResolver.getDirectiveSummary(t)}),n.map(function(t){return a._metadataResolver.getPipeSummary(t)}),o.map(function(t){return a._metadataResolver.getInjectableSummary(t)})),l=_r(this._summaryResolver,this._symbolResolver,u,c),p=l.json;return l.exportAs.forEach(function(t){i.push(mn(t.exportAs).set(vn({reference:t.symbol})).toDeclStmt()),s.push(t.exportAs)}),new xp(t,Je(t),p)},t.prototype._compileModule=function(t,e){var n=this._metadataResolver.getNgModuleMetadata(t),r=[];this._localeId&&r.push({token:ye(Ga.LOCALE_ID),useValue:this._localeId}),this._translationFormat&&r.push({token:ye(Ga.TRANSLATIONS_FORMAT),useValue:this._translationFormat});var o=this._ngModuleCompiler.compile(n,r);return e.push.apply(e,o.statements),o.ngModuleFactoryVar},t.prototype._compileComponentFactory=function(t,e,n,r){var o=this._metadataResolver.getHostComponentType(t.type.reference),i=k(o,t,this._metadataResolver.getHostComponentViewClass(o)),s=this._compileComponent(i,e,[t.type],null,n,r).viewClassVar,a=O(t.type.reference),u=[];for(var c in t.inputs){p=t.inputs[c];u.push(new Rc(c,Sn(p),!1))}var l=[];for(var c in t.outputs){var p=t.outputs[c];l.push(new Rc(c,Sn(p),!1))}return r.push(mn(a).set(vn(fe(Ga.createComponentFactory)).callFn([Sn(t.selector),vn(t.type),mn(s),new kc(u),new kc(l),bn(t.template.ngContentSelectors.map(function(t){return Sn(t)}))])).toDeclStmt(gn(fe(Ga.ComponentFactory),[gn(t.type)],[Ju.Const]),[Vc.Final])),a},t.prototype._compileComponent=function(t,e,n,r,o,i){var s=this,a=n.map(function(t){return s._metadataResolver.getDirectiveSummary(t.reference)}),u=e.transitiveModule.pipes.map(function(t){return s._metadataResolver.getPipeSummary(t.reference)}),c=this._templateParser.parse(t,t.template.template,a,u,e.schemas,j(e.type,t,t.template)),l=c.template,p=c.pipes,h=r?mn(r.stylesVar):bn([]),f=this._viewCompiler.compileComponent(t,l,h,p);return r&&i.push.apply(i,wr(this._symbolResolver,r,o)),i.push.apply(i,f.statements),{viewClassVar:f.viewClassVar,compRenderTypeVar:f.rendererTypeVar}},t.prototype._codgenStyles=function(t,e,n){return wr(this._symbolResolver,e,n),this._codegenSourceModule(t,Cr(e.meta.moduleUrl,e.isShimmed,n),e.statements,[e.stylesVar])},t.prototype._codegenSourceModule=function(t,e,n,r){return new xp(t,e,this._outputEmitter.emitStatements(D(t),e,n,r,this._genFilePreamble))},t}(),Op=function(){function t(t){this.staticDelegate=t,this.dynamicDelegate=new e.ɵReflectionCapabilities}return t.install=function(n){e.ɵreflector.updateCapabilities(new t(n))},t.prototype.isReflectionEnabled=function(){return!0},t.prototype.factory=function(t){return this.dynamicDelegate.factory(t)},t.prototype.hasLifecycleHook=function(t,e){return Or(t)?this.staticDelegate.hasLifecycleHook(t,e):this.dynamicDelegate.hasLifecycleHook(t,e)},t.prototype.parameters=function(t){return Or(t)?this.staticDelegate.parameters(t):this.dynamicDelegate.parameters(t)},t.prototype.annotations=function(t){return Or(t)?this.staticDelegate.annotations(t):this.dynamicDelegate.annotations(t)},t.prototype.propMetadata=function(t){return Or(t)?this.staticDelegate.propMetadata(t):this.dynamicDelegate.propMetadata(t)},t.prototype.getter=function(t){return this.dynamicDelegate.getter(t)},t.prototype.setter=function(t){return this.dynamicDelegate.setter(t)},t.prototype.method=function(t){return this.dynamicDelegate.method(t)},t.prototype.importUri=function(t){return this.staticDelegate.importUri(t)},t.prototype.resourceUri=function(t){return this.staticDelegate.resourceUri(t)},t.prototype.resolveIdentifier=function(t,e,n,r){return this.staticDelegate.resolveIdentifier(t,e,n)},t.prototype.resolveEnum=function(t,e){return Or(t)?this.staticDelegate.resolveEnum(t,e):null},t}(),Mp="@angular/core",Rp=/^\$.*\$$/,kp={__symbolic:"ignore"},Ip=function(){function t(t,n,r,o,i){void 0===r&&(r=[]),void 0===o&&(o=[]);var s=this;this.summaryResolver=t,this.symbolResolver=n,this.errorRecorder=i,this.annotationCache=new Map,this.propertyCache=new Map,this.parameterCache=new Map,this.methodCache=new Map,this.conversionMap=new Map,this.annotationForParentClassWithSummaryKind=new Map,this.annotationNames=new Map,this.initializeConversionMap(),r.forEach(function(t){return s._registerDecoratorOrConstructor(s.getStaticSymbol(t.filePath,t.name),t.ctor)}),o.forEach(function(t){return s._registerFunction(s.getStaticSymbol(t.filePath,t.name),t.fn)}),this.annotationForParentClassWithSummaryKind.set(Go.Directive,[e.Directive,e.Component]),this.annotationForParentClassWithSummaryKind.set(Go.Pipe,[e.Pipe]),this.annotationForParentClassWithSummaryKind.set(Go.NgModule,[e.NgModule]),this.annotationForParentClassWithSummaryKind.set(Go.Injectable,[e.Injectable,e.Pipe,e.Directive,e.Component,e.NgModule]),this.annotationNames.set(e.Directive,"Directive"),this.annotationNames.set(e.Component,"Component"),this.annotationNames.set(e.Pipe,"Pipe"),this.annotationNames.set(e.NgModule,"NgModule"),this.annotationNames.set(e.Injectable,"Injectable")}return t.prototype.importUri=function(t){var e=this.findSymbolDeclaration(t);return e?e.filePath:null},t.prototype.resourceUri=function(t){var e=this.findSymbolDeclaration(t);return this.symbolResolver.getResourcePath(e)},t.prototype.resolveIdentifier=function(t,e,n){var r=this.getStaticSymbol(e,t),o=this.findDeclaration(e,t);return r!=o&&this.symbolResolver.recordImportAs(o,r),n&&n.length?this.getStaticSymbol(o.filePath,o.name,n):o},t.prototype.findDeclaration=function(t,e,n){return this.findSymbolDeclaration(this.symbolResolver.getSymbolByModule(t,e,n))},t.prototype.findSymbolDeclaration=function(t){var e=this.symbolResolver.resolveSymbol(t);return e&&e.metadata instanceof fo?this.findSymbolDeclaration(e.metadata):t},t.prototype.resolveEnum=function(t,e){var n=t,r=(n.members||[]).concat(e);return this.getStaticSymbol(n.filePath,n.name,r)},t.prototype.annotations=function(t){var e=this,n=this.annotationCache.get(t);if(!n){n=[];var r=this.getTypeMetadata(t),o=this.findParentType(t,r);if(o){var i=this.annotations(o);n.push.apply(n,i)}var s=[];if(r.decorators&&(s=this.simplify(t,r.decorators),n.push.apply(n,s)),o&&!this.summaryResolver.isLibraryFile(t.filePath)&&this.summaryResolver.isLibraryFile(o.filePath)){var a=this.summaryResolver.resolveSummary(o);if(a&&a.type){var u=this.annotationForParentClassWithSummaryKind.get(a.type.summaryKind);u.some(function(t){return s.some(function(e){return e instanceof t})})||this.reportError(v("Class "+t.name+" in "+t.filePath+" extends from a "+Go[a.type.summaryKind]+" in another compilation unit without duplicating the decorator. Please add a "+u.map(function(t){return e.annotationNames.get(t)}).join(" or ")+" decorator to the class."),t)}}this.annotationCache.set(t,n.filter(function(t){return!!t}))}return n},t.prototype.propMetadata=function(t){var e=this,n=this.propertyCache.get(t);if(!n){var r=this.getTypeMetadata(t);n={};var o=this.findParentType(t,r);if(o){var i=this.propMetadata(o);Object.keys(i).forEach(function(t){n[t]=i[t]})}var s=r.members||{};Object.keys(s).forEach(function(r){var o=s[r].find(function(t){return"property"==t.__symbolic||"method"==t.__symbolic}),i=[];n[r]&&i.push.apply(i,n[r]),n[r]=i,o&&o.decorators&&i.push.apply(i,e.simplify(t,o.decorators))}),this.propertyCache.set(t,n)}return n},t.prototype.parameters=function(t){if(!(t instanceof fo))return this.reportError(new Error("parameters received "+JSON.stringify(t)+" which is not a StaticSymbol"),t),[];try{var e=this.parameterCache.get(t);if(!e){var n=this.getTypeMetadata(t),r=this.findParentType(t,n),o=n?n.members:null,i=o?o.__ctor__:null;if(i){var s=i.find(function(t){return"constructor"==t.__symbolic}),a=this.simplify(t,s.parameters||[]),u=this.simplify(t,s.parameterDecorators||[]);e=[],a.forEach(function(t,n){var r=[];t&&r.push(t);var o=u?u[n]:null;o&&r.push.apply(r,o),e.push(r)})}else r&&(e=this.parameters(r));e||(e=[]),this.parameterCache.set(t,e)}return e}catch(e){throw console.error("Failed on type "+JSON.stringify(t)+" with error "+e),e}},t.prototype._methodNames=function(t){var e=this.methodCache.get(t);if(!e){var n=this.getTypeMetadata(t);e={};var r=this.findParentType(t,n);if(r){var o=this._methodNames(r);Object.keys(o).forEach(function(t){e[t]=o[t]})}var i=n.members||{};Object.keys(i).forEach(function(t){var n=i[t].some(function(t){return"method"==t.__symbolic});e[t]=e[t]||n}),this.methodCache.set(t,e)}return e},t.prototype.findParentType=function(t,e){var n=this.trySimplify(t,e.extends);if(n instanceof fo)return n},t.prototype.hasLifecycleHook=function(t,e){t instanceof fo||this.reportError(new Error("hasLifecycleHook received "+JSON.stringify(t)+" which is not a StaticSymbol"),t);try{return!!this._methodNames(t)[e]}catch(e){throw console.error("Failed on type "+JSON.stringify(t)+" with error "+e),e}},t.prototype._registerDecoratorOrConstructor=function(t,e){this.conversionMap.set(t,function(t,n){return new(e.bind.apply(e,[void 0].concat(n)))})},t.prototype._registerFunction=function(t,e){this.conversionMap.set(t,function(t,n){return e.apply(void 0,n)})},t.prototype.initializeConversionMap=function(){this.injectionToken=this.findDeclaration(Mp,"InjectionToken"),this.opaqueToken=this.findDeclaration(Mp,"OpaqueToken"),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Host"),e.Host),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Injectable"),e.Injectable),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Self"),e.Self),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"SkipSelf"),e.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Inject"),e.Inject),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Optional"),e.Optional),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Attribute"),e.Attribute),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"ContentChild"),e.ContentChild),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"ContentChildren"),e.ContentChildren),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"ViewChild"),e.ViewChild),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"ViewChildren"),e.ViewChildren),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Input"),e.Input),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Output"),e.Output),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Pipe"),e.Pipe),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"HostBinding"),e.HostBinding),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"HostListener"),e.HostListener),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Directive"),e.Directive),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Component"),e.Component),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"NgModule"),e.NgModule),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Host"),e.Host),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Self"),e.Self),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"SkipSelf"),e.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(Mp,"Optional"),e.Optional),this._registerFunction(this.findDeclaration(Mp,"trigger"),e.trigger),this._registerFunction(this.findDeclaration(Mp,"state"),e.state),this._registerFunction(this.findDeclaration(Mp,"transition"),e.transition),this._registerFunction(this.findDeclaration(Mp,"style"),e.style),this._registerFunction(this.findDeclaration(Mp,"animate"),e.animate),this._registerFunction(this.findDeclaration(Mp,"keyframes"),e.keyframes),this._registerFunction(this.findDeclaration(Mp,"sequence"),e.sequence),this._registerFunction(this.findDeclaration(Mp,"group"),e.group)},t.prototype.getStaticSymbol=function(t,e,n){return this.symbolResolver.getStaticSymbol(t,e,n)},t.prototype.reportError=function(t,e,n){if(!this.errorRecorder)throw t;this.errorRecorder(t,e&&e.filePath||n)},t.prototype.trySimplify=function(t,e){var n=this.errorRecorder;this.errorRecorder=function(t,e){};var r=this.simplify(t,e);return this.errorRecorder=n,r},t.prototype.simplify=function(t,e){function n(t,e,r){function a(t){var e=o.symbolResolver.resolveSymbol(t);return e?e.metadata:null}function u(e,o,a){if(o&&"function"==o.__symbolic){if(s.get(e))throw new Error("Recursion not supported");s.set(e,!0);try{var u=o.value;if(u&&(0!=r||"error"!=u.__symbolic)){var l=o.parameters,p=o.defaults;a=a.map(function(e){return n(t,e,r+1)}).map(function(t){return Mr(t)?void 0:t}),p&&p.length>a.length&&a.push.apply(a,p.slice(a.length).map(function(t){return c(t)}));for(var h=Np.build(),f=0;f<l.length;f++)h.define(l[f],a[f]);var d,y=i;try{i=h.done(),d=n(e,u,r+1)}finally{i=y}return d}}finally{s.delete(e)}}return 0===r?kp:c({__symbolic:"error",message:"Function call not supported",context:e})}function c(e){if(Nr(e))return e;if(e instanceof Array){for(var s=[],l=0,p=e;l<p.length;l++){var h=p[l];if(h&&"spread"===h.__symbolic){var f=c(h.expression);if(Array.isArray(f)){for(var d=0,y=f;d<y.length;d++){var m=y[d];s.push(m)}continue}}var v=c(h);Mr(v)||s.push(v)}return s}if(e instanceof fo)return e===o.injectionToken||e===o.opaqueToken||o.conversionMap.has(e)?e:(A=a(g=e))?n(g,A,r+1):g;if(e){if(e.__symbolic){var g=void 0;switch(e.__symbolic){case"binop":var _=c(e.left);if(Mr(_))return _;var b=c(e.right);if(Mr(b))return b;switch(e.operator){case"&&":return _&&b;case"||":return _||b;case"|":return _|b;case"^":return _^b;case"&":return _&b;case"==":return _==b;case"!=":return _!=b;case"===":return _===b;case"!==":return _!==b;case"<":return _<b;case">":return _>b;case"<=":return _<=b;case">=":return _>=b;case"<<":return _<<b;case">>":return _>>b;case"+":return _+b;case"-":return _-b;case"*":return _*b;case"/":return _/b;case"%":return _%b}return null;case"if":return c(c(e.condition)?e.thenExpression:e.elseExpression);case"pre":var w=c(e.operand);if(Mr(w))return w;switch(e.operator){case"+":return w;case"-":return-w;case"!":return!w;case"~":return~w}return null;case"index":var C=c(e.expression),E=c(e.index);return C&&Nr(E)?C[E]:null;case"select":var S=e.member,x=t,T=c(e.expression);if(T instanceof fo){var P=T.members.concat(S),A=a(x=o.getStaticSymbol(T.filePath,T.name,P));return A?n(x,A,r+1):x}return T&&Nr(S)?n(x,T[S],r+1):null;case"reference":var O=e.name,M=i.resolve(O);if(M!=Np.missing)return M;break;case"class":case"function":return t;case"new":case"call":if((g=n(t,e.expression,r+1))instanceof fo){if(g===o.injectionToken||g===o.opaqueToken)return t;var R=e.arguments||[],k=o.conversionMap.get(g);if(k){var I=R.map(function(e){return n(t,e,r+1)}).map(function(t){return Mr(t)?void 0:t});return k(t,I)}return u(g,a(g),R)}return kp;case"error":var N=kr(e);return e.line?(N=N+" (position "+(e.line+1)+":"+(e.character+1)+" in the original .ts file)",o.reportError(Dr(N,t.filePath,e.line,e.character),t)):o.reportError(new Error(N),t),kp;case"ignore":return e}return null}return Ir(e,function(t,e){return c(t)})}return kp}try{return c(e)}catch(e){var l=t.members.length?"."+t.members.join("."):"",p=e.message+", resolving symbol "+t.name+l+" in "+t.filePath;if(e.fileName)throw Dr(p,e.fileName,e.line,e.column);throw v(p)}}var r=this,o=this,i=Np.empty,s=new Map,a=this.errorRecorder?function(t,e,o){try{return n(t,e,o)}catch(e){r.reportError(e,t)}}(t,e,0):n(t,e,0);if(!Mr(a))return a},t.prototype.getTypeMetadata=function(t){var e=this.symbolResolver.resolveSymbol(t);return e&&e.metadata?e.metadata:{__symbolic:"class"}},t}(),Np=function(){function t(){}return t.prototype.resolve=function(t){},t.build=function(){var e=new Map;return{define:function(t,n){return e.set(t,n),this},done:function(){return e.size>0?new Dp(e):t.empty}}},t}();Np.missing={},Np.empty={resolve:function(t){return Np.missing}};var Dp=function(t){function e(e){var n=t.call(this)||this;return n.bindings=e,n}return Xr(e,t),e.prototype.resolve=function(t){return this.bindings.has(t)?this.bindings.get(t):Np.missing},e}(Np),jp=function(){function t(t,e){this.symbol=t,this.metadata=e}return t}(),Lp=function(){function t(t,e,n,r){this.host=t,this.staticSymbolCache=e,this.summaryResolver=n,this.errorRecorder=r,this.metadataCache=new Map,this.resolvedSymbols=new Map,this.resolvedFilePaths=new Set,this.importAs=new Map,this.symbolResourcePaths=new Map,this.symbolFromFile=new Map}return t.prototype.resolveSymbol=function(t){if(t.members.length>0)return this._resolveSymbolMembers(t);var e=this.resolvedSymbols.get(t);return e||((e=this._resolveSymbolFromSummary(t))?e:(this._createSymbolsOf(t.filePath),e=this.resolvedSymbols.get(t)))},t.prototype.getImportAs=function(t){if(t.members.length){var e=this.getStaticSymbol(t.filePath,t.name),n=this.getImportAs(e);return n?this.getStaticSymbol(n.filePath,n.name,t.members):null}var r=this.summaryResolver.getImportAs(t);return r||(r=this.importAs.get(t)),r},t.prototype.getResourcePath=function(t){return this.symbolResourcePaths.get(t)||t.filePath},t.prototype.getTypeArity=function(t){if(Ze(t.filePath))return null;for(var e=this.resolveSymbol(t);e&&e.metadata instanceof fo;)e=this.resolveSymbol(e.metadata);return e&&e.metadata&&e.metadata.arity||null},t.prototype.recordImportAs=function(t,e){t.assertNoMembers(),e.assertNoMembers(),this.importAs.set(t,e)},t.prototype.invalidateFile=function(t){this.metadataCache.delete(t),this.resolvedFilePaths.delete(t);var e=this.symbolFromFile.get(t);if(e){this.symbolFromFile.delete(t);for(var n=0,r=e;n<r.length;n++){var o=r[n];this.resolvedSymbols.delete(o),this.importAs.delete(o),this.symbolResourcePaths.delete(o)}}},t.prototype._resolveSymbolMembers=function(t){var e=t.members,n=this.resolveSymbol(this.getStaticSymbol(t.filePath,t.name));if(!n)return null;var r=n.metadata;if(r instanceof fo)return new jp(t,this.getStaticSymbol(r.filePath,r.name,e));if(!r||"class"!==r.__symbolic){for(var o=r,i=0;i<e.length&&o;i++)o=o[e[i]];return new jp(t,o)}return r.statics&&1===e.length?new jp(t,r.statics[e[0]]):null},t.prototype._resolveSymbolFromSummary=function(t){var e=this.summaryResolver.resolveSummary(t);return e?new jp(t,e.metadata):null},t.prototype.getStaticSymbol=function(t,e,n){return this.staticSymbolCache.get(t,e,n)},t.prototype.getSymbolsOf=function(t){var e=new Set(this.summaryResolver.getSymbolsOf(t));return this._createSymbolsOf(t),this.resolvedSymbols.forEach(function(n){n.symbol.filePath===t&&e.add(n.symbol)}),Array.from(e)},t.prototype._createSymbolsOf=function(t){var e=this;if(!this.resolvedFilePaths.has(t)){this.resolvedFilePaths.add(t);var n=[],r=this.getModuleMetadata(t);if(r.metadata){var o=new Set(Object.keys(r.metadata).map(jr)),i=r.origins||{};Object.keys(r.metadata).forEach(function(s){var a=r.metadata[s],u=jr(s),c=e.getStaticSymbol(t,u),l=void 0;r.importAs&&(l=e.getStaticSymbol(r.importAs,u),e.recordImportAs(c,l));var p=i.hasOwnProperty(s)&&i[s];if(p){var h=e.resolveModule(p,t);h?e.symbolResourcePaths.set(c,h):e.reportError(new Error("Couldn't resolve original symbol for "+p+" from "+t))}n.push(e.createResolvedSymbol(c,t,o,a))})}if(r.exports)for(var s=this,a=0,u=r.exports;a<u.length;a++)!function(r){if(r.export)r.export.forEach(function(o){var i,s=i=jr(i="string"==typeof o?o:o.as);"string"!=typeof o&&(s=jr(o.name));var a=e.resolveModule(r.from,t);if(a){var u=e.getStaticSymbol(a,s),c=e.getStaticSymbol(t,i);n.push(e.createExport(c,u))}});else{var o=s.resolveModule(r.from,t);o&&s.getSymbolsOf(o).forEach(function(r){var o=e.getStaticSymbol(t,r.name);n.push(e.createExport(o,r))})}}(u[a]);n.forEach(function(t){return e.resolvedSymbols.set(t.symbol,t)}),this.symbolFromFile.set(t,n.map(function(t){return t.symbol}))}},t.prototype.createResolvedSymbol=function(t,e,n,r){if(this.summaryResolver.isLibraryFile(t.filePath)&&r&&"class"===r.__symbolic){var o={__symbolic:"class",arity:r.arity};return new jp(t,o)}var i=this,s=d(r,new(function(r){function o(){return null!==r&&r.apply(this,arguments)||this}return Xr(o,r),o.prototype.visitStringMap=function(o,s){var a=o.__symbolic;if("function"===a){var u=s.length;s.push.apply(s,o.parameters||[]);var c=r.prototype.visitStringMap.call(this,o,s);return s.length=u,c}if("reference"!==a)return r.prototype.visitStringMap.call(this,o,s);var l=o.module,p=o.name?jr(o.name):o.name;if(!p)return null;var h=void 0;return l?(h=i.resolveModule(l,t.filePath),h?i.getStaticSymbol(h,p):{__symbolic:"error",message:"Could not resolve "+l+" relative to "+t.filePath+"."}):s.indexOf(p)>=0?{__symbolic:"reference",name:p}:n.has(p)?i.getStaticSymbol(e,p):void 0},o}(Ao)),[]);return s instanceof fo?this.createExport(t,s):new jp(t,s)},t.prototype.createExport=function(t,e){return t.assertNoMembers(),e.assertNoMembers(),this.summaryResolver.isLibraryFile(t.filePath)&&this.importAs.set(e,this.getImportAs(t)||t),new jp(t,e)},t.prototype.reportError=function(t,e,n){if(!this.errorRecorder)throw t;this.errorRecorder(t,e&&e.filePath||n)},t.prototype.getModuleMetadata=function(t){var e=this.metadataCache.get(t);if(!e){var n=this.host.getMetadataFor(t);if(n){var r=-1;n.forEach(function(t){t.version>r&&(r=t.version,e=t)})}if(e||(e={__symbolic:"module",version:3,module:t,metadata:{}}),3!=e.version){var o=2==e.version?"Unsupported metadata version "+e.version+" for module "+t+". This module should be compiled with a newer version of ngc":"Metadata version mismatch for module "+t+", found version "+e.version+", expected 3";this.reportError(new Error(o))}this.metadataCache.set(t,e)}return e},t.prototype.getSymbolByModule=function(t,e,n){var r=this.resolveModule(t,n);return r?this.getStaticSymbol(r,e):(this.reportError(new Error("Could not resolve module "+t+(n?" relative to $ {\n            containingFile\n          } ":""))),this.getStaticSymbol("ERROR:"+t,e))},t.prototype.resolveModule=function(t,e){try{return this.host.moduleNameToFileName(t,e)}catch(n){console.error("Could not resolve module '"+t+"' relative to file "+e),this.reportError(n,void 0,e)}return null},t}(),Vp=function(){function t(t,e){this.host=t,this.staticSymbolCache=e,this.summaryCache=new Map,this.loadedFilePaths=new Set,this.importAs=new Map}return t.prototype.isLibraryFile=function(t){return!this.host.isSourceFile(Xe(t))},t.prototype.getLibraryFileName=function(t){return this.host.getOutputFileName(t)},t.prototype.resolveSummary=function(t){t.assertNoMembers();var e=this.summaryCache.get(t);return e||(this._loadSummaryFile(t.filePath),e=this.summaryCache.get(t)),e},t.prototype.getSymbolsOf=function(t){return this._loadSummaryFile(t),Array.from(this.summaryCache.keys()).filter(function(e){return e.filePath===t})},t.prototype.getImportAs=function(t){return t.assertNoMembers(),this.importAs.get(t)},t.prototype._loadSummaryFile=function(t){var e=this;if(!this.loadedFilePaths.has(t)&&(this.loadedFilePaths.add(t),this.isLibraryFile(t))){var n=Je(t),r=void 0;try{r=this.host.loadSummary(n)}catch(t){throw console.error("Error loading summary file "+n),t}if(r){var o=br(this.staticSymbolCache,r),i=o.summaries,s=o.importAs;i.forEach(function(t){return e.summaryCache.set(t.symbol,t)}),s.forEach(function(n){e.importAs.set(n.symbol,e.staticSymbolCache.get(Qe(t),n.importAs))})}}},t}(),Fp=function(){function t(t,e,n,r){this.parent=t,this.instance=e,this.className=n,this.vars=r}return t.prototype.createChildWihtLocalVars=function(){return new t(this,this.instance,this.className,new Map)},t}(),Up=function(){function t(t){this.value=t}return t}(),Hp=function(){function t(){}return t.prototype.debugAst=function(t){return Nn(t)},t.prototype.visitDeclareVarStmt=function(t,e){return e.vars.set(t.name,t.value.visitExpression(this,e)),null},t.prototype.visitWriteVarExpr=function(t,e){for(var n=t.value.visitExpression(this,e),r=e;null!=r;){if(r.vars.has(t.name))return r.vars.set(t.name,n),n;r=r.parent}throw new Error("Not declared variable "+t.name)},t.prototype.visitReadVarExpr=function(t,e){var n=t.name;if(null!=t.builtin)switch(t.builtin){case pc.Super:return e.instance.__proto__;case pc.This:return e.instance;case pc.CatchError:n=Bp;break;case pc.CatchStack:n=qp;break;default:throw new Error("Unknown builtin variable "+t.builtin)}for(var r=e;null!=r;){if(r.vars.has(n))return r.vars.get(n);r=r.parent}throw new Error("Not declared variable "+n)},t.prototype.visitWriteKeyExpr=function(t,e){var n=t.receiver.visitExpression(this,e),r=t.index.visitExpression(this,e),o=t.value.visitExpression(this,e);return n[r]=o,o},t.prototype.visitWritePropExpr=function(t,e){var n=t.receiver.visitExpression(this,e),r=t.value.visitExpression(this,e);return n[t.name]=r,r},t.prototype.visitInvokeMethodExpr=function(t,e){var n,r=t.receiver.visitExpression(this,e),o=this.visitAllExpressions(t.args,e);if(null!=t.builtin)switch(t.builtin){case mc.ConcatArray:n=r.concat.apply(r,o);break;case mc.SubscribeObservable:n=r.subscribe({next:o[0]});break;case mc.Bind:n=r.bind.apply(r,o);break;default:throw new Error("Unknown builtin method "+t.builtin)}else n=r[t.name].apply(r,o);return n},t.prototype.visitInvokeFunctionExpr=function(t,e){var n=this.visitAllExpressions(t.args,e),r=t.fn;return r instanceof hc&&r.builtin===pc.Super?(e.instance.constructor.prototype.constructor.apply(e.instance,n),null):t.fn.visitExpression(this,e).apply(null,n)},t.prototype.visitReturnStmt=function(t,e){return new Up(t.value.visitExpression(this,e))},t.prototype.visitDeclareClassStmt=function(t,e){var n=Ur(t,e,this);return e.vars.set(t.name,n),null},t.prototype.visitExpressionStmt=function(t,e){return t.expr.visitExpression(this,e)},t.prototype.visitIfStmt=function(t,e){return t.condition.visitExpression(this,e)?this.visitAllStatements(t.trueCase,e):null!=t.falseCase?this.visitAllStatements(t.falseCase,e):null},t.prototype.visitTryCatchStmt=function(t,e){try{return this.visitAllStatements(t.bodyStmts,e)}catch(r){var n=e.createChildWihtLocalVars();return n.vars.set(Bp,r),n.vars.set(qp,r.stack),this.visitAllStatements(t.catchStmts,n)}},t.prototype.visitThrowStmt=function(t,e){throw t.error.visitExpression(this,e)},t.prototype.visitCommentStmt=function(t,e){return null},t.prototype.visitInstantiateExpr=function(t,e){var n=this.visitAllExpressions(t.args,e),r=t.classExpr.visitExpression(this,e);return new(r.bind.apply(r,[void 0].concat(n)))},t.prototype.visitLiteralExpr=function(t,e){return t.value},t.prototype.visitExternalExpr=function(t,e){return t.value.reference},t.prototype.visitConditionalExpr=function(t,e){return t.condition.visitExpression(this,e)?t.trueCase.visitExpression(this,e):null!=t.falseCase?t.falseCase.visitExpression(this,e):null},t.prototype.visitNotExpr=function(t,e){return!t.condition.visitExpression(this,e)},t.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e)},t.prototype.visitFunctionExpr=function(t,e){return Hr(t.params.map(function(t){return t.name}),t.statements,e,this)},t.prototype.visitDeclareFunctionStmt=function(t,e){var n=t.params.map(function(t){return t.name});return e.vars.set(t.name,Hr(n,t.statements,e,this)),null},t.prototype.visitBinaryOperatorExpr=function(t,e){var n=this,r=function(){return t.lhs.visitExpression(n,e)},o=function(){return t.rhs.visitExpression(n,e)};switch(t.operator){case cc.Equals:return r()==o();case cc.Identical:return r()===o();case cc.NotEquals:return r()!=o();case cc.NotIdentical:return r()!==o();case cc.And:return r()&&o();case cc.Or:return r()||o();case cc.Plus:return r()+o();case cc.Minus:return r()-o();case cc.Divide:return r()/o();case cc.Multiply:return r()*o();case cc.Modulo:return r()%o();case cc.Lower:return r()<o();case cc.LowerEquals:return r()<=o();case cc.Bigger:return r()>o();case cc.BiggerEquals:return r()>=o();default:throw new Error("Unknown operator "+t.operator)}},t.prototype.visitReadPropExpr=function(t,e){return t.receiver.visitExpression(this,e)[t.name]},t.prototype.visitReadKeyExpr=function(t,e){return t.receiver.visitExpression(this,e)[t.index.visitExpression(this,e)]},t.prototype.visitLiteralArrayExpr=function(t,e){return this.visitAllExpressions(t.entries,e)},t.prototype.visitLiteralMapExpr=function(t,e){var n=this,r={};return t.entries.forEach(function(t){return r[t.key]=t.value.visitExpression(n,e)}),r},t.prototype.visitCommaExpr=function(t,e){var n=this.visitAllExpressions(t.parts,e);return n[n.length-1]},t.prototype.visitAllExpressions=function(t,e){var n=this;return t.map(function(t){return t.visitExpression(n,e)})},t.prototype.visitAllStatements=function(t,e){for(var n=0;n<t.length;n++){var r=t[n].visitStatement(this,e);if(r instanceof Up)return r}return null},t}(),Bp="error",qp="stack",zp=function(t){function e(){var e=t.apply(this,arguments)||this;return e._evalArgNames=[],e._evalArgValues=[],e}return Xr(e,t),e.prototype.getArgs=function(){for(var t={},e=0;e<this._evalArgNames.length;e++)t[this._evalArgNames[e]]=this._evalArgValues[e];return t},e.prototype.visitExternalExpr=function(t,e){var n=t.value.reference,r=this._evalArgValues.indexOf(n);if(-1===r){r=this._evalArgValues.length,this._evalArgValues.push(n);var o=E(t.value)||"val";this._evalArgNames.push("jit_"+o+r)}return e.print(t,this._evalArgNames[r]),null},e}(function(t){function e(){return t.call(this,!1)||this}return Xr(e,t),e.prototype.visitDeclareClassStmt=function(t,e){var n=this;return e.pushClass(t),this._visitClassConstructor(t,e),null!=t.parent&&(e.print(t,t.name+".prototype = Object.create("),t.parent.visitExpression(this,e),e.println(t,".prototype);")),t.getters.forEach(function(r){return n._visitClassGetter(t,r,e)}),t.methods.forEach(function(r){return n._visitClassMethod(t,r,e)}),e.popClass(),null},e.prototype._visitClassConstructor=function(t,e){e.print(t,"function "+t.name+"("),null!=t.constructorMethod&&this._visitParams(t.constructorMethod.params,e),e.println(t,") {"),e.incIndent(),null!=t.constructorMethod&&t.constructorMethod.body.length>0&&(e.println(t,"var self = this;"),this.visitAllStatements(t.constructorMethod.body,e)),e.decIndent(),e.println(t,"}")},e.prototype._visitClassGetter=function(t,e,n){n.println(t,"Object.defineProperty("+t.name+".prototype, '"+e.name+"', { get: function() {"),n.incIndent(),e.body.length>0&&(n.println(t,"var self = this;"),this.visitAllStatements(e.body,n)),n.decIndent(),n.println(t,"}});")},e.prototype._visitClassMethod=function(t,e,n){n.print(t,t.name+".prototype."+e.name+" = function("),this._visitParams(e.params,n),n.println(t,") {"),n.incIndent(),e.body.length>0&&(n.println(t,"var self = this;"),this.visitAllStatements(e.body,n)),n.decIndent(),n.println(t,"};")},e.prototype.visitReadVarExpr=function(e,n){if(e.builtin===pc.This)n.print(e,"self");else{if(e.builtin===pc.Super)throw new Error("'super' needs to be handled at a parent ast node, not at the variable level!");t.prototype.visitReadVarExpr.call(this,e,n)}return null},e.prototype.visitDeclareVarStmt=function(t,e){return e.print(t,"var "+t.name+" = "),t.value.visitExpression(this,e),e.println(t,";"),null},e.prototype.visitCastExpr=function(t,e){return t.value.visitExpression(this,e),null},e.prototype.visitInvokeFunctionExpr=function(e,n){var r=e.fn;return r instanceof hc&&r.builtin===pc.Super?(n.currentClass.parent.visitExpression(this,n),n.print(e,".call(this"),e.args.length>0&&(n.print(e,", "),this.visitAllExpressions(e.args,n,",")),n.print(e,")")):t.prototype.visitInvokeFunctionExpr.call(this,e,n),null},e.prototype.visitFunctionExpr=function(t,e){return e.print(t,"function("),this._visitParams(t.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.print(t,"}"),null},e.prototype.visitDeclareFunctionStmt=function(t,e){return e.print(t,"function "+t.name+"("),this._visitParams(t.params,e),e.println(t,") {"),e.incIndent(),this.visitAllStatements(t.statements,e),e.decIndent(),e.println(t,"}"),null},e.prototype.visitTryCatchStmt=function(t,e){e.println(t,"try {"),e.incIndent(),this.visitAllStatements(t.bodyStmts,e),e.decIndent(),e.println(t,"} catch ("+fl.name+") {"),e.incIndent();var n=[dl.set(fl.prop("stack")).toDeclStmt(null,[Vc.Final])].concat(t.catchStmts);return this.visitAllStatements(n,e),e.decIndent(),e.println(t,"}"),null},e.prototype._visitParams=function(t,e){this.visitAllObjects(function(t){return e.print(null,t.name)},t,e,",")},e.prototype.getBuiltinMethodName=function(t){var e;switch(t){case mc.ConcatArray:e="concat";break;case mc.SubscribeObservable:e="subscribe";break;case mc.Bind:e="bind";break;default:throw new Error("Unknown builtin method: "+t)}return e},e}(vl)),Gp=function(){function t(t,e,n,r,o,i,s,a){this._injector=t,this._metadataResolver=e,this._templateParser=n,this._styleCompiler=r,this._viewCompiler=o,this._ngModuleCompiler=i,this._compilerConfig=s,this._console=a,this._compiledTemplateCache=new Map,this._compiledHostTemplateCache=new Map,this._compiledDirectiveWrapperCache=new Map,this._compiledNgModuleCache=new Map,this._sharedStylesheetCount=0}return Object.defineProperty(t.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),t.prototype.compileModuleSync=function(t){return this._compileModuleAndComponents(t,!0).syncResult},t.prototype.compileModuleAsync=function(t){return this._compileModuleAndComponents(t,!1).asyncResult},t.prototype.compileModuleAndAllComponentsSync=function(t){return this._compileModuleAndAllComponents(t,!0).syncResult},t.prototype.compileModuleAndAllComponentsAsync=function(t){return this._compileModuleAndAllComponents(t,!1).asyncResult},t.prototype.getNgContentSelectors=function(t){this._console.warn("Compiler.getNgContentSelectors is deprecated. Use ComponentFactory.ngContentSelectors instead!");var n=this._compiledTemplateCache.get(t);if(!n)throw new Error("The component "+e.ɵstringify(t)+" is not yet compiled!");return n.compMeta.template.ngContentSelectors},t.prototype._compileModuleAndComponents=function(t,e){var n=this,r=this._loadModules(t,e),o=function(){return n._compileComponents(t,null),n._compileModule(t)};return e?new Oo(o()):new Oo(null,r.then(o))},t.prototype._compileModuleAndAllComponents=function(t,n){var r=this,o=this._loadModules(t,n),i=function(){var n=[];return r._compileComponents(t,n),new e.ModuleWithComponentFactories(r._compileModule(t),n)};return n?new Oo(i()):new Oo(null,o.then(i))},t.prototype._loadModules=function(t,e){var n=this,r=[];return this._metadataResolver.getNgModuleMetadata(t).transitiveModule.modules.forEach(function(t){r.push(n._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.reference,e))}),Promise.all(r)},t.prototype._compileModule=function(t){var n=this,r=this._compiledNgModuleCache.get(t);if(!r){var o=this._metadataResolver.getNgModuleMetadata(t),i=[this._metadataResolver.getProviderMetadata(new Yo(e.Compiler,{useFactory:function(){return new $p(n,o.type.reference)}}))],s=this._ngModuleCompiler.compile(o,i);r=this._compilerConfig.useJit?qr(V(o),s.statements,[s.ngModuleFactoryVar])[0]:Vr(s.statements,[s.ngModuleFactoryVar])[0],this._compiledNgModuleCache.set(o.type.reference,r)}return r},t.prototype._compileComponents=function(t,e){var n=this,r=this._metadataResolver.getNgModuleMetadata(t),o=new Map,i=new Set;r.transitiveModule.modules.forEach(function(t){var r=n._metadataResolver.getNgModuleMetadata(t.reference);r.declaredDirectives.forEach(function(t){o.set(t.reference,r);var s=n._metadataResolver.getDirectiveMetadata(t.reference);if(s.isComponent&&(i.add(n._createCompiledTemplate(s,r)),e)){var a=n._createCompiledHostTemplate(s.type.reference,r);i.add(a),e.push(s.componentFactory)}})}),r.transitiveModule.modules.forEach(function(t){var e=n._metadataResolver.getNgModuleMetadata(t.reference);e.declaredDirectives.forEach(function(t){var e=n._metadataResolver.getDirectiveMetadata(t.reference);e.isComponent&&e.entryComponents.forEach(function(t){var e=o.get(t.componentType);i.add(n._createCompiledHostTemplate(t.componentType,e))})}),e.entryComponents.forEach(function(t){var e=o.get(t.componentType);i.add(n._createCompiledHostTemplate(t.componentType,e))})}),i.forEach(function(t){return n._compileTemplate(t)})},t.prototype.clearCacheFor=function(t){this._compiledNgModuleCache.delete(t),this._metadataResolver.clearCacheFor(t),this._compiledHostTemplateCache.delete(t),this._compiledTemplateCache.get(t)&&this._compiledTemplateCache.delete(t)},t.prototype.clearCache=function(){this._metadataResolver.clearCache(),this._compiledTemplateCache.clear(),this._compiledHostTemplateCache.clear(),this._compiledNgModuleCache.clear()},t.prototype._createCompiledHostTemplate=function(t,n){if(!n)throw new Error("Component "+e.ɵstringify(t)+" is not part of any NgModule or the module has not been imported into your module.");var r=this._compiledHostTemplateCache.get(t);if(!r){var o=this._metadataResolver.getDirectiveMetadata(t);zr(o);var i=o.componentFactory,s=k(this._metadataResolver.getHostComponentType(t),o,e.ɵgetComponentViewDefinitionFactory(i));r=new Wp(!0,o.type,s,n,[o.type]),this._compiledHostTemplateCache.set(t,r)}return r},t.prototype._createCompiledTemplate=function(t,e){var n=this._compiledTemplateCache.get(t.type.reference);return n||(zr(t),n=new Wp(!1,t.type,t,e,e.transitiveModule.directives),this._compiledTemplateCache.set(t.type.reference,n)),n},t.prototype._compileTemplate=function(t){var e=this;if(!t.isCompiled){var n=t.compMeta,r=new Map,o=this._styleCompiler.compileComponent(n);o.externalStylesheets.forEach(function(t){r.set(t.meta.moduleUrl,t)}),this._resolveStylesCompileResult(o.componentStylesheet,r);var i,s,a=t.directives.map(function(t){return e._metadataResolver.getDirectiveSummary(t.reference)}),u=t.ngModule.transitiveModule.pipes.map(function(t){return e._metadataResolver.getPipeSummary(t.reference)}),c=this._templateParser.parse(n,n.template.template,a,u,t.ngModule.schemas,j(t.ngModule.type,t.compMeta,t.compMeta.template)),l=c.template,p=c.pipes,h=this._viewCompiler.compileComponent(n,l,mn(o.componentStylesheet.stylesVar),p),f=o.componentStylesheet.statements.concat(h.statements),d=n.isHost?[h.viewClassVar]:[h.viewClassVar,h.rendererTypeVar];this._compilerConfig.useJit?(i=(m=qr(F(t.ngModule.type,t.compMeta),f,d))[0],s=m[1]):(i=(y=Vr(f,d))[0],s=y[1]),t.compiled(i,s);var y,m}},t.prototype._resolveStylesCompileResult=function(t,e){var n=this;t.dependencies.forEach(function(t,r){var o=e.get(t.moduleUrl),i=n._resolveAndEvalStylesCompileResult(o,e);t.valuePlaceholder.reference=i})},t.prototype._resolveAndEvalStylesCompileResult=function(t,e){return this._resolveStylesCompileResult(t,e),this._compilerConfig.useJit?qr(L(t.meta,this._sharedStylesheetCount++),t.statements,[t.stylesVar])[0]:Vr(t.statements,[t.stylesVar])[0]},t}();Gp.decorators=[{type:z}],Gp.ctorParameters=function(){return[{type:e.Injector},{type:Zu},{type:Ou},{type:ip},{type:vp},{type:ol},{type:Jo},{type:e.ɵConsole}]};var Wp=function(){function t(t,e,n,r,o){this.isHost=t,this.compType=e,this.compMeta=n,this.ngModule=r,this.directives=o,this._viewClass=null,this.isCompiled=!1}return t.prototype.compiled=function(t,e){this._viewClass=t,this.compMeta.componentViewType.setDelegate(t);for(var n in e)this.compMeta.rendererType[n]=e[n];this.isCompiled=!0},t}(),$p=function(){function t(t,e){this._delegate=t,this._ngModule=e}return Object.defineProperty(t.prototype,"_injector",{get:function(){return this._delegate.injector},enumerable:!0,configurable:!0}),t.prototype.compileModuleSync=function(t){return this._delegate.compileModuleSync(t)},t.prototype.compileModuleAsync=function(t){return this._delegate.compileModuleAsync(t)},t.prototype.compileModuleAndAllComponentsSync=function(t){return this._delegate.compileModuleAndAllComponentsSync(t)},t.prototype.compileModuleAndAllComponentsAsync=function(t){return this._delegate.compileModuleAndAllComponentsAsync(t)},t.prototype.getNgContentSelectors=function(t){return this._delegate.getNgContentSelectors(t)},t.prototype.clearCache=function(){this._delegate.clearCache()},t.prototype.clearCacheFor=function(t){this._delegate.clearCacheFor(t)},t}(),Kp=function(){function t(t,e,n,r){void 0===r&&(r=null),this._htmlParser=t,this._implicitTags=e,this._implicitAttrs=n,this._locale=r,this._messages=[]}return t.prototype.updateFromTemplate=function(t,e,n){var r=this._htmlParser.parse(t,e,!0,n);if(r.errors.length)return r.errors;var o=Pt(r.rootNodes,n,this._implicitTags,this._implicitAttrs);return o.errors.length?o.errors:((i=this._messages).push.apply(i,o.messages),[]);var i},t.prototype.getMessages=function(){return this._messages},t.prototype.write=function(t,e){var n={},r=new Qp;this._messages.forEach(function(e){var r=t.digest(e);n.hasOwnProperty(r)?(o=n[r].sources).push.apply(o,e.sources):n[r]=e;var o});var o=Object.keys(n).map(function(o){var i=t.createNameMapper(n[o]),s=n[o],a=i?r.convert(s.nodes,i):s.nodes,u=new qs(a,{},{},s.meaning,s.description,o);return u.sources=s.sources,e&&u.sources.forEach(function(t){return t.filePath=e(t.filePath)}),u});return t.write(o,this._locale)},t}(),Qp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Xr(e,t),e.prototype.convert=function(t,e){var n=this;return e?t.map(function(t){return t.visit(n,e)}):t},e.prototype.visitTagPlaceholder=function(t,e){var n=this,r=e.toPublicName(t.startName),o=t.closeName?e.toPublicName(t.closeName):t.closeName,i=t.children.map(function(t){return t.visit(n,e)});return new $s(t.tag,t.attrs,r,o,i,t.isVoid,t.sourceSpan)},e.prototype.visitPlaceholder=function(t,e){return new Ks(t.value,e.toPublicName(t.name),t.sourceSpan)},e.prototype.visitIcuPlaceholder=function(t,e){return new Qs(t.value,e.toPublicName(t.name),t.sourceSpan)},e}(Xs),Xp=function(){function t(t,e,n,r){this.host=t,this.staticSymbolResolver=e,this.messageBundle=n,this.metadataResolver=r}return t.prototype.extract=function(t){var e=this,n=xr(Pr(this.staticSymbolResolver,t,this.host),this.host,this.metadataResolver),r=n.files,o=n.ngModules;return Promise.all(o.map(function(t){return e.metadataResolver.loadNgModuleDirectiveAndPipeMetadata(t.type.reference,!1)})).then(function(){var t=[];if(r.forEach(function(n){var r=[];n.directives.forEach(function(t){var n=e.metadataResolver.getDirectiveMetadata(t);n&&n.isComponent&&r.push(n)}),r.forEach(function(r){var o=r.template.template,i=us.fromArray(r.template.interpolation);t.push.apply(t,e.messageBundle.updateFromTemplate(o,n.srcUrl,i))})}),t.length)throw new Error(t.map(function(t){return t.toString()}).join("\n"));return e.messageBundle})},t.create=function(n,r){var o=new qa(new Ua),i=Ue(),s=new yo,a=new Vp(n,s),u=new Lp(n,s,a),c=new Ip(a,u);Op.install(c);var l=new Jo({defaultEncapsulation:e.ViewEncapsulation.Emulated,useJit:!1}),p=new Hu({get:function(t){return n.loadResource(t)}},i,o,l),h=new Al,f=new Zu(l,new $u(c),new zu(c),new Ku(c),a,h,p,new e.ɵConsole,s,c),d=new Kp(o,[],{},r);return{extractor:new t(n,u,d,f),staticReflector:c}},t}(),Zp={get:function(t){throw new Error("No ResourceLoader implementation has been provided. Can't read the url \""+t+'"')}},Yp=new e.InjectionToken("HtmlParser"),Jp=[{provide:e.ɵReflector,useValue:e.ɵreflector},{provide:e.ɵReflectorReader,useExisting:e.ɵReflector},{provide:ju,useValue:Zp},Qu,e.ɵConsole,hs,gs,{provide:Yp,useClass:Ua},{provide:qa,useFactory:Gr,deps:[Yp,[new e.Optional,new e.Inject(e.TRANSLATIONS)],[new e.Optional,new e.Inject(e.TRANSLATIONS_FORMAT)],[Jo],[e.ɵConsole]]},{provide:Ua,useExisting:qa},Ou,Hu,Zu,Lu,ip,vp,ol,{provide:Jo,useValue:new Jo},Gp,{provide:e.Compiler,useExisting:Gp},Al,{provide:tu,useExisting:Al},Vu,zu,Ku,$u],th=function(){function t(t){var n={useDebug:e.isDevMode(),useJit:!0,defaultEncapsulation:e.ViewEncapsulation.Emulated,missingTranslation:e.MissingTranslationStrategy.Warning,enableLegacyTemplate:!0};this._defaultOptions=[n].concat(t)}return t.prototype.createCompiler=function(t){void 0===t&&(t=[]);var n=$r(this._defaultOptions.concat(t));return e.ReflectiveInjector.resolveAndCreate([Jp,{provide:Jo,useFactory:function(){return new Jo({useJit:n.useJit,defaultEncapsulation:n.defaultEncapsulation,missingTranslation:n.missingTranslation,enableLegacyTemplate:n.enableLegacyTemplate})},deps:[]},n.providers]).get(e.Compiler)},t}();th.decorators=[{type:z}],th.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Inject,args:[e.COMPILER_OPTIONS]}]}]};var eh=e.createPlatformFactory(e.platformCore,"coreDynamic",[{provide:e.COMPILER_OPTIONS,useValue:{},multi:!0},{provide:e.CompilerFactory,useClass:th},{provide:e.PLATFORM_INITIALIZER,useValue:Wr,multi:!0}]),nh=function(){function t(){}return t.prototype.fileNameToModuleName=function(t,e){},t.prototype.getImportAs=function(t){},t.prototype.getTypeArity=function(t){},t}();t.VERSION=Zr,t.TEMPLATE_TRANSFORMS=Tu,t.CompilerConfig=Jo,t.JitCompiler=Gp,t.DirectiveResolver=zu,t.PipeResolver=Ku,t.NgModuleResolver=$u,t.DEFAULT_INTERPOLATION_CONFIG=cs,t.InterpolationConfig=us,t.NgModuleCompiler=ol,t.ViewCompiler=vp,t.isSyntaxError=g,t.syntaxError=v,t.TextAst=Yr,t.BoundTextAst=Jr,t.AttrAst=to,t.BoundElementPropertyAst=eo,t.BoundEventAst=no,t.ReferenceAst=ro,t.VariableAst=oo,t.ElementAst=io,t.EmbeddedTemplateAst=so,t.BoundDirectivePropertyAst=ao,t.DirectiveAst=uo,t.ProviderAst=co,t.ProviderAstType=lo,t.NgContentAst=po,t.PropertyBindingType=ho,t.templateVisitAll=n,t.CompileAnimationEntryMetadata=Io,t.CompileAnimationStateMetadata=No,t.CompileAnimationStateDeclarationMetadata=Do,t.CompileAnimationStateTransitionMetadata=jo,t.CompileAnimationMetadata=Lo,t.CompileAnimationKeyframesSequenceMetadata=Vo,t.CompileAnimationStyleMetadata=Fo,t.CompileAnimationAnimateMetadata=Uo,t.CompileAnimationWithStepsMetadata=Ho,t.CompileAnimationSequenceMetadata=Bo,t.CompileAnimationGroupMetadata=qo,t.identifierName=E,t.identifierModuleUrl=S,t.viewClassName=x,t.rendererTypeName=T,t.hostViewClassName=P,t.dirWrapperClassName=A,t.componentFactoryName=O,t.CompileSummaryKind=Go,t.tokenName=M,t.tokenReference=R,t.CompileStylesheetMetadata=Wo,t.CompileTemplateMetadata=$o,t.CompileDirectiveMetadata=Ko,t.createHostComponentMeta=k,t.CompilePipeMetadata=Qo,t.CompileNgModuleMetadata=Xo,t.TransitiveCompileNgModuleMetadata=Zo,t.ProviderMeta=Yo,t.flatten=N,t.sourceUrl=D,t.templateSourceUrl=j,t.sharedStylesheetJitUrl=L,t.ngModuleJitUrl=V,t.templateJitUrl=F,t.createAotCompiler=Lr,t.AotCompiler=Ap,t.analyzeNgModules=Sr,t.analyzeAndValidateNgModules=xr,t.extractProgramSymbols=Pr,t.GeneratedFile=xp,t.StaticReflector=Ip,t.StaticAndDynamicReflectionCapabilities=Op,t.StaticSymbol=fo,t.StaticSymbolCache=yo,t.ResolvedStaticSymbol=jp,t.StaticSymbolResolver=Lp,t.unescapeIdentifier=jr,t.AotSummaryResolver=Vp,t.SummaryResolver=Qu,t.i18nHtmlParserFactory=Gr,t.COMPILER_PROVIDERS=Jp,t.JitCompilerFactory=th,t.platformCoreDynamic=eh,t.createUrlResolverWithoutPackagePrefix=Fe,t.createOfflineCompileUrlResolver=Ue,t.DEFAULT_PACKAGE_URL_PROVIDER=Lu,t.UrlResolver=Vu,t.getUrlScheme=He,t.ResourceLoader=ju,t.ElementSchemaRegistry=tu,t.Extractor=Xp,t.I18NHtmlParser=qa,t.MessageBundle=Kp,t.Serializer=va,t.Xliff=Ta,t.Xliff2=Ma,t.Xmb=Na,t.Xtb=La,t.DirectiveNormalizer=Hu,t.ParserError=ti,t.ParseSpan=ei,t.AST=ni,t.Quote=ri,t.EmptyExpr=oi,t.ImplicitReceiver=ii,t.Chain=si,t.Conditional=ai,t.PropertyRead=ui,t.PropertyWrite=ci,t.SafePropertyRead=li,t.KeyedRead=pi,t.KeyedWrite=hi,t.BindingPipe=fi,t.LiteralPrimitive=di,t.LiteralArray=yi,t.LiteralMap=mi,t.Interpolation=vi,t.Binary=gi,t.PrefixNot=_i,t.MethodCall=bi,t.SafeMethodCall=wi,t.FunctionCall=Ci,t.ASTWithSource=Ei,t.TemplateBinding=Si,t.RecursiveAstVisitor=xi,t.AstTransformer=Ti,t.TokenType=ls,t.Lexer=hs,t.Token=fs,t.EOF=ds,t.isIdentifier=et,t.isQuote=it,t.SplitInterpolation=ms,t.TemplateBindingParseResult=vs,t.Parser=gs,t._ParseAST=_s,t.ERROR_COLLECTOR_TOKEN=Xu,t.CompileMetadataResolver=Zu,t.componentModuleUrl=cn,t.Text=Ts,t.Expansion=Ps,t.ExpansionCase=As,t.Attribute=Os,t.Element=Ms,t.Comment=Rs,t.visitAll=lt,t.ParseTreeResult=Us,t.TreeError=Fs,t.HtmlParser=Ua,t.HtmlTagDefinition=go,t.getHtmlTagDefinition=c,t.TagContentType=mo,t.splitNsName=r,t.isNgContainer=o,t.isNgContent=i,t.isNgTemplate=s,t.getNsPrefix=a,t.mergeNsAndName=u,t.NAMED_ENTITIES=vo,t.ImportResolver=nh,t.debugOutputAstAsTypeScript=Nn,t.TypeScriptEmitter=_l,t.ParseLocation=ws,t.ParseSourceFile=Cs,t.ParseSourceSpan=Es,t.ParseErrorLevel=Ss,t.ParseError=xs,t.typeSourceSpan=ct,t.DomElementSchemaRegistry=Al,t.CssSelector=Co,t.SelectorMatcher=Eo,t.SelectorListContext=So,t.SelectorContext=xo,t.StylesCompileDependency=np,t.StylesCompileResult=rp,t.CompiledStylesheet=op,t.StyleCompiler=ip,t.TemplateParseError=Pu,t.TemplateParseResult=Au,t.TemplateParser=Ou,t.splitClasses=Ie,t.createElementCssSelector=Ne,t.removeSummaryDuplicates=je,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8}],8:[function(t,e,n){(function(r){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("rxjs/Observable"),t("rxjs/observable/merge"),t("rxjs/operator/share"),t("rxjs/Subject")):o((r.ng=r.ng||{},r.ng.core=r.ng.core||{}),r.Rx,r.Rx.Observable,r.Rx.Observable.prototype,r.Rx)}(this,function(t,e,n,o,i){"use strict";function s(){if(!lo){var t=co.Symbol;if(t&&t.iterator)lo=t.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),n=0;n<e.length;++n){var r=e[n];"entries"!==r&&"size"!==r&&Map.prototype[r]===Map.prototype.entries&&(lo=r)}}return lo}function a(t){Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function u(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function c(t){if("string"==typeof t)return t;if(null==t)return""+t;if(t.overriddenName)return""+t.overriddenName;if(t.name)return""+t.name;var e=t.toString();if(null==e)return""+e;var n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}function l(t){return"function"==typeof t&&t.hasOwnProperty("annotation")&&(t=t.annotation),t}function p(t,e){if(t===Object||t===String||t===Function||t===Number||t===Array)throw new Error("Can not use native "+c(t)+" as constructor");if("function"==typeof t)return t;if(Array.isArray(t)){var n=t,r=n.length-1,o=t[r];if("function"!=typeof o)throw new Error("Last position of Class method array must be Function in key "+e+" was '"+c(o)+"'");if(r!=o.length)throw new Error("Number of annotations ("+r+") does not match number of arguments ("+o.length+") in the function: "+c(o));for(var i=[],s=0,a=n.length-1;s<a;s++){var u=[];i.push(u);var p=n[s];if(Array.isArray(p))for(var h=0;h<p.length;h++)u.push(l(p[h]));else"function"==typeof p?u.push(l(p)):u.push(p)}return ho.defineMetadata("parameters",i,o),o}throw new Error("Only Function or Array is supported in Class definition for key '"+e+"' is '"+c(t)+"'")}function h(t){var e=p(t.hasOwnProperty("constructor")?t.constructor:void 0,"constructor"),n=e.prototype;if(t.hasOwnProperty("extends")){if("function"!=typeof t.extends)throw new Error("Class definition 'extends' property must be a constructor function was: "+c(t.extends));e.prototype=n=Object.create(t.extends.prototype)}for(var r in t)"extends"!==r&&"prototype"!==r&&t.hasOwnProperty(r)&&(n[r]=p(t[r],r));this&&this.annotations instanceof Array&&ho.defineMetadata("annotations",this.annotations,e);var o=e.name;return o&&"constructor"!==o||(e.overriddenName="class"+po++),e}function f(t,e,n,r){function o(t){if(!ho||!ho.getOwnMetadata)throw"reflect-metadata shim is required when using class decorators";if(this instanceof o)return i.call(this,t),this;var e=new o(t),n="function"==typeof this&&Array.isArray(this.annotations)?this.annotations:[];n.push(e);var s=function(t){var n=ho.getOwnMetadata("annotations",t)||[];return n.push(e),ho.defineMetadata("annotations",n,t),t};return s.annotations=n,s.Class=h,r&&r(s),s}var i=d([e]);return n&&(o.prototype=Object.create(n.prototype)),o.prototype.toString=function(){return"@"+t},o.annotationCls=o,o}function d(t){return function(){for(var e=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];t.forEach(function(t,r){var o=n[r];if(Array.isArray(t))e[t[0]]=void 0===o?t[1]:o;else for(var i in t)e[i]=o&&o.hasOwnProperty(i)?o[i]:t[i]})}}function y(t,e,n){function r(){function t(t,e,n){for(var r=ho.getOwnMetadata("parameters",t)||[];r.length<=n;)r.push(null);return r[n]=r[n]||[],r[n].push(i),ho.defineMetadata("parameters",r,t),t}for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(this instanceof r)return o.apply(this,e),this;var i=new(r.bind.apply(r,[void 0].concat(e)));return t.annotation=i,t}var o=d(e);return n&&(r.prototype=Object.create(n.prototype)),r.prototype.toString=function(){return"@"+t},r.annotationCls=r,r}function m(t,e,n){function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(this instanceof r)return o.apply(this,t),this;var n=new(r.bind.apply(r,[void 0].concat(t)));return function(t,e){var r=ho.getOwnMetadata("propMetadata",t.constructor)||{};r[e]=r.hasOwnProperty(e)&&r[e]||[],r[e].unshift(n),ho.defineMetadata("propMetadata",r,t.constructor)}}var o=d(e);return n&&(r.prototype=Object.create(n.prototype)),r.prototype.toString=function(){return"@"+t},r.annotationCls=r,r}function v(t){return null==t||t===wo.Default}function g(t){return t.__forward_ref__=g,t.toString=function(){return c(this())},t}function _(t){return"function"==typeof t&&t.hasOwnProperty("__forward_ref__")&&t.__forward_ref__===g?t():t}function b(t){return t[$o]}function w(t){return t[Ko]}function C(t){return t[Qo]||E}function E(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t.error.apply(t,e)}function S(t,e){var n=t+" caused by: "+(e instanceof Error?e.message:e),r=Error(n);return r[Ko]=e,r}function x(t){for(var e=[],n=0;n<t.length;++n){if(e.indexOf(t[n])>-1)return e.push(t[n]),e;e.push(t[n])}return e}function T(t){return t.length>1?" ("+x(t.slice().reverse()).map(function(t){return c(t.token)}).join(" -> ")+")":""}function P(t,e,n,r){var o=r?S("",r):Error();return o.addKey=A,o.keys=[e],o.injectors=[t],o.constructResolvingMessage=n,o.message=o.constructResolvingMessage(),o[Ko]=r,o}function A(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage()}function O(t,e){return P(t,e,function(){return"No provider for "+c(this.keys[0].token)+"!"+T(this.keys)})}function M(t,e){return P(t,e,function(){return"Cannot instantiate cyclic dependency!"+T(this.keys)})}function R(t,e,n,r){return P(t,r,function(){var t=c(this.keys[0].token);return w(this).message+": Error during instantiation of "+t+"!"+T(this.keys)+"."},e)}function k(t){return Error("Invalid provider - only instances of Provider and Type are allowed, got: "+t)}function I(t,e){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];i&&0!=i.length?n.push(i.map(c).join(" ")):n.push("?")}return Error("Cannot resolve all parameters for '"+c(t)+"'("+n.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+c(t)+"' is decorated with Injectable.")}function N(t){return Error("Index "+t+" is out-of-bounds.")}function D(t,e){return Error("Cannot mix multi providers and regular providers, got: "+t+" "+e)}function j(t){return"function"==typeof t}function L(t){return t?t.map(function(t){var e=t.type.annotationCls,n=t.args?t.args:[];return new(e.bind.apply(e,[void 0].concat(n)))}):[]}function V(t){var e=Object.getPrototypeOf(t.prototype);return(e?e.constructor:null)||Object}function F(t){var e,n;if(t.useClass){var r=_(t.useClass);e=oi.factory(r),n=G(r)}else t.useExisting?(e=function(t){return t},n=[ii.fromKey(Zo.get(t.useExisting))]):t.useFactory?(e=t.useFactory,n=z(t.useFactory,t.deps)):(e=function(){return t.useValue},n=si);return new ui(e,n)}function U(t){return new ai(Zo.get(t.provide),[F(t)],t.multi||!1)}function H(t){var e=B(q(t,[]).map(U),new Map);return Array.from(e.values())}function B(t,e){for(var n=0;n<t.length;n++){var r=t[n],o=e.get(r.key.id);if(o){if(r.multiProvider!==o.multiProvider)throw D(o,r);if(r.multiProvider)for(var i=0;i<r.resolvedFactories.length;i++)o.resolvedFactories.push(r.resolvedFactories[i]);else e.set(r.key.id,r)}else{var s=void 0;s=r.multiProvider?new ai(r.key,r.resolvedFactories.slice(),r.multiProvider):r,e.set(r.key.id,s)}}return e}function q(t,e){return t.forEach(function(t){if(t instanceof Jo)e.push({provide:t,useClass:t});else if(t&&"object"==typeof t&&void 0!==t.provide)e.push(t);else{if(!(t instanceof Array))throw k(t);q(t,e)}}),e}function z(t,e){if(e){var n=e.map(function(t){return[t]});return e.map(function(e){return W(t,e,n)})}return G(t)}function G(t){var e=oi.parameters(t);if(!e)return[];if(e.some(function(t){return null==t}))throw I(t,e);return e.map(function(n){return W(t,n,e)})}function W(t,e,n){var r=null,o=!1;if(!Array.isArray(e))return e instanceof Lo?$(e.token,o,null):$(e,o,null);for(var i=null,s=0;s<e.length;++s){var a=e[s];a instanceof Jo?r=a:a instanceof Lo?r=a.token:a instanceof Vo?o=!0:a instanceof Uo||a instanceof Ho?i=a:a instanceof io&&(r=a)}if(null!=(r=_(r)))return $(r,o,i);throw I(t,n)}function $(t,e,n){return new ii(Zo.get(t),e,n)}function K(t,e){for(var n=new Array(t._providers.length),r=0;r<t._providers.length;++r)n[r]=e(t.getProviderAtIndex(r));return n}function Q(t){return!!t&&"function"==typeof t.then}function X(t){return!!t&&"function"==typeof t.subscribe}function Z(){return""+Y()+Y()+Y()}function Y(){return String.fromCharCode(97+Math.floor(25*Math.random()))}function J(){throw new Error("Runtime compiler is not loaded")}function tt(t){var e=Error("No component factory found for "+c(t)+". Did you add it to @NgModule.entryComponents?");return e[Ai]=t,e}function et(){var t=co.wtf;return!(!t||!(Ri=t.trace))&&(ki=Ri.events,!0)}function nt(t,e){return void 0===e&&(e=null),ki.createScope(t,e)}function rt(t,e){return Ri.leaveScope(t,e),e}function ot(t,e){return Ri.beginTimeRange(t,e)}function it(t){Ri.endTimeRange(t)}function st(t,e){return null}function at(t){Qi=t}function ut(){if(Zi)throw new Error("Cannot enable prod mode after platform setup.");Xi=!1}function ct(){return Zi=!0,Xi}function lt(t){if(Ki&&!Ki.destroyed&&!Ki.injector.get(Yi,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Ki=t.get(ts);var e=t.get(vi,null);return e&&e.forEach(function(t){return t()}),Ki}function pt(t,e,n){void 0===n&&(n=[]);var r=new io("Platform: "+e);return function(e){void 0===e&&(e=[]);var o=dt();return o&&!o.injector.get(Yi,!1)||(t?t(n.concat(e).concat({provide:r,useValue:!0})):lt(li.resolveAndCreate(n.concat(e).concat({provide:r,useValue:!0})))),ht(r)}}function ht(t){var e=dt();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function ft(){Ki&&!Ki.destroyed&&Ki.destroy()}function dt(){return Ki&&!Ki.destroyed?Ki:null}function yt(t,e){try{var n=e();return Q(n)?n.catch(function(e){throw t.handleError(e),e}):n}catch(e){throw t.handleError(e),e}}function mt(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function vt(t,e){var n=fs.get(t);if(n)throw new Error("Duplicate module registered for "+t+" - "+n.moduleType.name+" vs "+e.moduleType.name);fs.set(t,e)}function gt(t){var e=fs.get(t);if(!e)throw new Error("No module with ID "+t+" loaded");return e}function _t(t){return t.reduce(function(t,e){var n=Array.isArray(e)?_t(e):e;return t.concat(n)},[])}function bt(t,e,n){if(!t)throw new Error("Cannot find '"+n+"' in '"+e+"'");return t}function wt(t){return t.map(function(t){return t.nativeElement})}function Ct(t,e,n){t.childNodes.forEach(function(t){t instanceof xs&&(e(t)&&n.push(t),Ct(t,e,n))})}function Et(t,e,n){t instanceof xs&&t.childNodes.forEach(function(t){e(t)&&n.push(t),t instanceof xs&&Et(t,e,n)})}function St(t){return Ts.get(t)||null}function xt(t){Ts.set(t.nativeNode,t)}function Tt(t){Ts.delete(t.nativeNode)}function Pt(t,e){var n=At(t),r=At(e);if(n&&r)return Ot(t,e,Pt);var o=t&&("object"==typeof t||"function"==typeof t),i=e&&("object"==typeof e||"function"==typeof e);return!(n||!o||r||!i)||u(t,e)}function At(t){return!!Rt(t)&&(Array.isArray(t)||!(t instanceof Map)&&s()in t)}function Ot(t,e,n){for(var r=t[s()](),o=e[s()]();;){var i=r.next(),a=o.next();if(i.done&&a.done)return!0;if(i.done||a.done)return!1;if(!n(i.value,a.value))return!1}}function Mt(t,e){if(Array.isArray(t))for(var n=0;n<t.length;n++)e(t[n]);else for(var r=t[s()](),o=void 0;!(o=r.next()).done;)e(o.value)}function Rt(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function kt(t,e,n){var r=t.previousIndex;if(null===r)return r;var o=0;return n&&r<n.length&&(o=n[r]),r+e+o}function It(t){return t.name||typeof t}function Nt(){return oi}function Dt(t,e){return t.nodes[e]}function jt(t,e){return t.nodes[e]}function Lt(t,e){return t.nodes[e]}function Vt(t,e){return t.nodes[e]}function Ft(t,e){return t.nodes[e]}function Ut(t,e,n,r){var o="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '"+e+"'. Current value: '"+n+"'.";return r&&(o+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),Bt(o,t)}function Ht(t,e){return t instanceof Error||(t=new Error(t.toString())),qt(t,e),t}function Bt(t,e){var n=new Error(t);return qt(n,e),n}function qt(t,e){t[$o]=e,t[Qo]=e.logError.bind(e)}function zt(t){return!!b(t)}function Gt(t){return new Error("ViewDestroyedError: Attempt to use a destroyed view: "+t)}function Wt(t){var e=ta.get(t);return e||(e=c(t)+"_"+ta.size,ta.set(t,e)),e}function $t(t,e,n,r){if(r instanceof Ps){r=r.wrapped;var o=t.def.nodes[e].bindingIndex+n,i=t.oldValues[o];i instanceof Ps&&(i=i.wrapped),t.oldValues[o]=new Ps(i)}return r}function Kt(t){return{id:ea,styles:t.styles,encapsulation:t.encapsulation,data:t.data}}function Qt(t){if(t&&t.id===ea){var e=null!=t.encapsulation&&t.encapsulation!==Io.None||t.styles.length||Object.keys(t.data).length;t.id=e?"c"+ra++:na}return t&&t.id===na&&(t=null),t||null}function Xt(t,e,n,r){var o=t.oldValues;return!(!(2&t.state)&&u(o[e.bindingIndex+n],r))}function Zt(t,e,n,r){return!!Xt(t,e,n,r)&&(t.oldValues[e.bindingIndex+n]=r,!0)}function Yt(t,e,n,r){var o=t.oldValues[e.bindingIndex+n];if(1&t.state||!Pt(o,r))throw Ut(Ys.createDebugContext(t,e.index),o,r,0!=(1&t.state))}function Jt(t){for(var e=t;e;)2&e.def.flags&&(e.state|=8),e=e.viewContainerParent||e.parent}function te(t,e){for(var n=t;n&&n!==e;)n.state|=64,n=n.viewContainerParent||n.parent}function ee(t,e,n,r){return Jt(33554432&t.def.nodes[e].flags?jt(t,e).componentView:t),Ys.handleEvent(t,e,n,r)}function ne(t){return t.parent?jt(t.parent,t.parentNodeDef.index):null}function re(t){return t.parent?t.parentNodeDef.parent:null}function oe(t,e){switch(201347067&e.flags){case 1:return jt(t,e.index).renderElement;case 2:return Dt(t,e.index).renderText}}function ie(t,e){return t?t+":"+e:e}function se(t){return!!t.parent&&!!(32768&t.parentNodeDef.flags)}function ae(t){return!(!t.parent||32768&t.parentNodeDef.flags)}function ue(t){return 1<<t%32}function ce(t){var e={},n=0,r={};return t&&t.forEach(function(t){var o=t[0],i=t[1];"number"==typeof o?(e[o]=i,n|=ue(o)):r[o]=i}),{matchedQueries:e,references:r,matchedQueryIds:n}}function le(t,e,n){var r=n.renderParent;return r?0==(1&r.flags)||0==(33554432&r.flags)||r.element.componentRendererType&&r.element.componentRendererType.encapsulation===Io.Native?jt(t,n.renderParent.index).renderElement:void 0:e}function pe(t){var e=oa.get(t);return e||((e=t(function(){return Js})).factory=t,oa.set(t,e)),e}function he(t){var e=[];return fe(t,0,void 0,void 0,e),e}function fe(t,e,n,r,o){3===e&&(n=t.renderer.parentNode(oe(t,t.def.lastRenderRootNode))),de(t,e,0,t.def.nodes.length-1,n,r,o)}function de(t,e,n,r,o,i,s){for(var a=n;a<=r;a++){var u=t.def.nodes[a];11&u.flags&&me(t,u,e,o,i,s),a+=u.childCount}}function ye(t,e,n,r,o,i){for(var s=t;s&&!se(s);)s=s.parent;for(var a=s.parent,u=re(s),c=u.index+1,l=u.index+u.childCount,p=c;p<=l;p++){var h=a.def.nodes[p];h.ngContentIndex===e&&me(a,h,n,r,o,i),p+=h.childCount}if(!a.parent){var f=t.root.projectableNodes[e];if(f)for(p=0;p<f.length;p++)ve(t,f[p],n,r,o,i)}}function me(t,e,n,r,o,i){if(8&e.flags)ye(t,e.ngContent.index,n,r,o,i);else{var s=oe(t,e);if(3===n&&33554432&e.flags&&48&e.bindingFlags?(16&e.bindingFlags&&ve(t,s,n,r,o,i),32&e.bindingFlags&&ve(jt(t,e.index).componentView,s,n,r,o,i)):ve(t,s,n,r,o,i),16777216&e.flags)for(var a=jt(t,e.index).viewContainer._embeddedViews,u=0;u<a.length;u++)fe(a[u],n,r,o,i);1&e.flags&&!e.element.name&&de(t,n,e.index+1,e.index+e.childCount,r,o,i)}}function ve(t,e,n,r,o,i){var s=t.renderer;switch(n){case 1:s.appendChild(r,e);break;case 2:s.insertBefore(r,e,o);break;case 3:s.removeChild(r,e);break;case 0:i.push(e)}}function ge(t){if(":"===t[0]){var e=t.match(ia);return[e[1],e[2]]}return["",t]}function _e(t){for(var e=0,n=0;n<t.length;n++)e|=t[n].flags;return e}function be(t,e){for(var n="",r=0;r<2*t;r+=2)n=n+e[r]+Ce(e[r+1]);return n+e[2*t]}function we(t,e,n,r,o,i,s,a,u,c,l,p,h,f,d,y,m,v,g,_){switch(t){case 1:return e+Ce(n)+r;case 2:return e+Ce(n)+r+Ce(o)+i;case 3:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a;case 4:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c;case 5:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c+Ce(l)+p;case 6:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c+Ce(l)+p+Ce(h)+f;case 7:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c+Ce(l)+p+Ce(h)+f+Ce(d)+y;case 8:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c+Ce(l)+p+Ce(h)+f+Ce(d)+y+Ce(m)+v;case 9:return e+Ce(n)+r+Ce(o)+i+Ce(s)+a+Ce(u)+c+Ce(l)+p+Ce(h)+f+Ce(d)+y+Ce(m)+v+Ce(g)+_;default:throw new Error("Does not support more than 9 expressions")}}function Ce(t){return null!=t?t.toString():""}function Ee(t,e,n,r,o,i){t|=1;var s=ce(e),a=s.matchedQueries,u=s.references;return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:a,matchedQueryIds:s.matchedQueryIds,references:u,ngContentIndex:n,childCount:r,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:i?pe(i):null,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:o||Js},provider:null,text:null,query:null,ngContent:null}}function Se(t,e,n,r,o,i,s,a,u,c,l){void 0===i&&(i=[]),u||(u=Js);var p=ce(e),h=p.matchedQueries,f=p.references,d=p.matchedQueryIds,y=null,m=null;o&&(y=(I=ge(o))[0],m=I[1]),s=s||[];for(var v=new Array(s.length),g=0;g<s.length;g++){var _=s[g],b=_[0],w=_[1],C=_[2],E=ge(w),S=E[0],x=E[1],T=void 0,P=void 0;switch(15&b){case 4:P=C;break;case 1:case 8:T=C}v[g]={flags:b,ns:S,name:x,nonMinifiedName:x,securityContext:T,suffix:P}}a=a||[];for(var A=new Array(a.length),g=0;g<a.length;g++){var O=a[g],M=O[0],R=O[1];A[g]={type:0,target:M,eventName:R,propName:null}}var k=(i=i||[]).map(function(t){var e=t[0],n=t[1],r=ge(e);return[r[0],r[1],n]});return l=Qt(l),c&&(t|=33554432),t|=1,{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:h,matchedQueryIds:d,references:f,ngContentIndex:n,childCount:r,bindings:v,bindingFlags:_e(v),outputs:A,element:{ns:y,name:m,attrs:k,template:null,componentProvider:null,componentView:c||null,componentRendererType:l,publicProviders:null,allProviders:null,handleEvent:u||Js},provider:null,text:null,query:null,ngContent:null};var I}function xe(t,e,n){var r,o=n.element,i=t.root.selectorOrNode,s=t.renderer;if(t.parent||!i){r=o.name?s.createElement(o.name,o.ns):s.createComment("");var a=le(t,e,n);a&&s.appendChild(a,r)}else r=s.selectRootElement(i);if(o.attrs)for(var u=0;u<o.attrs.length;u++){var c=o.attrs[u],l=c[0],p=c[1],h=c[2];s.setAttribute(r,p,h,l)}return r}function Te(t,e,n,r){for(var o=0;o<n.outputs.length;o++){var i=n.outputs[o],s=Pe(t,n.index,ie(i.target,i.eventName)),a=i.target,u=t;"component"===i.target&&(a=null,u=e);var c=u.renderer.listen(a||r,i.eventName,s);t.disposables[n.outputIndex+o]=c}}function Pe(t,e,n){return function(r){try{return ee(t,e,n,r)}catch(e){t.root.errorHandler.handleError(e)}}}function Ae(t,e,n,r,o,i,s,a,u,c,l,p){var h=e.bindings.length,f=!1;return h>0&&Me(t,e,0,n)&&(f=!0),h>1&&Me(t,e,1,r)&&(f=!0),h>2&&Me(t,e,2,o)&&(f=!0),h>3&&Me(t,e,3,i)&&(f=!0),h>4&&Me(t,e,4,s)&&(f=!0),h>5&&Me(t,e,5,a)&&(f=!0),h>6&&Me(t,e,6,u)&&(f=!0),h>7&&Me(t,e,7,c)&&(f=!0),h>8&&Me(t,e,8,l)&&(f=!0),h>9&&Me(t,e,9,p)&&(f=!0),f}function Oe(t,e,n){for(var r=!1,o=0;o<n.length;o++)Me(t,e,o,n[o])&&(r=!0);return r}function Me(t,e,n,r){if(!Zt(t,e,n,r))return!1;var o=e.bindings[n],i=jt(t,e.index),s=i.renderElement,a=o.name;switch(15&o.flags){case 1:Re(t,o,s,o.ns,a,r);break;case 2:ke(t,s,a,r);break;case 4:Ie(t,o,s,a,r);break;case 8:Ne(33554432&e.flags&&32&o.flags?i.componentView:t,o,s,a,r)}return!0}function Re(t,e,n,r,o,i){var s=e.securityContext,a=s?t.root.sanitizer.sanitize(s,i):i;a=null!=a?a.toString():null;var u=t.renderer;null!=i?u.setAttribute(n,o,a,r):u.removeAttribute(n,o,r)}function ke(t,e,n,r){var o=t.renderer;r?o.addClass(e,n):o.removeClass(e,n)}function Ie(t,e,n,r,o){var i=t.root.sanitizer.sanitize(Qs.STYLE,o);if(null!=i){i=i.toString();var s=e.suffix;null!=s&&(i+=s)}else i=null;var a=t.renderer;null!=i?a.setStyle(n,r,i):a.removeStyle(n,r)}function Ne(t,e,n,r,o){var i=e.securityContext,s=i?t.root.sanitizer.sanitize(i,o):o;t.renderer.setProperty(n,r,s)}function De(t,e){return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:8,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:e}}}function je(t,e,n){var r=le(t,e,n);r&&ye(t,n.ngContent.index,1,r,null,void 0)}function Le(t,e,n,r){var o=e.viewContainer._embeddedViews;null!==n&&void 0!==n||(n=o.length),r.viewContainerParent=t,Ge(o,n,r),Ve(e,r),Ys.dirtyParentQueries(r),qe(e,n>0?o[n-1]:null,r)}function Ve(t,e){var n=ne(e);if(n&&n!==t&&!(16&e.state)){e.state|=16;var r=n.template._projectedViews;r||(r=n.template._projectedViews=[]),r.push(e),Fe(e.parent.def,e.parentNodeDef)}}function Fe(t,e){if(!(4&e.flags)){t.nodeFlags|=4,e.flags|=4;for(var n=e.parent;n;)n.childFlags|=4,n=n.parent}}function Ue(t,e){var n=t.viewContainer._embeddedViews;if((null==e||e>=n.length)&&(e=n.length-1),e<0)return null;var r=n[e];return r.viewContainerParent=null,We(n,e),Ys.dirtyParentQueries(r),ze(r),r}function He(t){if(16&t.state){var e=ne(t);if(e){var n=e.template._projectedViews;n&&(We(n,n.indexOf(t)),Ys.dirtyParentQueries(t))}}}function Be(t,e,n){var r=t.viewContainer._embeddedViews,o=r[e];return We(r,e),null==n&&(n=r.length),Ge(r,n,o),Ys.dirtyParentQueries(o),ze(o),qe(t,n>0?r[n-1]:null,o),o}function qe(t,e,n){var r=e?oe(e,e.def.lastRenderRootNode):t.renderElement;fe(n,2,n.renderer.parentNode(r),n.renderer.nextSibling(r),void 0)}function ze(t){fe(t,3,null,null,void 0)}function Ge(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function We(t,e){e>=t.length-1?t.pop():t.splice(e,1)}function $e(t,e,n,r,o,i){return new ca(t,e,n,r,o,i)}function Ke(t){return t.viewDefFactory}function Qe(t,e,n){return new pa(t,e,n)}function Xe(t){return new ha(t)}function Ze(t,e){return new fa(t,e)}function Ye(t,e){return new da(t,e)}function Je(t,e){var n=t.def.nodes[e];if(1&n.flags){var r=jt(t,n.index);return n.element.template?r.template:r.renderElement}if(2&n.flags)return Dt(t,n.index).renderText;if(20240&n.flags)return Lt(t,n.index).instance;throw new Error("Illegal state: read nodeValue for node index "+e)}function tn(t){return new ya(t.renderer)}function en(t,e,n,r,o,i,s){var a=[];if(i)for(var u in i){var c=i[u],l=c[0],p=c[1];a[l]={flags:8,name:u,nonMinifiedName:p,ns:null,securityContext:null,suffix:null}}var h=[];if(s)for(var f in s)h.push({type:1,propName:f,target:null,eventName:s[f]});return t|=16384,on(t,e,n,r,r,o,a,h)}function nn(t,e,n){return t|=16,on(t,null,0,e,e,n)}function rn(t,e,n,r,o){return on(t,e,0,n,r,o)}function on(t,e,n,r,o,i,s,a){var u=ce(e),c=u.matchedQueries,l=u.references,p=u.matchedQueryIds;a||(a=[]),s||(s=[]);var h=i.map(function(t){var e,n;return Array.isArray(t)?(n=t[0],e=t[1]):(n=0,e=t),{flags:n,token:e,tokenKey:Wt(e)}});return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:c,matchedQueryIds:p,references:l,ngContentIndex:-1,childCount:n,bindings:s,bindingFlags:_e(s),outputs:a,element:null,provider:{token:r,tokenKey:Wt(r),value:o,deps:h},text:null,query:null,ngContent:null}}function sn(t,e){return 4096&e.flags?Ea:hn(t,e)}function an(t,e){for(var n=t;n.parent&&!se(n);)n=n.parent;return fn(n.parent,re(n),!0,e.provider.value,e.provider.deps)}function un(t,e){var n=(32768&e.flags)>0,r=fn(t,e.parent,n,e.provider.value,e.provider.deps);if(e.outputs.length)for(var o=0;o<e.outputs.length;o++){var i=e.outputs[o],s=r[i.propName].subscribe(cn(t,e.parent.index,i.eventName));t.disposables[e.outputIndex+o]=s.unsubscribe.bind(s)}return r}function cn(t,e,n){return function(r){try{return ee(t,e,n,r)}catch(e){t.root.errorHandler.handleError(e)}}}function ln(t,e,n,r,o,i,s,a,u,c,l,p){var h=Lt(t,e.index),f=h.instance,d=!1,y=void 0,m=e.bindings.length;return m>0&&Xt(t,e,0,n)&&(d=!0,y=vn(t,h,e,0,n,y)),m>1&&Xt(t,e,1,r)&&(d=!0,y=vn(t,h,e,1,r,y)),m>2&&Xt(t,e,2,o)&&(d=!0,y=vn(t,h,e,2,o,y)),m>3&&Xt(t,e,3,i)&&(d=!0,y=vn(t,h,e,3,i,y)),m>4&&Xt(t,e,4,s)&&(d=!0,y=vn(t,h,e,4,s,y)),m>5&&Xt(t,e,5,a)&&(d=!0,y=vn(t,h,e,5,a,y)),m>6&&Xt(t,e,6,u)&&(d=!0,y=vn(t,h,e,6,u,y)),m>7&&Xt(t,e,7,c)&&(d=!0,y=vn(t,h,e,7,c,y)),m>8&&Xt(t,e,8,l)&&(d=!0,y=vn(t,h,e,8,l,y)),m>9&&Xt(t,e,9,p)&&(d=!0,y=vn(t,h,e,9,p,y)),y&&f.ngOnChanges(y),2&t.state&&65536&e.flags&&f.ngOnInit(),262144&e.flags&&f.ngDoCheck(),d}function pn(t,e,n){for(var r=Lt(t,e.index),o=r.instance,i=!1,s=void 0,a=0;a<n.length;a++)Xt(t,e,a,n[a])&&(i=!0,s=vn(t,r,e,a,n[a],s));return s&&o.ngOnChanges(s),2&t.state&&65536&e.flags&&o.ngOnInit(),262144&e.flags&&o.ngDoCheck(),i}function hn(t,e){var n,r=(8192&e.flags)>0,o=e.provider;switch(201347067&e.flags){case 512:n=fn(t,e.parent,r,o.value,o.deps);break;case 1024:n=dn(t,e.parent,r,o.value,o.deps);break;case 2048:n=yn(t,e.parent,r,o.deps[0]);break;case 256:n=o.value}return n}function fn(t,e,n,r,o){var i,s=o.length;switch(s){case 0:i=new r;break;case 1:i=new r(yn(t,e,n,o[0]));break;case 2:i=new r(yn(t,e,n,o[0]),yn(t,e,n,o[1]));break;case 3:i=new r(yn(t,e,n,o[0]),yn(t,e,n,o[1]),yn(t,e,n,o[2]));break;default:for(var a=new Array(s),u=0;u<s;u++)a[u]=yn(t,e,n,o[u]);i=new(r.bind.apply(r,[void 0].concat(a)))}return i}function dn(t,e,n,r,o){var i,s=o.length;switch(s){case 0:i=r();break;case 1:i=r(yn(t,e,n,o[0]));break;case 2:i=r(yn(t,e,n,o[0]),yn(t,e,n,o[1]));break;case 3:i=r(yn(t,e,n,o[0]),yn(t,e,n,o[1]),yn(t,e,n,o[2]));break;default:for(var a=Array(s),u=0;u<s;u++)a[u]=yn(t,e,n,o[u]);i=r.apply(void 0,a)}return i}function yn(t,e,n,r,o){if(void 0===o&&(o=Wo.THROW_IF_NOT_FOUND),8&r.flags)return r.token;var i=t;2&r.flags&&(o=null);var s=r.tokenKey;for(s===wa&&(n=!(!e||!e.element.componentView)),e&&1&r.flags&&(n=!1,e=e.parent);t;){if(e)switch(s){case ma:return tn(a=mn(t,e,n));case va:var a=mn(t,e,n);return a.renderer;case ga:return new ps(jt(t,e.index).renderElement);case _a:return jt(t,e.index).viewContainer;case ba:if(e.element.template)return jt(t,e.index).template;break;case wa:return Xe(mn(t,e,n));case Ca:return Ye(t,e);default:var u=(n?e.element.allProviders:e.element.publicProviders)[s];if(u){var c=Lt(t,u.index);return c.instance===Ea&&(c.instance=hn(t,u)),c.instance}}n=se(t),e=re(t),t=t.parent}var l=i.root.injector.get(r.token,Sa);return l!==Sa||o===Sa?l:i.root.ngModule.injector.get(r.token,o)}function mn(t,e,n){var r;if(n)r=jt(t,e.index).componentView;else for(r=t;r.parent&&!se(r);)r=r.parent;return r}function vn(t,e,n,r,o,i){if(32768&n.flags){var s=jt(t,n.parent.index).componentView;2&s.def.flags&&(s.state|=8)}var a=n.bindings[r].name;if(e.instance[a]=o,524288&n.flags){i=i||{};var u=t.oldValues[n.bindingIndex+r];u instanceof Ps&&(u=u.wrapped),i[n.bindings[r].nonMinifiedName]=new Os(u,o,0!=(2&t.state))}return t.oldValues[n.bindingIndex+r]=o,i}function gn(t,e){if(t.def.nodeFlags&e)for(var n=t.def.nodes,r=0;r<n.length;r++){var o=n[r],i=o.parent;for(!i&&o.flags&e&&bn(t,r,o.flags&e),0==(o.childFlags&e)&&(r+=o.childCount);i&&1&i.flags&&r===i.index+i.childCount;)i.directChildFlags&e&&_n(t,i,e),i=i.parent}}function _n(t,e,n){for(var r=e.index+1;r<=e.index+e.childCount;r++){var o=t.def.nodes[r];o.flags&n&&bn(t,r,o.flags&n),r+=o.childCount}}function bn(t,e,n){var r=Lt(t,e).instance;r!==Ea&&(Ys.setCurrentNode(t,e),1048576&n&&r.ngAfterContentInit(),2097152&n&&r.ngAfterContentChecked(),4194304&n&&r.ngAfterViewInit(),8388608&n&&r.ngAfterViewChecked(),131072&n&&r.ngOnDestroy())}function wn(t){return Sn(128,new Array(t+1))}function Cn(t){return Sn(32,new Array(t))}function En(t){return Sn(64,t)}function Sn(t,e){for(var n=new Array(e.length),r=0;r<e.length;r++){var o=e[r];n[r]={flags:8,name:o,ns:null,nonMinifiedName:o,securityContext:null,suffix:null}}return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:n,bindingFlags:_e(n),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function xn(t,e){return{value:void 0}}function Tn(t,e,n,r,o,i,s,a,u,c,l,p){var h=e.bindings,f=!1,d=h.length;if(d>0&&Zt(t,e,0,n)&&(f=!0),d>1&&Zt(t,e,1,r)&&(f=!0),d>2&&Zt(t,e,2,o)&&(f=!0),d>3&&Zt(t,e,3,i)&&(f=!0),d>4&&Zt(t,e,4,s)&&(f=!0),d>5&&Zt(t,e,5,a)&&(f=!0),d>6&&Zt(t,e,6,u)&&(f=!0),d>7&&Zt(t,e,7,c)&&(f=!0),d>8&&Zt(t,e,8,l)&&(f=!0),d>9&&Zt(t,e,9,p)&&(f=!0),f){var y=Vt(t,e.index),m=void 0;switch(201347067&e.flags){case 32:m=new Array(h.length),d>0&&(m[0]=n),d>1&&(m[1]=r),d>2&&(m[2]=o),d>3&&(m[3]=i),d>4&&(m[4]=s),d>5&&(m[5]=a),d>6&&(m[6]=u),d>7&&(m[7]=c),d>8&&(m[8]=l),d>9&&(m[9]=p);break;case 64:m={},d>0&&(m[h[0].name]=n),d>1&&(m[h[1].name]=r),d>2&&(m[h[2].name]=o),d>3&&(m[h[3].name]=i),d>4&&(m[h[4].name]=s),d>5&&(m[h[5].name]=a),d>6&&(m[h[6].name]=u),d>7&&(m[h[7].name]=c),d>8&&(m[h[8].name]=l),d>9&&(m[h[9].name]=p);break;case 128:var v=n;switch(d){case 1:m=v.transform(n);break;case 2:m=v.transform(r);break;case 3:m=v.transform(r,o);break;case 4:m=v.transform(r,o,i);break;case 5:m=v.transform(r,o,i,s);break;case 6:m=v.transform(r,o,i,s,a);break;case 7:m=v.transform(r,o,i,s,a,u);break;case 8:m=v.transform(r,o,i,s,a,u,c);break;case 9:m=v.transform(r,o,i,s,a,u,c,l);break;case 10:m=v.transform(r,o,i,s,a,u,c,l,p)}}y.value=m}return f}function Pn(t,e,n){for(var r=e.bindings,o=!1,i=0;i<n.length;i++)Zt(t,e,i,n[i])&&(o=!0);if(o){var s=Vt(t,e.index),a=void 0;switch(201347067&e.flags){case 32:a=n;break;case 64:a={};for(i=0;i<n.length;i++)a[r[i].name]=n[i];break;case 128:var u=n[0],c=n.slice(1);a=u.transform.apply(u,c)}s.value=a}return o}function An(t,e,n){var r=[];for(var o in n){var i=n[o];r.push({propName:o,bindingType:i})}return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:e,filterId:ue(e),bindings:r},ngContent:null}}function On(){return new ds}function Mn(t){for(var e=t.def.nodeMatchedQueries;t.parent&&ae(t);){var n=t.parentNodeDef;t=t.parent;for(var r=n.index+n.childCount,o=0;o<=r;o++)67108864&(i=t.def.nodes[o]).flags&&536870912&i.flags&&(i.query.filterId&e)===i.query.filterId&&Ft(t,o).setDirty(),!(1&i.flags&&o+i.childCount<n.index)&&67108864&i.childFlags&&536870912&i.childFlags||(o+=i.childCount)}if(134217728&t.def.nodeFlags)for(o=0;o<t.def.nodes.length;o++){var i=t.def.nodes[o];134217728&i.flags&&536870912&i.flags&&Ft(t,o).setDirty(),o+=i.childCount}}function Rn(t,e){var n=Ft(t,e.index);if(n.dirty){var r,o=void 0;if(67108864&e.flags){var i=e.parent.parent;o=kn(t,i.index,i.index+i.childCount,e.query,[]),r=Lt(t,e.parent.index).instance}else 134217728&e.flags&&(o=kn(t,0,t.def.nodes.length-1,e.query,[]),r=t.component);n.reset(o);for(var s=e.query.bindings,a=!1,u=0;u<s.length;u++){var c=s[u],l=void 0;switch(c.bindingType){case 0:l=n.first;break;case 1:l=n,a=!0}r[c.propName]=l}a&&n.notifyOnChanges()}}function kn(t,e,n,r,o){for(var i=e;i<=n;i++){var s=t.def.nodes[i],a=s.matchedQueries[r.id];if(null!=a&&o.push(In(t,s,a)),1&s.flags&&s.element.template&&(s.element.template.nodeMatchedQueries&r.filterId)===r.filterId){var u=jt(t,i);if(16777216&s.flags)for(var c=u.viewContainer._embeddedViews,l=0;l<c.length;l++){var p=c[l],h=ne(p);h&&h===u&&kn(p,0,p.def.nodes.length-1,r,o)}var f=u.template._projectedViews;if(f)for(l=0;l<f.length;l++){var d=f[l];kn(d,0,d.def.nodes.length-1,r,o)}}(s.childMatchedQueries&r.filterId)!==r.filterId&&(i+=s.childCount)}return o}function In(t,e,n){if(null!=n){var r=void 0;switch(n){case 1:r=jt(t,e.index).renderElement;break;case 0:r=new ps(jt(t,e.index).renderElement);break;case 2:r=jt(t,e.index).template;break;case 3:r=jt(t,e.index).viewContainer;break;case 4:r=Lt(t,e.index).instance}return r}}function Nn(t,e){for(var n=new Array(e.length-1),r=1;r<e.length;r++)n[r-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:e[r]};return{index:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:2,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:n,bindingFlags:_e(n),outputs:[],element:null,provider:null,text:{prefix:e[0]},query:null,ngContent:null}}function Dn(t,e,n){var r,o=t.renderer;r=o.createText(n.text.prefix);var i=le(t,e,n);return i&&o.appendChild(i,r),{renderText:r}}function jn(t,e,n,r,o,i,s,a,u,c,l,p){var h=!1,f=e.bindings,d=f.length;if(d>0&&Zt(t,e,0,n)&&(h=!0),d>1&&Zt(t,e,1,r)&&(h=!0),d>2&&Zt(t,e,2,o)&&(h=!0),d>3&&Zt(t,e,3,i)&&(h=!0),d>4&&Zt(t,e,4,s)&&(h=!0),d>5&&Zt(t,e,5,a)&&(h=!0),d>6&&Zt(t,e,6,u)&&(h=!0),d>7&&Zt(t,e,7,c)&&(h=!0),d>8&&Zt(t,e,8,l)&&(h=!0),d>9&&Zt(t,e,9,p)&&(h=!0),h){var y=e.text.prefix;d>0&&(y+=Vn(n,f[0])),d>1&&(y+=Vn(r,f[1])),d>2&&(y+=Vn(o,f[2])),d>3&&(y+=Vn(i,f[3])),d>4&&(y+=Vn(s,f[4])),d>5&&(y+=Vn(a,f[5])),d>6&&(y+=Vn(u,f[6])),d>7&&(y+=Vn(c,f[7])),d>8&&(y+=Vn(l,f[8])),d>9&&(y+=Vn(p,f[9]));var m=Dt(t,e.index).renderText;t.renderer.setValue(m,y)}return h}function Ln(t,e,n){for(var r=e.bindings,o=!1,i=0;i<n.length;i++)Zt(t,e,i,n[i])&&(o=!0);if(o){for(var s="",i=0;i<n.length;i++)s+=Vn(n[i],r[i]);s=e.text.prefix+s;var a=Dt(t,e.index).renderText;t.renderer.setValue(a,s)}return o}function Vn(t,e){return(null!=t?t.toString():"")+e.suffix}function Fn(t,e,n,r){for(var o=0,i=0,s=0,a=0,u=0,c=null,l=!1,p=!1,h=null,f=0;f<e.length;f++){for(;c&&f>c.index+c.childCount;)(_=c.parent)&&(_.childFlags|=c.childFlags,_.childMatchedQueries|=c.childMatchedQueries),c=_;var d=e[f];d.index=f,d.parent=c,d.bindingIndex=o,d.outputIndex=i;var y=void 0;if(y=c&&1&c.flags&&!c.element.name?c.renderParent:c,d.renderParent=y,d.element){var m=d.element;m.publicProviders=c?c.element.publicProviders:Object.create(null),m.allProviders=m.publicProviders,l=!1,p=!1}if(Un(c,d,e.length),s|=d.flags,u|=d.matchedQueryIds,d.element&&d.element.template&&(u|=d.element.template.nodeMatchedQueries),c?(c.childFlags|=d.flags,c.directChildFlags|=d.flags,c.childMatchedQueries|=d.matchedQueryIds,d.element&&d.element.template&&(c.childMatchedQueries|=d.element.template.nodeMatchedQueries)):a|=d.flags,o+=d.bindings.length,i+=d.outputs.length,!y&&3&d.flags&&(h=d),20224&d.flags){l||(l=!0,c.element.publicProviders=Object.create(c.element.publicProviders),c.element.allProviders=c.element.publicProviders);var v=0!=(8192&d.flags),g=0!=(32768&d.flags);!v||g?c.element.publicProviders[d.provider.tokenKey]=d:(p||(p=!0,c.element.allProviders=Object.create(c.element.publicProviders)),c.element.allProviders[d.provider.tokenKey]=d),g&&(c.element.componentProvider=d)}d.childCount&&(c=d)}for(;c;){var _=c.parent;_&&(_.childFlags|=c.childFlags,_.childMatchedQueries|=c.childMatchedQueries),c=_}var b=function(t,n,r,o){return e[n].element.handleEvent(t,r,o)};return{factory:null,nodeFlags:s,rootNodeFlags:a,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:n||Js,updateRenderer:r||Js,handleEvent:b||Js,bindingCount:o,outputCount:i,lastRenderRootNode:h}}function Un(t,e,n){var r=e.element&&e.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+e.index+"!")}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error("Illegal State: Provider/Directive nodes need to be children of elements or anchors, at index "+e.index+"!");if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+e.index+"!");if(134217728&e.flags&&t)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+e.index+"!")}if(e.childCount){var o=t?t.index+t.childCount:n-1;if(e.index<=o&&e.index+e.childCount>o)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+e.index+"!")}}function Hn(t,e,n){var r=qn(t.root,t.renderer,t,e,e.element.template);return zn(r,t.component,n),Gn(r),r}function Bn(t,e,n){var r=qn(t,t.renderer,null,null,e);return zn(r,n,n),Gn(r),r}function qn(t,e,n,r,o){var i=new Array(o.nodes.length),s=o.outputCount?new Array(o.outputCount):null;return{def:o,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:i,state:13,root:t,renderer:e,oldValues:new Array(o.bindingCount),disposables:s}}function zn(t,e,n){t.component=e,t.context=n}function Gn(t){var e;if(se(t)){var n=t.parentNodeDef;e=jt(t.parent,n.parent.index).renderElement}for(var r=t.def,o=t.nodes,i=0;i<r.nodes.length;i++){var s=r.nodes[i];Ys.setCurrentNode(t,i);var a=void 0;switch(201347067&s.flags){case 1:var u=xe(t,e,s),c=void 0;if(33554432&s.flags){var l=pe(s.element.componentView),p=s.element.componentRendererType,h=void 0;h=p?t.root.rendererFactory.createRenderer(u,p):t.root.renderer,c=qn(t.root,h,t,s.element.componentProvider,l)}Te(t,c,s,u),a={renderElement:u,componentView:c,viewContainer:null,template:s.element.template?Ze(t,s):void 0},16777216&s.flags&&(a.viewContainer=Qe(t,s,a));break;case 2:a=Dn(t,e,s);break;case 512:case 1024:case 2048:case 256:a={instance:f=sn(t,s)};break;case 16:a={instance:f=an(t,s)};break;case 16384:var f=un(t,s);a={instance:f},32768&s.flags&&zn(jt(t,s.parent.index).componentView,f,f);break;case 32:case 64:case 128:a=xn(t,s);break;case 67108864:case 134217728:a=On();break;case 8:je(t,e,s),a=void 0}o[i]=a}or(t,xa.CreateViewNodes),ur(t,201326592,268435456,0)}function Wn(t){Qn(t),Ys.updateDirectives(t,1),ir(t,xa.CheckNoChanges),Ys.updateRenderer(t,1),or(t,xa.CheckNoChanges),t.state&=-97}function $n(t){1&t.state?(t.state&=-2,t.state|=2):t.state&=-3,Qn(t),Ys.updateDirectives(t,0),ir(t,xa.CheckAndUpdate),ur(t,67108864,536870912,0),gn(t,2097152|(2&t.state?1048576:0)),Ys.updateRenderer(t,0),or(t,xa.CheckAndUpdate),ur(t,134217728,536870912,0),gn(t,8388608|(2&t.state?4194304:0)),2&t.def.flags&&(t.state&=-9),t.state&=-97}function Kn(t,e,n,r,o,i,s,a,u,c,l,p,h){return 0===n?Xn(t,e,r,o,i,s,a,u,c,l,p,h):Zn(t,e,r)}function Qn(t){var e=t.def;if(4&e.nodeFlags)for(var n=0;n<e.nodes.length;n++){var r=e.nodes[n];if(4&r.flags){var o=jt(t,n).template._projectedViews;if(o)for(var i=0;i<o.length;i++){var s=o[i];s.state|=32,te(s,t)}}else 0==(4&r.childFlags)&&(n+=r.childCount)}}function Xn(t,e,n,r,o,i,s,a,u,c,l,p){var h=!1;switch(201347067&e.flags){case 1:h=Ae(t,e,n,r,o,i,s,a,u,c,l,p);break;case 2:h=jn(t,e,n,r,o,i,s,a,u,c,l,p);break;case 16384:h=ln(t,e,n,r,o,i,s,a,u,c,l,p);break;case 32:case 64:case 128:h=Tn(t,e,n,r,o,i,s,a,u,c,l,p)}return h}function Zn(t,e,n){var r=!1;switch(201347067&e.flags){case 1:r=Oe(t,e,n);break;case 2:r=Ln(t,e,n);break;case 16384:r=pn(t,e,n);break;case 32:case 64:case 128:r=Pn(t,e,n)}if(r)for(var o=e.bindings.length,i=e.bindingIndex,s=t.oldValues,a=0;a<o;a++)s[i+a]=n[a];return r}function Yn(t,e,n,r,o,i,s,a,u,c,l,p,h){return 0===n?Jn(t,e,r,o,i,s,a,u,c,l,p,h):tr(t,e,r),!1}function Jn(t,e,n,r,o,i,s,a,u,c,l,p){var h=e.bindings.length;h>0&&Yt(t,e,0,n),h>1&&Yt(t,e,1,r),h>2&&Yt(t,e,2,o),h>3&&Yt(t,e,3,i),h>4&&Yt(t,e,4,s),h>5&&Yt(t,e,5,a),h>6&&Yt(t,e,6,u),h>7&&Yt(t,e,7,c),h>8&&Yt(t,e,8,l),h>9&&Yt(t,e,9,p)}function tr(t,e,n){for(var r=0;r<n.length;r++)Yt(t,e,r,n[r])}function er(t,e){if(Ft(t,e.index).dirty)throw Ut(Ys.createDebugContext(t,e.index),"Query "+e.query.id+" not dirty","Query "+e.query.id+" dirty",0!=(1&t.state))}function nr(t){if(!(128&t.state)){if(ir(t,xa.Destroy),or(t,xa.Destroy),gn(t,131072),t.disposables)for(var e=0;e<t.disposables.length;e++)t.disposables[e]();He(t),t.renderer.destroyNode&&rr(t),se(t)&&t.renderer.destroy(),t.state|=128}}function rr(t){for(var e=t.def.nodes.length,n=0;n<e;n++){var r=t.def.nodes[n];1&r.flags?t.renderer.destroyNode(jt(t,n).renderElement):2&r.flags&&t.renderer.destroyNode(Dt(t,n).renderText)}}function or(t,e){var n=t.def;if(33554432&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var o=n.nodes[r];33554432&o.flags?sr(jt(t,r).componentView,e):0==(33554432&o.childFlags)&&(r+=o.childCount)}}function ir(t,e){var n=t.def;if(16777216&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var o=n.nodes[r];if(16777216&o.flags)for(var i=jt(t,r).viewContainer._embeddedViews,s=0;s<i.length;s++)sr(i[s],e);else 0==(16777216&o.childFlags)&&(r+=o.childCount)}}function sr(t,e){var n=t.state;switch(e){case xa.CheckNoChanges:0==(128&n)&&(12==(12&n)?Wn(t):64&n&&ar(t,xa.CheckNoChangesProjectedViews));break;case xa.CheckNoChangesProjectedViews:0==(128&n)&&(32&n?Wn(t):64&n&&ar(t,e));break;case xa.CheckAndUpdate:0==(128&n)&&(12==(12&n)?$n(t):64&n&&ar(t,xa.CheckAndUpdateProjectedViews));break;case xa.CheckAndUpdateProjectedViews:0==(128&n)&&(32&n?$n(t):64&n&&ar(t,e));break;case xa.Destroy:nr(t);break;case xa.CreateViewNodes:Gn(t)}}function ar(t,e){ir(t,e),or(t,e)}function ur(t,e,n,r){if(t.def.nodeFlags&e&&t.def.nodeFlags&n)for(var o=t.def.nodes.length,i=0;i<o;i++){var s=t.def.nodes[i];if(s.flags&e&&s.flags&n)switch(Ys.setCurrentNode(t,s.index),r){case 0:Rn(t,s);break;case 1:er(t,s)}s.childFlags&e&&s.childFlags&n||(i+=s.childCount)}}function cr(){if(!Ta){Ta=!0;var t=ct()?pr():lr();Ys.setCurrentNode=t.setCurrentNode,Ys.createRootView=t.createRootView,Ys.createEmbeddedView=t.createEmbeddedView,Ys.checkAndUpdateView=t.checkAndUpdateView,Ys.checkNoChangesView=t.checkNoChangesView,Ys.destroyView=t.destroyView,Ys.resolveDep=yn,Ys.createDebugContext=t.createDebugContext,Ys.handleEvent=t.handleEvent,Ys.updateDirectives=t.updateDirectives,Ys.updateRenderer=t.updateRenderer,Ys.dirtyParentQueries=Mn}}function lr(){return{setCurrentNode:function(){},createRootView:hr,createEmbeddedView:Hn,checkAndUpdateView:$n,checkNoChangesView:Wn,destroyView:nr,createDebugContext:function(t,e){return new ka(t,e)},handleEvent:function(t,e,n,r){return t.def.handleEvent(t,e,n,r)},updateDirectives:function(t,e){return t.def.updateDirectives(0===e?yr:mr,t)},updateRenderer:function(t,e){return t.def.updateRenderer(0===e?yr:mr,t)}}}function pr(){return{setCurrentNode:wr,createRootView:fr,createEmbeddedView:vr,checkAndUpdateView:gr,checkNoChangesView:_r,destroyView:br,createDebugContext:function(t,e){return new ka(t,e)},handleEvent:Cr,updateDirectives:Er,updateRenderer:Sr}}function hr(t,e,n,r,o,i){return Bn(dr(t,o,o.injector.get(us),e,n),r,i)}function fr(t,e,n,r,o,i){var s=o.injector.get(us),a=dr(t,o,new Ia(s),e,n);return Dr(Pa.create,Bn,null,[a,r,i])}function dr(t,e,n,r,o){var i=e.injector.get(Xs),s=e.injector.get(Xo);return{ngModule:e,injector:t,projectableNodes:r,selectorOrNode:o,sanitizer:i,rendererFactory:n,renderer:n.createRenderer(null,null),errorHandler:s}}function yr(t,e,n,r,o,i,s,a,u,c,l,p,h){var f=t.def.nodes[e];return Kn(t,f,n,r,o,i,s,a,u,c,l,p,h),224&f.flags?Vt(t,e).value:void 0}function mr(t,e,n,r,o,i,s,a,u,c,l,p,h){var f=t.def.nodes[e];return Yn(t,f,n,r,o,i,s,a,u,c,l,p,h),224&f.flags?Vt(t,e).value:void 0}function vr(t,e,n){return Dr(Pa.create,Hn,null,[t,e,n])}function gr(t){return Dr(Pa.detectChanges,$n,null,[t])}function _r(t){return Dr(Pa.checkNoChanges,Wn,null,[t])}function br(t){return Dr(Pa.destroy,nr,null,[t])}function wr(t,e){Oa=t,Ma=e}function Cr(t,e,n,r){return wr(t,e),Dr(Pa.handleEvent,t.def.handleEvent,null,[t,e,n,r])}function Er(t,e){function n(t,n,r){for(var o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];var s=t.def.nodes[n];return 0===e?xr(t,s,r,o):Tr(t,s,r,o),16384&s.flags&&wr(t,Mr(t,n)),224&s.flags?Vt(t,s.index).value:void 0}if(128&t.state)throw Gt(Pa[Aa]);return wr(t,Mr(t,0)),t.def.updateDirectives(n,t)}function Sr(t,e){function n(t,n,r){for(var o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];var s=t.def.nodes[n];return 0===e?xr(t,s,r,o):Tr(t,s,r,o),3&s.flags&&wr(t,Rr(t,n)),224&s.flags?Vt(t,s.index).value:void 0}if(128&t.state)throw Gt(Pa[Aa]);return wr(t,Rr(t,0)),t.def.updateRenderer(n,t)}function xr(t,e,n,r){if(Kn.apply(void 0,[t,e,n].concat(r))){var o=1===n?r[0]:r;if(16384&e.flags){for(var i={},s=0;s<e.bindings.length;s++){var a=e.bindings[s],u=o[s];8&a.flags&&(i[Pr(a.nonMinifiedName)]=Or(u))}var c=e.parent,l=jt(t,c.index).renderElement;if(c.element.name)for(var p in i)null!=(u=i[p])?t.renderer.setAttribute(l,p,u):t.renderer.removeAttribute(l,p);else t.renderer.setValue(l,"bindings="+JSON.stringify(i,null,2))}}}function Tr(t,e,n,r){Yn.apply(void 0,[t,e,n].concat(r))}function Pr(t){return"ng-reflect-"+(t=Ar(t.replace(/[$@]/g,"_")))}function Ar(t){return t.replace(Ra,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return"-"+t[1].toLowerCase()})}function Or(t){try{return null!=t?t.toString().slice(0,30):t}catch(t){return"[ERROR] Exception while trying to serialize the value"}}function Mr(t,e){for(var n=e;n<t.def.nodes.length;n++){var r=t.def.nodes[n];if(16384&r.flags&&r.bindings&&r.bindings.length)return n}return null}function Rr(t,e){for(var n=e;n<t.def.nodes.length;n++){var r=t.def.nodes[n];if(3&r.flags&&r.bindings&&r.bindings.length)return n}return null}function kr(t,e){for(var n=-1,r=0;r<=e;r++)3&t.nodes[r].flags&&n++;return n}function Ir(t){for(;t&&!se(t);)t=t.parent;return t.parent?jt(t.parent,re(t).index):null}function Nr(t,e,n){for(var r in e.references)n[r]=In(t,e,e.references[r])}function Dr(t,e,n,r){var o=Aa,i=Oa,s=Ma;try{Aa=t;var a=e.apply(n,r);return Oa=i,Ma=s,Aa=o,a}catch(t){if(zt(t)||!Oa)throw t;throw Ht(t,jr())}}function jr(){return Oa?new ka(Oa,Ma):null}function Lr(){return Bs}function Vr(){return qs}function Fr(t){return t||"en-US"}function Ur(){cr()}function Hr(t,e){return{name:t,definitions:e}}function Br(t,e){return void 0===e&&(e=null),{type:4,styles:e,timings:t}}function qr(t){return{type:3,steps:t}}function zr(t){return{type:2,steps:t}}function Gr(t){return{type:6,styles:t}}function Wr(t,e){return{type:0,name:t,styles:e}}function $r(t){return{type:5,steps:t}}function Kr(t,e){return{type:1,expr:t,animation:e}}function Qr(t,e){return Hr(t,e)}function Xr(t,e){return Br(t,e)}function Zr(t){return qr(t)}function Yr(t){return zr(t)}function Jr(t){return Gr(t)}function to(t,e){return Wr(t,e)}function eo(t){return $r(t)}function no(t,e){return Kr(t,e)}var ro=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},oo=function(){function t(t){this._desc=t}return t.prototype.toString=function(){return"Token "+this._desc},t}(),io=function(t){function e(e){return t.call(this,e)||this}return ro(e,t),e.prototype.toString=function(){return"InjectionToken "+this._desc},e}(oo),so="undefined"!=typeof window&&window,ao="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,uo=void 0!==r&&r,co=so||uo||ao,lo=null,po=0,ho=co.Reflect,fo=new io("AnalyzeForEntryComponents"),yo=y("Attribute",[["attributeName",void 0]]),mo=function(){function t(){}return t}(),vo=m("ContentChildren",[["selector",void 0],{first:!1,isViewQuery:!1,descendants:!1,read:void 0}],mo),go=m("ContentChild",[["selector",void 0],{first:!0,isViewQuery:!1,descendants:!0,read:void 0}],mo),_o=m("ViewChildren",[["selector",void 0],{first:!1,isViewQuery:!0,descendants:!0,read:void 0}],mo),bo=m("ViewChild",[["selector",void 0],{first:!0,isViewQuery:!0,descendants:!0,read:void 0}],mo),wo={};wo.OnPush=0,wo.Default=1,wo[wo.OnPush]="OnPush",wo[wo.Default]="Default";var Co={};Co.CheckOnce=0,Co.Checked=1,Co.CheckAlways=2,Co.Detached=3,Co.Errored=4,Co.Destroyed=5,Co[Co.CheckOnce]="CheckOnce",Co[Co.Checked]="Checked",Co[Co.CheckAlways]="CheckAlways",Co[Co.Detached]="Detached",Co[Co.Errored]="Errored",Co[Co.Destroyed]="Destroyed";var Eo=f("Directive",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,providers:void 0,exportAs:void 0,queries:void 0}),So=f("Component",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,exportAs:void 0,moduleId:void 0,providers:void 0,viewProviders:void 0,changeDetection:wo.Default,queries:void 0,templateUrl:void 0,template:void 0,styleUrls:void 0,styles:void 0,animations:void 0,encapsulation:void 0,interpolation:void 0,entryComponents:void 0},Eo),xo=f("Pipe",{name:void 0,pure:!0}),To=m("Input",[["bindingPropertyName",void 0]]),Po=m("Output",[["bindingPropertyName",void 0]]),Ao=m("HostBinding",[["hostPropertyName",void 0]]),Oo=m("HostListener",[["eventName",void 0],["args",[]]]),Mo={name:"custom-elements"},Ro={name:"no-errors-schema"},ko=f("NgModule",{providers:void 0,declarations:void 0,imports:void 0,exports:void 0,entryComponents:void 0,bootstrap:void 0,schemas:void 0,id:void 0}),Io={};Io.Emulated=0,Io.Native=1,Io.None=2,Io[Io.Emulated]="Emulated",Io[Io.Native]="Native",Io[Io.None]="None";var No=function(){function t(t){var e=void 0===t?{}:t,n=e.templateUrl,r=e.template,o=e.encapsulation,i=e.styles,s=e.styleUrls,a=e.animations,u=e.interpolation;this.templateUrl=n,this.template=r,this.styleUrls=s,this.styles=i,this.encapsulation=o,this.animations=a,this.interpolation=u}return t}(),Do=function(){function t(t){this.full=t}return Object.defineProperty(t.prototype,"major",{get:function(){return this.full.split(".")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minor",{get:function(){return this.full.split(".")[1]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"patch",{get:function(){return this.full.split(".").slice(2).join(".")},enumerable:!0,configurable:!0}),t}(),jo=new Do("4.1.3"),Lo=y("Inject",[["token",void 0]]),Vo=y("Optional",[]),Fo=f("Injectable",[]),Uo=y("Self",[]),Ho=y("SkipSelf",[]),Bo=y("Host",[]),qo=new Object,zo=qo,Go=function(){function t(){}return t.prototype.get=function(t,e){if(void 0===e&&(e=qo),e===qo)throw new Error("No provider for "+c(t)+"!");return e},t}(),Wo=function(){function t(){}return t.prototype.get=function(t,e){},t.prototype.get=function(t,e){},t}();Wo.THROW_IF_NOT_FOUND=qo,Wo.NULL=new Go;var $o="ngDebugContext",Ko="ngOriginalError",Qo="ngErrorLogger",Xo=function(){function t(t){this._console=console}return t.prototype.handleError=function(t){var e=this._findOriginalError(t),n=this._findContext(t),r=C(t);r(this._console,"ERROR",t),e&&r(this._console,"ORIGINAL ERROR",e),n&&r(this._console,"ERROR CONTEXT",n)},t.prototype._findContext=function(t){return t?b(t)?b(t):this._findContext(w(t)):null},t.prototype._findOriginalError=function(t){for(var e=w(t);e&&w(e);)e=w(e);return e},t}(),Zo=function(){function t(t,e){if(this.token=t,this.id=e,!t)throw new Error("Token must be defined!")}return Object.defineProperty(t.prototype,"displayName",{get:function(){return c(this.token)},enumerable:!0,configurable:!0}),t.get=function(t){return Yo.get(_(t))},Object.defineProperty(t,"numberOfKeys",{get:function(){return Yo.numberOfKeys},enumerable:!0,configurable:!0}),t}(),Yo=new(function(){function t(){this._allKeys=new Map}return t.prototype.get=function(t){if(t instanceof Zo)return t;if(this._allKeys.has(t))return this._allKeys.get(t);var e=new Zo(t,Zo.numberOfKeys);return this._allKeys.set(t,e),e},Object.defineProperty(t.prototype,"numberOfKeys",{get:function(){return this._allKeys.size},enumerable:!0,configurable:!0}),t}()),Jo=Function,ti=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,ei=function(){function t(t){this._reflect=t||co.Reflect}return t.prototype.isReflectionEnabled=function(){return!0},t.prototype.factory=function(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return new(t.bind.apply(t,[void 0].concat(e)))}},t.prototype._zipTypesAndAnnotations=function(t,e){var n;n=void 0===t?new Array(e.length):new Array(t.length);for(var r=0;r<n.length;r++)void 0===t?n[r]=[]:t[r]!=Object?n[r]=[t[r]]:n[r]=[],e&&null!=e[r]&&(n[r]=n[r].concat(e[r]));return n},t.prototype._ownParameters=function(t,e){if(ti.exec(t.toString()))return null;if(t.parameters&&t.parameters!==e.parameters)return t.parameters;var n=t.ctorParameters;if(n&&n!==e.ctorParameters){var r="function"==typeof n?n():n,o=r.map(function(t){return t&&t.type}),i=r.map(function(t){return t&&L(t.decorators)});return this._zipTypesAndAnnotations(o,i)}if(null!=this._reflect&&null!=this._reflect.getOwnMetadata){i=this._reflect.getOwnMetadata("parameters",t);if((o=this._reflect.getOwnMetadata("design:paramtypes",t))||i)return this._zipTypesAndAnnotations(o,i)}return new Array(t.length).fill(void 0)},t.prototype.parameters=function(t){if(!j(t))return[];var e=V(t),n=this._ownParameters(t,e);return n||e===Object||(n=this.parameters(e)),n||[]},t.prototype._ownAnnotations=function(t,e){if(t.annotations&&t.annotations!==e.annotations){var n=t.annotations;return"function"==typeof n&&n.annotations&&(n=n.annotations),n}return t.decorators&&t.decorators!==e.decorators?L(t.decorators):this._reflect&&this._reflect.getOwnMetadata?this._reflect.getOwnMetadata("annotations",t):null},t.prototype.annotations=function(t){if(!j(t))return[];var e=V(t),n=this._ownAnnotations(t,e)||[];return(e!==Object?this.annotations(e):[]).concat(n)},t.prototype._ownPropMetadata=function(t,e){if(t.propMetadata&&t.propMetadata!==e.propMetadata){var n=t.propMetadata;return"function"==typeof n&&n.propMetadata&&(n=n.propMetadata),n}if(t.propDecorators&&t.propDecorators!==e.propDecorators){var r=t.propDecorators,o={};return Object.keys(r).forEach(function(t){o[t]=L(r[t])}),o}return this._reflect&&this._reflect.getOwnMetadata?this._reflect.getOwnMetadata("propMetadata",t):null},t.prototype.propMetadata=function(t){if(!j(t))return{};var e=V(t),n={};if(e!==Object){var r=this.propMetadata(e);Object.keys(r).forEach(function(t){n[t]=r[t]})}var o=this._ownPropMetadata(t,e);return o&&Object.keys(o).forEach(function(t){var e=[];n.hasOwnProperty(t)&&e.push.apply(e,n[t]),e.push.apply(e,o[t]),n[t]=e}),n},t.prototype.hasLifecycleHook=function(t,e){return t instanceof Jo&&e in t.prototype},t.prototype.getter=function(t){return new Function("o","return o."+t+";")},t.prototype.setter=function(t){return new Function("o","v","return o."+t+" = v;")},t.prototype.method=function(t){var e="if (!o."+t+") throw new Error('\""+t+"\" is undefined');\n        return o."+t+".apply(o, args);";return new Function("o","args",e)},t.prototype.importUri=function(t){return"object"==typeof t&&t.filePath?t.filePath:"./"+c(t)},t.prototype.resourceUri=function(t){return"./"+c(t)},t.prototype.resolveIdentifier=function(t,e,n,r){return r},t.prototype.resolveEnum=function(t,e){return t[e]},t}(),ni=function(){function t(){}return t.prototype.parameters=function(t){},t.prototype.annotations=function(t){},t.prototype.propMetadata=function(t){},t.prototype.importUri=function(t){},t.prototype.resourceUri=function(t){},t.prototype.resolveIdentifier=function(t,e,n,r){},t.prototype.resolveEnum=function(t,e){},t}(),ri=function(t){function e(e){var n=t.call(this)||this;return n.reflectionCapabilities=e,n}return ro(e,t),e.prototype.updateCapabilities=function(t){this.reflectionCapabilities=t},e.prototype.factory=function(t){return this.reflectionCapabilities.factory(t)},e.prototype.parameters=function(t){return this.reflectionCapabilities.parameters(t)},e.prototype.annotations=function(t){return this.reflectionCapabilities.annotations(t)},e.prototype.propMetadata=function(t){return this.reflectionCapabilities.propMetadata(t)},e.prototype.hasLifecycleHook=function(t,e){return this.reflectionCapabilities.hasLifecycleHook(t,e)},e.prototype.getter=function(t){return this.reflectionCapabilities.getter(t)},e.prototype.setter=function(t){return this.reflectionCapabilities.setter(t)},e.prototype.method=function(t){return this.reflectionCapabilities.method(t)},e.prototype.importUri=function(t){return this.reflectionCapabilities.importUri(t)},e.prototype.resourceUri=function(t){return this.reflectionCapabilities.resourceUri(t)},e.prototype.resolveIdentifier=function(t,e,n,r){return this.reflectionCapabilities.resolveIdentifier(t,e,n,r)},e.prototype.resolveEnum=function(t,e){return this.reflectionCapabilities.resolveEnum(t,e)},e}(ni),oi=new ri(new ei),ii=function(){function t(t,e,n){this.key=t,this.optional=e,this.visibility=n}return t.fromKey=function(e){return new t(e,!1,null)},t}(),si=[],ai=function(){function t(t,e,n){this.key=t,this.resolvedFactories=e,this.multiProvider=n}return Object.defineProperty(t.prototype,"resolvedFactory",{get:function(){return this.resolvedFactories[0]},enumerable:!0,configurable:!0}),t}(),ui=function(){function t(t,e){this.factory=t,this.dependencies=e}return t}(),ci=new Object,li=function(){function t(){}return t.resolve=function(t){return H(t)},t.resolveAndCreate=function(e,n){var r=t.resolve(e);return t.fromResolvedProviders(r,n)},t.fromResolvedProviders=function(t,e){return new pi(t,e)},t.prototype.parent=function(){},t.prototype.resolveAndCreateChild=function(t){},t.prototype.createChildFromResolved=function(t){},t.prototype.resolveAndInstantiate=function(t){},t.prototype.instantiateResolved=function(t){},t.prototype.get=function(t,e){},t}(),pi=function(){function t(t,e){this._constructionCounter=0,this._providers=t,this._parent=e||null;var n=t.length;this.keyIds=new Array(n),this.objs=new Array(n);for(var r=0;r<n;r++)this.keyIds[r]=t[r].key.id,this.objs[r]=ci}return t.prototype.get=function(t,e){return void 0===e&&(e=zo),this._getByKey(Zo.get(t),null,e)},Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),t.prototype.resolveAndCreateChild=function(t){var e=li.resolve(t);return this.createChildFromResolved(e)},t.prototype.createChildFromResolved=function(e){var n=new t(e);return n._parent=this,n},t.prototype.resolveAndInstantiate=function(t){return this.instantiateResolved(li.resolve([t])[0])},t.prototype.instantiateResolved=function(t){return this._instantiateProvider(t)},t.prototype.getProviderAtIndex=function(t){if(t<0||t>=this._providers.length)throw N(t);return this._providers[t]},t.prototype._new=function(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw M(this,t.key);return this._instantiateProvider(t)},t.prototype._getMaxNumberOfObjects=function(){return this.objs.length},t.prototype._instantiateProvider=function(t){if(t.multiProvider){for(var e=new Array(t.resolvedFactories.length),n=0;n<t.resolvedFactories.length;++n)e[n]=this._instantiate(t,t.resolvedFactories[n]);return e}return this._instantiate(t,t.resolvedFactories[0])},t.prototype._instantiate=function(t,e){var n,r=this,o=e.factory;try{n=e.dependencies.map(function(t){return r._getByReflectiveDependency(t)})}catch(e){throw e.addKey&&e.addKey(this,t.key),e}var i;try{i=o.apply(void 0,n)}catch(e){throw R(this,e,e.stack,t.key)}return i},t.prototype._getByReflectiveDependency=function(t){return this._getByKey(t.key,t.visibility,t.optional?null:zo)},t.prototype._getByKey=function(t,e,n){return t===hi?this:e instanceof Uo?this._getByKeySelf(t,n):this._getByKeyDefault(t,n,e)},t.prototype._getObjByKeyId=function(t){for(var e=0;e<this.keyIds.length;e++)if(this.keyIds[e]===t)return this.objs[e]===ci&&(this.objs[e]=this._new(this._providers[e])),this.objs[e];return ci},t.prototype._throwOrNull=function(t,e){if(e!==zo)return e;throw O(this,t)},t.prototype._getByKeySelf=function(t,e){var n=this._getObjByKeyId(t.id);return n!==ci?n:this._throwOrNull(t,e)},t.prototype._getByKeyDefault=function(e,n,r){var o;for(o=r instanceof Ho?this._parent:this;o instanceof t;){var i=o,s=i._getObjByKeyId(e.id);if(s!==ci)return s;o=i._parent}return null!==o?o.get(e.token,n):this._throwOrNull(e,n)},Object.defineProperty(t.prototype,"displayName",{get:function(){return"ReflectiveInjector(providers: ["+K(this,function(t){return' "'+t.key.displayName+'" '}).join(", ")+"])"},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.displayName},t}(),hi=Zo.get(Wo),fi=new io("Application Initializer"),di=function(){function t(t){var e=this;this.appInits=t,this.initialized=!1,this._done=!1,this._donePromise=new Promise(function(t,n){e.resolve=t,e.reject=n})}return t.prototype.runInitializers=function(){var t=this;if(!this.initialized){var e=[],n=function(){t._done=!0,t.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var o=this.appInits[r]();Q(o)&&e.push(o)}Promise.all(e).then(function(){n()}).catch(function(e){t.reject(e)}),0===e.length&&n(),this.initialized=!0}},Object.defineProperty(t.prototype,"done",{get:function(){return this._done},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"donePromise",{get:function(){return this._donePromise},enumerable:!0,configurable:!0}),t}();di.decorators=[{type:Fo}],di.ctorParameters=function(){return[{type:Array,decorators:[{type:Lo,args:[fi]},{type:Vo}]}]};var yi=new io("AppId"),mi={provide:yi,useFactory:Z,deps:[]},vi=new io("Platform Initializer"),gi=new io("Platform ID"),_i=new io("appBootstrapListener"),bi=new io("Application Packages Root URL"),wi=function(){function t(){}return t.prototype.log=function(t){console.log(t)},t.prototype.warn=function(t){console.warn(t)},t}();wi.decorators=[{type:Fo}],wi.ctorParameters=function(){return[]};var Ci=function(){function t(t,e){this.ngModuleFactory=t,this.componentFactories=e}return t}(),Ei=function(){function t(){}return t.prototype.compileModuleSync=function(t){throw J()},t.prototype.compileModuleAsync=function(t){throw J()},t.prototype.compileModuleAndAllComponentsSync=function(t){throw J()},t.prototype.compileModuleAndAllComponentsAsync=function(t){throw J()},t.prototype.getNgContentSelectors=function(t){throw J()},t.prototype.clearCache=function(){},t.prototype.clearCacheFor=function(t){},t}();Ei.decorators=[{type:Fo}],Ei.ctorParameters=function(){return[]};var Si=new io("compilerOptions"),xi=function(){function t(){}return t.prototype.createCompiler=function(t){},t}(),Ti=function(){function t(){}return t.prototype.location=function(){},t.prototype.injector=function(){},t.prototype.instance=function(){},t.prototype.hostView=function(){},t.prototype.changeDetectorRef=function(){},t.prototype.componentType=function(){},t.prototype.destroy=function(){},t.prototype.onDestroy=function(t){},t}(),Pi=function(){function t(){}return t.prototype.selector=function(){},t.prototype.componentType=function(){},t.prototype.ngContentSelectors=function(){},t.prototype.inputs=function(){},t.prototype.outputs=function(){},t.prototype.create=function(t,e,n,r){},t}(),Ai="ngComponent",Oi=function(){function t(){}return t.prototype.resolveComponentFactory=function(t){throw tt(t)},t}(),Mi=function(){function t(){}return t.prototype.resolveComponentFactory=function(t){},t}();Mi.NULL=new Oi;var Ri,ki,Ii=function(){function t(t,e,n){this._parent=e,this._ngModule=n,this._factories=new Map;for(var r=0;r<t.length;r++){var o=t[r];this._factories.set(o.componentType,o)}}return t.prototype.resolveComponentFactory=function(t){var e=this._factories.get(t)||this._parent.resolveComponentFactory(t);return new Ni(e,this._ngModule)},t}(),Ni=function(t){function e(e,n){var r=t.call(this)||this;return r.factory=e,r.ngModule=n,r}return ro(e,t),Object.defineProperty(e.prototype,"selector",{get:function(){return this.factory.selector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this.factory.componentType},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngContentSelectors",{get:function(){return this.factory.ngContentSelectors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputs",{get:function(){return this.factory.inputs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){return this.factory.outputs},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,r){return this.factory.create(t,e,n,r||this.ngModule)},e}(Pi),Di=function(){function t(){}return t.prototype.injector=function(){},t.prototype.componentFactoryResolver=function(){},t.prototype.instance=function(){},t.prototype.destroy=function(){},t.prototype.onDestroy=function(t){},t}(),ji=function(){function t(t,e){this._injectorClass=t,this._moduleType=e}return Object.defineProperty(t.prototype,"moduleType",{get:function(){return this._moduleType},enumerable:!0,configurable:!0}),t.prototype.create=function(t){var e=new this._injectorClass(t||Wo.NULL);return e.create(),e},t}(),Li=new Object,Vi=function(){function t(t,e,n){var r=this;this.parent=t,this._destroyListeners=[],this._destroyed=!1,this.bootstrapFactories=n.map(function(t){return new Ni(t,r)}),this._cmpFactoryResolver=new Ii(e,t.get(Mi,Mi.NULL),this)}return t.prototype.create=function(){this.instance=this.createInternal()},t.prototype.createInternal=function(){},t.prototype.get=function(t,e){if(void 0===e&&(e=zo),t===Wo||t===Di)return this;if(t===Mi)return this._cmpFactoryResolver;var n=this.getInternal(t,Li);return n===Li?this.parent.get(t,e):n},t.prototype.getInternal=function(t,e){},Object.defineProperty(t.prototype,"injector",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentFactoryResolver",{get:function(){return this._cmpFactoryResolver},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+c(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,this.destroyInternal(),this._destroyListeners.forEach(function(t){return t()})},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},t.prototype.destroyInternal=function(){},t}(),Fi=et(),Ui=Fi?nt:function(t,e){return st},Hi=Fi?rt:function(t,e){return e},Bi=Fi?ot:function(t,e){return null},qi=Fi?it:function(t){return null},zi=function(t){function e(e){void 0===e&&(e=!1);var n=t.call(this)||this;return n.__isAsync=e,n}return ro(e,t),e.prototype.emit=function(e){t.prototype.next.call(this,e)},e.prototype.subscribe=function(e,n,r){var o,i=function(t){return null},s=function(){return null};return e&&"object"==typeof e?(o=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(i=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(o=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(i=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),r&&(s=this.__isAsync?function(){setTimeout(function(){return r()})}:function(){r()})),t.prototype.subscribe.call(this,o,i,s)},e}(i.Subject),Gi=function(){function t(t){var e=t.enableLongStackTrace,n=void 0!==e&&e;if(this._hasPendingMicrotasks=!1,this._hasPendingMacrotasks=!1,this._isStable=!0,this._nesting=0,this._onUnstable=new zi(!1),this._onMicrotaskEmpty=new zi(!1),this._onStable=new zi(!1),this._onErrorEvents=new zi(!1),"undefined"==typeof Zone)throw new Error("Angular requires Zone.js prolyfill.");Zone.assertZonePatched(),this.outer=this.inner=Zone.current,Zone.wtfZoneSpec&&(this.inner=this.inner.fork(Zone.wtfZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(this.inner=this.inner.fork(Zone.longStackTraceZoneSpec)),this.forkInnerZoneWithAngularBehavior()}return t.isInAngularZone=function(){return!0===Zone.current.get("isAngularZone")},t.assertInAngularZone=function(){if(!t.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},t.assertNotInAngularZone=function(){if(t.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},t.prototype.run=function(t){return this.inner.run(t)},t.prototype.runGuarded=function(t){return this.inner.runGuarded(t)},t.prototype.runOutsideAngular=function(t){return this.outer.run(t)},Object.defineProperty(t.prototype,"onUnstable",{get:function(){return this._onUnstable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onMicrotaskEmpty",{get:function(){return this._onMicrotaskEmpty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onStable",{get:function(){return this._onStable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onError",{get:function(){return this._onErrorEvents},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPendingMicrotasks",{get:function(){return this._hasPendingMicrotasks},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPendingMacrotasks",{get:function(){return this._hasPendingMacrotasks},enumerable:!0,configurable:!0}),t.prototype.checkStable=function(){var t=this;if(0==this._nesting&&!this._hasPendingMicrotasks&&!this._isStable)try{this._nesting++,this._onMicrotaskEmpty.emit(null)}finally{if(this._nesting--,!this._hasPendingMicrotasks)try{this.runOutsideAngular(function(){return t._onStable.emit(null)})}finally{this._isStable=!0}}},t.prototype.forkInnerZoneWithAngularBehavior=function(){var t=this;this.inner=this.inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(e,n,r,o,i,s){try{return t.onEnter(),e.invokeTask(r,o,i,s)}finally{t.onLeave()}},onInvoke:function(e,n,r,o,i,s,a){try{return t.onEnter(),e.invoke(r,o,i,s,a)}finally{t.onLeave()}},onHasTask:function(e,n,r,o){e.hasTask(r,o),n===r&&("microTask"==o.change?t.setHasMicrotask(o.microTask):"macroTask"==o.change&&t.setHasMacrotask(o.macroTask))},onHandleError:function(e,n,r,o){return e.handleError(r,o),t.triggerError(o),!1}})},t.prototype.onEnter=function(){this._nesting++,this._isStable&&(this._isStable=!1,this._onUnstable.emit(null))},t.prototype.onLeave=function(){this._nesting--,this.checkStable()},t.prototype.setHasMicrotask=function(t){this._hasPendingMicrotasks=t,this.checkStable()},t.prototype.setHasMacrotask=function(t){this._hasPendingMacrotasks=t},t.prototype.triggerError=function(t){this._onErrorEvents.emit(t)},t}(),Wi=function(){function t(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this._watchAngularEvents()}return t.prototype._watchAngularEvents=function(){var t=this;this._ngZone.onUnstable.subscribe({next:function(){t._didWork=!0,t._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){t._ngZone.onStable.subscribe({next:function(){Gi.assertNotInAngularZone(),a(function(){t._isZoneStable=!0,t._runCallbacksIfReady()})}})})},t.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},t.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},t.prototype.isStable=function(){return this._isZoneStable&&0==this._pendingCount&&!this._ngZone.hasPendingMacrotasks},t.prototype._runCallbacksIfReady=function(){var t=this;this.isStable()?a(function(){for(;0!==t._callbacks.length;)t._callbacks.pop()(t._didWork);t._didWork=!1}):this._didWork=!0},t.prototype.whenStable=function(t){this._callbacks.push(t),this._runCallbacksIfReady()},t.prototype.getPendingRequestCount=function(){return this._pendingCount},t.prototype.findBindings=function(t,e,n){return[]},t.prototype.findProviders=function(t,e,n){return[]},t}();Wi.decorators=[{type:Fo}],Wi.ctorParameters=function(){return[{type:Gi}]};var $i=function(){function t(){this._applications=new Map,Qi.addToWindow(this)}return t.prototype.registerApplication=function(t,e){this._applications.set(t,e)},t.prototype.getTestability=function(t){return this._applications.get(t)||null},t.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},t.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},t.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),Qi.findTestabilityInTree(this,t,e)},t}();$i.decorators=[{type:Fo}],$i.ctorParameters=function(){return[]};var Ki,Qi=new(function(){function t(){}return t.prototype.addToWindow=function(t){},t.prototype.findTestabilityInTree=function(t,e,n){return null},t}()),Xi=!0,Zi=!1,Yi=new io("AllowMultipleToken"),Ji=function(){function t(t,e){this.name=t,this.token=e}return t}(),ts=function(){function t(){}return t.prototype.bootstrapModuleFactory=function(t){},t.prototype.bootstrapModule=function(t,e){},t.prototype.onDestroy=function(t){},t.prototype.injector=function(){},t.prototype.destroy=function(){},t.prototype.destroyed=function(){},t}(),es=function(t){function e(e){var n=t.call(this)||this;return n._injector=e,n._modules=[],n._destroyListeners=[],n._destroyed=!1,n}return ro(e,t),e.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},e.prototype.bootstrapModuleFactory=function(t){return this._bootstrapModuleFactoryWithZone(t)},e.prototype._bootstrapModuleFactoryWithZone=function(t,e){var n=this;return e||(e=new Gi({enableLongStackTrace:ct()})),e.run(function(){var r=li.resolveAndCreate([{provide:Gi,useValue:e}],n.injector),o=t.create(r),i=o.injector.get(Xo,null);if(!i)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return o.onDestroy(function(){return mt(n._modules,o)}),e.onError.subscribe({next:function(t){i.handleError(t)}}),yt(i,function(){var t=o.injector.get(di);return t.runInitializers(),t.donePromise.then(function(){return n._moduleDoBootstrap(o),o})})})},e.prototype.bootstrapModule=function(t,e){return void 0===e&&(e=[]),this._bootstrapModuleWithZone(t,e)},e.prototype._bootstrapModuleWithZone=function(t,e,n){var r=this;return void 0===e&&(e=[]),this.injector.get(xi).createCompiler(Array.isArray(e)?e:[e]).compileModuleAsync(t).then(function(t){return r._bootstrapModuleFactoryWithZone(t,n)})},e.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(ns);if(t.bootstrapFactories.length>0)t.bootstrapFactories.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+c(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}this._modules.push(t)},e}(ts);es.decorators=[{type:Fo}],es.ctorParameters=function(){return[{type:Wo}]};var ns=function(){function t(){}return t.prototype.bootstrap=function(t){},t.prototype.tick=function(){},t.prototype.componentTypes=function(){},t.prototype.components=function(){},t.prototype.attachView=function(t){},t.prototype.detachView=function(t){},t.prototype.viewCount=function(){},t.prototype.isStable=function(){},t}(),rs=function(t){function r(r,i,s,u,c,l){var p=t.call(this)||this;p._zone=r,p._console=i,p._injector=s,p._exceptionHandler=u,p._componentFactoryResolver=c,p._initStatus=l,p._bootstrapListeners=[],p._rootComponents=[],p._rootComponentTypes=[],p._views=[],p._runningTick=!1,p._enforceNoNewChanges=!1,p._stable=!0,p._enforceNoNewChanges=ct(),p._zone.onMicrotaskEmpty.subscribe({next:function(){p._zone.run(function(){p.tick()})}});var h=new e.Observable(function(t){p._stable=p._zone.isStable&&!p._zone.hasPendingMacrotasks&&!p._zone.hasPendingMicrotasks,p._zone.runOutsideAngular(function(){t.next(p._stable),t.complete()})}),f=new e.Observable(function(t){var e=p._zone.onStable.subscribe(function(){Gi.assertNotInAngularZone(),a(function(){p._stable||p._zone.hasPendingMacrotasks||p._zone.hasPendingMicrotasks||(p._stable=!0,t.next(!0))})}),n=p._zone.onUnstable.subscribe(function(){Gi.assertInAngularZone(),p._stable&&(p._stable=!1,p._zone.runOutsideAngular(function(){t.next(!1)}))});return function(){e.unsubscribe(),n.unsubscribe()}});return p._isStable=n.merge(h,o.share.call(f)),p}return ro(r,t),r.prototype.attachView=function(t){var e=t;this._views.push(e),e.attachToAppRef(this)},r.prototype.detachView=function(t){var e=t;mt(this._views,e),e.detachFromAppRef()},r.prototype.bootstrap=function(t){var e=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");var n;n=t instanceof Pi?t:this._componentFactoryResolver.resolveComponentFactory(t),this._rootComponentTypes.push(n.componentType);var r=n instanceof Ni?null:this._injector.get(Di),o=n.create(Wo.NULL,[],n.selector,r);o.onDestroy(function(){e._unloadComponent(o)});var i=o.injector.get(Wi,null);return i&&o.injector.get($i).registerApplication(o.location.nativeElement,i),this._loadComponent(o),ct()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},r.prototype._loadComponent=function(t){this.attachView(t.hostView),this.tick(),this._rootComponents.push(t),this._injector.get(_i,[]).concat(this._bootstrapListeners).forEach(function(e){return e(t)})},r.prototype._unloadComponent=function(t){this.detachView(t.hostView),mt(this._rootComponents,t)},r.prototype.tick=function(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var t=r._tickScope();try{this._runningTick=!0,this._views.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(t){return t.checkNoChanges()})}catch(t){this._exceptionHandler.handleError(t)}finally{this._runningTick=!1,Hi(t)}},r.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(t){return t.destroy()})},Object.defineProperty(r.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"componentTypes",{get:function(){return this._rootComponentTypes},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"components",{get:function(){return this._rootComponents},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),r}(ns);rs._tickScope=Ui("ApplicationRef#tick()"),rs.decorators=[{type:Fo}],rs.ctorParameters=function(){return[{type:Gi},{type:wi},{type:Wo},{type:Xo},{type:Mi},{type:di}]};var os=function(){function t(t,e,n,r,o,i){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=r,this.styles=o,this.animations=i}return t}(),is=function(){function t(){}return t.prototype.injector=function(){},t.prototype.component=function(){},t.prototype.providerTokens=function(){},t.prototype.references=function(){},t.prototype.context=function(){},t.prototype.source=function(){},t}(),ss=function(){function t(){}return t.prototype.selectRootElement=function(t,e){},t.prototype.createElement=function(t,e,n){},t.prototype.createViewRoot=function(t){},t.prototype.createTemplateAnchor=function(t,e){},t.prototype.createText=function(t,e,n){},t.prototype.projectNodes=function(t,e){},t.prototype.attachViewAfter=function(t,e){},t.prototype.detachView=function(t){},t.prototype.destroyView=function(t,e){},t.prototype.listen=function(t,e,n){},t.prototype.listenGlobal=function(t,e,n){},t.prototype.setElementProperty=function(t,e,n){},t.prototype.setElementAttribute=function(t,e,n){},t.prototype.setBindingDebugInfo=function(t,e,n){},t.prototype.setElementClass=function(t,e,n){},t.prototype.setElementStyle=function(t,e,n){},t.prototype.invokeElementMethod=function(t,e,n){},t.prototype.setText=function(t,e){},t.prototype.animate=function(t,e,n,r,o,i,s){},t}(),as=(new io("Renderer2Interceptor"),function(){function t(){}return t.prototype.renderComponent=function(t){},t}()),us=function(){function t(){}return t.prototype.createRenderer=function(t,e){},t}(),cs={};cs.Important=1,cs.DashCase=2,cs[cs.Important]="Important",cs[cs.DashCase]="DashCase";var ls=function(){function t(){}return t.prototype.data=function(){},t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){},t.prototype.createComment=function(t){},t.prototype.createText=function(t){},t.prototype.appendChild=function(t,e){},t.prototype.insertBefore=function(t,e,n){},t.prototype.removeChild=function(t,e){},t.prototype.selectRootElement=function(t){},t.prototype.parentNode=function(t){},t.prototype.nextSibling=function(t){},t.prototype.setAttribute=function(t,e,n,r){},t.prototype.removeAttribute=function(t,e,n){},t.prototype.addClass=function(t,e){},t.prototype.removeClass=function(t,e){},t.prototype.setStyle=function(t,e,n,r){},t.prototype.removeStyle=function(t,e,n){},t.prototype.setProperty=function(t,e,n){},t.prototype.setValue=function(t,e){},t.prototype.listen=function(t,e,n){},t}(),ps=function(){function t(t){this.nativeElement=t}return t}(),hs=function(){function t(){}return t.prototype.load=function(t){},t}(),fs=new Map,ds=function(){function t(){this._dirty=!0,this._results=[],this._emitter=new zi}return Object.defineProperty(t.prototype,"changes",{get:function(){return this._emitter},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._results.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"first",{get:function(){return this._results[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this._results[this.length-1]},enumerable:!0,configurable:!0}),t.prototype.map=function(t){return this._results.map(t)},t.prototype.filter=function(t){return this._results.filter(t)},t.prototype.find=function(t){return this._results.find(t)},t.prototype.reduce=function(t,e){return this._results.reduce(t,e)},t.prototype.forEach=function(t){this._results.forEach(t)},t.prototype.some=function(t){return this._results.some(t)},t.prototype.toArray=function(){return this._results.slice()},t.prototype[s()]=function(){return this._results[s()]()},t.prototype.toString=function(){return this._results.toString()},t.prototype.reset=function(t){this._results=_t(t),this._dirty=!1},t.prototype.notifyOnChanges=function(){this._emitter.emit(this)},t.prototype.setDirty=function(){this._dirty=!0},Object.defineProperty(t.prototype,"dirty",{get:function(){return this._dirty},enumerable:!0,configurable:!0}),t}(),ys=function(){function t(){}return t}(),ms={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},vs=function(){function t(t,e){this._compiler=t,this._config=e||ms}return t.prototype.load=function(t){return this._compiler instanceof Ei?this.loadFactory(t):this.loadAndCompile(t)},t.prototype.loadAndCompile=function(t){var e=this,n=t.split("#"),r=n[0],o=n[1];return void 0===o&&(o="default"),System.import(r).then(function(t){return t[o]}).then(function(t){return bt(t,r,o)}).then(function(t){return e._compiler.compileModuleAsync(t)})},t.prototype.loadFactory=function(t){var e=t.split("#"),n=e[0],r=e[1],o="NgFactory";return void 0===r&&(r="default",o=""),System.import(this._config.factoryPathPrefix+n+this._config.factoryPathSuffix).then(function(t){return t[r+o]}).then(function(t){return bt(t,n,r)})},t}();vs.decorators=[{type:Fo}],vs.ctorParameters=function(){return[{type:Ei},{type:ys,decorators:[{type:Vo}]}]};var gs=function(){function t(){}return t.prototype.elementRef=function(){},t.prototype.createEmbeddedView=function(t){},t}(),_s=function(){function t(){}return t.prototype.element=function(){},t.prototype.injector=function(){},t.prototype.parentInjector=function(){},t.prototype.clear=function(){},t.prototype.get=function(t){},t.prototype.length=function(){},t.prototype.createEmbeddedView=function(t,e,n){},t.prototype.createComponent=function(t,e,n,r,o){},t.prototype.insert=function(t,e){},t.prototype.move=function(t,e){},t.prototype.indexOf=function(t){},t.prototype.remove=function(t){},t.prototype.detach=function(t){},t}(),bs=function(){function t(){}return t.prototype.markForCheck=function(){},t.prototype.detach=function(){},t.prototype.detectChanges=function(){},t.prototype.checkNoChanges=function(){},t.prototype.reattach=function(){},t}(),ws=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return ro(e,t),e.prototype.destroy=function(){},e.prototype.destroyed=function(){},e.prototype.onDestroy=function(t){},e}(bs),Cs=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return ro(e,t),e.prototype.context=function(){},e.prototype.rootNodes=function(){},e}(ws),Es=function(){function t(t,e){this.name=t,this.callback=e}return t}(),Ss=function(){function t(t,e,n){this._debugContext=n,this.nativeNode=t,e&&e instanceof xs?e.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(t.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"source",{get:function(){return"Deprecated since v4"},enumerable:!0,configurable:!0}),t}(),xs=function(t){function e(e,n,r){var o=t.call(this,e,n,r)||this;return o.properties={},o.attributes={},o.classes={},o.styles={},o.childNodes=[],o.nativeElement=e,o}return ro(e,t),e.prototype.addChild=function(t){t&&(this.childNodes.push(t),t.parent=this)},e.prototype.removeChild=function(t){var e=this.childNodes.indexOf(t);-1!==e&&(t.parent=null,this.childNodes.splice(e,1))},e.prototype.insertChildrenAfter=function(t,e){var n=this,r=this.childNodes.indexOf(t);-1!==r&&((o=this.childNodes).splice.apply(o,[r+1,0].concat(e)),e.forEach(function(t){t.parent&&t.parent.removeChild(t),t.parent=n}));var o},e.prototype.insertBefore=function(t,e){var n=this.childNodes.indexOf(t);-1===n?this.addChild(e):(e.parent&&e.parent.removeChild(e),e.parent=this,this.childNodes.splice(n,0,e))},e.prototype.query=function(t){return this.queryAll(t)[0]||null},e.prototype.queryAll=function(t){var e=[];return Ct(this,t,e),e},e.prototype.queryAllNodes=function(t){var e=[];return Et(this,t,e),e},Object.defineProperty(e.prototype,"children",{get:function(){return this.childNodes.filter(function(t){return t instanceof e})},enumerable:!0,configurable:!0}),e.prototype.triggerEventHandler=function(t,e){this.listeners.forEach(function(n){n.name==t&&n.callback(e)})},e}(Ss),Ts=new Map,Ps=function(){function t(t){this.wrapped=t}return t.wrap=function(e){return new t(e)},t}(),As=function(){function t(){this.hasWrappedValue=!1}return t.prototype.unwrap=function(t){return t instanceof Ps?(this.hasWrappedValue=!0,t.wrapped):t},t.prototype.reset=function(){this.hasWrappedValue=!1},t}(),Os=function(){function t(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}return t.prototype.isFirstChange=function(){return this.firstChange},t}(),Ms=function(){function t(){}return t.prototype.supports=function(t){return At(t)},t.prototype.create=function(t,e){return new ks(e||t)},t}(),Rs=function(t,e){return e},ks=function(){function t(t){this._length=0,this._collection=null,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||Rs}return Object.defineProperty(t.prototype,"collection",{get:function(){return this._collection},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),t.prototype.forEachItem=function(t){var e;for(e=this._itHead;null!==e;e=e._next)t(e)},t.prototype.forEachOperation=function(t){for(var e=this._itHead,n=this._removalsHead,r=0,o=null;e||n;){var i=!n||e&&e.currentIndex<kt(n,r,o)?e:n,s=kt(i,r,o),a=i.currentIndex;if(i===n)r--,n=n._nextRemoved;else if(e=e._next,null==i.previousIndex)r++;else{o||(o=[]);var u=s-r,c=a-r;if(u!=c){for(var l=0;l<u;l++){var p=l<o.length?o[l]:o[l]=0,h=p+l;c<=h&&h<u&&(o[l]=p+1)}o[i.previousIndex]=c-u}}s!==a&&t(i,s,a)}},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachMovedItem=function(t){var e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.forEachIdentityChange=function(t){var e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)},t.prototype.diff=function(t){if(null==t&&(t=[]),!At(t))throw new Error("Error trying to diff '"+c(t)+"'. Only arrays and iterables are allowed");return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var n,r,o,i=this._itHead,s=!1;if(Array.isArray(t)){this._length=t.length;for(var a=0;a<this._length;a++)r=t[a],o=this._trackByFn(a,r),null!==i&&u(i.trackById,o)?(s&&(i=this._verifyReinsertion(i,r,o,a)),u(i.item,r)||this._addIdentityChange(i,r)):(i=this._mismatch(i,r,o,a),s=!0),i=i._next}else n=0,Mt(t,function(t){o=e._trackByFn(n,t),null!==i&&u(i.trackById,o)?(s&&(i=e._verifyReinsertion(i,t,o,n)),u(i.item,t)||e._addIdentityChange(i,t)):(i=e._mismatch(i,t,o,n),s=!0),i=i._next,n++}),this._length=n;return this._truncate(i),this._collection=t,this.isDirty},Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),t.prototype._reset=function(){if(this.isDirty){var t=void 0,e=void 0;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},t.prototype._mismatch=function(t,e,n,r){var o;return null===t?o=this._itTail:(o=t._prev,this._remove(t)),t=null===this._linkedRecords?null:this._linkedRecords.get(n,r),null!==t?(u(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,o,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(u(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,o,r)):t=this._addAfter(new Is(e,n),o,r),t},t.prototype._verifyReinsertion=function(t,e,n,r){var o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==o?t=this._reinsertAfter(o,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t},t.prototype._truncate=function(t){for(;null!==t;){var e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)},t.prototype._reinsertAfter=function(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);var r=t._prevRemoved,o=t._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t},t.prototype._moveAfter=function(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t},t.prototype._addAfter=function(t,e,n){return this._insertAfter(t,e,n),null===this._additionsTail?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t},t.prototype._insertAfter=function(t,e,n){var r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Ds),this._linkedRecords.put(t),t.currentIndex=n,t},t.prototype._remove=function(t){return this._addToRemovals(this._unlink(t))},t.prototype._unlink=function(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);var e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t},t.prototype._addToMoves=function(t,e){return t.previousIndex===e?t:(null===this._movesTail?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t,t)},t.prototype._addToRemovals=function(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Ds),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t},t.prototype._addIdentityChange=function(t,e){return t.item=e,null===this._identityChangesTail?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t},t.prototype.toString=function(){var t=[];this.forEachItem(function(e){return t.push(e)});var e=[];this.forEachPreviousItem(function(t){return e.push(t)});var n=[];this.forEachAddedItem(function(t){return n.push(t)});var r=[];this.forEachMovedItem(function(t){return r.push(t)});var o=[];this.forEachRemovedItem(function(t){return o.push(t)});var i=[];return this.forEachIdentityChange(function(t){return i.push(t)}),"collection: "+t.join(", ")+"\nprevious: "+e.join(", ")+"\nadditions: "+n.join(", ")+"\nmoves: "+r.join(", ")+"\nremovals: "+o.join(", ")+"\nidentityChanges: "+i.join(", ")+"\n"},t}(),Is=function(){function t(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}return t.prototype.toString=function(){return this.previousIndex===this.currentIndex?c(this.item):c(this.item)+"["+c(this.previousIndex)+"->"+c(this.currentIndex)+"]"},t}(),Ns=function(){function t(){this._head=null,this._tail=null}return t.prototype.add=function(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)},t.prototype.get=function(t,e){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<n.currentIndex)&&u(n.trackById,t))return n;return null},t.prototype.remove=function(t){var e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head},t}(),Ds=function(){function t(){this.map=new Map}return t.prototype.put=function(t){var e=t.trackById,n=this.map.get(e);n||(n=new Ns,this.map.set(e,n)),n.add(t)},t.prototype.get=function(t,e){var n=t,r=this.map.get(n);return r?r.get(t,e):null},t.prototype.remove=function(t){var e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t},Object.defineProperty(t.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),t.prototype.clear=function(){this.map.clear()},t.prototype.toString=function(){return"_DuplicateMap("+c(this.map)+")"},t}(),js=function(){function t(){}return t.prototype.supports=function(t){return t instanceof Map||Rt(t)},t.prototype.create=function(t){return new Ls},t}(),Ls=function(){function t(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),t.prototype.forEachItem=function(t){var e;for(e=this._mapHead;null!==e;e=e._next)t(e)},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachChangedItem=function(t){var e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.diff=function(t){if(t){if(!(t instanceof Map||Rt(t)))throw new Error("Error trying to diff '"+c(t)+"'. Only maps and objects are allowed")}else t=new Map;return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(t,function(t,r){if(n&&n.key===r)e._maybeAddToChanges(n,t),e._appendAfter=n,n=n._next;else{var o=e._getOrCreateRecordForKey(r,t);n=e._insertBeforeOrAppend(n,o)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty},t.prototype._insertBeforeOrAppend=function(t,e){if(t){var n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null},t.prototype._getOrCreateRecordForKey=function(t,e){if(this._records.has(t)){var n=this._records.get(t);this._maybeAddToChanges(n,e);var r=n._prev,o=n._next;return r&&(r._next=o),o&&(o._prev=r),n._next=null,n._prev=null,n}var i=new Vs(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i},t.prototype._reset=function(){if(this.isDirty){var t=void 0;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}},t.prototype._maybeAddToChanges=function(t,e){u(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))},t.prototype._addToAdditions=function(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)},t.prototype._addToChanges=function(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)},t.prototype.toString=function(){var t=[],e=[],n=[],r=[],o=[];return this.forEachItem(function(e){return t.push(c(e))}),this.forEachPreviousItem(function(t){return e.push(c(t))}),this.forEachChangedItem(function(t){return n.push(c(t))}),this.forEachAddedItem(function(t){return r.push(c(t))}),this.forEachRemovedItem(function(t){return o.push(c(t))}),"map: "+t.join(", ")+"\nprevious: "+e.join(", ")+"\nadditions: "+r.join(", ")+"\nchanges: "+n.join(", ")+"\nremovals: "+o.join(", ")+"\n"},t.prototype._forEach=function(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(function(n){return e(t[n],n)})},t}(),Vs=function(){function t(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}return t.prototype.toString=function(){return u(this.previousValue,this.currentValue)?c(this.key):c(this.key)+"["+c(this.previousValue)+"->"+c(this.currentValue)+"]"},t}(),Fs=function(){function t(t){this.factories=t}return t.create=function(e,n){if(null!=n){var r=n.factories.slice();return e=e.concat(r),new t(e)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(n){if(!n)throw new Error("Cannot extend IterableDiffers without a parent injector");return t.create(e,n)},deps:[[t,new Ho,new Vo]]}},t.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(null!=e)return e;throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+It(t)+"'")},t}(),Us=function(){function t(t){this.factories=t}return t.create=function(e,n){if(n){var r=n.factories.slice();e=e.concat(r)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(n){if(!n)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return t.create(e,n)},deps:[[t,new Ho,new Vo]]}},t.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(e)return e;throw new Error("Cannot find a differ supporting object '"+t+"'")},t}(),Hs=[new js],Bs=new Fs([new Ms]),qs=new Us(Hs),zs=pt(null,"core",[{provide:gi,useValue:"unknown"},es,{provide:ts,useExisting:es},{provide:ri,useFactory:Nt,deps:[]},{provide:ni,useExisting:ri},$i,wi]),Gs=new io("LocaleId"),Ws=new io("Translations"),$s=new io("TranslationsFormat"),Ks={};Ks.Error=0,Ks.Warning=1,Ks.Ignore=2,Ks[Ks.Error]="Error",Ks[Ks.Warning]="Warning",Ks[Ks.Ignore]="Ignore";var Qs={};Qs.NONE=0,Qs.HTML=1,Qs.STYLE=2,Qs.SCRIPT=3,Qs.URL=4,Qs.RESOURCE_URL=5,Qs[Qs.NONE]="NONE",Qs[Qs.HTML]="HTML",Qs[Qs.STYLE]="STYLE",Qs[Qs.SCRIPT]="SCRIPT",Qs[Qs.URL]="URL",Qs[Qs.RESOURCE_URL]="RESOURCE_URL";var Xs=function(){function t(){}return t.prototype.sanitize=function(t,e){},t}(),Zs=function(){function t(){}return t.prototype.view=function(){},t.prototype.nodeIndex=function(){},t.prototype.injector=function(){},t.prototype.component=function(){},t.prototype.providerTokens=function(){},t.prototype.references=function(){},t.prototype.context=function(){},t.prototype.componentRenderElement=function(){},t.prototype.renderNode=function(){},t.prototype.logError=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n]},t}(),Ys={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0},Js=function(){},ta=new Map,ea="$$undefined",na="$$empty",ra=0,oa=new WeakMap,ia=/^:([^:]+):(.+)$/,sa=[],aa={},ua=new Object,ca=function(t){function e(e,n,r,o,i,s){var a=t.call(this)||this;return a.selector=e,a.componentType=n,a._inputs=o,a._outputs=i,a.ngContentSelectors=s,a.viewDefFactory=r,a}return ro(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){var t=[],e=this._inputs;for(var n in e){var r=e[n];t.push({propName:n,templateName:r})}return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){var t=[];for(var e in this._outputs){var n=this._outputs[e];t.push({propName:e,templateName:n})}return t},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,r){if(!r)throw new Error("ngModule should be provided");var o=pe(this.viewDefFactory),i=o.nodes[0].element.componentProvider.index,s=Ys.createRootView(t,e||[],n,o,r,ua),a=Lt(s,i).instance;return n&&s.renderer.setAttribute(jt(s,0).renderElement,"ng-version",jo.full),new la(s,new ha(s),a)},e}(Pi),la=function(t){function e(e,n,r){var o=t.call(this)||this;return o._view=e,o._viewRef=n,o._component=r,o._elDef=o._view.def.nodes[0],o}return ro(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return new ps(jt(this._view,this._elDef.index).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new da(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"instance",{get:function(){return this._component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hostView",{get:function(){return this._viewRef},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"changeDetectorRef",{get:function(){return this._viewRef},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._viewRef.destroy()},e.prototype.onDestroy=function(t){this._viewRef.onDestroy(t)},e}(Ti),pa=function(){function t(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}return Object.defineProperty(t.prototype,"element",{get:function(){return new ps(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new da(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parentInjector",{get:function(){for(var t=this._view,e=this._elDef.parent;!e&&t;)e=re(t),t=t.parent;return t?new da(t,e):new da(this._view,null)},enumerable:!0,configurable:!0}),t.prototype.clear=function(){for(var t=this._embeddedViews.length-1;t>=0;t--){var e=Ue(this._data,t);Ys.destroyView(e)}},t.prototype.get=function(t){var e=this._embeddedViews[t];if(e){var n=new ha(e);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(t.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),t.prototype.createEmbeddedView=function(t,e,n){var r=t.createEmbeddedView(e||{});return this.insert(r,n),r},t.prototype.createComponent=function(t,e,n,r,o){var i=n||this.parentInjector;o||t instanceof Ni||(o=i.get(Di));var s=t.create(i,r,void 0,o);return this.insert(s.hostView,e),s},t.prototype.insert=function(t,e){var n=t,r=n._view;return Le(this._view,this._data,e,r),n.attachToViewContainerRef(this),t},t.prototype.move=function(t,e){var n=this._embeddedViews.indexOf(t._view);return Be(this._data,n,e),t},t.prototype.indexOf=function(t){return this._embeddedViews.indexOf(t._view)},t.prototype.remove=function(t){var e=Ue(this._data,t);e&&Ys.destroyView(e)},t.prototype.detach=function(t){var e=Ue(this._data,t);return e?new ha(e):null},t}(),ha=function(){function t(t){this._view=t,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(t.prototype,"rootNodes",{get:function(){return he(this._view)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),t.prototype.markForCheck=function(){Jt(this._view)},t.prototype.detach=function(){this._view.state&=-5},t.prototype.detectChanges=function(){Ys.checkAndUpdateView(this._view)},t.prototype.checkNoChanges=function(){Ys.checkNoChangesView(this._view)},t.prototype.reattach=function(){this._view.state|=4},t.prototype.onDestroy=function(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)},t.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Ys.destroyView(this._view)},t.prototype.detachFromAppRef=function(){this._appRef=null,ze(this._view),Ys.dirtyParentQueries(this._view)},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t}(),fa=function(t){function e(e,n){var r=t.call(this)||this;return r._parentView=e,r._def=n,r}return ro(e,t),e.prototype.createEmbeddedView=function(t){return new ha(Ys.createEmbeddedView(this._parentView,this._def,t))},Object.defineProperty(e.prototype,"elementRef",{get:function(){return new ps(jt(this._parentView,this._def.index).renderElement)},enumerable:!0,configurable:!0}),e}(gs),da=function(){function t(t,e){this.view=t,this.elDef=e}return t.prototype.get=function(t,e){void 0===e&&(e=Wo.THROW_IF_NOT_FOUND);var n=!!this.elDef&&0!=(33554432&this.elDef.flags);return Ys.resolveDep(this.view,this.elDef,n,{flags:0,token:t,tokenKey:Wt(t)},e)},t}(),ya=function(){function t(t){this.delegate=t}return t.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},t.prototype.createElement=function(t,e){var n=ge(e),r=n[0],o=n[1],i=this.delegate.createElement(o,r);return t&&this.delegate.appendChild(t,i),i},t.prototype.createViewRoot=function(t){return t},t.prototype.createTemplateAnchor=function(t){var e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e},t.prototype.createText=function(t,e){var n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n},t.prototype.projectNodes=function(t,e){for(var n=0;n<e.length;n++)this.delegate.appendChild(t,e[n])},t.prototype.attachViewAfter=function(t,e){for(var n=this.delegate.parentNode(t),r=this.delegate.nextSibling(t),o=0;o<e.length;o++)this.delegate.insertBefore(n,e[o],r)},t.prototype.detachView=function(t){for(var e=0;e<t.length;e++){var n=t[e],r=this.delegate.parentNode(n);this.delegate.removeChild(r,n)}},t.prototype.destroyView=function(t,e){for(var n=0;n<e.length;n++)this.delegate.destroyNode(e[n])},t.prototype.listen=function(t,e,n){return this.delegate.listen(t,e,n)},t.prototype.listenGlobal=function(t,e,n){return this.delegate.listen(t,e,n)},t.prototype.setElementProperty=function(t,e,n){this.delegate.setProperty(t,e,n)},t.prototype.setElementAttribute=function(t,e,n){var r=ge(e),o=r[0],i=r[1];null!=n?this.delegate.setAttribute(t,i,n,o):this.delegate.removeAttribute(t,i,o)},t.prototype.setBindingDebugInfo=function(t,e,n){},t.prototype.setElementClass=function(t,e,n){n?this.delegate.addClass(t,e):this.delegate.removeClass(t,e)},t.prototype.setElementStyle=function(t,e,n){null!=n?this.delegate.setStyle(t,e,n):this.delegate.removeStyle(t,e)},t.prototype.invokeElementMethod=function(t,e,n){t[e].apply(t,n)},t.prototype.setText=function(t,e){this.delegate.setValue(t,e)},t.prototype.animate=function(){throw new Error("Renderer.animate is no longer supported!")},t}(),ma=Wt(ss),va=Wt(ls),ga=Wt(ps),_a=Wt(_s),ba=Wt(gs),wa=Wt(bs),Ca=Wt(Wo),Ea=new Object,Sa={},xa={};xa.CreateViewNodes=0,xa.CheckNoChanges=1,xa.CheckNoChangesProjectedViews=2,xa.CheckAndUpdate=3,xa.CheckAndUpdateProjectedViews=4,xa.Destroy=5,xa[xa.CreateViewNodes]="CreateViewNodes",xa[xa.CheckNoChanges]="CheckNoChanges",xa[xa.CheckNoChangesProjectedViews]="CheckNoChangesProjectedViews",xa[xa.CheckAndUpdate]="CheckAndUpdate",xa[xa.CheckAndUpdateProjectedViews]="CheckAndUpdateProjectedViews",xa[xa.Destroy]="Destroy";var Ta=!1,Pa={};Pa.create=0,Pa.detectChanges=1,Pa.checkNoChanges=2,Pa.destroy=3,Pa.handleEvent=4,Pa[Pa.create]="create",Pa[Pa.detectChanges]="detectChanges",Pa[Pa.checkNoChanges]="checkNoChanges",Pa[Pa.destroy]="destroy",Pa[Pa.handleEvent]="handleEvent";var Aa,Oa,Ma,Ra=/([A-Z])/g,ka=function(){function t(t,e){this.view=t,this.nodeIndex=e,null==e&&(this.nodeIndex=e=0),this.nodeDef=t.def.nodes[e];for(var n=this.nodeDef,r=t;n&&0==(1&n.flags);)n=n.parent;if(!n)for(;!n&&r;)n=re(r),r=r.parent;this.elDef=n,this.elView=r}return Object.defineProperty(t.prototype,"elOrCompView",{get:function(){return jt(this.elView,this.elDef.index).componentView||this.view},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return Ye(this.elView,this.elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){return this.elOrCompView.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this.elOrCompView.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){var t=[];if(this.elDef)for(var e=this.elDef.index+1;e<=this.elDef.index+this.elDef.childCount;e++){var n=this.elView.def.nodes[e];20224&n.flags&&t.push(n.provider.token),e+=n.childCount}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){var t={};if(this.elDef){Nr(this.elView,this.elDef,t);for(var e=this.elDef.index+1;e<=this.elDef.index+this.elDef.childCount;e++){var n=this.elView.def.nodes[e];20224&n.flags&&Nr(this.elView,n,t),e+=n.childCount}}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentRenderElement",{get:function(){var t=Ir(this.elOrCompView);return t?t.renderElement:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderNode",{get:function(){return 2&this.nodeDef.flags?oe(this.view,this.nodeDef):oe(this.elView,this.elDef)},enumerable:!0,configurable:!0}),t.prototype.logError=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var r,o;2&this.nodeDef.flags?(r=this.view.def,o=this.nodeDef.index):(r=this.elView.def,o=this.elDef.index);var i=kr(r,o),s=-1,a=function(){return s++,s===i?(n=t.error).bind.apply(n,[t].concat(e)):Js;var n};r.factory(a),s<i&&(t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),t.error.apply(t,e))},t}(),Ia=function(){function t(t){this.delegate=t}return t.prototype.createRenderer=function(t,e){return new Na(this.delegate.createRenderer(t,e))},t}(),Na=function(){function t(t){this.delegate=t}return Object.defineProperty(t.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),t.prototype.destroyNode=function(t){Tt(St(t)),this.delegate.destroyNode&&this.delegate.destroyNode(t)},t.prototype.destroy=function(){this.delegate.destroy()},t.prototype.createElement=function(t,e){var n=this.delegate.createElement(t,e),r=jr();if(r){var o=new xs(n,null,r);o.name=t,xt(o)}return n},t.prototype.createComment=function(t){var e=this.delegate.createComment(t),n=jr();return n&&xt(new Ss(e,null,n)),e},t.prototype.createText=function(t){var e=this.delegate.createText(t),n=jr();return n&&xt(new Ss(e,null,n)),e},t.prototype.appendChild=function(t,e){var n=St(t),r=St(e);n&&r&&n instanceof xs&&n.addChild(r),this.delegate.appendChild(t,e)},t.prototype.insertBefore=function(t,e,n){var r=St(t),o=St(e),i=St(n);r&&o&&r instanceof xs&&r.insertBefore(i,o),this.delegate.insertBefore(t,e,n)},t.prototype.removeChild=function(t,e){var n=St(t),r=St(e);n&&r&&n instanceof xs&&n.removeChild(r),this.delegate.removeChild(t,e)},t.prototype.selectRootElement=function(t){var e=this.delegate.selectRootElement(t),n=jr();return n&&xt(new xs(e,null,n)),e},t.prototype.setAttribute=function(t,e,n,r){var o=St(t);if(o&&o instanceof xs){var i=r?r+":"+e:e;o.attributes[i]=n}this.delegate.setAttribute(t,e,n,r)},t.prototype.removeAttribute=function(t,e,n){var r=St(t);if(r&&r instanceof xs){var o=n?n+":"+e:e;r.attributes[o]=null}this.delegate.removeAttribute(t,e,n)},t.prototype.addClass=function(t,e){var n=St(t);n&&n instanceof xs&&(n.classes[e]=!0),this.delegate.addClass(t,e)},t.prototype.removeClass=function(t,e){var n=St(t);n&&n instanceof xs&&(n.classes[e]=!1),this.delegate.removeClass(t,e)},t.prototype.setStyle=function(t,e,n,r){var o=St(t);o&&o instanceof xs&&(o.styles[e]=n),this.delegate.setStyle(t,e,n,r)},t.prototype.removeStyle=function(t,e,n){var r=St(t);r&&r instanceof xs&&(r.styles[e]=null),this.delegate.removeStyle(t,e,n)},t.prototype.setProperty=function(t,e,n){var r=St(t);r&&r instanceof xs&&(r.properties[e]=n),this.delegate.setProperty(t,e,n)},t.prototype.listen=function(t,e,n){if("string"!=typeof t){var r=St(t);r&&r.listeners.push(new Es(e,n))}return this.delegate.listen(t,e,n)},t.prototype.parentNode=function(t){return this.delegate.parentNode(t)},t.prototype.nextSibling=function(t){return this.delegate.nextSibling(t)},t.prototype.setValue=function(t,e){return this.delegate.setValue(t,e)},t}(),Da=function(){function t(t){}return t}();Da.decorators=[{type:ko,args:[{providers:[rs,{provide:ns,useExisting:rs},di,Ei,mi,{provide:Fs,useFactory:Lr},{provide:Us,useFactory:Vr},{provide:Gs,useFactory:Fr,deps:[[new Lo(Gs),new Vo,new Ho]]},{provide:fi,useValue:Ur,multi:!0}]}]}],Da.ctorParameters=function(){return[{type:ns}]};var ja={};ja.OnInit=0,ja.OnDestroy=1,ja.DoCheck=2,ja.OnChanges=3,ja.AfterContentInit=4,ja.AfterContentChecked=5,ja.AfterViewInit=6,ja.AfterViewChecked=7,ja[ja.OnInit]="OnInit",ja[ja.OnDestroy]="OnDestroy",ja[ja.DoCheck]="DoCheck",ja[ja.OnChanges]="OnChanges",ja[ja.AfterContentInit]="AfterContentInit",ja[ja.AfterContentChecked]="AfterContentChecked",ja[ja.AfterViewInit]="AfterViewInit",ja[ja.AfterViewChecked]="AfterViewChecked";var La=[ja.OnInit,ja.OnDestroy,ja.DoCheck,ja.OnChanges,ja.AfterContentInit,ja.AfterContentChecked,ja.AfterViewInit,ja.AfterViewChecked];t.Class=h,t.createPlatform=lt,t.assertPlatform=ht,t.destroyPlatform=ft,t.getPlatform=dt,t.PlatformRef=ts,t.ApplicationRef=ns,t.enableProdMode=ut,t.isDevMode=ct,t.createPlatformFactory=pt,t.NgProbeToken=Ji,t.APP_ID=yi,t.PACKAGE_ROOT_URL=bi,t.PLATFORM_INITIALIZER=vi,t.PLATFORM_ID=gi,t.APP_BOOTSTRAP_LISTENER=_i,t.APP_INITIALIZER=fi,t.ApplicationInitStatus=di,t.DebugElement=xs,t.DebugNode=Ss,t.asNativeElements=wt,t.getDebugNode=St,t.Testability=Wi,t.TestabilityRegistry=$i,t.setTestabilityGetter=at,t.TRANSLATIONS=Ws,t.TRANSLATIONS_FORMAT=$s,t.LOCALE_ID=Gs,t.MissingTranslationStrategy=Ks,t.ApplicationModule=Da,t.wtfCreateScope=Ui,t.wtfLeave=Hi,t.wtfStartTimeRange=Bi,t.wtfEndTimeRange=qi,t.Type=Jo,t.EventEmitter=zi,t.ErrorHandler=Xo,t.Sanitizer=Xs,t.SecurityContext=Qs,t.ANALYZE_FOR_ENTRY_COMPONENTS=fo,t.Attribute=yo,t.ContentChild=go,t.ContentChildren=vo,t.Query=mo,t.ViewChild=bo,t.ViewChildren=_o,t.Component=So,t.Directive=Eo,t.HostBinding=Ao,t.HostListener=Oo,t.Input=To,t.Output=Po,t.Pipe=xo,t.CUSTOM_ELEMENTS_SCHEMA=Mo,t.NO_ERRORS_SCHEMA=Ro,t.NgModule=ko,t.ViewEncapsulation=Io,t.Version=Do,t.VERSION=jo,t.forwardRef=g,t.resolveForwardRef=_,t.Injector=Wo,t.ReflectiveInjector=li,t.ResolvedReflectiveFactory=ui,t.ReflectiveKey=Zo,t.InjectionToken=io,t.OpaqueToken=oo,t.Inject=Lo,t.Optional=Vo,t.Injectable=Fo,t.Self=Uo,t.SkipSelf=Ho,t.Host=Bo,t.NgZone=Gi,t.RenderComponentType=os,t.Renderer=ss,t.Renderer2=ls,t.RendererFactory2=us,t.RendererStyleFlags2=cs,t.RootRenderer=as,t.COMPILER_OPTIONS=Si,t.Compiler=Ei,t.CompilerFactory=xi,t.ModuleWithComponentFactories=Ci,t.ComponentFactory=Pi,t.ComponentRef=Ti,t.ComponentFactoryResolver=Mi,t.ElementRef=ps,t.NgModuleFactory=ji,t.NgModuleRef=Di,t.NgModuleFactoryLoader=hs,t.getModuleFactory=gt,t.QueryList=ds,t.SystemJsNgModuleLoader=vs,t.SystemJsNgModuleLoaderConfig=ys,t.TemplateRef=gs,t.ViewContainerRef=_s,t.EmbeddedViewRef=Cs,t.ViewRef=ws,t.ChangeDetectionStrategy=wo,t.ChangeDetectorRef=bs,t.DefaultIterableDiffer=ks,t.IterableDiffers=Fs,t.KeyValueDiffers=Us,t.SimpleChange=Os,t.WrappedValue=Ps,t.platformCore=zs,t.ɵALLOW_MULTIPLE_PLATFORMS=Yi,t.ɵAPP_ID_RANDOM_PROVIDER=mi,t.ɵValueUnwrapper=As,t.ɵdevModeEqual=Pt,t.ɵisListLikeIterable=At,t.ɵChangeDetectorStatus=Co,t.ɵisDefaultChangeDetectionStrategy=v,t.ɵConsole=wi,t.ɵERROR_COMPONENT_TYPE="ngComponentType",t.ɵComponentFactory=Pi,t.ɵCodegenComponentFactoryResolver=Ii,t.ɵLIFECYCLE_HOOKS_VALUES=La,t.ɵLifecycleHooks=ja,t.ɵViewMetadata=No,t.ɵReflector=ri,t.ɵreflector=oi,t.ɵReflectionCapabilities=ei,t.ɵReflectorReader=ni,t.ɵRenderDebugInfo=is,t.ɵglobal=co,t.ɵlooseIdentical=u,t.ɵstringify=c,t.ɵmakeDecorator=f,t.ɵisObservable=X,t.ɵisPromise=Q,t.ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR=Sa,t.ɵNgModuleInjector=Vi,t.ɵregisterModuleFactory=vt,t.ɵEMPTY_ARRAY=sa,t.ɵEMPTY_MAP=aa,t.ɵand=Ee,t.ɵccf=$e,t.ɵcrt=Kt,t.ɵdid=en,t.ɵeld=Se,t.ɵelementEventFullName=ie,t.ɵgetComponentViewDefinitionFactory=Ke,t.ɵinlineInterpolate=we,t.ɵinterpolate=be,t.ɵncd=De,t.ɵnov=Je,t.ɵpid=nn,t.ɵprd=rn,t.ɵpad=Cn,t.ɵpod=En,t.ɵppd=wn,t.ɵqud=An,t.ɵted=Nn,t.ɵunv=$t,t.ɵvid=Fn,t.AUTO_STYLE="*",t.trigger=Qr,t.animate=Xr,t.group=Zr,t.sequence=Yr,t.style=Jr,t.state=to,t.keyframes=eo,t.transition=no,t.ɵba=Br,t.ɵbb=qr,t.ɵbf=$r,t.ɵbc=zr,t.ɵbe=Wr,t.ɵbd=Gr,t.ɵbg=Kr,t.ɵz=Hr,t.ɵo=Ur,t.ɵl=Lr,t.ɵm=Vr,t.ɵn=Fr,t.ɵf=rs,t.ɵg=Z,t.ɵh=Bs,t.ɵi=qs,t.ɵj=Ms,t.ɵk=js,t.ɵc=pi,t.ɵd=ii,t.ɵe=H,t.ɵp=Fi,t.ɵr=nt,t.ɵq=et,t.ɵu=it,t.ɵs=rt,t.ɵt=ot,t.ɵa=y,t.ɵb=m,t.ɵw=on,t.ɵx=Zs,Object.defineProperty(t,"__esModule",{value:!0})})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"rxjs/Observable":17,"rxjs/Subject":20,"rxjs/observable/merge":37,"rxjs/operator/share":53}],9:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/core"),t("rxjs/observable/forkJoin"),t("rxjs/observable/fromPromise"),t("rxjs/operator/map"),t("@angular/platform-browser")):o((r.ng=r.ng||{},r.ng.forms=r.ng.forms||{}),r.ng.core,r.Rx.Observable,r.Rx.Observable,r.Rx.Observable.prototype,r.ng.platformBrowser)}(this,function(t,e,n,r,o,i){"use strict";function s(t){return null==t||0===t.length}function a(t){return null!=t}function u(t){var n=e.ɵisPromise(t)?r.fromPromise(t):t;if(!e.ɵisObservable(n))throw new Error("Expected validator to return Promise or Observable.");return n}function c(t,e){return e.map(function(e){return e(t)})}function l(t,e){return e.map(function(e){return e(t)})}function p(t){var e=t.reduce(function(t,e){return null!=e?F({},t,e):t},{});return 0===Object.keys(e).length?null:e}function h(){var t=i.ɵgetDOM()?i.ɵgetDOM().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}function f(t){return t.validate?function(e){return t.validate(e)}:t}function d(t){return t.validate?function(e){return t.validate(e)}:t}function y(){throw new Error("unimplemented")}function m(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function v(t){return t.split(":")[0]}function g(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}function _(t){return t.split(":")[0]}function b(t,e){return e.path.concat([t])}function w(t,e){t||x(e,"Cannot find control with"),e.valueAccessor||x(e,"No value accessor for form control with"),t.validator=q.compose([t.validator,e.validator]),t.asyncValidator=q.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),e.valueAccessor.registerOnChange(function(n){e.viewToModelUpdate(n),t.markAsDirty(),t.setValue(n,{emitModelToViewChange:!1})}),e.valueAccessor.registerOnTouched(function(){return t.markAsTouched()}),t.registerOnChange(function(t,n){e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)}),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(function(t){e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})}),e._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})})}function C(t,e){e.valueAccessor.registerOnChange(function(){return S(e)}),e.valueAccessor.registerOnTouched(function(){return S(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}function E(t,e){null==t&&x(e,"Cannot find control with"),t.validator=q.compose([t.validator,e.validator]),t.asyncValidator=q.composeAsync([t.asyncValidator,e.asyncValidator])}function S(t){return x(t,"There is no FormControl instance attached to form control element with")}function x(t,e){var n;throw n=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function T(t){return null!=t?q.compose(t.map(f)):null}function P(t){return null!=t?q.composeAsync(t.map(d)):null}function A(t,n){if(!t.hasOwnProperty("model"))return!1;var r=t.model;return!!r.isFirstChange()||!e.ɵlooseIdentical(n,r.currentValue)}function O(t){return lt.some(function(e){return t.constructor===e})}function M(t,e){if(!e)return null;var n=void 0,r=void 0,o=void 0;return e.forEach(function(e){e.constructor===Q?n=e:O(e)?(r&&x(t,"More than one built-in value accessor matches form control with"),r=e):(o&&x(t,"More than one custom value accessor matches form control with"),o=e)}),o||(r||(n||(x(t,"No valid value accessor for form control with"),null)))}function R(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(n)),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof gt?t.controls[e]||null:t instanceof _t?t.at(e)||null:null},t))}function k(t){return Array.isArray(t)?T(t):t||null}function I(t){return Array.isArray(t)?P(t):t||null}function N(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function D(t){return!(t instanceof jt||t instanceof Nt||t instanceof Vt)}var j=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},L=function(){function t(){}return t.prototype.control=function(){},Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}(),V=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(L),F=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},U=new e.InjectionToken("NgValidators"),H=new e.InjectionToken("NgAsyncValidators"),B=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,q=function(){function t(){}return t.required=function(t){return s(t.value)?{required:!0}:null},t.requiredTrue=function(t){return!0===t.value?null:{required:!0}},t.email=function(t){return B.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if(s(e.value))return null;var n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}},t.maxLength=function(t){return function(e){var n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}},t.pattern=function(e){if(!e)return t.nullValidator;var n,r;return"string"==typeof e?(r="^"+e+"$",n=new RegExp(r)):(r=e.toString(),n=e),function(t){if(s(t.value))return null;var e=t.value;return n.test(e)?null:{pattern:{requiredPattern:r,actualValue:e}}}},t.nullValidator=function(t){return null},t.compose=function(t){if(!t)return null;var e=t.filter(a);return 0==e.length?null:function(t){return p(c(t,e))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(a);return 0==e.length?null:function(t){var r=l(t,e).map(u);return o.map.call(n.forkJoin(r),p)}},t}(),z=new e.InjectionToken("NgValueAccessor"),G={provide:z,useExisting:e.forwardRef(function(){return W}),multi:!0},W=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();W.decorators=[{type:e.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[G]}]}],W.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var $={provide:z,useExisting:e.forwardRef(function(){return Q}),multi:!0},K=new e.InjectionToken("CompositionEventMode"),Q=function(){function t(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=function(t){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!h())}return t.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},t.prototype._compositionStart=function(){this._composing=!0},t.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},t}();Q.decorators=[{type:e.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"_handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"_compositionStart()","(compositionend)":"_compositionEnd($event.target.value)"},providers:[$]}]}],Q.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef},{type:void 0,decorators:[{type:e.Optional},{type:e.Inject,args:[K]}]}]};var X={provide:z,useExisting:e.forwardRef(function(){return Z}),multi:!0},Z=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){var e=null==t?"":t;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",e)},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();Z.decorators=[{type:e.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[X]}]}],Z.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var Y=function(t){function e(){var e=t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return j(e,t),Object.defineProperty(e.prototype,"validator",{get:function(){return y()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return y()},enumerable:!0,configurable:!0}),e.prototype.viewToModelUpdate=function(t){},e}(L),J={provide:z,useExisting:e.forwardRef(function(){return et}),multi:!0},tt=function(){function t(){this._accessors=[]}return t.prototype.add=function(t,e){this._accessors.push([t,e])},t.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},t.prototype.select=function(t){var e=this;this._accessors.forEach(function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)})},t.prototype._isSameGroup=function(t,e){return!!t[0].control&&(t[0]._parent===e._control._parent&&t[1].name===e.name)},t}();tt.decorators=[{type:e.Injectable}],tt.ctorParameters=function(){return[]};var et=function(){function t(t,e,n,r){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.ngOnInit=function(){this._control=this._injector.get(Y),this._checkName(),this._registry.add(this._control,this)},t.prototype.ngOnDestroy=function(){this._registry.remove(this)},t.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",this._state)},t.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},t.prototype.fireUncheck=function(t){this.writeValue(t)},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},t}();et.decorators=[{type:e.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[J]}]}],et.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef},{type:tt},{type:e.Injector}]},et.propDecorators={name:[{type:e.Input}],formControlName:[{type:e.Input}],value:[{type:e.Input}]};var nt={provide:z,useExisting:e.forwardRef(function(){return rt}),multi:!0},rt=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"value",parseFloat(t))},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t}();rt.decorators=[{type:e.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[nt]}]}],rt.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]};var ot={provide:z,useExisting:e.forwardRef(function(){return it}),multi:!0},it=function(){function t(t,n){this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setElementProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=m(e,t);this._renderer.setElementProperty(this._elementRef.nativeElement,"value",n)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=n,t(e._getOptionValue(n))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(){return(this._idCounter++).toString()},t.prototype._getOptionId=function(t){for(var e=0,n=Array.from(this._optionMap.keys());e<n.length;e++){var r=n[e];if(this._compareWith(this._optionMap.get(r),t))return r}return null},t.prototype._getOptionValue=function(t){var e=v(t);return this._optionMap.has(e)?this._optionMap.get(e):t},t}();it.decorators=[{type:e.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[ot]}]}],it.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]},it.propDecorators={compareWith:[{type:e.Input}]};var st=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(m(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},t}();st.decorators=[{type:e.Directive,args:[{selector:"option"}]}],st.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer},{type:it,decorators:[{type:e.Optional},{type:e.Host}]}]},st.propDecorators={ngValue:[{type:e.Input,args:["ngValue"]}],value:[{type:e.Input,args:["value"]}]};var at={provide:z,useExisting:e.forwardRef(function(){return ut}),multi:!0},ut=function(){function t(t,n){this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){var e=this;this.value=t;var n;if(Array.isArray(t)){var r=t.map(function(t){return e._getOptionId(t)});n=function(t,e){t._setSelected(r.indexOf(e.toString())>-1)}}else n=function(t,e){t._setSelected(!1)};this._optionMap.forEach(n)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var o=n.selectedOptions,i=0;i<o.length;i++){var s=o.item(i),a=e._getOptionValue(s.value);r.push(a)}else for(var o=n.options,i=0;i<o.length;i++)if((s=o.item(i)).selected){a=e._getOptionValue(s.value);r.push(a)}e.value=r,t(r)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(t){var e=(this._idCounter++).toString();return this._optionMap.set(e,t),e},t.prototype._getOptionId=function(t){for(var e=0,n=Array.from(this._optionMap.keys());e<n.length;e++){var r=n[e];if(this._compareWith(this._optionMap.get(r)._value,t))return r}return null},t.prototype._getOptionValue=function(t){var e=_(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t},t}();ut.decorators=[{type:e.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[at]}]}],ut.ctorParameters=function(){return[{type:e.Renderer},{type:e.ElementRef}]},ut.propDecorators={compareWith:[{type:e.Input}]};var ct=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._value=t,this._setElementValue(g(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._select?(this._value=t,this._setElementValue(g(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setElementProperty(this._element.nativeElement,"value",t)},t.prototype._setSelected=function(t){this._renderer.setElementProperty(this._element.nativeElement,"selected",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},t}();ct.decorators=[{type:e.Directive,args:[{selector:"option"}]}],ct.ctorParameters=function(){return[{type:e.ElementRef},{type:e.Renderer},{type:ut,decorators:[{type:e.Optional},{type:e.Host}]}]},ct.propDecorators={ngValue:[{type:e.Input,args:["ngValue"]}],value:[{type:e.Input,args:["value"]}]};var lt=[W,rt,Z,it,ut,et],pt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return T(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return P(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){},e}(V),ht=function(){function t(t){this._cd=t}return Object.defineProperty(t.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),t}(),ft={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},dt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e}(ht);dt.decorators=[{type:e.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:ft}]}],dt.ctorParameters=function(){return[{type:Y,decorators:[{type:e.Self}]}]};var yt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e}(ht);yt.decorators=[{type:e.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:ft}]}],yt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Self}]}]};var mt=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this._pristine=!0,this._touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return"VALID"===this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return"INVALID"===this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return"PENDING"==this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return"DISABLED"===this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return"DISABLED"!==this._status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=k(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=I(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=!0,this._parent&&!e&&this._parent.markAsTouched({onlySelf:e})},t.prototype.markAsUntouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!e&&this._parent._updateTouched({onlySelf:e})},t.prototype.markAsDirty=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!1,this._parent&&!e&&this._parent.markAsDirty({onlySelf:e})},t.prototype.markAsPristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!0,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!e&&this._parent._updatePristine({onlySelf:e})},t.prototype.markAsPending=function(t){var e=(void 0===t?{}:t).onlySelf;this._status="PENDING",this._parent&&!e&&this._parent.markAsPending({onlySelf:e})},t.prototype.disable=function(t){var e=void 0===t?{}:t,n=e.onlySelf,r=e.emitEvent;this._status="DISABLED",this._errors=null,this._forEachChild(function(t){t.disable({onlySelf:!0})}),this._updateValue(),!1!==r&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(!!n),this._onDisabledChange.forEach(function(t){return t(!0)})},t.prototype.enable=function(t){var e=void 0===t?{}:t,n=e.onlySelf,r=e.emitEvent;this._status="VALID",this._forEachChild(function(t){t.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:r}),this._updateAncestors(!!n),this._onDisabledChange.forEach(function(t){return t(!1)})},t.prototype._updateAncestors=function(t){this._parent&&!t&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.setValue=function(t,e){},t.prototype.patchValue=function(t,e){},t.prototype.reset=function(t,e){},t.prototype.updateValueAndValidity=function(t){var e=void 0===t?{}:t,n=e.onlySelf,r=e.emitEvent;this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this._errors=this._runValidator(),this._status=this._calculateStatus(),"VALID"!==this._status&&"PENDING"!==this._status||this._runAsyncValidator(r)),!1!==r&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._parent&&!n&&this._parent.updateValueAndValidity({onlySelf:n,emitEvent:r})},t.prototype._updateTreeValidity=function(t){var e=(void 0===t?{emitEvent:!0}:t).emitEvent;this._forEachChild(function(t){return t._updateTreeValidity({emitEvent:e})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e})},t.prototype._setInitialStatus=function(){this._status=this._allControlsDisabled()?"DISABLED":"VALID"},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this._status="PENDING";var n=u(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return e.setErrors(n,{emitEvent:t})})}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){var n=(void 0===e?{}:e).emitEvent;this._errors=t,this._updateControlsErrors(!1!==n)},t.prototype.get=function(t){return R(this,t,".")},t.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n._errors?n._errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this._status=this._calculateStatus(),t&&this._statusChanges.emit(this._status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this._valueChanges=new e.EventEmitter,this._statusChanges=new e.EventEmitter},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this._errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},t.prototype._updateValue=function(){},t.prototype._forEachChild=function(t){},t.prototype._anyControls=function(t){},t.prototype._allControlsDisabled=function(){},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},t.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},t.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},t.prototype._updatePristine=function(t){var e=(void 0===t?{}:t).onlySelf;this._pristine=!this._anyControlsDirty(),this._parent&&!e&&this._parent._updatePristine({onlySelf:e})},t.prototype._updateTouched=function(t){var e=(void 0===t?{}:t).onlySelf;this._touched=this._anyControlsTouched(),this._parent&&!e&&this._parent._updateTouched({onlySelf:e})},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t}(),vt=function(t){function e(e,n,r){void 0===e&&(e=null);var o=t.call(this,k(n),I(r))||this;return o._onChange=[],o._applyFormState(e),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o._initObservables(),o}return j(e,t),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._value=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(function(t){return t(n._value,!1!==e.emitViewToModelChange)}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this._value,e)},e.prototype._updateValue=function(){},e.prototype._anyControls=function(t){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(t){},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this._value=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=t},e}(mt),gt=function(t){function e(e,n,r){var o=t.call(this,n||null,r||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return j(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach(function(r){n._throwIfControlMissing(r),n.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach(function(r){n.controls[r]&&n.controls[r].patchValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e instanceof vt?e.value:e.getRawValue(),t})},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(n){return t(e.controls[n],n)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},e.prototype._updateValue=function(){this._value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(r,o){n=n||e.contains(o)&&t(r)}),n},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,r){return(n.enabled||t.disabled)&&(e[r]=n.value),e})},e.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,r){n=e(n,t,r)}),n},e.prototype._allControlsDisabled=function(){for(var t=0,e=Object.keys(this.controls);t<e.length;t++){var n=e[t];if(this.controls[n].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},e}(mt),_t=function(t){function e(e,n,r){var o=t.call(this,n||null,r||null)||this;return o.controls=e,o._initObservables(),o._setUpControls(),o.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),o}return j(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach(function(t,r){n._throwIfControlMissing(r),n.at(r).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach(function(t,r){n.at(r)&&n.at(r).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof vt?t.value:t.getRawValue()})},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},e.prototype._updateValue=function(){var t=this;this._value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},e.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},e.prototype._allControlsDisabled=function(){for(var t=0,e=this.controls;t<e.length;t++)if(e[t].enabled)return!1;return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(mt),bt={provide:V,useExisting:e.forwardRef(function(){return Ct})},wt=Promise.resolve(null),Ct=function(t){function n(n,r){var o=t.call(this)||this;return o._submitted=!1,o.ngSubmit=new e.EventEmitter,o.form=new gt({},T(n),P(r)),o}return j(n,t),Object.defineProperty(n.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),n.prototype.addControl=function(t){var e=this;wt.then(function(){var n=e._findContainer(t.path);t._control=n.registerControl(t.name,t.control),w(t.control,t),t.control.updateValueAndValidity({emitEvent:!1})})},n.prototype.getControl=function(t){return this.form.get(t.path)},n.prototype.removeControl=function(t){var e=this;wt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},n.prototype.addFormGroup=function(t){var e=this;wt.then(function(){var n=e._findContainer(t.path),r=new gt({});E(r,t),n.registerControl(t.name,r),r.updateValueAndValidity({emitEvent:!1})})},n.prototype.removeFormGroup=function(t){var e=this;wt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},n.prototype.getFormGroup=function(t){return this.form.get(t.path)},n.prototype.updateModel=function(t,e){var n=this;wt.then(function(){n.form.get(t.path).setValue(e)})},n.prototype.setValue=function(t){this.control.setValue(t)},n.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},n.prototype.onReset=function(){this.resetForm()},n.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},n.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},n}(V);Ct.decorators=[{type:e.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[bt],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],Ct.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]}]};var Et={formControlName:'\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',formGroupName:'\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',formArrayName:'\n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });',ngModelGroup:'\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',ngModelWithFormGroup:'\n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  '},St=function(){function t(){}return t.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+Et.formControlName+"\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      "+Et.ngModelWithFormGroup)},t.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+Et.formGroupName+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+Et.ngModelGroup)},t.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},t.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+Et.formGroupName+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+Et.ngModelGroup)},t}(),xt={provide:V,useExisting:e.forwardRef(function(){return Tt})},Tt=function(t){function e(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return j(e,t),e.prototype._checkParentType=function(){this._parent instanceof e||this._parent instanceof Ct||St.modelGroupParentException()},e}(pt);Tt.decorators=[{type:e.Directive,args:[{selector:"[ngModelGroup]",providers:[xt],exportAs:"ngModelGroup"}]}],Tt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]}]},Tt.propDecorators={name:[{type:e.Input,args:["ngModelGroup"]}]};var Pt={provide:Y,useExisting:e.forwardRef(function(){return Ot})},At=Promise.resolve(null),Ot=function(t){function n(n,r,o,i){var s=t.call(this)||this;return s._control=new vt,s._registered=!1,s.update=new e.EventEmitter,s._parent=n,s._rawValidators=r||[],s._rawAsyncValidators=o||[],s.valueAccessor=M(s,i),s}return j(n,t),n.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),A(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},n.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(n.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return this._parent?b(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},n.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},n.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},n.prototype._setUpStandalone=function(){w(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},n.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},n.prototype._checkParentType=function(){!(this._parent instanceof Tt)&&this._parent instanceof pt?St.formGroupNameException():this._parent instanceof Tt||this._parent instanceof Ct||St.modelParentException()},n.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||St.missingNameException()},n.prototype._updateValue=function(t){var e=this;At.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},n.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,r=""===n||n&&"false"!==n;At.then(function(){r&&!e.control.disabled?e.control.disable():!r&&e.control.disabled&&e.control.enable()})},n}(Y);Ot.decorators=[{type:e.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[Pt],exportAs:"ngModel"}]}],Ot.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},Ot.propDecorators={name:[{type:e.Input}],isDisabled:[{type:e.Input,args:["disabled"]}],model:[{type:e.Input,args:["ngModel"]}],options:[{type:e.Input,args:["ngModelOptions"]}],update:[{type:e.Output,args:["ngModelChange"]}]};var Mt=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Et.formControlName)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+Et.formGroupName+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+Et.ngModelGroup)},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+Et.formControlName)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+Et.formGroupName)},t.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        "+Et.formArrayName)},t.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},t}(),Rt={provide:Y,useExisting:e.forwardRef(function(){return kt})},kt=function(t){function n(n,r,o){var i=t.call(this)||this;return i.update=new e.EventEmitter,i._rawValidators=n||[],i._rawAsyncValidators=r||[],i.valueAccessor=M(i,o),i}return j(n,t),Object.defineProperty(n.prototype,"isDisabled",{set:function(t){Mt.disabledAttrWarning()},enumerable:!0,configurable:!0}),n.prototype.ngOnChanges=function(t){this._isControlChanged(t)&&(w(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),A(t,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},n.prototype._isControlChanged=function(t){return t.hasOwnProperty("form")},n}(Y);kt.decorators=[{type:e.Directive,args:[{selector:"[formControl]",providers:[Rt],exportAs:"ngForm"}]}],kt.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},kt.propDecorators={form:[{type:e.Input,args:["formControl"]}],model:[{type:e.Input,args:["ngModel"]}],update:[{type:e.Output,args:["ngModelChange"]}],isDisabled:[{type:e.Input,args:["disabled"]}]};var It={provide:V,useExisting:e.forwardRef(function(){return Nt})},Nt=function(t){function n(n,r){var o=t.call(this)||this;return o._validators=n,o._asyncValidators=r,o._submitted=!1,o.directives=[],o.form=null,o.ngSubmit=new e.EventEmitter,o}return j(n,t),n.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(n.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),n.prototype.addControl=function(t){var e=this.form.get(t.path);return w(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},n.prototype.getControl=function(t){return this.form.get(t.path)},n.prototype.removeControl=function(t){N(this.directives,t)},n.prototype.addFormGroup=function(t){var e=this.form.get(t.path);E(e,t),e.updateValueAndValidity({emitEvent:!1})},n.prototype.removeFormGroup=function(t){},n.prototype.getFormGroup=function(t){return this.form.get(t.path)},n.prototype.addFormArray=function(t){var e=this.form.get(t.path);E(e,t),e.updateValueAndValidity({emitEvent:!1})},n.prototype.removeFormArray=function(t){},n.prototype.getFormArray=function(t){return this.form.get(t.path)},n.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},n.prototype.onSubmit=function(t){return this._submitted=!0,this.ngSubmit.emit(t),!1},n.prototype.onReset=function(){this.resetForm()},n.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this._submitted=!1},n.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var n=t.form.get(e.path);e._control!==n&&(C(e._control,e),n&&w(n,e),e._control=n)}),this.form._updateTreeValidity({emitEvent:!1})},n.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},n.prototype._updateValidators=function(){var t=T(this._validators);this.form.validator=q.compose([this.form.validator,t]);var e=P(this._asyncValidators);this.form.asyncValidator=q.composeAsync([this.form.asyncValidator,e])},n.prototype._checkFormPresent=function(){this.form||Mt.missingFormException()},n}(V);Nt.decorators=[{type:e.Directive,args:[{selector:"[formGroup]",providers:[It],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],Nt.ctorParameters=function(){return[{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]}]},Nt.propDecorators={form:[{type:e.Input,args:["formGroup"]}],ngSubmit:[{type:e.Output}]};var Dt={provide:V,useExisting:e.forwardRef(function(){return jt})},jt=function(t){function e(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return j(e,t),e.prototype._checkParentType=function(){D(this._parent)&&Mt.groupParentException()},e}(pt);jt.decorators=[{type:e.Directive,args:[{selector:"[formGroupName]",providers:[Dt]}]}],jt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]}]},jt.propDecorators={name:[{type:e.Input,args:["formGroupName"]}]};var Lt={provide:V,useExisting:e.forwardRef(function(){return Vt})},Vt=function(t){function e(e,n,r){var o=t.call(this)||this;return o._parent=e,o._validators=n,o._asyncValidators=r,o}return j(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return T(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return P(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){D(this._parent)&&Mt.arrayParentException()},e}(V);Vt.decorators=[{type:e.Directive,args:[{selector:"[formArrayName]",providers:[Lt]}]}],Vt.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]}]},Vt.propDecorators={name:[{type:e.Input,args:["formArrayName"]}]};var Ft={provide:Y,useExisting:e.forwardRef(function(){return Ut})},Ut=function(t){function n(n,r,o,i){var s=t.call(this)||this;return s._added=!1,s.update=new e.EventEmitter,s._parent=n,s._rawValidators=r||[],s._rawAsyncValidators=o||[],s.valueAccessor=M(s,i),s}return j(n,t),Object.defineProperty(n.prototype,"isDisabled",{set:function(t){Mt.disabledAttrWarning()},enumerable:!0,configurable:!0}),n.prototype.ngOnChanges=function(t){this._added||this._setUpControl(),A(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},n.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(n.prototype,"path",{get:function(){return b(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return T(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return P(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),n.prototype._checkParentType=function(){!(this._parent instanceof jt)&&this._parent instanceof pt?Mt.ngModelGroupException():this._parent instanceof jt||this._parent instanceof Nt||this._parent instanceof Vt||Mt.controlParentException()},n.prototype._setUpControl=function(){this._checkParentType(),this._control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},n}(Y);Ut.decorators=[{type:e.Directive,args:[{selector:"[formControlName]",providers:[Ft]}]}],Ut.ctorParameters=function(){return[{type:V,decorators:[{type:e.Optional},{type:e.Host},{type:e.SkipSelf}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[U]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[H]}]},{type:Array,decorators:[{type:e.Optional},{type:e.Self},{type:e.Inject,args:[z]}]}]},Ut.propDecorators={name:[{type:e.Input,args:["formControlName"]}],model:[{type:e.Input,args:["ngModel"]}],update:[{type:e.Output,args:["ngModelChange"]}],isDisabled:[{type:e.Input,args:["disabled"]}]};var Ht={provide:U,useExisting:e.forwardRef(function(){return qt}),multi:!0},Bt={provide:U,useExisting:e.forwardRef(function(){return zt}),multi:!0},qt=function(){function t(){}return Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&!1!==t&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this.required?q.required(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}();qt.decorators=[{type:e.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[Ht],host:{"[attr.required]":'required ? "" : null'}}]}],qt.ctorParameters=function(){return[]},qt.propDecorators={required:[{type:e.Input}]};var zt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.validate=function(t){return this.required?q.requiredTrue(t):null},e}(qt);zt.decorators=[{type:e.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[Bt],host:{"[attr.required]":'required ? "" : null'}}]}],zt.ctorParameters=function(){return[]};var Gt={provide:U,useExisting:e.forwardRef(function(){return Wt}),multi:!0},Wt=function(){function t(){}return Object.defineProperty(t.prototype,"email",{set:function(t){this._enabled=""===t||!0===t||"true"===t,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this._enabled?q.email(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}();Wt.decorators=[{type:e.Directive,args:[{selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[Gt]}]}],Wt.ctorParameters=function(){return[]},Wt.propDecorators={email:[{type:e.Input}]};var $t={provide:U,useExisting:e.forwardRef(function(){return Kt}),multi:!0},Kt=function(){function t(){}return t.prototype.ngOnChanges=function(t){"minlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null==this.minlength?null:this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.minLength(parseInt(this.minlength,10))},t}();Kt.decorators=[{type:e.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[$t],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],Kt.ctorParameters=function(){return[]},Kt.propDecorators={minlength:[{type:e.Input}]};var Qt={provide:U,useExisting:e.forwardRef(function(){return Xt}),multi:!0},Xt=function(){function t(){}return t.prototype.ngOnChanges=function(t){"maxlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null!=this.maxlength?this._validator(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.maxLength(parseInt(this.maxlength,10))},t}();Xt.decorators=[{type:e.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[Qt],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],Xt.ctorParameters=function(){return[]},Xt.propDecorators={maxlength:[{type:e.Input}]};var Zt={provide:U,useExisting:e.forwardRef(function(){return Yt}),multi:!0},Yt=function(){function t(){}return t.prototype.ngOnChanges=function(t){"pattern"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=q.pattern(this.pattern)},t}();Yt.decorators=[{type:e.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[Zt],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],Yt.ctorParameters=function(){return[]},Yt.propDecorators={pattern:[{type:e.Input}]};var Jt=function(){function t(){}return t.prototype.group=function(t,e){void 0===e&&(e=null);var n=this._reduceControls(t),r=null!=e?e.validator:null,o=null!=e?e.asyncValidator:null;return new gt(n,r,o)},t.prototype.control=function(t,e,n){return new vt(t,e,n)},t.prototype.array=function(t,e,n){var r=this,o=t.map(function(t){return r._createControl(t)});return new _t(o,e,n)},t.prototype._reduceControls=function(t){var e=this,n={};return Object.keys(t).forEach(function(r){n[r]=e._createControl(t[r])}),n},t.prototype._createControl=function(t){if(t instanceof vt||t instanceof gt||t instanceof _t)return t;if(Array.isArray(t)){var e=t[0],n=t.length>1?t[1]:null,r=t.length>2?t[2]:null;return this.control(e,n,r)}return this.control(t)},t}();Jt.decorators=[{type:e.Injectable}],Jt.ctorParameters=function(){return[]};var te=new e.Version("4.1.3"),ee=function(){function t(){}return t}();ee.decorators=[{type:e.Directive,args:[{selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}}]}],ee.ctorParameters=function(){return[]};var ne=[ee,st,ct,Q,Z,rt,W,it,ut,et,dt,yt,qt,Kt,Xt,Yt,zt,Wt],re=[Ot,Tt,Ct],oe=[kt,Nt,Ut,jt,Vt],ie=function(){function t(){}return t}();ie.decorators=[{type:e.NgModule,args:[{declarations:ne,exports:ne}]}],ie.ctorParameters=function(){return[]};var se=function(){function t(){}return t}();se.decorators=[{type:e.NgModule,args:[{declarations:re,providers:[tt],exports:[ie,re]}]}],se.ctorParameters=function(){return[]};var ae=function(){function t(){}return t}();ae.decorators=[{type:e.NgModule,args:[{declarations:[oe],providers:[Jt,tt],exports:[ie,oe]}]}],ae.ctorParameters=function(){return[]},t.AbstractControlDirective=L,t.AbstractFormGroupDirective=pt,t.CheckboxControlValueAccessor=W,t.ControlContainer=V,t.NG_VALUE_ACCESSOR=z,t.COMPOSITION_BUFFER_MODE=K,t.DefaultValueAccessor=Q,t.NgControl=Y,t.NgControlStatus=dt,t.NgControlStatusGroup=yt,t.NgForm=Ct,t.NgModel=Ot,t.NgModelGroup=Tt,t.RadioControlValueAccessor=et,t.FormControlDirective=kt,t.FormControlName=Ut,t.FormGroupDirective=Nt,t.FormArrayName=Vt,t.FormGroupName=jt,t.NgSelectOption=st,t.SelectControlValueAccessor=it,t.SelectMultipleControlValueAccessor=ut,t.CheckboxRequiredValidator=zt,t.EmailValidator=Wt,t.MaxLengthValidator=Xt,t.MinLengthValidator=Kt,t.PatternValidator=Yt,t.RequiredValidator=qt,t.FormBuilder=Jt,t.AbstractControl=mt,t.FormArray=_t,t.FormControl=vt,t.FormGroup=gt,t.NG_ASYNC_VALIDATORS=H,t.NG_VALIDATORS=U,t.Validators=q,t.VERSION=te,t.FormsModule=se,t.ReactiveFormsModule=ae,t.ɵba=ie,t.ɵz=oe,t.ɵx=ne,t.ɵy=re,t.ɵa=G,t.ɵb=$,t.ɵc=ht,t.ɵd=ft,t.ɵe=bt,t.ɵf=Pt,t.ɵg=xt,t.ɵbf=ee,t.ɵbb=X,t.ɵbc=Z,t.ɵh=J,t.ɵi=tt,t.ɵbd=nt,t.ɵbe=rt,t.ɵj=Rt,t.ɵk=Ft,t.ɵl=It,t.ɵn=Lt,t.ɵm=Dt,t.ɵo=ot,t.ɵq=ct,t.ɵp=at,t.ɵs=Bt,t.ɵt=Gt,t.ɵv=Qt,t.ɵu=$t,t.ɵw=Zt,t.ɵr=Ht,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8,"@angular/platform-browser":12,"rxjs/observable/forkJoin":34,"rxjs/observable/fromPromise":36,"rxjs/operator/map":46}],10:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/core"),t("rxjs/Observable"),t("@angular/platform-browser")):o((r.ng=r.ng||{},r.ng.http=r.ng.http||{}),r.ng.core,r.Rx,r.ng.platformBrowser)}(this,function(t,e,n,r){"use strict";function o(t){if("string"!=typeof t)return t;switch(t.toUpperCase()){case"GET":return g.Get;case"POST":return g.Post;case"PUT":return g.Put;case"DELETE":return g.Delete;case"OPTIONS":return g.Options;case"HEAD":return g.Head;case"PATCH":return g.Patch}throw new Error('Invalid request method. The method "'+t+'" is not supported.')}function i(t){return"responseURL"in t?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}function s(t){for(var e=new Uint16Array(t.length),n=0,r=t.length;n<r;n++)e[n]=t.charCodeAt(n);return e.buffer}function a(t){void 0===t&&(t="");var e=new Map;return t.length>0&&t.split("&").forEach(function(t){var n=t.indexOf("="),r=-1==n?[t,""]:[t.slice(0,n),t.slice(n+1)],o=r[0],i=r[1],s=e.get(o)||[];s.push(i),e.set(o,s)}),e}function u(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}function c(){var t="object"==typeof window?window:{};return null===j&&(j=t[D]={}),j}function l(t){var e=new R;return Object.keys(t).forEach(function(n){var r=t[n];r&&Array.isArray(r)?r.forEach(function(t){return e.append(n,t.toString())}):e.append(n,r.toString())}),e}function p(t,e){return t.createConnection(e).response}function h(t,e,n,r){var o=t;return e?o.merge(new K({method:e.method||n,url:e.url||r,search:e.search,params:e.params,headers:e.headers,body:e.body,withCredentials:e.withCredentials,responseType:e.responseType})):o.merge(new K({method:n,url:r}))}function f(){return new W}function d(t,e){return new nt(t,e)}function y(t,e){return new rt(t,e)}var m=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},v=function(){function t(){}return t.prototype.build=function(){return new XMLHttpRequest},t}();v.decorators=[{type:e.Injectable}],v.ctorParameters=function(){return[]};var g={};g.Get=0,g.Post=1,g.Put=2,g.Delete=3,g.Options=4,g.Head=5,g.Patch=6,g[g.Get]="Get",g[g.Post]="Post",g[g.Put]="Put",g[g.Delete]="Delete",g[g.Options]="Options",g[g.Head]="Head",g[g.Patch]="Patch";var _={};_.Unsent=0,_.Open=1,_.HeadersReceived=2,_.Loading=3,_.Done=4,_.Cancelled=5,_[_.Unsent]="Unsent",_[_.Open]="Open",_[_.HeadersReceived]="HeadersReceived",_[_.Loading]="Loading",_[_.Done]="Done",_[_.Cancelled]="Cancelled";var b={};b.Basic=0,b.Cors=1,b.Default=2,b.Error=3,b.Opaque=4,b[b.Basic]="Basic",b[b.Cors]="Cors",b[b.Default]="Default",b[b.Error]="Error",b[b.Opaque]="Opaque";var w={};w.NONE=0,w.JSON=1,w.FORM=2,w.FORM_DATA=3,w.TEXT=4,w.BLOB=5,w.ARRAY_BUFFER=6,w[w.NONE]="NONE",w[w.JSON]="JSON",w[w.FORM]="FORM",w[w.FORM_DATA]="FORM_DATA",w[w.TEXT]="TEXT",w[w.BLOB]="BLOB",w[w.ARRAY_BUFFER]="ARRAY_BUFFER";var C={};C.Text=0,C.Json=1,C.ArrayBuffer=2,C.Blob=3,C[C.Text]="Text",C[C.Json]="Json",C[C.ArrayBuffer]="ArrayBuffer",C[C.Blob]="Blob";var E=function(){function t(e){var n=this;if(this._headers=new Map,this._normalizedNames=new Map,e)return e instanceof t?void e.forEach(function(t,e){t.forEach(function(t){return n.append(e,t)})}):void Object.keys(e).forEach(function(t){var r=Array.isArray(e[t])?e[t]:[e[t]];n.delete(t),r.forEach(function(e){return n.append(t,e)})})}return t.fromResponseHeaderString=function(e){var n=new t;return e.split("\n").forEach(function(t){var e=t.indexOf(":");if(e>0){var r=t.slice(0,e),o=t.slice(e+1).trim();n.set(r,o)}}),n},t.prototype.append=function(t,e){var n=this.getAll(t);null===n?this.set(t,e):n.push(e)},t.prototype.delete=function(t){var e=t.toLowerCase();this._normalizedNames.delete(e),this._headers.delete(e)},t.prototype.forEach=function(t){var e=this;this._headers.forEach(function(n,r){return t(n,e._normalizedNames.get(r),e._headers)})},t.prototype.get=function(t){var e=this.getAll(t);return null===e?null:e.length>0?e[0]:null},t.prototype.has=function(t){return this._headers.has(t.toLowerCase())},t.prototype.keys=function(){return Array.from(this._normalizedNames.values())},t.prototype.set=function(t,e){Array.isArray(e)?e.length&&this._headers.set(t.toLowerCase(),[e.join(",")]):this._headers.set(t.toLowerCase(),[e]),this.mayBeSetNormalizedName(t)},t.prototype.values=function(){return Array.from(this._headers.values())},t.prototype.toJSON=function(){var t=this,e={};return this._headers.forEach(function(n,r){var o=[];n.forEach(function(t){return o.push.apply(o,t.split(","))}),e[t._normalizedNames.get(r)]=o}),e},t.prototype.getAll=function(t){return this.has(t)?this._headers.get(t.toLowerCase())||null:null},t.prototype.entries=function(){throw new Error('"entries" method is not implemented on Headers class')},t.prototype.mayBeSetNormalizedName=function(t){var e=t.toLowerCase();this._normalizedNames.has(e)||this._normalizedNames.set(e,t)},t}(),S=function(){function t(t){var e=void 0===t?{}:t,n=e.body,r=e.status,o=e.headers,i=e.statusText,s=e.type,a=e.url;this.body=null!=n?n:null,this.status=null!=r?r:null,this.headers=null!=o?o:null,this.statusText=null!=i?i:null,this.type=null!=s?s:null,this.url=null!=a?a:null}return t.prototype.merge=function(e){return new t({body:e&&null!=e.body?e.body:this.body,status:e&&null!=e.status?e.status:this.status,headers:e&&null!=e.headers?e.headers:this.headers,statusText:e&&null!=e.statusText?e.statusText:this.statusText,type:e&&null!=e.type?e.type:this.type,url:e&&null!=e.url?e.url:this.url})},t}(),x=function(t){function e(){return t.call(this,{status:200,statusText:"Ok",type:b.Default,headers:new E})||this}return m(e,t),e}(S);x.decorators=[{type:e.Injectable}],x.ctorParameters=function(){return[]};var T=function(){function t(){}return t.prototype.createConnection=function(t){},t}(),P=function(){function t(){}return t}(),A=function(){function t(){}return t.prototype.configureRequest=function(t){},t}(),O=function(t){return t>=200&&t<300},M=function(){function t(){}return t.prototype.encodeKey=function(t){return u(t)},t.prototype.encodeValue=function(t){return u(t)},t}(),R=function(){function t(t,e){void 0===t&&(t=""),void 0===e&&(e=new M),this.rawParams=t,this.queryEncoder=e,this.paramsMap=a(t)}return t.prototype.clone=function(){var e=new t("",this.queryEncoder);return e.appendAll(this),e},t.prototype.has=function(t){return this.paramsMap.has(t)},t.prototype.get=function(t){var e=this.paramsMap.get(t);return Array.isArray(e)?e[0]:null},t.prototype.getAll=function(t){return this.paramsMap.get(t)||[]},t.prototype.set=function(t,e){if(void 0===e||null===e)return void this.delete(t);var n=this.paramsMap.get(t)||[];n.length=0,n.push(e),this.paramsMap.set(t,n)},t.prototype.setAll=function(t){var e=this;t.paramsMap.forEach(function(t,n){var r=e.paramsMap.get(n)||[];r.length=0,r.push(t[0]),e.paramsMap.set(n,r)})},t.prototype.append=function(t,e){if(void 0!==e&&null!==e){var n=this.paramsMap.get(t)||[];n.push(e),this.paramsMap.set(t,n)}},t.prototype.appendAll=function(t){var e=this;t.paramsMap.forEach(function(t,n){for(var r=e.paramsMap.get(n)||[],o=0;o<t.length;++o)r.push(t[o]);e.paramsMap.set(n,r)})},t.prototype.replaceAll=function(t){var e=this;t.paramsMap.forEach(function(t,n){var r=e.paramsMap.get(n)||[];r.length=0;for(var o=0;o<t.length;++o)r.push(t[o]);e.paramsMap.set(n,r)})},t.prototype.toString=function(){var t=this,e=[];return this.paramsMap.forEach(function(n,r){n.forEach(function(n){return e.push(t.queryEncoder.encodeKey(r)+"="+t.queryEncoder.encodeValue(n))})}),e.join("&")},t.prototype.delete=function(t){this.paramsMap.delete(t)},t}(),k=function(){function t(){}return t.prototype.json=function(){return"string"==typeof this._body?JSON.parse(this._body):this._body instanceof ArrayBuffer?JSON.parse(this.text()):this._body},t.prototype.text=function(t){if(void 0===t&&(t="legacy"),this._body instanceof R)return this._body.toString();if(this._body instanceof ArrayBuffer)switch(t){case"legacy":return String.fromCharCode.apply(null,new Uint16Array(this._body));case"iso-8859":return String.fromCharCode.apply(null,new Uint8Array(this._body));default:throw new Error("Invalid value for encodingHint: "+t)}return null==this._body?"":"object"==typeof this._body?JSON.stringify(this._body,null,2):this._body.toString()},t.prototype.arrayBuffer=function(){return this._body instanceof ArrayBuffer?this._body:s(this.text())},t.prototype.blob=function(){if(this._body instanceof Blob)return this._body;if(this._body instanceof ArrayBuffer)return new Blob([this._body]);throw new Error("The request body isn't either a blob or an array buffer")},t}(),I=function(t){function e(e){var n=t.call(this)||this;return n._body=e.body,n.status=e.status,n.ok=n.status>=200&&n.status<=299,n.statusText=e.statusText,n.headers=e.headers,n.type=e.type,n.url=e.url,n}return m(e,t),e.prototype.toString=function(){return"Response with status: "+this.status+" "+this.statusText+" for URL: "+this.url},e}(k),N=0,D="__ng_jsonp__",j=null,L=function(){function t(){}return t.prototype.build=function(t){var e=document.createElement("script");return e.src=t,e},t.prototype.nextRequestID=function(){return"__req"+N++},t.prototype.requestCallback=function(t){return D+"."+t+".finished"},t.prototype.exposeConnection=function(t,e){c()[t]=e},t.prototype.removeConnection=function(t){c()[t]=null},t.prototype.send=function(t){document.body.appendChild(t)},t.prototype.cleanup=function(t){t.parentNode&&t.parentNode.removeChild(t)},t}();L.decorators=[{type:e.Injectable}],L.ctorParameters=function(){return[]};var V="JSONP injected script did not invoke callback.",F="JSONP requests must use GET request method.",U=function(){function t(){}return t.prototype.finished=function(t){},t}(),H=function(t){function e(e,r,o){var i=t.call(this)||this;if(i._dom=r,i.baseResponseOptions=o,i._finished=!1,e.method!==g.Get)throw new TypeError(F);return i.request=e,i.response=new n.Observable(function(t){i.readyState=_.Loading;var n=i._id=r.nextRequestID();r.exposeConnection(n,i);var s=r.requestCallback(i._id),a=e.url;a.indexOf("=JSONP_CALLBACK&")>-1?a=a.replace("=JSONP_CALLBACK&","="+s+"&"):a.lastIndexOf("=JSONP_CALLBACK")===a.length-"=JSONP_CALLBACK".length&&(a=a.substring(0,a.length-"=JSONP_CALLBACK".length)+"="+s);var u=i._script=r.build(a),c=function(e){if(i.readyState!==_.Cancelled){if(i.readyState=_.Done,r.cleanup(u),!i._finished){var n=new S({body:V,type:b.Error,url:a});return o&&(n=o.merge(n)),void t.error(new I(n))}var s=new S({body:i._responseData,url:a});i.baseResponseOptions&&(s=i.baseResponseOptions.merge(s)),t.next(new I(s)),t.complete()}},l=function(e){if(i.readyState!==_.Cancelled){i.readyState=_.Done,r.cleanup(u);var n=new S({body:e.message,type:b.Error});o&&(n=o.merge(n)),t.error(new I(n))}};return u.addEventListener("load",c),u.addEventListener("error",l),r.send(u),function(){i.readyState=_.Cancelled,u.removeEventListener("load",c),u.removeEventListener("error",l),i._dom.cleanup(u)}}),i}return m(e,t),e.prototype.finished=function(t){this._finished=!0,this._dom.removeConnection(this._id),this.readyState!==_.Cancelled&&(this._responseData=t)},e}(U),B=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return m(e,t),e}(T),q=function(t){function e(e,n){var r=t.call(this)||this;return r._browserJSONP=e,r._baseResponseOptions=n,r}return m(e,t),e.prototype.createConnection=function(t){return new H(t,this._browserJSONP,this._baseResponseOptions)},e}(B);q.decorators=[{type:e.Injectable}],q.ctorParameters=function(){return[{type:L},{type:S}]};var z=/^\)\]\}',?\n/,G=function(){function t(t,e,r){var o=this;this.request=t,this.response=new n.Observable(function(n){var s=e.build();s.open(g[t.method].toUpperCase(),t.url),null!=t.withCredentials&&(s.withCredentials=t.withCredentials);var a=function(){var e=1223===s.status?204:s.status,o=null;204!==e&&"string"==typeof(o=void 0===s.response?s.responseText:s.response)&&(o=o.replace(z,"")),0===e&&(e=o?200:0);var a=E.fromResponseHeaderString(s.getAllResponseHeaders()),u=i(s)||t.url,c=s.statusText||"OK",l=new S({body:o,status:e,headers:a,statusText:c,url:u});null!=r&&(l=r.merge(l));var p=new I(l);if(p.ok=O(e),p.ok)return n.next(p),void n.complete();n.error(p)},u=function(t){var e=new S({body:t,type:b.Error,status:s.status,statusText:s.statusText});null!=r&&(e=r.merge(e)),n.error(new I(e))};if(o.setDetectedContentType(t,s),null==t.headers&&(t.headers=new E),t.headers.has("Accept")||t.headers.append("Accept","application/json, text/plain, */*"),t.headers.forEach(function(t,e){return s.setRequestHeader(e,t.join(","))}),null!=t.responseType&&null!=s.responseType)switch(t.responseType){case C.ArrayBuffer:s.responseType="arraybuffer";break;case C.Json:s.responseType="json";break;case C.Text:s.responseType="text";break;case C.Blob:s.responseType="blob";break;default:throw new Error("The selected responseType is not supported")}return s.addEventListener("load",a),s.addEventListener("error",u),s.send(o.request.getBody()),function(){s.removeEventListener("load",a),s.removeEventListener("error",u),s.abort()}})}return t.prototype.setDetectedContentType=function(t,e){if(null==t.headers||null==t.headers.get("Content-Type"))switch(t.contentType){case w.NONE:break;case w.JSON:e.setRequestHeader("content-type","application/json");break;case w.FORM:e.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=UTF-8");break;case w.TEXT:e.setRequestHeader("content-type","text/plain");break;case w.BLOB:var n=t.blob();n.type&&e.setRequestHeader("content-type",n.type)}},t}(),W=function(){function t(t,e){void 0===t&&(t="XSRF-TOKEN"),void 0===e&&(e="X-XSRF-TOKEN"),this._cookieName=t,this._headerName=e}return t.prototype.configureRequest=function(t){var e=r.ɵgetDOM().getCookie(this._cookieName);e&&t.headers.set(this._headerName,e)},t}(),$=function(){function t(t,e,n){this._browserXHR=t,this._baseResponseOptions=e,this._xsrfStrategy=n}return t.prototype.createConnection=function(t){return this._xsrfStrategy.configureRequest(t),new G(t,this._browserXHR,this._baseResponseOptions)},t}();$.decorators=[{type:e.Injectable}],$.ctorParameters=function(){return[{type:v},{type:S},{type:A}]};var K=function(){function t(t){var e=void 0===t?{}:t,n=e.method,r=e.headers,i=e.body,s=e.url,a=e.search,u=e.params,c=e.withCredentials,l=e.responseType;this.method=null!=n?o(n):null,this.headers=null!=r?r:null,this.body=null!=i?i:null,this.url=null!=s?s:null,this.params=this._mergeSearchParams(u||a),this.withCredentials=null!=c?c:null,this.responseType=null!=l?l:null}return Object.defineProperty(t.prototype,"search",{get:function(){return this.params},set:function(t){this.params=t},enumerable:!0,configurable:!0}),t.prototype.merge=function(e){return new t({method:e&&null!=e.method?e.method:this.method,headers:e&&null!=e.headers?e.headers:new E(this.headers),body:e&&null!=e.body?e.body:this.body,url:e&&null!=e.url?e.url:this.url,params:e&&this._mergeSearchParams(e.params||e.search),withCredentials:e&&null!=e.withCredentials?e.withCredentials:this.withCredentials,responseType:e&&null!=e.responseType?e.responseType:this.responseType})},t.prototype._mergeSearchParams=function(t){return t?t instanceof R?t.clone():"string"==typeof t?new R(t):this._parseParams(t):this.params},t.prototype._parseParams=function(t){var e=this;void 0===t&&(t={});var n=new R;return Object.keys(t).forEach(function(r){var o=t[r];Array.isArray(o)?o.forEach(function(t){return e._appendParam(r,t,n)}):e._appendParam(r,o,n)}),n},t.prototype._appendParam=function(t,e,n){"string"!=typeof e&&(e=JSON.stringify(e)),n.append(t,e)},t}(),Q=function(t){function e(){return t.call(this,{method:g.Get,headers:new E})||this}return m(e,t),e}(K);Q.decorators=[{type:e.Injectable}],Q.ctorParameters=function(){return[]};var X=function(t){function e(e){var n=t.call(this)||this,r=e.url;n.url=e.url;var i=e.params||e.search;if(i){var s=void 0;if((s="object"!=typeof i||i instanceof R?i.toString():l(i).toString()).length>0){var a="?";-1!=n.url.indexOf("?")&&(a="&"==n.url[n.url.length-1]?"":"&"),n.url=r+a+s}}return n._body=e.body,n.method=o(e.method),n.headers=new E(e.headers),n.contentType=n.detectContentType(),n.withCredentials=e.withCredentials,n.responseType=e.responseType,n}return m(e,t),e.prototype.detectContentType=function(){switch(this.headers.get("content-type")){case"application/json":return w.JSON;case"application/x-www-form-urlencoded":return w.FORM;case"multipart/form-data":return w.FORM_DATA;case"text/plain":case"text/html":return w.TEXT;case"application/octet-stream":return this._body instanceof et?w.ARRAY_BUFFER:w.BLOB;default:return this.detectContentTypeFromBody()}},e.prototype.detectContentTypeFromBody=function(){return null==this._body?w.NONE:this._body instanceof R?w.FORM:this._body instanceof J?w.FORM_DATA:this._body instanceof tt?w.BLOB:this._body instanceof et?w.ARRAY_BUFFER:this._body&&"object"==typeof this._body?w.JSON:w.TEXT},e.prototype.getBody=function(){switch(this.contentType){case w.JSON:case w.FORM:return this.text();case w.FORM_DATA:return this._body;case w.TEXT:return this.text();case w.BLOB:return this.blob();case w.ARRAY_BUFFER:return this.arrayBuffer();default:return null}},e}(k),Z=function(){},Y="object"==typeof window?window:Z,J=Y.FormData||Z,tt=Y.Blob||Z,et=Y.ArrayBuffer||Z,nt=function(){function t(t,e){this._backend=t,this._defaultOptions=e}return t.prototype.request=function(t,e){var n;if("string"==typeof t)n=p(this._backend,new X(h(this._defaultOptions,e,g.Get,t)));else{if(!(t instanceof X))throw new Error("First argument must be a url string or Request instance.");n=p(this._backend,t)}return n},t.prototype.get=function(t,e){return this.request(new X(h(this._defaultOptions,e,g.Get,t)))},t.prototype.post=function(t,e,n){return this.request(new X(h(this._defaultOptions.merge(new K({body:e})),n,g.Post,t)))},t.prototype.put=function(t,e,n){return this.request(new X(h(this._defaultOptions.merge(new K({body:e})),n,g.Put,t)))},t.prototype.delete=function(t,e){return this.request(new X(h(this._defaultOptions,e,g.Delete,t)))},t.prototype.patch=function(t,e,n){return this.request(new X(h(this._defaultOptions.merge(new K({body:e})),n,g.Patch,t)))},t.prototype.head=function(t,e){return this.request(new X(h(this._defaultOptions,e,g.Head,t)))},t.prototype.options=function(t,e){return this.request(new X(h(this._defaultOptions,e,g.Options,t)))},t}();nt.decorators=[{type:e.Injectable}],nt.ctorParameters=function(){return[{type:T},{type:K}]};var rt=function(t){function e(e,n){return t.call(this,e,n)||this}return m(e,t),e.prototype.request=function(t,e){if("string"==typeof t&&(t=new X(h(this._defaultOptions,e,g.Get,t))),!(t instanceof X))throw new Error("First argument must be a url string or Request instance.");if(t.method!==g.Get)throw new Error("JSONP requests must use GET request method.");return p(this._backend,t)},e}(nt);rt.decorators=[{type:e.Injectable}],rt.ctorParameters=function(){return[{type:T},{type:K}]};var ot=function(){function t(){}return t}();ot.decorators=[{type:e.NgModule,args:[{providers:[{provide:nt,useFactory:d,deps:[$,K]},v,{provide:K,useClass:Q},{provide:S,useClass:x},$,{provide:A,useFactory:f}]}]}],ot.ctorParameters=function(){return[]};var it=function(){function t(){}return t}();it.decorators=[{type:e.NgModule,args:[{providers:[{provide:rt,useFactory:y,deps:[B,K]},L,{provide:K,useClass:Q},{provide:S,useClass:x},{provide:B,useClass:q}]}]}],it.ctorParameters=function(){return[]};var st=new e.Version("4.1.3");t.BrowserXhr=v,t.JSONPBackend=B,t.JSONPConnection=U,t.CookieXSRFStrategy=W,t.XHRBackend=$,t.XHRConnection=G,t.BaseRequestOptions=Q,t.RequestOptions=K,t.BaseResponseOptions=x,t.ResponseOptions=S,t.ReadyState=_,t.RequestMethod=g,t.ResponseContentType=C,t.ResponseType=b,t.Headers=E,t.Http=nt,t.Jsonp=rt,t.HttpModule=ot,t.JsonpModule=it,t.Connection=P,t.ConnectionBackend=T,t.XSRFStrategy=A,t.Request=X,t.Response=I,t.QueryEncoder=M,t.URLSearchParams=R,t.VERSION=st,t.ɵg=L,t.ɵa=q,t.ɵf=k,t.ɵb=f,t.ɵc=d,t.ɵd=y,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/core":8,"@angular/platform-browser":12,"rxjs/Observable":17}],11:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/compiler"),t("@angular/core"),t("@angular/common"),t("@angular/platform-browser")):o((r.ng=r.ng||{},r.ng.platformBrowserDynamic=r.ng.platformBrowserDynamic||{}),r.ng.compiler,r.ng.core,r.ng.common,r.ng.platformBrowser)}(this,function(t,e,n,r,o){"use strict";var i=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return i(e,t),e.prototype.get=function(t){var e,n,r=new Promise(function(t,r){e=t,n=r}),o=new XMLHttpRequest;return o.open("GET",t,!0),o.responseType="text",o.onload=function(){var r=o.response||o.responseText,i=1223===o.status?204:o.status;0===i&&(i=r?200:0),200<=i&&i<=300?e(r):n("Failed to load "+t)},o.onerror=function(){n("Failed to load "+t)},o.send(),r},e}(e.ResourceLoader);s.decorators=[{type:n.Injectable}],s.ctorParameters=function(){return[]};var a=[o.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS,{provide:n.COMPILER_OPTIONS,useValue:{providers:[{provide:e.ResourceLoader,useClass:s}]},multi:!0},{provide:n.PLATFORM_ID,useValue:r.ɵPLATFORM_BROWSER_ID}],u=function(t){function e(){var e=t.call(this)||this;if(e._cache=n.ɵglobal.$templateCache,null==e._cache)throw new Error("CachedResourceLoader: Template cache was not found in $templateCache.");return e}return i(e,t),e.prototype.get=function(t){return this._cache.hasOwnProperty(t)?Promise.resolve(this._cache[t]):Promise.reject("CachedResourceLoader: Did not find cached template for "+t)},e}(e.ResourceLoader),c=new n.Version("4.1.3"),l=[{provide:e.ResourceLoader,useClass:u}],p=n.createPlatformFactory(e.platformCoreDynamic,"browserDynamic",a);t.RESOURCE_CACHE_PROVIDER=l,t.platformBrowserDynamic=p,t.VERSION=c,t.ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS=a,t.ɵResourceLoaderImpl=s,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/compiler":7,"@angular/core":8,"@angular/platform-browser":12}],12:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/common"),t("@angular/core")):o((r.ng=r.ng||{},r.ng.platformBrowser=r.ng.platformBrowser||{}),r.ng.common,r.ng.core)}(this,function(t,e,n){"use strict";function r(){return L}function o(t){L||(L=t)}function i(){return G||(G=document.querySelector("base"))?G.getAttribute("href"):null}function s(t){return q||(q=document.createElement("a")),q.setAttribute("href",t),"/"===q.pathname.charAt(0)?q.pathname:"/"+q.pathname}function a(t,e){e=encodeURIComponent(e);for(var n=0,r=t.split(";");n<r.length;n++){var o=r[n],i=o.indexOf("="),s=-1==i?[o,""]:[o.slice(0,i),o.slice(i+1)],a=s[0],u=s[1];if(a.trim()===e)return decodeURIComponent(u)}return null}function u(t,e,n){for(var r=e.split("."),o=t;r.length>1;){var i=r.shift();o=o.hasOwnProperty(i)&&null!=o[i]?o[i]:o[i]={}}void 0!==o&&null!==o||(o={}),o[r.shift()]=n}function c(){return!!window.history.pushState}function l(t,e,o){return function(){o.get(n.ApplicationInitStatus).donePromise.then(function(){var n=r();Array.prototype.slice.apply(n.querySelectorAll(e,"style[ng-transition]")).filter(function(e){return n.getAttribute(e,"ng-transition")===t}).forEach(function(t){return n.remove(t)})})}}function p(t){return n.getDebugNode(t)}function h(t,e){var n=(t||[]).concat(e||[]);return r().setGlobalVar(et,p),r().setGlobalVar(nt,J({},tt,f(n||[]))),function(){return p}}function f(t){return t.reduce(function(t,e){return t[e.name]=e.token,t},{})}function d(t){return ft.replace(pt,t)}function y(t){return ht.replace(pt,t)}function m(t,e,n){for(var r=0;r<e.length;r++){var o=e[r];Array.isArray(o)?m(t,o,n):(o=o.replace(pt,t),n.push(o))}return n}function v(t){return function(e){!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}function g(t,e){if(t.charCodeAt(0)===mt)throw new Error("Found the synthetic "+e+" "+t+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}function _(t){return(t=String(t)).match(Pt)||t.match(At)?t:(n.isDevMode()&&r().log("WARNING: sanitizing unsafe URL value "+t+" (see http://g.co/ng/security#xss)"),"unsafe:"+t)}function b(t){return(t=String(t)).split(",").map(function(t){return _(t.trim())}).join(", ")}function w(){if(Ot)return Ot;var t=(Mt=r()).createElement("template");if("content"in t)return t;var e=Mt.createHtmlDocument();if(null==(Ot=Mt.querySelector(e,"body"))){var n=Mt.createElement("html",e);Ot=Mt.createElement("body",e),Mt.appendChild(n,Ot),Mt.appendChild(e,n)}return Ot}function C(t){for(var e={},n=0,r=t.split(",");n<r.length;n++)e[r[n]]=!0;return e}function E(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n={},r=0,o=t;r<o.length;r++){var i=o[r];for(var s in i)i.hasOwnProperty(s)&&(n[s]=!0)}return n}function S(t,e){if(e&&Mt.contains(t,e))throw new Error("Failed to sanitize html because the element is clobbered: "+Mt.getOuterHTML(t));return e}function x(t){return t.replace(/&/g,"&amp;").replace(qt,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(zt,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function T(t){Mt.attributeMap(t).forEach(function(e,n){"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||Mt.removeAttribute(t,n)});for(var e=0,n=Mt.childNodesAsList(t);e<n.length;e++){var r=n[e];Mt.isElementNode(r)&&T(r)}}function P(t,e){try{var r=w(),o=e?String(e):"",i=5,s=o;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,o=s,Mt.setInnerHTML(r,o),t.documentMode&&T(r),s=Mt.getInnerHTML(r)}while(o!==s);for(var a=new Bt,u=a.sanitizeChildren(Mt.getTemplateContent(r)||r),c=Mt.getTemplateContent(r)||r,l=0,p=Mt.childNodesAsList(c);l<p.length;l++){var h=p[l];Mt.removeChild(c,h)}return n.isDevMode()&&a.sanitizedSomething&&Mt.log("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),u}catch(t){throw Ot=null,t}}function A(t){for(var e=!0,n=!0,r=0;r<t.length;r++){var o=t.charAt(r);"'"===o&&n?e=!e:'"'===o&&e&&(n=!n)}return e&&n}function O(t){if(!(t=String(t).trim()))return"";var e=t.match(Wt);return e&&_(e[1])===e[1]||t.match(Gt)&&A(t)?t:(n.isDevMode()&&r().log("WARNING: sanitizing unsafe style value "+t+" (see http://g.co/ng/security#xss)."),"unsafe")}function M(){z.makeCurrent(),Z.init()}function R(){return new n.ErrorHandler}function k(){return document}function I(t){return r().setGlobalVar(ue,new ae(t)),t}function N(){r().setGlobalVar(ue,null)}var D,j=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},L=null,V=function(){function t(){this.resourceLoaderType=null}return t.prototype.hasProperty=function(t,e){},t.prototype.setProperty=function(t,e,n){},t.prototype.getProperty=function(t,e){},t.prototype.invoke=function(t,e,n){},t.prototype.logError=function(t){},t.prototype.log=function(t){},t.prototype.logGroup=function(t){},t.prototype.logGroupEnd=function(){},Object.defineProperty(t.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(t){this._attrToPropMap=t},enumerable:!0,configurable:!0}),t.prototype.contains=function(t,e){},t.prototype.parse=function(t){},t.prototype.querySelector=function(t,e){},t.prototype.querySelectorAll=function(t,e){},t.prototype.on=function(t,e,n){},t.prototype.onAndCancel=function(t,e,n){},t.prototype.dispatchEvent=function(t,e){},t.prototype.createMouseEvent=function(t){},t.prototype.createEvent=function(t){},t.prototype.preventDefault=function(t){},t.prototype.isPrevented=function(t){},t.prototype.getInnerHTML=function(t){},t.prototype.getTemplateContent=function(t){},t.prototype.getOuterHTML=function(t){},t.prototype.nodeName=function(t){},t.prototype.nodeValue=function(t){},t.prototype.type=function(t){},t.prototype.content=function(t){},t.prototype.firstChild=function(t){},t.prototype.nextSibling=function(t){},t.prototype.parentElement=function(t){},t.prototype.childNodes=function(t){},t.prototype.childNodesAsList=function(t){},t.prototype.clearNodes=function(t){},t.prototype.appendChild=function(t,e){},t.prototype.removeChild=function(t,e){},t.prototype.replaceChild=function(t,e,n){},t.prototype.remove=function(t){},t.prototype.insertBefore=function(t,e,n){},t.prototype.insertAllBefore=function(t,e,n){},t.prototype.insertAfter=function(t,e,n){},t.prototype.setInnerHTML=function(t,e){},t.prototype.getText=function(t){},t.prototype.setText=function(t,e){},t.prototype.getValue=function(t){},t.prototype.setValue=function(t,e){},t.prototype.getChecked=function(t){},t.prototype.setChecked=function(t,e){},t.prototype.createComment=function(t){},t.prototype.createTemplate=function(t){},t.prototype.createElement=function(t,e){},t.prototype.createElementNS=function(t,e,n){},t.prototype.createTextNode=function(t,e){},t.prototype.createScriptTag=function(t,e,n){},t.prototype.createStyleElement=function(t,e){},t.prototype.createShadowRoot=function(t){},t.prototype.getShadowRoot=function(t){},t.prototype.getHost=function(t){},t.prototype.getDistributedNodes=function(t){},t.prototype.clone=function(t){},t.prototype.getElementsByClassName=function(t,e){},t.prototype.getElementsByTagName=function(t,e){},t.prototype.classList=function(t){},t.prototype.addClass=function(t,e){},t.prototype.removeClass=function(t,e){},t.prototype.hasClass=function(t,e){},t.prototype.setStyle=function(t,e,n){},t.prototype.removeStyle=function(t,e){},t.prototype.getStyle=function(t,e){},t.prototype.hasStyle=function(t,e,n){},t.prototype.tagName=function(t){},t.prototype.attributeMap=function(t){},t.prototype.hasAttribute=function(t,e){},t.prototype.hasAttributeNS=function(t,e,n){},t.prototype.getAttribute=function(t,e){},t.prototype.getAttributeNS=function(t,e,n){},t.prototype.setAttribute=function(t,e,n){},t.prototype.setAttributeNS=function(t,e,n,r){},t.prototype.removeAttribute=function(t,e){},t.prototype.removeAttributeNS=function(t,e,n){},t.prototype.templateAwareRoot=function(t){},t.prototype.createHtmlDocument=function(){},t.prototype.getBoundingClientRect=function(t){},t.prototype.getTitle=function(t){},t.prototype.setTitle=function(t,e){},t.prototype.elementMatches=function(t,e){},t.prototype.isTemplateElement=function(t){},t.prototype.isTextNode=function(t){},t.prototype.isCommentNode=function(t){},t.prototype.isElementNode=function(t){},t.prototype.hasShadowRoot=function(t){},t.prototype.isShadowRoot=function(t){},t.prototype.importIntoDoc=function(t){},t.prototype.adoptNode=function(t){},t.prototype.getHref=function(t){},t.prototype.getEventKey=function(t){},t.prototype.resolveAndSetHref=function(t,e,n){},t.prototype.supportsDOMEvents=function(){},t.prototype.supportsNativeShadowDOM=function(){},t.prototype.getGlobalEventTarget=function(t,e){},t.prototype.getHistory=function(){},t.prototype.getLocation=function(){},t.prototype.getBaseHref=function(t){},t.prototype.resetBaseElement=function(){},t.prototype.getUserAgent=function(){},t.prototype.setData=function(t,e,n){},t.prototype.getComputedStyle=function(t){},t.prototype.getData=function(t,e){},t.prototype.setGlobalVar=function(t,e){},t.prototype.supportsWebAnimation=function(){},t.prototype.performanceNow=function(){},t.prototype.getAnimationPrefix=function(){},t.prototype.getTransitionEnd=function(){},t.prototype.supportsAnimation=function(){},t.prototype.supportsCookies=function(){},t.prototype.getCookie=function(t){},t.prototype.setCookie=function(t,e){},t}(),F=function(t){function e(){var e=t.call(this)||this;e._animationPrefix=null,e._transitionEnd=null;try{var n=e.createElement("div",document);if(null!=e.getStyle(n,"animationName"))e._animationPrefix="";else for(var r=["Webkit","Moz","O","ms"],o=0;o<r.length;o++)if(null!=e.getStyle(n,r[o]+"AnimationName")){e._animationPrefix="-"+r[o].toLowerCase()+"-";break}var i={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(i).forEach(function(t){null!=e.getStyle(n,t)&&(e._transitionEnd=i[t])})}catch(t){e._animationPrefix=null,e._transitionEnd=null}return e}return j(e,t),e.prototype.getDistributedNodes=function(t){return t.getDistributedNodes()},e.prototype.resolveAndSetHref=function(t,e,n){t.href=null==n?e:e+"/../"+n},e.prototype.supportsDOMEvents=function(){return!0},e.prototype.supportsNativeShadowDOM=function(){return"function"==typeof document.body.createShadowRoot},e.prototype.getAnimationPrefix=function(){return this._animationPrefix?this._animationPrefix:""},e.prototype.getTransitionEnd=function(){return this._transitionEnd?this._transitionEnd:""},e.prototype.supportsAnimation=function(){return null!=this._animationPrefix&&null!=this._transitionEnd},e}(V),U={class:"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},H={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},B={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"};n.ɵglobal.Node&&(D=n.ɵglobal.Node.prototype.contains||function(t){return!!(16&this.compareDocumentPosition(t))});var q,z=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.parse=function(t){throw new Error("parse not implemented")},e.makeCurrent=function(){o(new e)},e.prototype.hasProperty=function(t,e){return e in t},e.prototype.setProperty=function(t,e,n){t[e]=n},e.prototype.getProperty=function(t,e){return t[e]},e.prototype.invoke=function(t,e,n){t[e].apply(t,n)},e.prototype.logError=function(t){window.console&&(console.error?console.error(t):console.log(t))},e.prototype.log=function(t){window.console&&window.console.log&&window.console.log(t)},e.prototype.logGroup=function(t){window.console&&window.console.group&&window.console.group(t)},e.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(e.prototype,"attrToPropMap",{get:function(){return U},enumerable:!0,configurable:!0}),e.prototype.contains=function(t,e){return D.call(t,e)},e.prototype.querySelector=function(t,e){return t.querySelector(e)},e.prototype.querySelectorAll=function(t,e){return t.querySelectorAll(e)},e.prototype.on=function(t,e,n){t.addEventListener(e,n,!1)},e.prototype.onAndCancel=function(t,e,n){return t.addEventListener(e,n,!1),function(){t.removeEventListener(e,n,!1)}},e.prototype.dispatchEvent=function(t,e){t.dispatchEvent(e)},e.prototype.createMouseEvent=function(t){var e=document.createEvent("MouseEvent");return e.initEvent(t,!0,!0),e},e.prototype.createEvent=function(t){var e=document.createEvent("Event");return e.initEvent(t,!0,!0),e},e.prototype.preventDefault=function(t){t.preventDefault(),t.returnValue=!1},e.prototype.isPrevented=function(t){return t.defaultPrevented||null!=t.returnValue&&!t.returnValue},e.prototype.getInnerHTML=function(t){return t.innerHTML},e.prototype.getTemplateContent=function(t){return"content"in t&&t instanceof HTMLTemplateElement?t.content:null},e.prototype.getOuterHTML=function(t){return t.outerHTML},e.prototype.nodeName=function(t){return t.nodeName},e.prototype.nodeValue=function(t){return t.nodeValue},e.prototype.type=function(t){return t.type},e.prototype.content=function(t){return this.hasProperty(t,"content")?t.content:t},e.prototype.firstChild=function(t){return t.firstChild},e.prototype.nextSibling=function(t){return t.nextSibling},e.prototype.parentElement=function(t){return t.parentNode},e.prototype.childNodes=function(t){return t.childNodes},e.prototype.childNodesAsList=function(t){for(var e=t.childNodes,n=new Array(e.length),r=0;r<e.length;r++)n[r]=e[r];return n},e.prototype.clearNodes=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},e.prototype.appendChild=function(t,e){t.appendChild(e)},e.prototype.removeChild=function(t,e){t.removeChild(e)},e.prototype.replaceChild=function(t,e,n){t.replaceChild(e,n)},e.prototype.remove=function(t){return t.parentNode&&t.parentNode.removeChild(t),t},e.prototype.insertBefore=function(t,e,n){t.insertBefore(n,e)},e.prototype.insertAllBefore=function(t,e,n){n.forEach(function(n){return t.insertBefore(n,e)})},e.prototype.insertAfter=function(t,e,n){t.insertBefore(n,e.nextSibling)},e.prototype.setInnerHTML=function(t,e){t.innerHTML=e},e.prototype.getText=function(t){return t.textContent},e.prototype.setText=function(t,e){t.textContent=e},e.prototype.getValue=function(t){return t.value},e.prototype.setValue=function(t,e){t.value=e},e.prototype.getChecked=function(t){return t.checked},e.prototype.setChecked=function(t,e){t.checked=e},e.prototype.createComment=function(t){return document.createComment(t)},e.prototype.createTemplate=function(t){var e=document.createElement("template");return e.innerHTML=t,e},e.prototype.createElement=function(t,e){return void 0===e&&(e=document),e.createElement(t)},e.prototype.createElementNS=function(t,e,n){return void 0===n&&(n=document),n.createElementNS(t,e)},e.prototype.createTextNode=function(t,e){return void 0===e&&(e=document),e.createTextNode(t)},e.prototype.createScriptTag=function(t,e,n){void 0===n&&(n=document);var r=n.createElement("SCRIPT");return r.setAttribute(t,e),r},e.prototype.createStyleElement=function(t,e){void 0===e&&(e=document);var n=e.createElement("style");return this.appendChild(n,this.createTextNode(t)),n},e.prototype.createShadowRoot=function(t){return t.createShadowRoot()},e.prototype.getShadowRoot=function(t){return t.shadowRoot},e.prototype.getHost=function(t){return t.host},e.prototype.clone=function(t){return t.cloneNode(!0)},e.prototype.getElementsByClassName=function(t,e){return t.getElementsByClassName(e)},e.prototype.getElementsByTagName=function(t,e){return t.getElementsByTagName(e)},e.prototype.classList=function(t){return Array.prototype.slice.call(t.classList,0)},e.prototype.addClass=function(t,e){t.classList.add(e)},e.prototype.removeClass=function(t,e){t.classList.remove(e)},e.prototype.hasClass=function(t,e){return t.classList.contains(e)},e.prototype.setStyle=function(t,e,n){t.style[e]=n},e.prototype.removeStyle=function(t,e){t.style[e]=""},e.prototype.getStyle=function(t,e){return t.style[e]},e.prototype.hasStyle=function(t,e,n){var r=this.getStyle(t,e)||"";return n?r==n:r.length>0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,r=0;r<n.length;r++){var o=n[r];e.set(o.name,o.value)}return e},e.prototype.hasAttribute=function(t,e){return t.hasAttribute(e)},e.prototype.hasAttributeNS=function(t,e,n){return t.hasAttributeNS(e,n)},e.prototype.getAttribute=function(t,e){return t.getAttribute(e)},e.prototype.getAttributeNS=function(t,e,n){return t.getAttributeNS(e,n)},e.prototype.setAttribute=function(t,e,n){t.setAttribute(e,n)},e.prototype.setAttributeNS=function(t,e,n,r){t.setAttributeNS(e,n,r)},e.prototype.removeAttribute=function(t,e){t.removeAttribute(e)},e.prototype.removeAttributeNS=function(t,e,n){t.removeAttributeNS(e,n)},e.prototype.templateAwareRoot=function(t){return this.isTemplateElement(t)?this.content(t):t},e.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},e.prototype.getBoundingClientRect=function(t){try{return t.getBoundingClientRect()}catch(t){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},e.prototype.getTitle=function(t){return document.title},e.prototype.setTitle=function(t,e){document.title=e||""},e.prototype.elementMatches=function(t,e){return t instanceof HTMLElement&&(t.matches&&t.matches(e)||t.msMatchesSelector&&t.msMatchesSelector(e)||t.webkitMatchesSelector&&t.webkitMatchesSelector(e))},e.prototype.isTemplateElement=function(t){return t instanceof HTMLElement&&"TEMPLATE"==t.nodeName},e.prototype.isTextNode=function(t){return t.nodeType===Node.TEXT_NODE},e.prototype.isCommentNode=function(t){return t.nodeType===Node.COMMENT_NODE},e.prototype.isElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},e.prototype.hasShadowRoot=function(t){return null!=t.shadowRoot&&t instanceof HTMLElement},e.prototype.isShadowRoot=function(t){return t instanceof DocumentFragment},e.prototype.importIntoDoc=function(t){return document.importNode(this.templateAwareRoot(t),!0)},e.prototype.adoptNode=function(t){return document.adoptNode(t)},e.prototype.getHref=function(t){return t.href},e.prototype.getEventKey=function(t){var e=t.key;if(null==e){if(null==(e=t.keyIdentifier))return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&B.hasOwnProperty(e)&&(e=B[e]))}return H[e]||e},e.prototype.getGlobalEventTarget=function(t,e){return"window"===e?window:"document"===e?document:"body"===e?document.body:null},e.prototype.getHistory=function(){return window.history},e.prototype.getLocation=function(){return window.location},e.prototype.getBaseHref=function(t){var e=i();return null==e?null:s(e)},e.prototype.resetBaseElement=function(){G=null},e.prototype.getUserAgent=function(){return window.navigator.userAgent},e.prototype.setData=function(t,e,n){this.setAttribute(t,"data-"+e,n)},e.prototype.getData=function(t,e){return this.getAttribute(t,"data-"+e)},e.prototype.getComputedStyle=function(t){return getComputedStyle(t)},e.prototype.setGlobalVar=function(t,e){u(n.ɵglobal,t,e)},e.prototype.supportsWebAnimation=function(){return"function"==typeof Element.prototype.animate},e.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},e.prototype.supportsCookies=function(){return!0},e.prototype.getCookie=function(t){return a(document.cookie,t)},e.prototype.setCookie=function(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)},e}(F),G=null,W=new n.InjectionToken("DocumentToken"),$=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n._init(),n}return j(e,t),e.prototype._init=function(){this._location=r().getLocation(),this._history=r().getHistory()},Object.defineProperty(e.prototype,"location",{get:function(){return this._location},enumerable:!0,configurable:!0}),e.prototype.getBaseHrefFromDOM=function(){return r().getBaseHref(this._doc)},e.prototype.onPopState=function(t){r().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)},e.prototype.onHashChange=function(t){r().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)},Object.defineProperty(e.prototype,"pathname",{get:function(){return this._location.pathname},set:function(t){this._location.pathname=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"search",{get:function(){return this._location.search},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hash",{get:function(){return this._location.hash},enumerable:!0,configurable:!0}),e.prototype.pushState=function(t,e,n){c()?this._history.pushState(t,e,n):this._location.hash=n},e.prototype.replaceState=function(t,e,n){c()?this._history.replaceState(t,e,n):this._location.hash=n},e.prototype.forward=function(){this._history.forward()},e.prototype.back=function(){this._history.back()},e}(e.PlatformLocation);$.decorators=[{type:n.Injectable}],$.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var K=function(){function t(t){this._doc=t,this._dom=r()}return t.prototype.addTag=function(t,e){return void 0===e&&(e=!1),t?this._getOrCreateElement(t,e):null},t.prototype.addTags=function(t,e){var n=this;return void 0===e&&(e=!1),t?t.reduce(function(t,r){return r&&t.push(n._getOrCreateElement(r,e)),t},[]):[]},t.prototype.getTag=function(t){return t?this._dom.querySelector(this._doc,"meta["+t+"]"):null},t.prototype.getTags=function(t){if(!t)return[];var e=this._dom.querySelectorAll(this._doc,"meta["+t+"]");return e?[].slice.call(e):[]},t.prototype.updateTag=function(t,e){if(!t)return null;e=e||this._parseSelector(t);var n=this.getTag(e);return n?this._setMetaElementAttributes(t,n):this._getOrCreateElement(t,!0)},t.prototype.removeTag=function(t){this.removeTagElement(this.getTag(t))},t.prototype.removeTagElement=function(t){t&&this._dom.remove(t)},t.prototype._getOrCreateElement=function(t,e){if(void 0===e&&(e=!1),!e){var n=this._parseSelector(t),r=this.getTag(n);if(r&&this._containsAttributes(t,r))return r}var o=this._dom.createElement("meta");this._setMetaElementAttributes(t,o);var i=this._dom.getElementsByTagName(this._doc,"head")[0];return this._dom.appendChild(i,o),o},t.prototype._setMetaElementAttributes=function(t,e){var n=this;return Object.keys(t).forEach(function(r){return n._dom.setAttribute(e,r,t[r])}),e},t.prototype._parseSelector=function(t){var e=t.name?"name":"property";return e+'="'+t[e]+'"'},t.prototype._containsAttributes=function(t,e){var n=this;return Object.keys(t).every(function(r){return n._dom.getAttribute(e,r)===t[r]})},t}();K.decorators=[{type:n.Injectable}],K.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var Q=new n.InjectionToken("TRANSITION_ID"),X=[{provide:n.APP_INITIALIZER,useFactory:l,deps:[Q,W,n.Injector],multi:!0}],Z=function(){function t(){}return t.init=function(){n.setTestabilityGetter(new t)},t.prototype.addToWindow=function(t){n.ɵglobal.getAngularTestability=function(e,n){void 0===n&&(n=!0);var r=t.findTestabilityInTree(e,n);if(null==r)throw new Error("Could not find testability for element.");return r},n.ɵglobal.getAllAngularTestabilities=function(){return t.getAllTestabilities()},n.ɵglobal.getAllAngularRootElements=function(){return t.getAllRootElements()};var e=function(t){var e=n.ɵglobal.getAllAngularTestabilities(),r=e.length,o=!1,i=function(e){o=o||e,0==--r&&t(o)};e.forEach(function(t){t.whenStable(i)})};n.ɵglobal.frameworkStabilizers||(n.ɵglobal.frameworkStabilizers=[]),n.ɵglobal.frameworkStabilizers.push(e)},t.prototype.findTestabilityInTree=function(t,e,n){if(null==e)return null;var o=t.getTestability(e);return null!=o?o:n?r().isShadowRoot(e)?this.findTestabilityInTree(t,r().getHost(e),!0):this.findTestabilityInTree(t,r().parentElement(e),!0):null},t}(),Y=function(){function t(t){this._doc=t}return t.prototype.getTitle=function(){return r().getTitle(this._doc)},t.prototype.setTitle=function(t){r().setTitle(this._doc,t)},t}();Y.decorators=[{type:n.Injectable}],Y.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var J=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},tt={ApplicationRef:n.ApplicationRef,NgZone:n.NgZone},et="ng.probe",nt="ng.coreTokens",rt=function(){function t(t,e){this.name=t,this.token=e}return t}(),ot=[{provide:n.APP_INITIALIZER,useFactory:h,deps:[[rt,new n.Optional],[n.NgProbeToken,new n.Optional]],multi:!0}],it=new n.InjectionToken("EventManagerPlugins"),st=function(){function t(t,e){var n=this;this._zone=e,this._eventNameToPlugin=new Map,t.forEach(function(t){return t.manager=n}),this._plugins=t.slice().reverse()}return t.prototype.addEventListener=function(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)},t.prototype.addGlobalEventListener=function(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)},t.prototype.getZone=function(){return this._zone},t.prototype._findPluginFor=function(t){var e=this._eventNameToPlugin.get(t);if(e)return e;for(var n=this._plugins,r=0;r<n.length;r++){var o=n[r];if(o.supports(t))return this._eventNameToPlugin.set(t,o),o}throw new Error("No event manager plugin found for event "+t)},t}();st.decorators=[{type:n.Injectable}],st.ctorParameters=function(){return[{type:Array,decorators:[{type:n.Inject,args:[it]}]},{type:n.NgZone}]};var at=function(){function t(t){this._doc=t}return t.prototype.supports=function(t){},t.prototype.addEventListener=function(t,e,n){},t.prototype.addGlobalEventListener=function(t,e,n){var o=r().getGlobalEventTarget(this._doc,t);if(!o)throw new Error("Unsupported event target "+o+" for event "+e);return this.addEventListener(o,e,n)},t}(),ut=function(){function t(){this._stylesSet=new Set}return t.prototype.addStyles=function(t){var e=this,n=new Set;t.forEach(function(t){e._stylesSet.has(t)||(e._stylesSet.add(t),n.add(t))}),this.onStylesAdded(n)},t.prototype.onStylesAdded=function(t){},t.prototype.getAllStyles=function(){return Array.from(this._stylesSet)},t}();ut.decorators=[{type:n.Injectable}],ut.ctorParameters=function(){return[]};var ct=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return j(e,t),e.prototype._addStylesToHost=function(t,e){var n=this;t.forEach(function(t){var r=n._doc.createElement("style");r.textContent=t,n._styleNodes.add(e.appendChild(r))})},e.prototype.addHost=function(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)},e.prototype.removeHost=function(t){this._hostNodes.delete(t)},e.prototype.onStylesAdded=function(t){var e=this;this._hostNodes.forEach(function(n){return e._addStylesToHost(t,n)})},e.prototype.ngOnDestroy=function(){this._styleNodes.forEach(function(t){return r().remove(t)})},e}(ut);ct.decorators=[{type:n.Injectable}],ct.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var lt={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},pt=/%COMP%/g,ht="_nghost-%COMP%",ft="_ngcontent-%COMP%",dt=function(){function t(t,e){this.eventManager=t,this.sharedStylesHost=e,this.rendererByCompId=new Map,this.defaultRenderer=new yt(t)}return t.prototype.createRenderer=function(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case n.ViewEncapsulation.Emulated:var r=this.rendererByCompId.get(e.id);return r||(r=new vt(this.eventManager,this.sharedStylesHost,e),this.rendererByCompId.set(e.id,r)),r.applyToHost(t),r;case n.ViewEncapsulation.Native:return new gt(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){var o=m(e.id,e.styles,[]);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}},t}();dt.decorators=[{type:n.Injectable}],dt.ctorParameters=function(){return[{type:st},{type:ct}]};var yt=function(){function t(t){this.eventManager=t,this.data=Object.create(null)}return t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){return e?document.createElementNS(lt[e],t):document.createElement(t)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.appendChild=function(t,e){t.appendChild(e)},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore(e,n)},t.prototype.removeChild=function(t,e){t&&t.removeChild(e)},t.prototype.selectRootElement=function(t){var e="string"==typeof t?document.querySelector(t):t;if(!e)throw new Error('The selector "'+t+'" did not match any elements');return e.textContent="",e},t.prototype.parentNode=function(t){return t.parentNode},t.prototype.nextSibling=function(t){return t.nextSibling},t.prototype.setAttribute=function(t,e,n,r){if(r){e=r+":"+e;var o=lt[r];o?t.setAttributeNS(o,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.removeAttribute=function(t,e,n){if(n){var r=lt[n];r?t.removeAttributeNS(r,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.addClass=function(t,e){t.classList.add(e)},t.prototype.removeClass=function(t,e){t.classList.remove(e)},t.prototype.setStyle=function(t,e,r,o){o&n.RendererStyleFlags2.DashCase?t.style.setProperty(e,r,o&n.RendererStyleFlags2.Important?"important":""):t.style[e]=r},t.prototype.removeStyle=function(t,e,r){r&n.RendererStyleFlags2.DashCase?t.style.removeProperty(e):t.style[e]=""},t.prototype.setProperty=function(t,e,n){g(e,"property"),t[e]=n},t.prototype.setValue=function(t,e){t.nodeValue=e},t.prototype.listen=function(t,e,n){return g(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,v(n)):this.eventManager.addEventListener(t,e,v(n))},t}(),mt="@".charCodeAt(0),vt=function(t){function e(e,n,r){var o=t.call(this,e)||this;o.component=r;var i=m(r.id,r.styles,[]);return n.addStyles(i),o.contentAttr=d(r.id),o.hostAttr=y(r.id),o}return j(e,t),e.prototype.applyToHost=function(e){t.prototype.setAttribute.call(this,e,this.hostAttr,"")},e.prototype.createElement=function(e,n){var r=t.prototype.createElement.call(this,e,n);return t.prototype.setAttribute.call(this,r,this.contentAttr,""),r},e}(yt),gt=function(t){function e(e,n,r,o){var i=t.call(this,e)||this;i.sharedStylesHost=n,i.hostEl=r,i.component=o,i.shadowRoot=r.createShadowRoot(),i.sharedStylesHost.addHost(i.shadowRoot);for(var s=m(o.id,o.styles,[]),a=0;a<s.length;a++){var u=document.createElement("style");u.textContent=s[a],i.shadowRoot.appendChild(u)}return i}return j(e,t),e.prototype.nodeOrShadowRoot=function(t){return t===this.hostEl?this.shadowRoot:t},e.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},e.prototype.appendChild=function(e,n){return t.prototype.appendChild.call(this,this.nodeOrShadowRoot(e),n)},e.prototype.insertBefore=function(e,n,r){return t.prototype.insertBefore.call(this,this.nodeOrShadowRoot(e),n,r)},e.prototype.removeChild=function(e,n){return t.prototype.removeChild.call(this,this.nodeOrShadowRoot(e),n)},e.prototype.parentNode=function(e){return this.nodeOrShadowRoot(t.prototype.parentNode.call(this,this.nodeOrShadowRoot(e)))},e}(yt),_t=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e.prototype.supports=function(t){return!0},e.prototype.addEventListener=function(t,e,n){return t.addEventListener(e,n,!1),function(){return t.removeEventListener(e,n,!1)}},e}(at);_t.decorators=[{type:n.Injectable}],_t.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var bt={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},wt=new n.InjectionToken("HammerGestureConfig"),Ct=function(){function t(){this.events=[],this.overrides={}}return t.prototype.buildHammer=function(t){var e=new Hammer(t);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(var n in this.overrides)e.get(n).set(this.overrides[n]);return e},t}();Ct.decorators=[{type:n.Injectable}],Ct.ctorParameters=function(){return[]};var Et=function(t){function e(e,n){var r=t.call(this,e)||this;return r._config=n,r}return j(e,t),e.prototype.supports=function(t){if(!bt.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t))return!1;if(!window.Hammer)throw new Error("Hammer.js is not loaded, can not bind "+t+" event");return!0},e.prototype.addEventListener=function(t,e,n){var r=this,o=this.manager.getZone();return e=e.toLowerCase(),o.runOutsideAngular(function(){var i=r._config.buildHammer(t),s=function(t){o.runGuarded(function(){n(t)})};return i.on(e,s),function(){return i.off(e,s)}})},e.prototype.isCustomEvent=function(t){return this._config.events.indexOf(t)>-1},e}(at);Et.decorators=[{type:n.Injectable}],Et.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]},{type:Ct,decorators:[{type:n.Inject,args:[wt]}]}]};var St=["alt","control","meta","shift"],xt={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},Tt=function(t){function e(e){return t.call(this,e)||this}return j(e,t),e.prototype.supports=function(t){return null!=e.parseEventName(t)},e.prototype.addEventListener=function(t,n,o){var i=e.parseEventName(n),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return r().onAndCancel(t,i.domEventName,s)})},e.parseEventName=function(t){var n=t.toLowerCase().split("."),r=n.shift();if(0===n.length||"keydown"!==r&&"keyup"!==r)return null;var o=e._normalizeKey(n.pop()),i="";if(St.forEach(function(t){var e=n.indexOf(t);e>-1&&(n.splice(e,1),i+=t+".")}),i+=o,0!=n.length||0===o.length)return null;var s={};return s.domEventName=r,s.fullKey=i,s},e.getEventFullKey=function(t){var e="",n=r().getEventKey(t);return n=n.toLowerCase()," "===n?n="space":"."===n&&(n="dot"),St.forEach(function(r){r!=n&&(0,xt[r])(t)&&(e+=r+".")}),e+=n},e.eventCallback=function(t,n,r){return function(o){e.getEventFullKey(o)===t&&r.runGuarded(function(){return n(o)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e}(at);Tt.decorators=[{type:n.Injectable}],Tt.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var Pt=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,At=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Ot=null,Mt=null,Rt=C("area,br,col,hr,img,wbr"),kt=C("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),It=C("rp,rt"),Nt=E(It,kt),Dt=E(kt,C("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),jt=E(It,C("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Lt=E(Rt,Dt,jt,Nt),Vt=C("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Ft=C("srcset"),Ut=C("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Ht=E(Vt,Ft,Ut),Bt=function(){function t(){this.sanitizedSomething=!1,this.buf=[]}return t.prototype.sanitizeChildren=function(t){for(var e=t.firstChild;e;)if(Mt.isElementNode(e)?this.startElement(e):Mt.isTextNode(e)?this.chars(Mt.nodeValue(e)):this.sanitizedSomething=!0,Mt.firstChild(e))e=Mt.firstChild(e);else for(;e;){Mt.isElementNode(e)&&this.endElement(e);var n=S(e,Mt.nextSibling(e));if(n){e=n;break}e=S(e,Mt.parentElement(e))}return this.buf.join("")},t.prototype.startElement=function(t){var e=this,n=Mt.nodeName(t).toLowerCase();if(!Lt.hasOwnProperty(n))return void(this.sanitizedSomething=!0);this.buf.push("<"),this.buf.push(n),Mt.attributeMap(t).forEach(function(t,n){var r=n.toLowerCase();if(!Ht.hasOwnProperty(r))return void(e.sanitizedSomething=!0);Vt[r]&&(t=_(t)),Ft[r]&&(t=b(t)),e.buf.push(" "),e.buf.push(n),e.buf.push('="'),e.buf.push(x(t)),e.buf.push('"')}),this.buf.push(">")},t.prototype.endElement=function(t){var e=Mt.nodeName(t).toLowerCase();Lt.hasOwnProperty(e)&&!Rt.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))},t.prototype.chars=function(t){this.buf.push(x(t))},t}(),qt=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,zt=/([^\#-~ |!])/g,Gt=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),Wt=/^url\(([^)]+)\)$/,$t=function(){function t(){}return t.prototype.sanitize=function(t,e){},t.prototype.bypassSecurityTrustHtml=function(t){},t.prototype.bypassSecurityTrustStyle=function(t){},t.prototype.bypassSecurityTrustScript=function(t){},t.prototype.bypassSecurityTrustUrl=function(t){},t.prototype.bypassSecurityTrustResourceUrl=function(t){},t}(),Kt=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n}return j(e,t),e.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case n.SecurityContext.NONE:return e;case n.SecurityContext.HTML:return e instanceof Xt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),P(this._doc,String(e)));case n.SecurityContext.STYLE:return e instanceof Zt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),O(e));case n.SecurityContext.SCRIPT:if(e instanceof Yt)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case n.SecurityContext.URL:return e instanceof te||e instanceof Jt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),_(String(e)));case n.SecurityContext.RESOURCE_URL:if(e instanceof te)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},e.prototype.checkNotSafeValue=function(t,e){if(t instanceof Qt)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},e.prototype.bypassSecurityTrustHtml=function(t){return new Xt(t)},e.prototype.bypassSecurityTrustStyle=function(t){return new Zt(t)},e.prototype.bypassSecurityTrustScript=function(t){return new Yt(t)},e.prototype.bypassSecurityTrustUrl=function(t){return new Jt(t)},e.prototype.bypassSecurityTrustResourceUrl=function(t){return new te(t)},e}($t);Kt.decorators=[{type:n.Injectable}],Kt.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Inject,args:[W]}]}]};var Qt=function(){function t(t){this.changingThisBreaksApplicationSecurity=t}return t.prototype.getTypeName=function(){},t.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},t}(),Xt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"HTML"},e}(Qt),Zt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"Style"},e}(Qt),Yt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"Script"},e}(Qt),Jt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"URL"},e}(Qt),te=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return j(e,t),e.prototype.getTypeName=function(){return"ResourceURL"},e}(Qt),ee=[{provide:n.PLATFORM_ID,useValue:e.ɵPLATFORM_BROWSER_ID},{provide:n.PLATFORM_INITIALIZER,useValue:M,multi:!0},{provide:e.PlatformLocation,useClass:$},{provide:W,useFactory:k,deps:[]}],ne=[{provide:n.Sanitizer,useExisting:$t},{provide:$t,useClass:Kt}],re=n.createPlatformFactory(n.platformCore,"browser",ee),oe=function(){function t(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}return t.withServerTransition=function(e){return{ngModule:t,providers:[{provide:n.APP_ID,useValue:e.appId},{provide:Q,useExisting:n.APP_ID},X]}},t}();oe.decorators=[{type:n.NgModule,args:[{providers:[ne,{provide:n.ErrorHandler,useFactory:R,deps:[]},{provide:it,useClass:_t,multi:!0},{provide:it,useClass:Tt,multi:!0},{provide:it,useClass:Et,multi:!0},{provide:wt,useClass:Ct},dt,{provide:n.RendererFactory2,useExisting:dt},{provide:ut,useExisting:ct},ct,n.Testability,st,ot,K,Y],exports:[e.CommonModule,n.ApplicationModule]}]}],oe.ctorParameters=function(){return[{type:oe,decorators:[{type:n.Optional},{type:n.SkipSelf}]}]};var ie="undefined"!=typeof window&&window||{},se=function(){function t(t,e){this.msPerTick=t,this.numTicks=e}return t}(),ae=function(){function t(t){this.appRef=t.injector.get(n.ApplicationRef)}return t.prototype.timeChangeDetection=function(t){var e=t&&t.record,n=null!=ie.console.profile;e&&n&&ie.console.profile("Change Detection");for(var o=r().performanceNow(),i=0;i<5||r().performanceNow()-o<500;)this.appRef.tick(),i++;var s=r().performanceNow();e&&n&&ie.console.profileEnd("Change Detection");var a=(s-o)/i;return ie.console.log("ran "+i+" change detection cycles"),ie.console.log(a.toFixed(2)+" ms per check"),new se(a,i)},t}(),ue="ng.profiler",ce=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement&&r().elementMatches(e.nativeElement,t)}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),le=new n.Version("4.1.3");t.BrowserModule=oe,t.platformBrowser=re,t.Meta=K,t.Title=Y,t.disableDebugTools=N,t.enableDebugTools=I,t.By=ce,t.NgProbeToken=rt,t.DOCUMENT=W,t.EVENT_MANAGER_PLUGINS=it,t.EventManager=st,t.HAMMER_GESTURE_CONFIG=wt,t.HammerGestureConfig=Ct,t.DomSanitizer=$t,t.VERSION=le,t.ɵBROWSER_SANITIZATION_PROVIDERS=ne,t.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS=ee,t.ɵinitDomAdapter=M,t.ɵBrowserDomAdapter=z,t.ɵsetValueOnPath=u,t.ɵBrowserPlatformLocation=$,t.ɵTRANSITION_ID=Q,t.ɵBrowserGetTestability=Z,t.ɵELEMENT_PROBE_PROVIDERS=ot,t.ɵDomAdapter=V,t.ɵgetDOM=r,t.ɵsetRootDomAdapter=o,t.ɵDomRendererFactory2=dt,t.ɵNAMESPACE_URIS=lt,t.ɵflattenStyles=m,t.ɵshimContentAttribute=d,t.ɵshimHostAttribute=y,t.ɵDomEventsPlugin=_t,t.ɵHammerGesturesPlugin=Et,t.ɵKeyEventsPlugin=Tt,t.ɵDomSharedStylesHost=ct,t.ɵSharedStylesHost=ut,t.ɵb=k,t.ɵa=R,t.ɵh=F,t.ɵg=X,t.ɵf=l,t.ɵc=h,t.ɵd=at,t.ɵe=Kt,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/core":8}],13:[function(t,e,n){!function(r,o){"object"==typeof n&&void 0!==e?o(n,t("@angular/common"),t("@angular/core"),t("rxjs/BehaviorSubject"),t("rxjs/Subject"),t("rxjs/observable/from"),t("rxjs/observable/of"),t("rxjs/operator/concatMap"),t("rxjs/operator/every"),t("rxjs/operator/first"),t("rxjs/operator/map"),t("rxjs/operator/mergeMap"),t("rxjs/operator/reduce"),t("rxjs/Observable"),t("rxjs/operator/catch"),t("rxjs/operator/concatAll"),t("rxjs/util/EmptyError"),t("rxjs/observable/fromPromise"),t("rxjs/operator/last"),t("rxjs/operator/mergeAll"),t("@angular/platform-browser"),t("rxjs/operator/filter")):o((r.ng=r.ng||{},r.ng.router=r.ng.router||{}),r.ng.common,r.ng.core,r.Rx,r.Rx,r.Rx.Observable,r.Rx.Observable,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx,r.Rx.Observable,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.ng.platformBrowser,r.Rx.Observable.prototype)}(this,function(t,e,n,r,o,i,s,a,u,c,l,p,h,f,d,y,m,v,g,_,b,w){"use strict";function C(t){return new Le(t)}function E(t){var e=Error("NavigationCancelingError: "+t);return e[Ve]=!0,e}function S(t){return t[Ve]}function x(t,e,n){var r=n.path.split("/");if(r.length>t.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||r.length<t.length))return null;for(var o={},i=0;i<r.length;i++){var s=r[i],a=t[i];if(s.startsWith(":"))o[s.substring(1)]=a;else if(s!==a.path)return null}return{consumed:t.slice(0,r.length),posParams:o}}function T(t,e){void 0===e&&(e="");for(var n=0;n<t.length;n++){var r=t[n];P(r,A(e,r))}}function P(t,e){if(!t)throw new Error("\n      Invalid configuration of route '"+e+"': Encountered undefined route.\n      The reason might be an extra comma.\n\n      Example:\n      const routes: Routes = [\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\n        { path: 'detail/:id', component: HeroDetailComponent }\n      ];\n    ");if(Array.isArray(t))throw new Error("Invalid configuration of route '"+e+"': Array cannot be specified");if(!t.component&&t.outlet&&t.outlet!==je)throw new Error("Invalid configuration of route '"+e+"': a componentless route cannot have a named outlet set");if(t.redirectTo&&t.children)throw new Error("Invalid configuration of route '"+e+"': redirectTo and children cannot be used together");if(t.redirectTo&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': redirectTo and loadChildren cannot be used together");if(t.children&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': children and loadChildren cannot be used together");if(t.redirectTo&&t.component)throw new Error("Invalid configuration of route '"+e+"': redirectTo and component cannot be used together");if(t.path&&t.matcher)throw new Error("Invalid configuration of route '"+e+"': path and matcher cannot be used together");if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error("Invalid configuration of route '"+e+"'. One of the following must be provided: component, redirectTo, children or loadChildren");if(void 0===t.path&&void 0===t.matcher)throw new Error("Invalid configuration of route '"+e+"': routes must have either a path or a matcher specified");if("string"==typeof t.path&&"/"===t.path.charAt(0))throw new Error("Invalid configuration of route '"+e+"': path cannot start with a slash");if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch){throw new Error("Invalid configuration of route '{path: \""+e+'", redirectTo: "'+t.redirectTo+"\"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.")}if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error("Invalid configuration of route '"+e+"': pathMatch can only be set to 'prefix' or 'full'");t.children&&T(t.children,e)}function A(t,e){return e?t||e.path?t&&!e.path?t+"/":!t&&e.path?e.path:t+"/"+e.path:"":t}function O(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!M(t[n],e[n]))return!1;return!0}function M(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var o,i=0;i<n.length;i++)if(o=n[i],t[o]!==e[o])return!1;return!0}function R(t){return Array.prototype.concat.apply([],t)}function k(t){return t.length>0?t[t.length-1]:null}function I(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)}function N(t,e){if(0===Object.keys(t).length)return s.of({});var n=[],r=[],o={};I(t,function(t,i){var s=l.map.call(e(i,t),function(t){return o[i]=t});i===je?n.push(s):r.push(s)});var i=y.concatAll.call(s.of.apply(void 0,n.concat(r))),a=g.last.call(i);return l.map.call(a,function(){return o})}function D(t){var e=_.mergeAll.call(t);return u.every.call(e,function(t){return!0===t})}function j(t){return n.ɵisObservable(t)?t:n.ɵisPromise(t)?v.fromPromise(Promise.resolve(t)):s.of(t)}function L(){return new Ue(new He([],{}),{},null)}function V(t,e,n){return n?F(t.queryParams,e.queryParams)&&U(t.root,e.root):H(t.queryParams,e.queryParams)&&B(t.root,e.root)}function F(t,e){return M(t,e)}function U(t,e){if(!G(t.segments,e.segments))return!1;if(t.numberOfChildren!==e.numberOfChildren)return!1;for(var n in e.children){if(!t.children[n])return!1;if(!U(t.children[n],e.children[n]))return!1}return!0}function H(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(function(n){return e[n]===t[n]})}function B(t,e){return q(t,e,e.segments)}function q(t,e,n){if(t.segments.length>n.length)return!!G(o=t.segments.slice(0,n.length),n)&&!e.hasChildren();if(t.segments.length===n.length){if(!G(t.segments,n))return!1;for(var r in e.children){if(!t.children[r])return!1;if(!B(t.children[r],e.children[r]))return!1}return!0}var o=n.slice(0,t.segments.length),i=n.slice(t.segments.length);return!!G(t.segments,o)&&(!!t.children[je]&&q(t.children[je],e,i))}function z(t,e){return G(t,e)&&t.every(function(t,n){return M(t.parameters,e[n].parameters)})}function G(t,e){return t.length===e.length&&t.every(function(t,n){return t.path===e[n].path})}function W(t,e){var n=[];return I(t.children,function(t,r){r===je&&(n=n.concat(e(t,r)))}),I(t.children,function(t,r){r!==je&&(n=n.concat(e(t,r)))}),n}function $(t){return t.segments.map(function(t){return Z(t)}).join("/")}function K(t,e){if(!t.hasChildren())return $(t);if(e){var n=t.children[je]?K(t.children[je],!1):"",r=[];return I(t.children,function(t,e){e!==je&&r.push(e+":"+K(t,!1))}),r.length>0?n+"("+r.join("//")+")":n}var o=W(t,function(e,n){return n===je?[K(t.children[je],!1)]:[n+":"+K(e,!1)]});return $(t)+"/("+o.join("//")+")"}function Q(t){return encodeURIComponent(t)}function X(t){return decodeURIComponent(t)}function Z(t){return""+Q(t.path)+Y(t.parameters)}function Y(t){return Object.keys(t).map(function(e){return";"+Q(e)+"="+Q(t[e])}).join("")}function J(t){var e=Object.keys(t).map(function(e){var n=t[e];return Array.isArray(n)?n.map(function(t){return Q(e)+"="+Q(t)}).join("&"):Q(e)+"="+Q(n)});return e.length?"?"+e.join("&"):""}function tt(t){var e=t.match(We);return e?e[0]:""}function et(t){var e=t.match($e);return e?e[0]:""}function nt(t){var e=t.match(Ke);return e?e[0]:""}function rt(t){return new f.Observable(function(e){return e.error(new Ze(t))})}function ot(t){return new f.Observable(function(e){return e.error(new Ye(t))})}function it(t){return new f.Observable(function(e){return e.error(new Error("Only absolute redirects can have named outlets. redirectTo: '"+t+"'"))})}function st(t){return new f.Observable(function(e){return e.error(E("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}function at(t,e,n,r,o){return new Je(t,e,n,r,o).apply()}function ut(t,e){var n=e.canLoad;return n&&0!==n.length?D(l.map.call(i.from(n),function(n){var r=t.get(n);return j(r.canLoad?r.canLoad(e):r(e))})):s.of(!0)}function ct(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var r=(e.matcher||x)(n,t,e);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function lt(t,e,n,r){if(n.length>0&&dt(t,n,r))return{segmentGroup:pt(o=new He(e,ft(r,new He(n,t.children)))),slicedSegments:[]};if(0===n.length&&yt(t,n,r)){var o=new He(t.segments,ht(t,n,r,t.children));return{segmentGroup:pt(o),slicedSegments:n}}return{segmentGroup:t,slicedSegments:n}}function pt(t){if(1===t.numberOfChildren&&t.children[je]){var e=t.children[je];return new He(t.segments.concat(e.segments),e.children)}return t}function ht(t,e,n,r){for(var o={},i=0,s=n;i<s.length;i++){var a=s[i];mt(t,e,a)&&!r[vt(a)]&&(o[vt(a)]=new He([],{}))}return Xe({},r,o)}function ft(t,e){var n={};n[je]=e;for(var r=0,o=t;r<o.length;r++){var i=o[r];""===i.path&&vt(i)!==je&&(n[vt(i)]=new He([],{}))}return n}function dt(t,e,n){return n.some(function(n){return mt(t,e,n)&&vt(n)!==je})}function yt(t,e,n){return n.some(function(n){return mt(t,e,n)})}function mt(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0!==n.redirectTo)}function vt(t){return t.outlet||je}function gt(t,e){if(t===e.value)return e;for(var n=0,r=e.children;n<r.length;n++){var o=gt(t,r[n]);if(o)return o}return null}function _t(t,e,n){if(n.push(e),t===e.value)return n;for(var r=0,o=e.children;r<o.length;r++){var i=_t(t,o[r],n.slice(0));if(i.length>0)return i}return[]}function bt(t,e){var n=wt(t,e),o=new r.BehaviorSubject([new Be("",{})]),i=new r.BehaviorSubject({}),s=new r.BehaviorSubject({}),a=new r.BehaviorSubject({}),u=new r.BehaviorSubject(""),c=new on(o,i,a,u,s,je,e,n.root);return c.snapshot=n.root,new rn(new en(c,[]),n)}function wt(t,e){var n=new sn([],{},{},"",{},je,e,null,t.root,-1,{});return new an("",new en(n,[]))}function Ct(t){for(var e=t.pathFromRoot,n=e.length-1;n>=1;){var r=e[n],o=e[n-1];if(r.routeConfig&&""===r.routeConfig.path)n--;else{if(o.component)break;n--}}return e.slice(n).reduce(function(t,e){return{params:nn({},t.params,e.params),data:nn({},t.data,e.data),resolve:nn({},t.resolve,e._resolvedData)}},{params:{},data:{},resolve:{}})}function Et(t,e){e.value._routerState=t,e.children.forEach(function(e){return Et(t,e)})}function St(t){var e=t.children.length>0?" { "+t.children.map(St).join(", ")+" } ":"";return""+t.value+e}function xt(t){if(t.snapshot){var e=t.snapshot;t.snapshot=t._futureSnapshot,M(e.queryParams,t._futureSnapshot.queryParams)||t.queryParams.next(t._futureSnapshot.queryParams),e.fragment!==t._futureSnapshot.fragment&&t.fragment.next(t._futureSnapshot.fragment),M(e.params,t._futureSnapshot.params)||t.params.next(t._futureSnapshot.params),O(e.url,t._futureSnapshot.url)||t.url.next(t._futureSnapshot.url),M(e.data,t._futureSnapshot.data)||t.data.next(t._futureSnapshot.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function Tt(t,e){var n=M(t.params,e.params)&&z(t.url,e.url),r=!t.parent!=!e.parent;return n&&!r&&(!t.parent||Tt(t.parent,e.parent))}function Pt(t,e,n){var r=At(t,e._root,n?n._root:void 0);return new rn(r,e)}function At(t,e,n){if(n&&t.shouldReuseRoute(e.value,n.value.snapshot)){(o=n.value)._futureSnapshot=e.value;i=Mt(t,e,n);return new en(o,i)}if(t.retrieve(e.value)){var r=t.retrieve(e.value).route;return Ot(e,r),r}var o=Rt(e.value),i=e.children.map(function(e){return At(t,e)});return new en(o,i)}function Ot(t,e){if(t.value.routeConfig!==e.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(t.children.length!==e.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");e.value._futureSnapshot=t.value;for(var n=0;n<t.children.length;++n)Ot(t.children[n],e.children[n])}function Mt(t,e,n){return e.children.map(function(e){for(var r=0,o=n.children;r<o.length;r++){var i=o[r];if(t.shouldReuseRoute(i.value.snapshot,e.value))return At(t,e,i)}return At(t,e)})}function Rt(t){return new on(new r.BehaviorSubject(t.url),new r.BehaviorSubject(t.params),new r.BehaviorSubject(t.queryParams),new r.BehaviorSubject(t.fragment),new r.BehaviorSubject(t.data),t.outlet,t.component,t)}function kt(t,e,n,r,o){if(0===n.length)return Nt(e.root,e.root,e,r,o);var i=jt(n);if(i.toRoot())return Nt(e.root,new He([],{}),e,r,o);var s=Lt(i,e,t),a=s.processChildren?Bt(s.segmentGroup,s.index,i.commands):Ht(s.segmentGroup,s.index,i.commands);return Nt(s.segmentGroup,a,e,r,o)}function It(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Nt(t,e,n,r,o){var i={};return r&&I(r,function(t,e){i[e]=Array.isArray(t)?t.map(function(t){return""+t}):""+t}),n.root===t?new Ue(e,i,o):new Ue(Dt(n.root,t,e),i,o)}function Dt(t,e,n){var r={};return I(t.children,function(t,o){r[o]=t===e?n:Dt(t,e,n)}),new He(t.segments,r)}function jt(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new un(!0,0,t);var e=0,n=!1,r=t.reduce(function(t,r,o){if("object"==typeof r&&null!=r){if(r.outlets){var i={};return I(r.outlets,function(t,e){i[e]="string"==typeof t?t.split("/"):t}),t.concat([{outlets:i}])}if(r.segmentPath)return t.concat([r.segmentPath])}return"string"!=typeof r?t.concat([r]):0===o?(r.split("/").forEach(function(r,o){0==o&&"."===r||(0==o&&""===r?n=!0:".."===r?e++:""!=r&&t.push(r))}),t):t.concat([r])},[]);return new un(n,e,r)}function Lt(t,e,n){if(t.isAbsolute)return new cn(e.root,!0,0);if(-1===n.snapshot._lastPathIndex)return new cn(n.snapshot._urlSegment,!0,0);var r=It(t.commands[0])?0:1,o=n.snapshot._lastPathIndex+r;return Vt(n.snapshot._urlSegment,o,t.numberOfDoubleDots)}function Vt(t,e,n){for(var r=t,o=e,i=n;i>o;){if(i-=o,!(r=r.parent))throw new Error("Invalid number of '../'");o=r.segments.length}return new cn(r,!1,o-i)}function Ft(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets[je]:""+t}function Ut(t){return"object"!=typeof t[0]?(e={},e[je]=t,e):void 0===t[0].outlets?(n={},n[je]=t,n):t[0].outlets;var e,n}function Ht(t,e,n){if(t||(t=new He([],{})),0===t.segments.length&&t.hasChildren())return Bt(t,e,n);var r=qt(t,e,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndex<t.segments.length){var i=new He(t.segments.slice(0,r.pathIndex),{});return i.children[je]=new He(t.segments.slice(r.pathIndex),t.children),Bt(i,0,o)}return r.match&&0===o.length?new He(t.segments,{}):r.match&&!t.hasChildren()?zt(t,e,n):r.match?Bt(t,0,o):zt(t,e,n)}function Bt(t,e,n){if(0===n.length)return new He(t.segments,{});var r=Ut(n),o={};return I(r,function(n,r){null!==n&&(o[r]=Ht(t.children[r],e,n))}),I(t.children,function(t,e){void 0===r[e]&&(o[e]=t)}),new He(t.segments,o)}function qt(t,e,n){for(var r=0,o=e,i={match:!1,pathIndex:0,commandIndex:0};o<t.segments.length;){if(r>=n.length)return i;var s=t.segments[o],a=Ft(n[r]),u=r<n.length-1?n[r+1]:null;if(o>0&&void 0===a)break;if(a&&u&&"object"==typeof u&&void 0===u.outlets){if(!$t(a,u,s))return i;r+=2}else{if(!$t(a,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}function zt(t,e,n){for(var r=t.segments.slice(0,e),o=0;o<n.length;){if("object"==typeof n[o]&&void 0!==n[o].outlets){var i=Gt(n[o].outlets);return new He(r,i)}if(0===o&&It(n[0])){var s=t.segments[e];r.push(new Be(s.path,n[0])),o++}else{var a=Ft(n[o]),u=o<n.length-1?n[o+1]:null;a&&u&&It(u)?(r.push(new Be(a,Wt(u))),o+=2):(r.push(new Be(a,{})),o++)}}return new He(r,{})}function Gt(t){var e={};return I(t,function(t,n){null!==t&&(e[n]=zt(new He([],{}),0,t))}),e}function Wt(t){var e={};return I(t,function(t,n){return e[n]=""+t}),e}function $t(t,e,n){return t==n.path&&M(e,n.parameters)}function Kt(t,e,n,r){return new hn(t,e,n,r).recognize()}function Qt(t){t.sort(function(t,e){return t.value.outlet===je?-1:e.value.outlet===je?1:t.value.outlet.localeCompare(e.value.outlet)})}function Xt(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}function Zt(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new pn;return{consumedSegments:[],lastChild:0,parameters:{}}}var r=(e.matcher||x)(n,t,e);if(!r)throw new pn;var o={};I(r.posParams,function(t,e){o[e]=t.path});var i=ln({},o,r.consumed[r.consumed.length-1].parameters);return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:i}}function Yt(t){var e={};t.forEach(function(t){var n=e[t.value.outlet];if(n){var r=n.url.map(function(t){return t.toString()}).join("/"),o=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+r+"' and '"+o+"'.")}e[t.value.outlet]=t.value})}function Jt(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function te(t){for(var e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)n+=(e=e._sourceSegment)._segmentIndexShift?e._segmentIndexShift:0;return n-1}function ee(t,e,n,r){if(n.length>0&&oe(t,n,r)){var o=new He(e,re(t,e,r,new He(n,t.children)));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&ie(t,n,r)){var i=new He(t.segments,ne(t,n,r,t.children));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}var s=new He(t.segments,t.children);return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:n}}function ne(t,e,n,r){for(var o={},i=0,s=n;i<s.length;i++){var a=s[i];if(se(t,e,a)&&!r[ae(a)]){var u=new He([],{});u._sourceSegment=t,u._segmentIndexShift=t.segments.length,o[ae(a)]=u}}return ln({},r,o)}function re(t,e,n,r){var o={};o[je]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(var i=0,s=n;i<s.length;i++){var a=s[i];if(""===a.path&&ae(a)!==je){var u=new He([],{});u._sourceSegment=t,u._segmentIndexShift=e.length,o[ae(a)]=u}}return o}function oe(t,e,n){return n.some(function(n){return se(t,e,n)&&ae(n)!==je})}function ie(t,e,n){return n.some(function(n){return se(t,e,n)})}function se(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0===n.redirectTo)}function ae(t){return t.outlet||je}function ue(t){return t.data||{}}function ce(t){return t.resolve||{}}function le(t){throw t}function pe(t){return s.of(null)}function he(t){xt(t.value),t.children.forEach(he)}function fe(t){for(var e=t.parent;e;e=e.parent){var n=e._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null}return null}function de(t){if(!t)return null;for(var e=t.parent;e;e=e.parent){var n=e._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}function ye(t){var e={};return t&&t.children.forEach(function(t){return e[t.value.outlet]=t}),e}function me(t,e){var n=t._outlets[e.outlet];if(!n){var r=e.component.name;throw e.outlet===je?new Error("Cannot find primary outlet to load '"+r+"'"):new Error("Cannot find the outlet "+e.outlet+" to load '"+r+"'")}return n}function ve(t){for(var e=0;e<t.length;e++){var n=t[e];if(null==n)throw new Error("The requested path contains "+n+" segment at index "+e)}}function ge(t){return""===t||!!t}function _e(){return new n.NgProbeToken("Router",bn)}function be(t,n,r){return void 0===r&&(r={}),r.useHash?new e.HashLocationStrategy(t,n):new e.PathLocationStrategy(t,n)}function we(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function Ce(t){return[{provide:n.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:t},{provide:fn,multi:!0,useValue:t}]}function Ee(t,e,n,r,o,i,s,a,u,c,l){void 0===u&&(u={});var p=new bn(null,e,n,r,o,i,s,R(a));if(c&&(p.urlHandlingStrategy=c),l&&(p.routeReuseStrategy=l),u.errorHandler&&(p.errorHandler=u.errorHandler),u.enableTracing){var h=b.ɵgetDOM();p.events.subscribe(function(t){h.logGroup("Router Event: "+t.constructor.name),h.log(t.toString()),h.log(t),h.logGroupEnd()})}return p}function Se(t){return t.routerState.root}function xe(t){return t.appInitializer.bind(t)}function Te(t){return t.bootstrapListener.bind(t)}function Pe(){return[Un,{provide:n.APP_INITIALIZER,multi:!0,useFactory:xe,deps:[Un]},{provide:Hn,useFactory:Te,deps:[Un]},{provide:n.APP_BOOTSTRAP_LISTENER,multi:!0,useExisting:Hn}]}var Ae=function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},Oe=function(){function t(t,e){this.id=t,this.url=e}return t.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},t}(),Me=function(){function t(t,e,n){this.id=t,this.url=e,this.urlAfterRedirects=n}return t.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},t}(),Re=function(){function t(t,e,n){this.id=t,this.url=e,this.reason=n}return t.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},t}(),ke=function(){function t(t,e,n){this.id=t,this.url=e,this.error=n}return t.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},t}(),Ie=function(){function t(t,e,n,r){this.id=t,this.url=e,this.urlAfterRedirects=n,this.state=r}return t.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},t}(),Ne=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadStart(path: "+this.route.path+")"},t}(),De=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadEnd(path: "+this.route.path+")"},t}(),je="primary",Le=function(){function t(t){this.params=t||{}}return t.prototype.has=function(t){return this.params.hasOwnProperty(t)},t.prototype.get=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e[0]:e}return null},t.prototype.getAll=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e:[e]}return[]},Object.defineProperty(t.prototype,"keys",{get:function(){return Object.keys(this.params)},enumerable:!0,configurable:!0}),t}(),Ve="ngNavigationCancelingError",Fe=function(){function t(t,e){this.routes=t,this.module=e}return t}(),Ue=function(){function t(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}return Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=C(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Ge.serialize(this)},t}(),He=function(){function t(t,e){var n=this;this.segments=t,this.children=e,this.parent=null,I(e,function(t,e){return t.parent=n})}return t.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(t.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return $(this)},t}(),Be=function(){function t(t,e){this.path=t,this.parameters=e}return Object.defineProperty(t.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=C(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Z(this)},t}(),qe=function(){function t(){}return t.prototype.parse=function(t){},t.prototype.serialize=function(t){},t}(),ze=function(){function t(){}return t.prototype.parse=function(t){var e=new Qe(t);return new Ue(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},t.prototype.serialize=function(t){return""+("/"+K(t.root,!0))+J(t.queryParams)+("string"==typeof t.fragment?"#"+encodeURI(t.fragment):"")},t}(),Ge=new ze,We=/^[^\/()?;=&#]+/,$e=/^[^=?&#]+/,Ke=/^[^?&#]+/,Qe=function(){function t(t){this.url=t,this.remaining=t}return t.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new He([],{}):new He([],this.parseChildren())},t.prototype.parseQueryParams=function(){var t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t},t.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURI(this.remaining):null},t.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n[je]=new He(t,e)),n},t.prototype.parseSegment=function(){var t=tt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(t),new Be(X(t),this.parseMatrixParams())},t.prototype.parseMatrixParams=function(){for(var t={};this.consumeOptional(";");)this.parseParam(t);return t},t.prototype.parseParam=function(t){var e=tt(this.remaining);if(e){this.capture(e);var n="";if(this.consumeOptional("=")){var r=tt(this.remaining);r&&(n=r,this.capture(n))}t[X(e)]=X(n)}},t.prototype.parseQueryParam=function(t){var e=et(this.remaining);if(e){this.capture(e);var n="";if(this.consumeOptional("=")){var r=nt(this.remaining);r&&(n=r,this.capture(n))}var o=X(e),i=X(n);if(t.hasOwnProperty(o)){var s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}},t.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=tt(this.remaining),r=this.remaining[n.length];if("/"!==r&&")"!==r&&";"!==r)throw new Error("Cannot parse url '"+this.url+"'");var o=void 0;n.indexOf(":")>-1?(o=n.substr(0,n.indexOf(":")),this.capture(o),this.capture(":")):t&&(o=je);var i=this.parseChildren();e[o]=1===Object.keys(i).length?i[je]:new He([],i),this.consumeOptional("//")}return e},t.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},t.prototype.consumeOptional=function(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)},t.prototype.capture=function(t){if(!this.consumeOptional(t))throw new Error('Expected "'+t+'".')},t}(),Xe=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},Ze=function(){function t(t){this.segmentGroup=t||null}return t}(),Ye=function(){function t(t){this.urlTree=t}return t}(),Je=function(){function t(t,e,r,o,i){this.configLoader=e,this.urlSerializer=r,this.urlTree=o,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(n.NgModuleRef)}return t.prototype.apply=function(){var t=this,e=this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,je),n=l.map.call(e,function(e){return t.createUrlTree(e,t.urlTree.queryParams,t.urlTree.fragment)});return d._catch.call(n,function(e){if(e instanceof Ye)return t.allowRedirects=!1,t.match(e.urlTree);if(e instanceof Ze)throw t.noMatchError(e);throw e})},t.prototype.match=function(t){var e=this,n=this.expandSegmentGroup(this.ngModule,this.config,t.root,je),r=l.map.call(n,function(n){return e.createUrlTree(n,t.queryParams,t.fragment)});return d._catch.call(r,function(t){if(t instanceof Ze)throw e.noMatchError(t);throw t})},t.prototype.noMatchError=function(t){return new Error("Cannot match any routes. URL Segment: '"+t.segmentGroup+"'")},t.prototype.createUrlTree=function(t,e,n){var r=t.segments.length>0?new He([],(o={},o[je]=t,o)):t;return new Ue(r,e,n);var o},t.prototype.expandSegmentGroup=function(t,e,n,r){return 0===n.segments.length&&n.hasChildren()?l.map.call(this.expandChildren(t,e,n),function(t){return new He([],t)}):this.expandSegment(t,n,e,n.segments,r,!0)},t.prototype.expandChildren=function(t,e,n){var r=this;return N(n.children,function(n,o){return r.expandSegmentGroup(t,e,o,n)})},t.prototype.expandSegment=function(t,e,n,r,o,i){var a=this,u=s.of.apply(void 0,n),p=l.map.call(u,function(u){var c=a.expandSegmentAgainstRoute(t,e,n,u,r,o,i);return d._catch.call(c,function(t){if(t instanceof Ze)return s.of(null);throw t})}),h=y.concatAll.call(p),f=c.first.call(h,function(t){return!!t});return d._catch.call(f,function(t,n){if(t instanceof m.EmptyError){if(a.noLeftoversInUrl(e,r,o))return s.of(new He([],{}));throw new Ze(e)}throw t})},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.expandSegmentAgainstRoute=function(t,e,n,r,o,i,s){return vt(r)!==i?rt(e):void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,o):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,r,o,i):rt(e)},t.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,n,r,o,i){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,o,i)},t.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t,e,n,r){var o=this,i=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?ot(i):p.mergeMap.call(this.lineralizeSegments(n,i),function(n){var i=new He(n,{});return o.expandSegment(t,i,e,n,r,!1)})},t.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,n,r,o,i){var s=this,a=ct(e,r,o),u=a.matched,c=a.consumedSegments,l=a.lastChild,h=a.positionalParamSegments;if(!u)return rt(e);var f=this.applyRedirectCommands(c,r.redirectTo,h);return r.redirectTo.startsWith("/")?ot(f):p.mergeMap.call(this.lineralizeSegments(r,f),function(r){return s.expandSegment(t,e,n,r.concat(o.slice(l)),i,!1)})},t.prototype.matchSegmentAgainstRoute=function(t,e,n,r){var o=this;if("**"===n.path)return n.loadChildren?l.map.call(this.configLoader.load(t.injector,n),function(t){return n._loadedConfig=t,new He(r,{})}):s.of(new He(r,{}));var i=ct(e,n,r),a=i.matched,u=i.consumedSegments,c=i.lastChild;if(!a)return rt(e);var h=r.slice(c),f=this.getChildConfig(t,n);return p.mergeMap.call(f,function(t){var n=t.module,r=t.routes,i=lt(e,u,h,r),a=i.segmentGroup,c=i.slicedSegments;if(0===c.length&&a.hasChildren()){var p=o.expandChildren(n,r,a);return l.map.call(p,function(t){return new He(u,t)})}if(0===r.length&&0===c.length)return s.of(new He(u,{}));var f=o.expandSegment(n,a,r,c,je,!0);return l.map.call(f,function(t){return new He(u.concat(t.segments),t.children)})})},t.prototype.getChildConfig=function(t,e){var n=this;return e.children?s.of(new Fe(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?s.of(e._loadedConfig):p.mergeMap.call(ut(t.injector,e),function(r){return r?l.map.call(n.configLoader.load(t.injector,e),function(t){return e._loadedConfig=t,t}):st(e)}):s.of(new Fe([],t))},t.prototype.lineralizeSegments=function(t,e){for(var n=[],r=e.root;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return s.of(n);if(r.numberOfChildren>1||!r.children[je])return it(t.redirectTo);r=r.children[je]}},t.prototype.applyRedirectCommands=function(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)},t.prototype.applyRedirectCreatreUrlTree=function(t,e,n,r){var o=this.createSegmentGroup(t,e.root,n,r);return new Ue(o,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)},t.prototype.createQueryParams=function(t,e){var n={};return I(t,function(t,r){if("string"==typeof t&&t.startsWith(":")){var o=t.substring(1);n[r]=e[o]}else n[r]=t}),n},t.prototype.createSegmentGroup=function(t,e,n,r){var o=this,i=this.createSegments(t,e.segments,n,r),s={};return I(e.children,function(e,i){s[i]=o.createSegmentGroup(t,e,n,r)}),new He(i,s)},t.prototype.createSegments=function(t,e,n,r){var o=this;return e.map(function(e){return e.path.startsWith(":")?o.findPosParam(t,e,r):o.findOrReturn(e,n)})},t.prototype.findPosParam=function(t,e,n){var r=n[e.path.substring(1)];if(!r)throw new Error("Cannot redirect to '"+t+"'. Cannot find '"+e.path+"'.");return r},t.prototype.findOrReturn=function(t,e){for(var n=0,r=0,o=e;r<o.length;r++){var i=o[r];if(i.path===t.path)return e.splice(n),i;n++}return t},t}(),tn=function(){function t(t){this._root=t}return Object.defineProperty(t.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),t.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},t.prototype.children=function(t){var e=gt(t,this._root);return e?e.children.map(function(t){return t.value}):[]},t.prototype.firstChild=function(t){var e=gt(t,this._root);return e&&e.children.length>0?e.children[0].value:null},t.prototype.siblings=function(t){var e=_t(t,this._root,[]);return e.length<2?[]:e[e.length-2].children.map(function(t){return t.value}).filter(function(e){return e!==t})},t.prototype.pathFromRoot=function(t){return _t(t,this._root,[]).map(function(t){return t.value})},t}(),en=function(){function t(t,e){this.value=t,this.children=e}return t.prototype.toString=function(){return"TreeNode("+this.value+")"},t}(),nn=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},rn=function(t){function e(e,n){var r=t.call(this,e)||this;return r.snapshot=n,Et(r,e),r}return Ae(e,t),e.prototype.toString=function(){return this.snapshot.toString()},e}(tn),on=function(){function t(t,e,n,r,o,i,s,a){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=o,this.outlet=i,this.component=s,this._futureSnapshot=a}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=l.map.call(this.params,function(t){return C(t)})),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=l.map.call(this.queryParams,function(t){return C(t)})),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},t}(),sn=function(){function t(t,e,n,r,o,i,s,a,u,c,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=o,this.outlet=i,this.component=s,this._routeConfig=a,this._urlSegment=u,this._lastPathIndex=c,this._resolve=l}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=C(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=C(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return"Route(url:'"+this.url.map(function(t){return t.toString()}).join("/")+"', path:'"+(this._routeConfig?this._routeConfig.path:"")+"')"},t}(),an=function(t){function e(e,n){var r=t.call(this,n)||this;return r.url=e,Et(r,n),r}return Ae(e,t),e.prototype.toString=function(){return St(this._root)},e}(tn),un=function(){function t(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&It(n[0]))throw new Error("Root segment cannot have matrix parameters");var r=n.find(function(t){return"object"==typeof t&&null!=t&&t.outlets});if(r&&r!==k(n))throw new Error("{outlets:{}} has to be the last command")}return t.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},t}(),cn=function(){function t(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}return t}(),ln=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},pn=function(){function t(){}return t}(),hn=function(){function t(t,e,n,r){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=r}return t.prototype.recognize=function(){try{var t=ee(this.urlTree.root,[],[],this.config).segmentGroup,e=this.processSegmentGroup(this.config,t,je),n=new sn([],Object.freeze({}),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,{},je,this.rootComponentType,null,this.urlTree.root,-1,{}),r=new en(n,e),o=new an(this.url,r);return this.inheriteParamsAndData(o._root),s.of(o)}catch(t){return new f.Observable(function(e){return e.error(t)})}},t.prototype.inheriteParamsAndData=function(t){var e=this,n=t.value,r=Ct(n);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(function(t){return e.inheriteParamsAndData(t)})},t.prototype.processSegmentGroup=function(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)},t.prototype.processChildren=function(t,e){var n=this,r=W(e,function(e,r){return n.processSegmentGroup(t,e,r)});return Yt(r),Qt(r),r},t.prototype.processSegment=function(t,e,n,r){for(var o=0,i=t;o<i.length;o++){var s=i[o];try{return this.processSegmentAgainstRoute(s,e,n,r)}catch(t){if(!(t instanceof pn))throw t}}if(this.noLeftoversInUrl(e,n,r))return[];throw new pn},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.processSegmentAgainstRoute=function(t,e,n,r){if(t.redirectTo)throw new pn;if((t.outlet||je)!==r)throw new pn;if("**"===t.path){var o=n.length>0?k(n).parameters:{},i=new sn(n,o,Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,ue(t),r,t.component,t,Jt(e),te(e)+n.length,ce(t));return[new en(i,[])]}var s=Zt(e,t,n),a=s.consumedSegments,u=s.parameters,c=s.lastChild,l=n.slice(c),p=Xt(t),h=ee(e,a,l,p),f=h.segmentGroup,d=h.slicedSegments,y=new sn(a,u,Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,ue(t),r,t.component,t,Jt(e),te(e)+a.length,ce(t));if(0===d.length&&f.hasChildren()){var m=this.processChildren(p,f);return[new en(y,m)]}if(0===p.length&&0===d.length)return[new en(y,[])];var v=this.processSegment(p,f,d,je);return[new en(y,v)]},t}(),fn=new n.InjectionToken("ROUTES"),dn=function(){function t(t,e,n,r){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=r}return t.prototype.load=function(t,e){var n=this;this.onLoadStartListener&&this.onLoadStartListener(e);var r=this.loadModuleFactory(e.loadChildren);return l.map.call(r,function(r){n.onLoadEndListener&&n.onLoadEndListener(e);var o=r.create(t);return new Fe(R(o.injector.get(fn)),o)})},t.prototype.loadModuleFactory=function(t){var e=this;return"string"==typeof t?v.fromPromise(this.loader.load(t)):p.mergeMap.call(j(t()),function(t){return t instanceof n.NgModuleFactory?s.of(t):v.fromPromise(e.compiler.compileModuleAsync(t))})},t}(),yn=function(){function t(){this._outlets={}}return t.prototype.registerOutlet=function(t,e){this._outlets[t]=e},t.prototype.removeOutlet=function(t){this._outlets[t]=void 0},t}(),mn=function(){function t(){}return t.prototype.shouldProcessUrl=function(t){},t.prototype.extract=function(t){},t.prototype.merge=function(t,e){},t}(),vn=function(){function t(){}return t.prototype.shouldProcessUrl=function(t){return!0},t.prototype.extract=function(t){return t},t.prototype.merge=function(t,e){return t},t}(),gn=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},_n=function(){function t(){}return t.prototype.shouldDetach=function(t){return!1},t.prototype.store=function(t,e){},t.prototype.shouldAttach=function(t){return!1},t.prototype.retrieve=function(t){return null},t.prototype.shouldReuseRoute=function(t,e){return t.routeConfig===e.routeConfig},t}(),bn=function(){function t(t,e,i,s,a,u,c,l){var p=this;this.rootComponentType=t,this.urlSerializer=e,this.outletMap=i,this.location=s,this.config=l,this.navigations=new r.BehaviorSubject(null),this.routerEvents=new o.Subject,this.navigationId=0,this.errorHandler=le,this.navigated=!1,this.hooks={beforePreactivation:pe,afterPreactivation:pe},this.urlHandlingStrategy=new vn,this.routeReuseStrategy=new _n;var h=function(t){return p.triggerEvent(new Ne(t))},f=function(t){return p.triggerEvent(new De(t))};this.ngModule=a.get(n.NgModuleRef),this.resetConfig(l),this.currentUrlTree=L(),this.rawUrlTree=this.currentUrlTree,this.configLoader=new dn(u,c,h,f),this.currentRouterState=bt(this.currentUrlTree,this.rootComponentType),this.processNavigations()}return t.prototype.resetRootComponentType=function(t){this.rootComponentType=t,this.currentRouterState.root.component=this.rootComponentType},t.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},t.prototype.setUpLocationChangeListener=function(){var t=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe(Zone.current.wrap(function(e){var n=t.urlSerializer.parse(e.url),r="popstate"===e.type?"popstate":"hashchange";setTimeout(function(){t.scheduleNavigation(n,r,{replaceUrl:!0})},0)})))},Object.defineProperty(t.prototype,"routerState",{get:function(){return this.currentRouterState},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"events",{get:function(){return this.routerEvents},enumerable:!0,configurable:!0}),t.prototype.triggerEvent=function(t){this.routerEvents.next(t)},t.prototype.resetConfig=function(t){T(t),this.config=t},t.prototype.ngOnDestroy=function(){this.dispose()},t.prototype.dispose=function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)},t.prototype.createUrlTree=function(t,e){var r=void 0===e?{}:e,o=r.relativeTo,i=r.queryParams,s=r.fragment,a=r.preserveQueryParams,u=r.queryParamsHandling,c=r.preserveFragment;n.isDevMode()&&a&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");var l=o||this.routerState.root,p=c?this.currentUrlTree.fragment:s,h=null;if(u)switch(u){case"merge":h=gn({},this.currentUrlTree.queryParams,i);break;case"preserve":h=this.currentUrlTree.queryParams;break;default:h=i||null}else h=a?this.currentUrlTree.queryParams:i||null;return kt(l,this.currentUrlTree,t,h,p)},t.prototype.navigateByUrl=function(t,e){void 0===e&&(e={skipLocationChange:!1});var n=t instanceof Ue?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,"imperative",e)},t.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),ve(t),"object"==typeof e.queryParams&&null!==e.queryParams&&(e.queryParams=this.removeEmptyProps(e.queryParams)),this.navigateByUrl(this.createUrlTree(t,e),e)},t.prototype.serializeUrl=function(t){return this.urlSerializer.serialize(t)},t.prototype.parseUrl=function(t){return this.urlSerializer.parse(t)},t.prototype.isActive=function(t,e){if(t instanceof Ue)return V(this.currentUrlTree,t,e);var n=this.urlSerializer.parse(t);return V(this.currentUrlTree,n,e)},t.prototype.removeEmptyProps=function(t){return Object.keys(t).reduce(function(e,n){var r=t[n];return null!==r&&void 0!==r&&(e[n]=r),e},{})},t.prototype.processNavigations=function(){var t=this;a.concatMap.call(this.navigations,function(e){return e?(t.executeScheduledNavigation(e),e.promise.catch(function(){})):s.of(null)}).subscribe(function(){})},t.prototype.scheduleNavigation=function(t,e,n){var r=this.navigations.value;if(r&&"imperative"!==e&&"imperative"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(r&&"hashchange"==e&&"popstate"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);var o=null,i=null,s=new Promise(function(t,e){o=t,i=e}),a=++this.navigationId;return this.navigations.next({id:a,source:e,rawUrl:t,extras:n,resolve:o,reject:i,promise:s}),s.catch(function(t){return Promise.reject(t)})},t.prototype.executeScheduledNavigation=function(t){var e=this,n=t.id,r=t.rawUrl,o=t.extras,i=t.resolve,s=t.reject,a=this.urlHandlingStrategy.extract(r),u=!this.navigated||a.toString()!==this.currentUrlTree.toString();u&&this.urlHandlingStrategy.shouldProcessUrl(r)?(this.routerEvents.next(new Oe(n,this.serializeUrl(a))),Promise.resolve().then(function(t){return e.runNavigate(a,r,!!o.skipLocationChange,!!o.replaceUrl,n,null)}).then(i,s)):u&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)?(this.routerEvents.next(new Oe(n,this.serializeUrl(a))),Promise.resolve().then(function(t){return e.runNavigate(a,r,!1,!1,n,bt(a,e.rootComponentType).snapshot)}).then(i,s)):(this.rawUrlTree=r,i(null))},t.prototype.runNavigate=function(t,e,n,r,o,i){var a=this;return o!==this.navigationId?(this.location.go(this.urlSerializer.serialize(this.currentUrlTree)),this.routerEvents.next(new Re(o,this.serializeUrl(t),"Navigation ID "+o+" is not equal to the current navigation id "+this.navigationId)),Promise.resolve(!1)):new Promise(function(u,c){var h;if(i)h=s.of({appliedUrl:t,snapshot:i});else{var f=at(a.ngModule.injector,a.configLoader,a.urlSerializer,t,a.config);h=p.mergeMap.call(f,function(e){return l.map.call(Kt(a.rootComponentType,a.config,e,a.serializeUrl(e)),function(n){return a.routerEvents.next(new Ie(o,a.serializeUrl(t),a.serializeUrl(e),n)),{appliedUrl:e,snapshot:n}})})}var d,y,m=p.mergeMap.call(h,function(t){return l.map.call(a.hooks.beforePreactivation(t.snapshot),function(){return t})}),v=l.map.call(m,function(t){var e=t.appliedUrl,n=t.snapshot,r=a.ngModule.injector;return(d=new En(n,a.currentRouterState.snapshot,r)).traverse(a.outletMap),{appliedUrl:e,snapshot:n}}),g=p.mergeMap.call(v,function(t){var e=t.appliedUrl,n=t.snapshot;return a.navigationId!==o?s.of(!1):l.map.call(d.checkGuards(),function(t){return{appliedUrl:e,snapshot:n,shouldActivate:t}})}),_=p.mergeMap.call(g,function(t){return a.navigationId!==o?s.of(!1):t.shouldActivate?l.map.call(d.resolveData(),function(){return t}):s.of(t)}),b=p.mergeMap.call(_,function(t){return l.map.call(a.hooks.afterPreactivation(t.snapshot),function(){return t})}),w=l.map.call(b,function(t){var e=t.appliedUrl,n=t.snapshot,r=t.shouldActivate;return r?{appliedUrl:e,state:Pt(a.routeReuseStrategy,n,a.currentRouterState),shouldActivate:r}:{appliedUrl:e,state:null,shouldActivate:r}}),C=a.currentRouterState,E=a.currentUrlTree;w.forEach(function(t){var i=t.appliedUrl,s=t.state;if(!t.shouldActivate||o!==a.navigationId)return void(y=!1);if(a.currentUrlTree=i,a.rawUrlTree=a.urlHandlingStrategy.merge(a.currentUrlTree,e),a.currentRouterState=s,!n){var u=a.urlSerializer.serialize(a.rawUrlTree);a.location.isCurrentPathEqualTo(u)||r?a.location.replaceState(u):a.location.go(u)}new Sn(a.routeReuseStrategy,s,C).activate(a.outletMap),y=!0}).then(function(){y?(a.navigated=!0,a.routerEvents.next(new Me(o,a.serializeUrl(t),a.serializeUrl(a.currentUrlTree))),u(!0)):(a.resetUrlToCurrentUrlTree(),a.routerEvents.next(new Re(o,a.serializeUrl(t),"")),u(!1))},function(n){if(S(n))a.resetUrlToCurrentUrlTree(),a.navigated=!0,a.routerEvents.next(new Re(o,a.serializeUrl(t),n.message)),u(!1);else{a.routerEvents.next(new ke(o,a.serializeUrl(t),n));try{u(a.errorHandler(n))}catch(t){c(t)}}a.currentRouterState=C,a.currentUrlTree=E,a.rawUrlTree=a.urlHandlingStrategy.merge(a.currentUrlTree,e),a.location.replaceState(a.serializeUrl(a.rawUrlTree))})})},t.prototype.resetUrlToCurrentUrlTree=function(){var t=this.urlSerializer.serialize(this.rawUrlTree);this.location.replaceState(t)},t}(),wn=function(){function t(t){this.path=t}return Object.defineProperty(t.prototype,"route",{get:function(){return this.path[this.path.length-1]},enumerable:!0,configurable:!0}),t}(),Cn=function(){function t(t,e){this.component=t,this.route=e}return t}(),En=function(){function t(t,e,n){this.future=t,this.curr=e,this.moduleInjector=n,this.canActivateChecks=[],this.canDeactivateChecks=[]}return t.prototype.traverse=function(t){var e=this.future._root,n=this.curr?this.curr._root:null;this.traverseChildRoutes(e,n,t,[e.value])},t.prototype.checkGuards=function(){var t=this;if(0===this.canDeactivateChecks.length&&0===this.canActivateChecks.length)return s.of(!0);var e=this.runCanDeactivateChecks();return p.mergeMap.call(e,function(e){return e?t.runCanActivateChecks():s.of(!1)})},t.prototype.resolveData=function(){var t=this;if(0===this.canActivateChecks.length)return s.of(null);var e=i.from(this.canActivateChecks),n=a.concatMap.call(e,function(e){return t.runResolve(e.route)});return h.reduce.call(n,function(t,e){return t})},t.prototype.traverseChildRoutes=function(t,e,n,r){var o=this,i=ye(e);t.children.forEach(function(t){o.traverseRoutes(t,i[t.value.outlet],n,r.concat([t.value])),delete i[t.value.outlet]}),I(i,function(t,e){return o.deactiveRouteAndItsChildren(t,n._outlets[e])})},t.prototype.traverseRoutes=function(t,e,n,r){var o=t.value,i=e?e.value:null,s=n?n._outlets[t.value.outlet]:null;i&&o._routeConfig===i._routeConfig?(this.shouldRunGuardsAndResolvers(i,o,o._routeConfig.runGuardsAndResolvers)?(this.canActivateChecks.push(new wn(r)),this.canDeactivateChecks.push(new Cn(s.component,i))):(o.data=i.data,o._resolvedData=i._resolvedData),o.component?this.traverseChildRoutes(t,e,s?s.outletMap:null,r):this.traverseChildRoutes(t,e,n,r)):(i&&this.deactiveRouteAndItsChildren(e,s),this.canActivateChecks.push(new wn(r)),o.component?this.traverseChildRoutes(t,null,s?s.outletMap:null,r):this.traverseChildRoutes(t,null,n,r))},t.prototype.shouldRunGuardsAndResolvers=function(t,e,n){switch(n){case"always":return!0;case"paramsOrQueryParamsChange":return!Tt(t,e)||!M(t.queryParams,e.queryParams);case"paramsChange":default:return!Tt(t,e)}},t.prototype.deactiveRouteAndItsChildren=function(t,e){var n=this,r=ye(t),o=t.value;I(r,function(t,r){o.component?e?n.deactiveRouteAndItsChildren(t,e.outletMap._outlets[r]):n.deactiveRouteAndItsChildren(t,null):n.deactiveRouteAndItsChildren(t,e)}),o.component&&e&&e.isActivated?this.canDeactivateChecks.push(new Cn(e.component,o)):this.canDeactivateChecks.push(new Cn(null,o))},t.prototype.runCanDeactivateChecks=function(){var t=this,e=i.from(this.canDeactivateChecks),n=p.mergeMap.call(e,function(e){return t.runCanDeactivate(e.component,e.route)});return u.every.call(n,function(t){return!0===t})},t.prototype.runCanActivateChecks=function(){var t=this,e=i.from(this.canActivateChecks),n=p.mergeMap.call(e,function(e){return D(i.from([t.runCanActivateChild(e.path),t.runCanActivate(e.route)]))});return u.every.call(n,function(t){return!0===t})},t.prototype.runCanActivate=function(t){var e=this,n=t._routeConfig?t._routeConfig.canActivate:null;return n&&0!==n.length?D(l.map.call(i.from(n),function(n){var r,o=e.getToken(n,t);return r=j(o.canActivate?o.canActivate(t,e.future):o(t,e.future)),c.first.call(r)})):s.of(!0)},t.prototype.runCanActivateChild=function(t){var e=this,n=t[t.length-1],r=t.slice(0,t.length-1).reverse().map(function(t){return e.extractCanActivateChild(t)}).filter(function(t){return null!==t});return D(l.map.call(i.from(r),function(t){return D(l.map.call(i.from(t.guards),function(r){var o,i=e.getToken(r,t.node);return o=j(i.canActivateChild?i.canActivateChild(n,e.future):i(n,e.future)),c.first.call(o)}))}))},t.prototype.extractCanActivateChild=function(t){var e=t._routeConfig?t._routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null},t.prototype.runCanDeactivate=function(t,e){var n=this,r=e&&e._routeConfig?e._routeConfig.canDeactivate:null;if(!r||0===r.length)return s.of(!0);var o=p.mergeMap.call(i.from(r),function(r){var o,i=n.getToken(r,e);return o=j(i.canDeactivate?i.canDeactivate(t,e,n.curr,n.future):i(t,e,n.curr,n.future)),c.first.call(o)});return u.every.call(o,function(t){return!0===t})},t.prototype.runResolve=function(t){var e=t._resolve;return l.map.call(this.resolveNode(e,t),function(e){return t._resolvedData=e,t.data=gn({},t.data,Ct(t).resolve),null})},t.prototype.resolveNode=function(t,e){var n=this;return N(t,function(t,r){var o=n.getToken(r,e);return j(o.resolve?o.resolve(e,n.future):o(e,n.future))})},t.prototype.getToken=function(t,e){var n=de(e);return(n?n.module.injector:this.moduleInjector).get(t)},t}(),Sn=function(){function t(t,e,n){this.routeReuseStrategy=t,this.futureState=e,this.currState=n}return t.prototype.activate=function(t){var e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),xt(this.futureState.root),this.activateChildRoutes(e,n,t)},t.prototype.deactivateChildRoutes=function(t,e,n){var r=this,o=ye(e);t.children.forEach(function(t){r.deactivateRoutes(t,o[t.value.outlet],n),delete o[t.value.outlet]}),I(o,function(t,e){return r.deactiveRouteAndItsChildren(t,n)})},t.prototype.activateChildRoutes=function(t,e,n){var r=this,o=ye(e);t.children.forEach(function(t){r.activateRoutes(t,o[t.value.outlet],n)})},t.prototype.deactivateRoutes=function(t,e,n){var r=t.value,o=e?e.value:null;if(r===o)if(r.component){var i=me(n,r);this.deactivateChildRoutes(t,e,i.outletMap)}else this.deactivateChildRoutes(t,e,n);else o&&this.deactiveRouteAndItsChildren(e,n)},t.prototype.activateRoutes=function(t,e,n){var r=t.value;if(r===(e?e.value:null))if(xt(r),r.component){o=me(n,r);this.activateChildRoutes(t,e,o.outletMap)}else this.activateChildRoutes(t,e,n);else if(r.component){xt(r);var o=me(n,t.value);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){var i=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.attach(i.componentRef,i.route.value),he(i.route)}else{var s=new yn;this.placeComponentIntoOutlet(s,r,o),this.activateChildRoutes(t,null,s)}}else xt(r),this.activateChildRoutes(t,null,n)},t.prototype.placeComponentIntoOutlet=function(t,e,n){var r=fe(e.snapshot),o=r?r.module.componentFactoryResolver:null;n.activateWith(e,o,t)},t.prototype.deactiveRouteAndItsChildren=function(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactiveRouteAndOutlet(t,e)},t.prototype.detachAndStoreRouteSubtree=function(t,e){var n=me(e,t.value).detach();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:n,route:t})},t.prototype.deactiveRouteAndOutlet=function(t,e){var n=this,r=ye(t),o=null;try{o=me(e,t.value)}catch(t){return}var i=o.outletMap;I(r,function(r,o){t.value.component?n.deactiveRouteAndItsChildren(r,i):n.deactiveRouteAndItsChildren(r,e)}),o&&o.isActivated&&o.deactivate()},t}(),xn=function(){function t(t,e,n,r,o){this.router=t,this.route=e,this.commands=[],null==n&&r.setElementAttribute(o.nativeElement,"tabindex","0")}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){n.isDevMode()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated!, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.onClick=function(){var t={skipLocationChange:ge(this.skipLocationChange),replaceUrl:ge(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:ge(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:ge(this.preserveFragment)})},enumerable:!0,configurable:!0}),t}();xn.decorators=[{type:n.Directive,args:[{selector:":not(a)[routerLink]"}]}],xn.ctorParameters=function(){return[{type:bn},{type:on},{type:void 0,decorators:[{type:n.Attribute,args:["tabindex"]}]},{type:n.Renderer},{type:n.ElementRef}]},xn.propDecorators={queryParams:[{type:n.Input}],fragment:[{type:n.Input}],queryParamsHandling:[{type:n.Input}],preserveFragment:[{type:n.Input}],skipLocationChange:[{type:n.Input}],replaceUrl:[{type:n.Input}],routerLink:[{type:n.Input}],preserveQueryParams:[{type:n.Input}],onClick:[{type:n.HostListener,args:["click"]}]};var Tn=function(){function t(t,e,n){var r=this;this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(function(t){t instanceof Me&&r.updateTargetUrlAndHref()})}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){n.isDevMode()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){this.updateTargetUrlAndHref()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.onClick=function(t,e,n){if(0!==t||e||n)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;var r={skipLocationChange:ge(this.skipLocationChange),replaceUrl:ge(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,r),!1},t.prototype.updateTargetUrlAndHref=function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:ge(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:ge(this.preserveFragment)})},enumerable:!0,configurable:!0}),t}();Tn.decorators=[{type:n.Directive,args:[{selector:"a[routerLink]"}]}],Tn.ctorParameters=function(){return[{type:bn},{type:on},{type:e.LocationStrategy}]},Tn.propDecorators={target:[{type:n.HostBinding,args:["attr.target"]},{type:n.Input}],queryParams:[{type:n.Input}],fragment:[{type:n.Input}],queryParamsHandling:[{type:n.Input}],preserveFragment:[{type:n.Input}],skipLocationChange:[{type:n.Input}],replaceUrl:[{type:n.Input}],href:[{type:n.HostBinding}],routerLink:[{type:n.Input}],preserveQueryParams:[{type:n.Input}],onClick:[{type:n.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]};var Pn=function(){function t(t,e,n,r){var o=this;this.router=t,this.element=e,this.renderer=n,this.cdr=r,this.classes=[],this.active=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(function(t){t instanceof Me&&o.update()})}return Object.defineProperty(t.prototype,"isActive",{get:function(){return this.active},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){var t=this;this.links.changes.subscribe(function(e){return t.update()}),this.linksWithHrefs.changes.subscribe(function(e){return t.update()}),this.update()},Object.defineProperty(t.prototype,"routerLinkActive",{set:function(t){var e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(function(t){return!!t})},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){this.update()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.update=function(){var t=this;if(this.links&&this.linksWithHrefs&&this.router.navigated){var e=this.hasActiveLinks();this.active!==e&&(this.classes.forEach(function(n){return t.renderer.setElementClass(t.element.nativeElement,n,e)}),Promise.resolve(e).then(function(e){return t.active=e}))}},t.prototype.isLinkActive=function(t){var e=this;return function(n){return t.isActive(n.urlTree,e.routerLinkActiveOptions.exact)}},t.prototype.hasActiveLinks=function(){return this.links.some(this.isLinkActive(this.router))||this.linksWithHrefs.some(this.isLinkActive(this.router))},t}();Pn.decorators=[{type:n.Directive,args:[{selector:"[routerLinkActive]",exportAs:"routerLinkActive"}]}],Pn.ctorParameters=function(){return[{type:bn},{type:n.ElementRef},{type:n.Renderer},{type:n.ChangeDetectorRef}]},Pn.propDecorators={links:[{type:n.ContentChildren,args:[xn,{descendants:!0}]}],linksWithHrefs:[{type:n.ContentChildren,args:[Tn,{descendants:!0}]}],routerLinkActiveOptions:[{type:n.Input}],routerLinkActive:[{type:n.Input}]};var An=function(){function t(t,e,r,o){this.parentOutletMap=t,this.location=e,this.resolver=r,this.name=o,this.activateEvents=new n.EventEmitter,this.deactivateEvents=new n.EventEmitter,t.registerOutlet(o||je,this)}return t.prototype.ngOnDestroy=function(){this.parentOutletMap.removeOutlet(this.name?this.name:je)},Object.defineProperty(t.prototype,"locationInjector",{get:function(){return this.location.injector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"locationFactoryResolver",{get:function(){return this.resolver},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isActivated",{get:function(){return!!this.activated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activatedRoute",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute},enumerable:!0,configurable:!0}),t.prototype.detach=function(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();var t=this.activated;return this.activated=null,this._activatedRoute=null,t},t.prototype.attach=function(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)},t.prototype.deactivate=function(){if(this.activated){var t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}},t.prototype.activate=function(t,e,r,o,i){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this.outletMap=i,this._activatedRoute=t;var s=t._futureSnapshot._routeConfig.component,a=e.resolveComponentFactory(s),u=n.ReflectiveInjector.fromResolvedProviders(o,r);this.activated=this.location.createComponent(a,this.location.length,u,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},t.prototype.activateWith=function(t,e,n){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this.outletMap=n,this._activatedRoute=t;var r=t._futureSnapshot._routeConfig.component,o=(e=e||this.resolver).resolveComponentFactory(r),i=new On(t,n,this.location.injector);this.activated=this.location.createComponent(o,this.location.length,i,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},t}();An.decorators=[{type:n.Directive,args:[{selector:"router-outlet"}]}],An.ctorParameters=function(){return[{type:yn},{type:n.ViewContainerRef},{type:n.ComponentFactoryResolver},{type:void 0,decorators:[{type:n.Attribute,args:["name"]}]}]},An.propDecorators={activateEvents:[{type:n.Output,args:["activate"]}],deactivateEvents:[{type:n.Output,args:["deactivate"]}]};var On=function(){function t(t,e,n){this.route=t,this.map=e,this.parent=n}return t.prototype.get=function(t,e){return t===on?this.route:t===yn?this.map:this.parent.get(t,e)},t}(),Mn=function(){function t(){}return t.prototype.shouldDetach=function(t){},t.prototype.store=function(t,e){},t.prototype.shouldAttach=function(t){},t.prototype.retrieve=function(t){},t.prototype.shouldReuseRoute=function(t,e){},t}(),Rn=function(){function t(){}return t.prototype.preload=function(t,e){},t}(),kn=function(){function t(){}return t.prototype.preload=function(t,e){return d._catch.call(e(),function(){return s.of(null)})},t}(),In=function(){function t(){}return t.prototype.preload=function(t,e){return s.of(null)},t}(),Nn=function(){function t(t,e,n,r,o){this.router=t,this.injector=r,this.preloadingStrategy=o;var i=function(e){return t.triggerEvent(new Ne(e))},s=function(e){return t.triggerEvent(new De(e))};this.loader=new dn(e,n,i,s)}return t.prototype.setUpPreloading=function(){var t=this,e=w.filter.call(this.router.events,function(t){return t instanceof Me});this.subscription=a.concatMap.call(e,function(){return t.preload()}).subscribe(function(){})},t.prototype.preload=function(){var t=this.injector.get(n.NgModuleRef);return this.processRoutes(t,this.router.config)},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.processRoutes=function(t,e){for(var n=[],r=0,o=e;r<o.length;r++){var s=o[r];if(s.loadChildren&&!s.canLoad&&s._loadedConfig){var a=s._loadedConfig;n.push(this.processRoutes(a.module,a.routes))}else s.loadChildren&&!s.canLoad?n.push(this.preloadConfig(t,s)):s.children&&n.push(this.processRoutes(t,s.children))}return _.mergeAll.call(i.from(n))},t.prototype.preloadConfig=function(t,e){var n=this;return this.preloadingStrategy.preload(e,function(){var r=n.loader.load(t.injector,e);return p.mergeMap.call(r,function(t){return e._loadedConfig=t,n.processRoutes(t.module,t.routes)})})},t}();Nn.decorators=[{type:n.Injectable}],Nn.ctorParameters=function(){return[{type:bn},{type:n.NgModuleFactoryLoader},{type:n.Compiler},{type:n.Injector},{type:Rn}]};var Dn=[An,xn,Tn,Pn],jn=new n.InjectionToken("ROUTER_CONFIGURATION"),Ln=new n.InjectionToken("ROUTER_FORROOT_GUARD"),Vn=[e.Location,{provide:qe,useClass:ze},{provide:bn,useFactory:Ee,deps:[n.ApplicationRef,qe,yn,e.Location,n.Injector,n.NgModuleFactoryLoader,n.Compiler,fn,jn,[mn,new n.Optional],[Mn,new n.Optional]]},yn,{provide:on,useFactory:Se,deps:[bn]},{provide:n.NgModuleFactoryLoader,useClass:n.SystemJsNgModuleLoader},Nn,In,kn,{provide:jn,useValue:{enableTracing:!1}}],Fn=function(){function t(t,e){}return t.forRoot=function(r,o){return{ngModule:t,providers:[Vn,Ce(r),{provide:Ln,useFactory:we,deps:[[bn,new n.Optional,new n.SkipSelf]]},{provide:jn,useValue:o||{}},{provide:e.LocationStrategy,useFactory:be,deps:[e.PlatformLocation,[new n.Inject(e.APP_BASE_HREF),new n.Optional],jn]},{provide:Rn,useExisting:o&&o.preloadingStrategy?o.preloadingStrategy:In},{provide:n.NgProbeToken,multi:!0,useFactory:_e},Pe()]}},t.forChild=function(e){return{ngModule:t,providers:[Ce(e)]}},t}();Fn.decorators=[{type:n.NgModule,args:[{declarations:Dn,exports:Dn}]}],Fn.ctorParameters=function(){return[{type:void 0,decorators:[{type:n.Optional},{type:n.Inject,args:[Ln]}]},{type:bn,decorators:[{type:n.Optional}]}]};var Un=function(){function t(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new o.Subject}return t.prototype.appInitializer=function(){var t=this;return this.injector.get(e.LOCATION_INITIALIZED,Promise.resolve(null)).then(function(){var e=null,n=new Promise(function(t){return e=t}),r=t.injector.get(bn),o=t.injector.get(jn);if(t.isLegacyDisabled(o)||t.isLegacyEnabled(o))e(!0);else if("disabled"===o.initialNavigation)r.setUpLocationChangeListener(),e(!0);else{if("enabled"!==o.initialNavigation)throw new Error("Invalid initialNavigation options: '"+o.initialNavigation+"'");r.hooks.afterPreactivation=function(){return t.initNavigation?s.of(null):(t.initNavigation=!0,e(!0),t.resultOfPreactivationDone)},r.initialNavigation()}return n})},t.prototype.bootstrapListener=function(t){var e=this.injector.get(jn),r=this.injector.get(Nn),o=this.injector.get(bn),i=this.injector.get(n.ApplicationRef);t===i.components[0]&&(this.isLegacyEnabled(e)?o.initialNavigation():this.isLegacyDisabled(e)&&o.setUpLocationChangeListener(),r.setUpPreloading(),o.resetRootComponentType(i.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())},t.prototype.isLegacyEnabled=function(t){return"legacy_enabled"===t.initialNavigation||!0===t.initialNavigation||void 0===t.initialNavigation},t.prototype.isLegacyDisabled=function(t){return"legacy_disabled"===t.initialNavigation||!1===t.initialNavigation},t}();Un.decorators=[{type:n.Injectable}],Un.ctorParameters=function(){return[{type:n.Injector}]};var Hn=new n.InjectionToken("Router Initializer"),Bn=new n.Version("4.1.3");t.RouterLink=xn,t.RouterLinkWithHref=Tn,t.RouterLinkActive=Pn,t.RouterOutlet=An,t.NavigationCancel=Re,t.NavigationEnd=Me,t.NavigationError=ke,t.NavigationStart=Oe,t.RouteConfigLoadEnd=De,t.RouteConfigLoadStart=Ne,t.RoutesRecognized=Ie,t.RouteReuseStrategy=Mn,t.Router=bn,t.ROUTES=fn,t.ROUTER_CONFIGURATION=jn,t.ROUTER_INITIALIZER=Hn,t.RouterModule=Fn,t.provideRoutes=Ce,t.RouterOutletMap=yn,t.NoPreloading=In,t.PreloadAllModules=kn,t.PreloadingStrategy=Rn,t.RouterPreloader=Nn,t.ActivatedRoute=on,t.ActivatedRouteSnapshot=sn,t.RouterState=rn,t.RouterStateSnapshot=an,t.PRIMARY_OUTLET=je,t.convertToParamMap=C,t.UrlHandlingStrategy=mn,t.DefaultUrlSerializer=ze,t.UrlSegment=Be,t.UrlSegmentGroup=He,t.UrlSerializer=qe,t.UrlTree=Ue,t.VERSION=Bn,t.ɵROUTER_PROVIDERS=Vn,t.ɵflatten=R,t.ɵa=Ln,t.ɵg=Un,t.ɵh=xe,t.ɵi=Te,t.ɵd=we,t.ɵc=be,t.ɵj=Pe,t.ɵf=Se,t.ɵb=_e,t.ɵe=Ee,t.ɵk=tn,t.ɵl=en,Object.defineProperty(t,"__esModule",{value:!0})})},{"@angular/common":6,"@angular/core":8,"@angular/platform-browser":12,"rxjs/BehaviorSubject":14,"rxjs/Observable":17,"rxjs/Subject":20,"rxjs/observable/from":35,"rxjs/observable/fromPromise":36,"rxjs/observable/of":38,"rxjs/operator/catch":39,"rxjs/operator/concatAll":40,"rxjs/operator/concatMap":41,"rxjs/operator/every":42,"rxjs/operator/filter":43,"rxjs/operator/first":44,"rxjs/operator/last":45,"rxjs/operator/map":46,"rxjs/operator/mergeAll":48,"rxjs/operator/mergeMap":49,"rxjs/operator/reduce":52,"rxjs/util/EmptyError":57}],14:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("./Subject"),i=t("./util/ObjectUnsubscribedError"),s=function(t){function e(e){t.call(this),this._value=e}return r(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new i.ObjectUnsubscribedError;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(o.Subject);n.BehaviorSubject=s},{"./Subject":20,"./util/ObjectUnsubscribedError":58}],15:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(e,n,r){t.call(this),this.parent=e,this.outerValue=n,this.outerIndex=r,this.index=0}return r(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(t("./Subscriber").Subscriber);n.InnerSubscriber=o},{"./Subscriber":22}],16:[function(t,e,n){"use strict";var r=t("./Observable"),o=function(){function t(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}},t.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},t.prototype.toObservable=function(){switch(this.kind){case"N":return r.Observable.of(this.value);case"E":return r.Observable.throw(this.error);case"C":return r.Observable.empty()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return void 0!==e?new t("N",e):this.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return this.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}();n.Notification=o},{"./Observable":17}],17:[function(t,e,n){"use strict";var r=t("./util/root"),o=t("./util/toSubscriber"),i=t("./symbol/observable"),s=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var r=this.operator,i=o.toSubscriber(t,e,n);if(r?r.call(i,this.source):i.add(this._trySubscribe(i)),i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.syncErrorThrown=!0,t.syncErrorValue=e,t.error(e)}},t.prototype.forEach=function(t,e){var n=this;if(e||(r.root.Rx&&r.root.Rx.config&&r.root.Rx.config.Promise?e=r.root.Rx.config.Promise:r.root.Promise&&(e=r.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,r){var o=n.subscribe(function(e){if(o)try{t(e)}catch(t){r(t),o.unsubscribe()}else t(e)},r,e)})},t.prototype._subscribe=function(t){return this.source.subscribe(t)},t.prototype[i.$$observable]=function(){return this},t.create=function(e){return new t(e)},t}();n.Observable=s},{"./symbol/observable":55,"./util/root":67,"./util/toSubscriber":69}],18:[function(t,e,n){"use strict";n.empty={closed:!0,next:function(t){},error:function(t){throw t},complete:function(){}}},{}],19:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(){t.apply(this,arguments)}return r(e,t),e.prototype.notifyNext=function(t,e,n,r,o){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(t("./Subscriber").Subscriber);n.OuterSubscriber=o},{"./Subscriber":22}],20:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("./Observable"),i=t("./Subscriber"),s=t("./Subscription"),a=t("./util/ObjectUnsubscribedError"),u=t("./SubjectSubscription"),c=t("./symbol/rxSubscriber"),l=function(t){function e(e){t.call(this,e),this.destination=e}return r(e,t),e}(i.Subscriber);n.SubjectSubscriber=l;var p=function(t){function e(){t.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return r(e,t),e.prototype[c.$$rxSubscriber]=function(){return new l(this)},e.prototype.lift=function(t){var e=new h(this,this);return e.operator=t,e},e.prototype.next=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;if(!this.isStopped)for(var e=this.observers,n=e.length,r=e.slice(),o=0;o<n;o++)r[o].next(t)},e.prototype.error=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=t,this.isStopped=!0;for(var e=this.observers,n=e.length,r=e.slice(),o=0;o<n;o++)r[o].error(t);this.observers.length=0},e.prototype.complete=function(){if(this.closed)throw new a.ObjectUnsubscribedError;this.isStopped=!0;for(var t=this.observers,e=t.length,n=t.slice(),r=0;r<e;r++)n[r].complete();this.observers.length=0},e.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},e.prototype._trySubscribe=function(e){if(this.closed)throw new a.ObjectUnsubscribedError;return t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){if(this.closed)throw new a.ObjectUnsubscribedError;return this.hasError?(t.error(this.thrownError),s.Subscription.EMPTY):this.isStopped?(t.complete(),s.Subscription.EMPTY):(this.observers.push(t),new u.SubjectSubscription(this,t))},e.prototype.asObservable=function(){var t=new o.Observable;return t.source=this,t},e.create=function(t,e){return new h(t,e)},e}(o.Observable);n.Subject=p;var h=function(t){function e(e,n){t.call(this),this.destination=e,this.source=n}return r(e,t),e.prototype.next=function(t){var e=this.destination;e&&e.next&&e.next(t)},e.prototype.error=function(t){var e=this.destination;e&&e.error&&this.destination.error(t)},e.prototype.complete=function(){var t=this.destination;t&&t.complete&&this.destination.complete()},e.prototype._subscribe=function(t){return this.source?this.source.subscribe(t):s.Subscription.EMPTY},e}(p);n.AnonymousSubject=h},{"./Observable":17,"./SubjectSubscription":21,"./Subscriber":22,"./Subscription":23,"./symbol/rxSubscriber":56,"./util/ObjectUnsubscribedError":58}],21:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(e,n){t.call(this),this.subject=e,this.subscriber=n,this.closed=!1}return r(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},e}(t("./Subscription").Subscription);n.SubjectSubscription=o},{"./Subscription":23}],22:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("./util/isFunction"),i=t("./Subscription"),s=t("./Observer"),a=t("./symbol/rxSubscriber"),u=function(t){function e(n,r,o){switch(t.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.empty;break;case 1:if(!n){this.destination=s.empty;break}if("object"==typeof n){n instanceof e?(this.destination=n,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new c(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new c(this,n,r,o)}}return r(e,t),e.prototype[a.$$rxSubscriber]=function(){return this},e.create=function(t,n,r){var o=new e(t,n,r);return o.syncErrorThrowable=!1,o},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this,e=t._parent,n=t._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=n,this},e}(i.Subscription);n.Subscriber=u;var c=function(t){function e(e,n,r,i){t.call(this),this._parentSubscriber=e;var s,a=this;o.isFunction(n)?s=n:n&&(a=n,s=n.next,r=n.error,i=n.complete,o.isFunction(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this)),this._context=a,this._next=s,this._error=r,this._complete=i}return r(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber;if(this._error)e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else{if(!e.syncErrorThrowable)throw this.unsubscribe(),t;e.syncErrorValue=t,e.syncErrorThrown=!0,this.unsubscribe()}}},e.prototype.complete=function(){if(!this.isStopped){var t=this._parentSubscriber;this._complete?t.syncErrorThrowable?(this.__tryOrSetError(t,this._complete),this.unsubscribe()):(this.__tryOrUnsub(this._complete),this.unsubscribe()):this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(t){throw this.unsubscribe(),t}},e.prototype.__tryOrSetError=function(t,e,n){try{e.call(this._context,n)}catch(e){return t.syncErrorValue=e,t.syncErrorThrown=!0,!0}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(u)},{"./Observer":18,"./Subscription":23,"./symbol/rxSubscriber":56,"./util/isFunction":63}],23:[function(t,e,n){"use strict";function r(t){return t.reduce(function(t,e){return t.concat(e instanceof c.UnsubscriptionError?e.errors:e)},[])}var o=t("./util/isArray"),i=t("./util/isObject"),s=t("./util/isFunction"),a=t("./util/tryCatch"),u=t("./util/errorObject"),c=t("./util/UnsubscriptionError"),l=function(){function t(t){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}return t.prototype.unsubscribe=function(){var t,e=!1;if(!this.closed){var n=this,l=n._parent,p=n._parents,h=n._unsubscribe,f=n._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var d=-1,y=p?p.length:0;l;)l.remove(this),l=++d<y&&p[d]||null;if(s.isFunction(h)&&(v=a.tryCatch(h).call(this))===u.errorObject&&(e=!0,t=t||(u.errorObject.e instanceof c.UnsubscriptionError?r(u.errorObject.e.errors):[u.errorObject.e])),o.isArray(f))for(d=-1,y=f.length;++d<y;){var m=f[d];if(i.isObject(m)){var v=a.tryCatch(m.unsubscribe).call(m);if(v===u.errorObject){e=!0,t=t||[];var g=u.errorObject.e;g instanceof c.UnsubscriptionError?t=t.concat(r(g.errors)):t.push(g)}}}if(e)throw new c.UnsubscriptionError(t)}},t.prototype.add=function(e){if(!e||e===t.EMPTY)return t.EMPTY;if(e===this)return this;var n=e;switch(typeof e){case"function":n=new t(e);case"object":if(n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if("function"!=typeof n._addParent){var r=n;(n=new t)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(n),n._addParent(this),n},t.prototype.remove=function(t){var e=this._subscriptions;if(e){var n=e.indexOf(t);-1!==n&&e.splice(n,1)}},t.prototype._addParent=function(t){var e=this,n=e._parent,r=e._parents;n&&n!==t?r?-1===r.indexOf(t)&&r.push(t):this._parents=[t]:this._parent=t},t.EMPTY=function(t){return t.closed=!0,t}(new t),t}();n.Subscription=l},{"./util/UnsubscriptionError":59,"./util/errorObject":60,"./util/isArray":61,"./util/isFunction":63,"./util/isObject":64,"./util/tryCatch":70}],24:[function(t,e,n){"use strict";var r=t("../../Observable"),o=t("../../operator/map");r.Observable.prototype.map=o.map},{"../../Observable":17,"../../operator/map":46}],25:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("../Observable"),i=t("./ScalarObservable"),s=t("./EmptyObservable"),a=function(t){function e(e,n){t.call(this),this.arrayLike=e,this.scheduler=n,n||1!==e.length||(this._isScalar=!0,this.value=e[0])}return r(e,t),e.create=function(t,n){var r=t.length;return 0===r?new s.EmptyObservable:1===r?new i.ScalarObservable(t[0],n):new e(t,n)},e.dispatch=function(t){var e=t.arrayLike,n=t.index,r=t.length,o=t.subscriber;if(!o.closed){if(n>=r)return void o.complete();o.next(e[n]),t.index=n+1,this.schedule(t)}},e.prototype._subscribe=function(t){var n=this,r=n.arrayLike,o=n.scheduler,i=r.length;if(o)return o.schedule(e.dispatch,0,{arrayLike:r,index:0,length:i,subscriber:t});for(var s=0;s<i&&!t.closed;s++)t.next(r[s]);t.complete()},e}(o.Observable);n.ArrayLikeObservable=a},{"../Observable":17,"./EmptyObservable":28,"./ScalarObservable":33}],26:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("../Observable"),i=t("./ScalarObservable"),s=t("./EmptyObservable"),a=t("../util/isScheduler"),u=function(t){function e(e,n){t.call(this),this.array=e,this.scheduler=n,n||1!==e.length||(this._isScalar=!0,this.value=e[0])}return r(e,t),e.create=function(t,n){return new e(t,n)},e.of=function(){for(var t=[],n=0;n<arguments.length;n++)t[n-0]=arguments[n];var r=t[t.length-1];a.isScheduler(r)?t.pop():r=null;var o=t.length;return o>1?new e(t,r):1===o?new i.ScalarObservable(t[0],r):new s.EmptyObservable(r)},e.dispatch=function(t){var e=t.array,n=t.index,r=t.count,o=t.subscriber;if(n>=r)return void o.complete();o.next(e[n]),o.closed||(t.index=n+1,this.schedule(t))},e.prototype._subscribe=function(t){var n=this.array,r=n.length,o=this.scheduler;if(o)return o.schedule(e.dispatch,0,{array:n,index:0,count:r,subscriber:t});for(var i=0;i<r&&!t.closed;i++)t.next(n[i]);t.complete()},e}(o.Observable);n.ArrayObservable=u},{"../Observable":17,"../util/isScheduler":66,"./EmptyObservable":28,"./ScalarObservable":33}],27:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("../Subject"),i=t("../Observable"),s=t("../Subscriber"),a=t("../Subscription"),u=function(t){function e(e,n){t.call(this),this.source=e,this.subjectFactory=n,this._refCount=0}return r(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||((t=this._connection=new a.Subscription).add(this.source.subscribe(new c(this.getSubject(),this))),t.closed?(this._connection=null,t=a.Subscription.EMPTY):this._connection=t),t},e.prototype.refCount=function(){return this.lift(new l(this))},e}(i.Observable);n.ConnectableObservable=u,n.connectableObservableDescriptor={operator:{value:null},_refCount:{value:0,writable:!0},_subscribe:{value:u.prototype._subscribe},getSubject:{value:u.prototype.getSubject},connect:{value:u.prototype.connect},refCount:{value:u.prototype.refCount}};var c=function(t){function e(e,n){t.call(this,e),this.connectable=n}return r(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(o.SubjectSubscriber),l=function(){function t(t){this.connectable=t}return t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new p(t,n),o=e.subscribe(r);return r.closed||(r.connection=n.connect()),o},t}(),p=function(t){function e(e,n){t.call(this,e),this.connectable=n}return r(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(!t)return void(this.connection=null);this.connectable=null;var e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()},e}(s.Subscriber)},{"../Observable":17,"../Subject":20,"../Subscriber":22,"../Subscription":23}],28:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(e){t.call(this),this.scheduler=e}return r(e,t),e.create=function(t){return new e(t)},e.dispatch=function(t){t.subscriber.complete()},e.prototype._subscribe=function(t){var n=this.scheduler;if(n)return n.schedule(e.dispatch,0,{subscriber:t});t.complete()},e}(t("../Observable").Observable);n.EmptyObservable=o},{"../Observable":17}],29:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("../Observable"),i=t("./EmptyObservable"),s=t("../util/isArray"),a=t("../util/subscribeToResult"),u=t("../OuterSubscriber"),c=function(t){function e(e,n){t.call(this),this.sources=e,this.resultSelector=n}return r(e,t),e.create=function(){for(var t=[],n=0;n<arguments.length;n++)t[n-0]=arguments[n];if(null===t||0===arguments.length)return new i.EmptyObservable;var r=null;return"function"==typeof t[t.length-1]&&(r=t.pop()),1===t.length&&s.isArray(t[0])&&(t=t[0]),0===t.length?new i.EmptyObservable:new e(t,r)},e.prototype._subscribe=function(t){return new l(t,this.sources,this.resultSelector)},e}(o.Observable);n.ForkJoinObservable=c;var l=function(t){function e(e,n,r){t.call(this,e),this.sources=n,this.resultSelector=r,this.completed=0,this.haveValues=0;var o=n.length;this.total=o,this.values=new Array(o);for(var i=0;i<o;i++){var s=n[i],u=a.subscribeToResult(this,s,null,i);u&&(u.outerIndex=i,this.add(u))}}return r(e,t),e.prototype.notifyNext=function(t,e,n,r,o){this.values[n]=e,o._hasValue||(o._hasValue=!0,this.haveValues++)},e.prototype.notifyComplete=function(t){var e=this.destination,n=this,r=n.haveValues,o=n.resultSelector,i=n.values,s=i.length;if(!t._hasValue)return void e.complete();if(++this.completed===s){if(r===s){var a=o?o.apply(this,i):i;e.next(a)}e.complete()}},e}(u.OuterSubscriber)},{"../Observable":17,"../OuterSubscriber":19,"../util/isArray":61,"../util/subscribeToResult":68,"./EmptyObservable":28}],30:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=t("../util/isArray"),i=t("../util/isArrayLike"),s=t("../util/isPromise"),a=t("./PromiseObservable"),u=t("./IteratorObservable"),c=t("./ArrayObservable"),l=t("./ArrayLikeObservable"),p=t("../symbol/iterator"),h=t("../Observable"),f=t("../operator/observeOn"),d=t("../symbol/observable"),y=function(t){function e(e,n){t.call(this,null),this.ish=e,this.scheduler=n}return r(e,t),e.create=function(t,n){if(null!=t){if("function"==typeof t[d.$$observable])return t instanceof h.Observable&&!n?t:new e(t,n);if(o.isArray(t))return new c.ArrayObservable(t,n);if(s.isPromise(t))return new a.PromiseObservable(t,n);if("function"==typeof t[p.$$iterator]||"string"==typeof t)return new u.IteratorObservable(t,n);if(i.isArrayLike(t))return new l.ArrayLikeObservable(t,n)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")},e.prototype._subscribe=function(t){var e=this.ish,n=this.scheduler;return null==n?e[d.$$observable]().subscribe(t):e[d.$$observable]().subscribe(new f.ObserveOnSubscriber(t,n,0))},e}(h.Observable);n.FromObservable=y},{"../Observable":17,"../operator/observeOn":51,"../symbol/iterator":54,"../symbol/observable":55,"../util/isArray":61,"../util/isArrayLike":62,"../util/isPromise":65,"./ArrayLikeObservable":25,"./ArrayObservable":26,"./IteratorObservable":31,"./PromiseObservable":32}],31:[function(t,e,n){"use strict";function r(t){var e=t[l.$$iterator];if(!e&&"string"==typeof t)return new h(t);if(!e&&void 0!==t.length)return new f(t);if(!e)throw new TypeError("object is not iterable");return t[l.$$iterator]()}function o(t){var e=+t.length;return isNaN(e)?0:0!==e&&i(e)?(e=s(e)*Math.floor(Math.abs(e)),e<=0?0:e>d?d:e):e}function i(t){return"number"==typeof t&&u.root.isFinite(t)}function s(t){var e=+t;return 0===e?e:isNaN(e)?e:e<0?-1:1}var a=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},u=t("../util/root"),c=t("../Observable"),l=t("../symbol/iterator"),p=function(t){function e(e,n){if(t.call(this),this.scheduler=n,null==e)throw new Error("iterator cannot be null.");this.iterator=r(e)}return a(e,t),e.create=function(t,n){return new e(t,n)},e.dispatch=function(t){var e=t.index,n=t.hasError,r=t.iterator,o=t.subscriber;if(n)return void o.error(t.error);var i=r.next();return i.done?void o.complete():(o.next(i.value),t.index=e+1,o.closed?void("function"==typeof r.return&&r.return()):void this.schedule(t))},e.prototype._subscribe=function(t){var n=this,r=n.iterator,o=n.scheduler;if(o)return o.schedule(e.dispatch,0,{index:0,iterator:r,subscriber:t});for(;;){var i=r.next();if(i.done){t.complete();break}if(t.next(i.value),t.closed){"function"==typeof r.return&&r.return();break}}},e}(c.Observable);n.IteratorObservable=p;var h=function(){function t(t,e,n){void 0===e&&(e=0),void 0===n&&(n=t.length),this.str=t,this.idx=e,this.len=n}return t.prototype[l.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},t}(),f=function(){function t(t,e,n){void 0===e&&(e=0),void 0===n&&(n=o(t)),this.arr=t,this.idx=e,this.len=n}return t.prototype[l.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},t}(),d=Math.pow(2,53)-1},{"../Observable":17,"../symbol/iterator":54,"../util/root":67}],32:[function(t,e,n){"use strict";function r(t){var e=t.value,n=t.subscriber;n.closed||(n.next(e),n.complete())}function o(t){var e=t.err,n=t.subscriber;n.closed||n.error(e)}var i=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},s=t("../util/root"),a=function(t){function e(e,n){t.call(this),this.promise=e,this.scheduler=n}return i(e,t),e.create=function(t,n){return new e(t,n)},e.prototype._subscribe=function(t){var e=this,n=this.promise,i=this.scheduler;if(null==i)this._isScalar?t.closed||(t.next(this.value),t.complete()):n.then(function(n){e.value=n,e._isScalar=!0,t.closed||(t.next(n),t.complete())},function(e){t.closed||t.error(e)}).then(null,function(t){s.root.setTimeout(function(){throw t})});else if(this._isScalar){if(!t.closed)return i.schedule(r,0,{value:this.value,subscriber:t})}else n.then(function(n){e.value=n,e._isScalar=!0,t.closed||t.add(i.schedule(r,0,{value:n,subscriber:t}))},function(e){t.closed||t.add(i.schedule(o,0,{err:e,subscriber:t}))}).then(null,function(t){s.root.setTimeout(function(){throw t})})},e}(t("../Observable").Observable);n.PromiseObservable=a},{"../Observable":17,"../util/root":67}],33:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(e,n){t.call(this),this.value=e,this.scheduler=n,this._isScalar=!0,n&&(this._isScalar=!1)}return r(e,t),e.create=function(t,n){return new e(t,n)},e.dispatch=function(t){var e=t.done,n=t.value,r=t.subscriber;if(e)return void r.complete();r.next(n),r.closed||(t.done=!0,this.schedule(t))},e.prototype._subscribe=function(t){var n=this.value,r=this.scheduler;if(r)return r.schedule(e.dispatch,0,{done:!1,value:n,subscriber:t});t.next(n),t.closed||t.complete()},e}(t("../Observable").Observable);n.ScalarObservable=o},{"../Observable":17}],34:[function(t,e,n){"use strict";var r=t("./ForkJoinObservable");n.forkJoin=r.ForkJoinObservable.create},{"./ForkJoinObservable":29}],35:[function(t,e,n){"use strict";var r=t("./FromObservable");n.from=r.FromObservable.create},{"./FromObservable":30}],36:[function(t,e,n){"use strict";var r=t("./PromiseObservable");n.fromPromise=r.PromiseObservable.create},{"./PromiseObservable":32}],37:[function(t,e,n){"use strict";var r=t("../operator/merge");n.merge=r.mergeStatic},{"../operator/merge":47}],38:[function(t,e,n){"use strict";var r=t("./ArrayObservable");n.of=r.ArrayObservable.of},{"./ArrayObservable":26}],39:[function(t,e,n){"use strict";function r(t){var e=new a(t),n=this.lift(e);return e.caught=n}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../OuterSubscriber"),s=t("../util/subscribeToResult");n._catch=r;var a=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.selector,this.caught))},t}(),u=function(t){function e(e,n,r){t.call(this,e),this.selector=n,this.caught=r}return o(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(e){return void t.prototype.error.call(this,e)}this._unsubscribeAndRecycle(),this.add(s.subscribeToResult(this,n))}},e}(i.OuterSubscriber)},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],40:[function(t,e,n){"use strict";function r(){return this.lift(new o.MergeAllOperator(1))}var o=t("./mergeAll");n.concatAll=r},{"./mergeAll":48}],41:[function(t,e,n){"use strict";function r(t,e){return this.lift(new o.MergeMapOperator(t,e,1))}var o=t("./mergeMap");n.concatMap=r},{"./mergeMap":49}],42:[function(t,e,n){"use strict";function r(t,e){return this.lift(new s(t,e,this))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber");n.every=r;var s=function(){function t(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.predicate,this.thisArg,this.source))},t}(),a=function(t){function e(e,n,r,o){t.call(this,e),this.predicate=n,this.thisArg=r,this.source=o,this.index=0,this.thisArg=r||this}return o(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(t){return void this.destination.error(t)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(i.Subscriber)},{"../Subscriber":22}],43:[function(t,e,n){"use strict";function r(t,e){return this.lift(new s(t,e))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber");n.filter=r;var s=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.predicate,this.thisArg))},t}(),a=function(t){function e(e,n,r){t.call(this,e),this.predicate=n,this.thisArg=r,this.count=0,this.predicate=n}return o(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}e&&this.destination.next(t)},e}(i.Subscriber)},{"../Subscriber":22}],44:[function(t,e,n){"use strict";function r(t,e,n){return this.lift(new a(t,e,n,this))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber"),s=t("../util/EmptyError");n.first=r;var a=function(){function t(t,e,n,r){this.predicate=t,this.resultSelector=e,this.defaultValue=n,this.source=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),u=function(t){function e(e,n,r,o,i){t.call(this,e),this.predicate=n,this.resultSelector=r,this.defaultValue=o,this.source=i,this.index=0,this.hasCompleted=!1,this._emitted=!1}return o(e,t),e.prototype._next=function(t){var e=this.index++;this.predicate?this._tryPredicate(t,e):this._emit(t,e)},e.prototype._tryPredicate=function(t,e){var n;try{n=this.predicate(t,e,this.source)}catch(t){return void this.destination.error(t)}n&&this._emit(t,e)},e.prototype._emit=function(t,e){if(this.resultSelector)return void this._tryResultSelector(t,e);this._emitFinal(t)},e.prototype._tryResultSelector=function(t,e){var n;try{n=this.resultSelector(t,e)}catch(t){return void this.destination.error(t)}this._emitFinal(n)},e.prototype._emitFinal=function(t){var e=this.destination;this._emitted||(this._emitted=!0,e.next(t),e.complete(),this.hasCompleted=!0)},e.prototype._complete=function(){var t=this.destination;this.hasCompleted||void 0===this.defaultValue?this.hasCompleted||t.error(new s.EmptyError):(t.next(this.defaultValue),t.complete())},e}(i.Subscriber)},{"../Subscriber":22,"../util/EmptyError":57}],45:[function(t,e,n){"use strict";function r(t,e,n){return this.lift(new a(t,e,n,this))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber"),s=t("../util/EmptyError");n.last=r;var a=function(){function t(t,e,n,r){this.predicate=t,this.resultSelector=e,this.defaultValue=n,this.source=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),u=function(t){function e(e,n,r,o,i){t.call(this,e),this.predicate=n,this.resultSelector=r,this.defaultValue=o,this.source=i,this.hasValue=!1,this.index=0,void 0!==o&&(this.lastValue=o,this.hasValue=!0)}return o(e,t),e.prototype._next=function(t){var e=this.index++;if(this.predicate)this._tryPredicate(t,e);else{if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryPredicate=function(t,e){var n;try{n=this.predicate(t,e,this.source)}catch(t){return void this.destination.error(t)}if(n){if(this.resultSelector)return void this._tryResultSelector(t,e);this.lastValue=t,this.hasValue=!0}},e.prototype._tryResultSelector=function(t,e){var n;try{n=this.resultSelector(t,e)}catch(t){return void this.destination.error(t)}this.lastValue=n,this.hasValue=!0},e.prototype._complete=function(){var t=this.destination;this.hasValue?(t.next(this.lastValue),t.complete()):t.error(new s.EmptyError)},e}(i.Subscriber)},{"../Subscriber":22,"../util/EmptyError":57}],46:[function(t,e,n){"use strict";function r(t,e){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new s(t,e))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber");n.map=r;var s=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.project,this.thisArg))},t}();n.MapOperator=s;var a=function(t){function e(e,n,r){t.call(this,e),this.project=n,this.count=0,this.thisArg=r||this}return o(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(i.Subscriber)},{"../Subscriber":22}],47:[function(t,e,n){"use strict";function r(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];return this.lift.call(o.apply(void 0,[this].concat(t)))}function o(){for(var t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];var n=Number.POSITIVE_INFINITY,r=null,o=t[t.length-1];return u.isScheduler(o)?(r=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof o&&(n=t.pop()),null===r&&1===t.length&&t[0]instanceof i.Observable?t[0]:new s.ArrayObservable(t,r).lift(new a.MergeAllOperator(n))}var i=t("../Observable"),s=t("../observable/ArrayObservable"),a=t("./mergeAll"),u=t("../util/isScheduler");n.merge=r,n.mergeStatic=o},{"../Observable":17,"../observable/ArrayObservable":26,"../util/isScheduler":66,"./mergeAll":48}],48:[function(t,e,n){"use strict";function r(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),this.lift(new a(t))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../OuterSubscriber"),s=t("../util/subscribeToResult");n.mergeAll=r;var a=function(){function t(t){this.concurrent=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.concurrent))},t}();n.MergeAllOperator=a;var u=function(t){function e(e,n){t.call(this,e),this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0}return o(e,t),e.prototype._next=function(t){this.active<this.concurrent?(this.active++,this.add(s.subscribeToResult(this,t))):this.buffer.push(t)},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(i.OuterSubscriber);n.MergeAllSubscriber=u},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],49:[function(t,e,n){"use strict";function r(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"number"==typeof e&&(n=e,e=null),this.lift(new a(t,e,n))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../util/subscribeToResult"),s=t("../OuterSubscriber");n.mergeMap=r;var a=function(){function t(t,e,n){void 0===n&&(n=Number.POSITIVE_INFINITY),this.project=t,this.resultSelector=e,this.concurrent=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.project,this.resultSelector,this.concurrent))},t}();n.MergeMapOperator=a;var u=function(t){function e(e,n,r,o){void 0===o&&(o=Number.POSITIVE_INFINITY),t.call(this,e),this.project=n,this.resultSelector=r,this.concurrent=o,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return o(e,t),e.prototype._next=function(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(t){return void this.destination.error(t)}this.active++,this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){this.add(i.subscribeToResult(this,t,e,n))},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},e.prototype.notifyNext=function(t,e,n,r,o){this.resultSelector?this._notifyResultSelector(t,e,n,r):this.destination.next(e)},e.prototype._notifyResultSelector=function(t,e,n,r){var o;try{o=this.resultSelector(t,e,n,r)}catch(t){return void this.destination.error(t)}this.destination.next(o)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(s.OuterSubscriber);n.MergeMapSubscriber=u},{"../OuterSubscriber":19,"../util/subscribeToResult":68}],50:[function(t,e,n){"use strict";function r(t,e){var n;if(n="function"==typeof t?t:function(){return t},"function"==typeof e)return this.lift(new i(n,e));var r=Object.create(this,o.connectableObservableDescriptor);return r.source=this,r.subjectFactory=n,r}var o=t("../observable/ConnectableObservable");n.multicast=r;var i=function(){function t(t,e){this.subjectFactory=t,this.selector=e}return t.prototype.call=function(t,e){var n=this.selector,r=this.subjectFactory(),o=n(r).subscribe(t);return o.add(e.subscribe(r)),o},t}();n.MulticastOperator=i},{"../observable/ConnectableObservable":27}],51:[function(t,e,n){"use strict";function r(t,e){return void 0===e&&(e=0),this.lift(new a(t,e))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber"),s=t("../Notification");n.observeOn=r;var a=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.scheduler,this.delay))},t}();n.ObserveOnOperator=a;var u=function(t){function e(e,n,r){void 0===r&&(r=0),t.call(this,e),this.scheduler=n,this.delay=r}return o(e,t),e.dispatch=function(t){var e=t.notification,n=t.destination;e.observe(n),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.add(this.scheduler.schedule(e.dispatch,this.delay,new c(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(s.Notification.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(s.Notification.createError(t))},e.prototype._complete=function(){this.scheduleMessage(s.Notification.createComplete())},e}(i.Subscriber);n.ObserveOnSubscriber=u;var c=function(){function t(t,e){this.notification=t,this.destination=e}return t}();n.ObserveOnMessage=c},{"../Notification":16,"../Subscriber":22}],52:[function(t,e,n){"use strict";function r(t,e){var n=!1;return arguments.length>=2&&(n=!0),this.lift(new s(t,e,n))}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=t("../Subscriber");n.reduce=r;var s=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.accumulator,this.seed,this.hasSeed))},t}();n.ReduceOperator=s;var a=function(t){function e(e,n,r,o){t.call(this,e),this.accumulator=n,this.hasSeed=o,this.index=0,this.hasValue=!1,this.acc=r,this.hasSeed||this.index++}return o(e,t),e.prototype._next=function(t){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(t):(this.acc=t,this.hasValue=!0)},e.prototype._tryReduce=function(t){var e;try{e=this.accumulator(this.acc,t,this.index++)}catch(t){return void this.destination.error(t)}this.acc=e},e.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc),this.destination.complete()},e}(i.Subscriber);n.ReduceSubscriber=a},{"../Subscriber":22}],53:[function(t,e,n){"use strict";function r(){return new s.Subject}function o(){return i.multicast.call(this,r).refCount()}var i=t("./multicast"),s=t("../Subject");n.share=o},{"../Subject":20,"./multicast":50}],54:[function(t,e,n){"use strict";function r(t){var e=t.Symbol;if("function"==typeof e)return e.iterator||(e.iterator=e("iterator polyfill")),e.iterator;var n=t.Set;if(n&&"function"==typeof(new n)["@@iterator"])return"@@iterator";var r=t.Map;if(r)for(var o=Object.getOwnPropertyNames(r.prototype),i=0;i<o.length;++i){var s=o[i];if("entries"!==s&&"size"!==s&&r.prototype[s]===r.prototype.entries)return s}return"@@iterator"}var o=t("../util/root");n.symbolIteratorPonyfill=r,n.$$iterator=r(o.root)},{"../util/root":67}],55:[function(t,e,n){"use strict";function r(t){var e,n=t.Symbol;return"function"==typeof n?n.observable?e=n.observable:(e=n("observable"),n.observable=e):e="@@observable",e}var o=t("../util/root");n.getSymbolObservable=r,n.$$observable=r(o.root)},{"../util/root":67}],56:[function(t,e,n){"use strict";var r=t("../util/root").root.Symbol;n.$$rxSubscriber="function"==typeof r&&"function"==typeof r.for?r.for("rxSubscriber"):"@@rxSubscriber"},{"../util/root":67}],57:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(){var e=t.call(this,"no elements in sequence");this.name=e.name="EmptyError",this.stack=e.stack,this.message=e.message}return r(e,t),e}(Error);n.EmptyError=o},{}],58:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(){var e=t.call(this,"object unsubscribed");this.name=e.name="ObjectUnsubscribedError",this.stack=e.stack,this.message=e.message}return r(e,t),e}(Error);n.ObjectUnsubscribedError=o},{}],59:[function(t,e,n){"use strict";var r=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},o=function(t){function e(e){t.call(this),this.errors=e;var n=Error.call(this,e?e.length+" errors occurred during unsubscription:\n  "+e.map(function(t,e){return e+1+") "+t.toString()}).join("\n  "):"");this.name=n.name="UnsubscriptionError",this.stack=n.stack,this.message=n.message}return r(e,t),e}(Error);n.UnsubscriptionError=o},{}],60:[function(t,e,n){"use strict";n.errorObject={e:{}}},{}],61:[function(t,e,n){"use strict";n.isArray=Array.isArray||function(t){return t&&"number"==typeof t.length}},{}],62:[function(t,e,n){"use strict";n.isArrayLike=function(t){return t&&"number"==typeof t.length}},{}],63:[function(t,e,n){"use strict";function r(t){return"function"==typeof t}n.isFunction=r},{}],64:[function(t,e,n){"use strict";function r(t){return null!=t&&"object"==typeof t}n.isObject=r},{}],65:[function(t,e,n){"use strict";function r(t){return t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.isPromise=r},{}],66:[function(t,e,n){"use strict";function r(t){return t&&"function"==typeof t.schedule}n.isScheduler=r},{}],67:[function(t,e,n){(function(t){"use strict";if(n.root="object"==typeof window&&window.window===window&&window||"object"==typeof self&&self.self===self&&self||"object"==typeof t&&t.global===t&&t,!n.root)throw new Error("RxJS could not find any global context (window, self, global)")}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],68:[function(t,e,n){"use strict";function r(t,e,n,r){var h=new l.InnerSubscriber(t,n,r);if(h.closed)return null;if(e instanceof u.Observable)return e._isScalar?(h.next(e.value),h.complete(),null):e.subscribe(h);if(i.isArrayLike(e)){for(var f=0,d=e.length;f<d&&!h.closed;f++)h.next(e[f]);h.closed||h.complete()}else{if(s.isPromise(e))return e.then(function(t){h.closed||(h.next(t),h.complete())},function(t){return h.error(t)}).then(null,function(t){o.root.setTimeout(function(){throw t})}),h;if(e&&"function"==typeof e[c.$$iterator])for(var y=e[c.$$iterator]();;){var m=y.next();if(m.done){h.complete();break}if(h.next(m.value),h.closed)break}else if(e&&"function"==typeof e[p.$$observable]){var v=e[p.$$observable]();if("function"==typeof v.subscribe)return v.subscribe(new l.InnerSubscriber(t,n,r));h.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var g="You provided "+(a.isObject(e)?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";h.error(new TypeError(g))}}return null}var o=t("./root"),i=t("./isArrayLike"),s=t("./isPromise"),a=t("./isObject"),u=t("../Observable"),c=t("../symbol/iterator"),l=t("../InnerSubscriber"),p=t("../symbol/observable");n.subscribeToResult=r},{"../InnerSubscriber":15,"../Observable":17,"../symbol/iterator":54,"../symbol/observable":55,"./isArrayLike":62,"./isObject":64,"./isPromise":65,"./root":67}],69:[function(t,e,n){"use strict";function r(t,e,n){if(t){if(t instanceof o.Subscriber)return t;if(t[i.$$rxSubscriber])return t[i.$$rxSubscriber]()}return t||e||n?new o.Subscriber(t,e,n):new o.Subscriber(s.empty)}var o=t("../Subscriber"),i=t("../symbol/rxSubscriber"),s=t("../Observer");n.toSubscriber=r},{"../Observer":18,"../Subscriber":22,"../symbol/rxSubscriber":56}],70:[function(t,e,n){"use strict";function r(){try{return i.apply(this,arguments)}catch(t){return s.errorObject.e=t,s.errorObject}}function o(t){return i=t,r}var i,s=t("./errorObject");n.tryCatch=o},{"./errorObject":60}]},{},[5])(5)});
\ No newline at end of file
diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js
index d3206dd1bc06328bc3566f6f4ecc3abd968399ab..3b30887860934622f3ce7785cdee142de387c33f 100755
--- a/apps/maarch_entreprise/js/functions.js
+++ b/apps/maarch_entreprise/js/functions.js
@@ -161,146 +161,142 @@ function deletePriority(rowToDelete) {
     }
 }
 
-function repost(php_file,update_divs,fields,action,timeout)
-    {
-        //alert('php file : '+php_file);
-        var event_count = 0;
+function repost(php_file,update_divs,fields,action,timeout) {
+    var event_count = 0;
 
-        //Observe fields
-        for (var i = 0; i < fields.length; ++i) {
+    //Observe fields
+    for (var i = 0; i < fields.length; ++i) {
+        $(fields[i]).observe(action,send);
+    }
 
-            $(fields[i]).observe(action,send);
-        }
+    function send(event)
+    {
+        var params = '';
+        event_count++;
 
-        function send(event)
+        for (var i = 0; i < fields.length; ++i)
         {
-            params = '';
-            event_count++;
-
-            for (var i = 0; i < fields.length; ++i)
-            {
-                params += $(fields[i]).serialize()+'&';
-            }
+            params += $(fields[i]).serialize()+'&';
+        }
 
-            setTimeout(function() {
-                event_count--;
+        setTimeout(function() {
+            event_count--;
 
-                if(event_count == 0)
-                    new Ajax.Request(php_file,
-                      {
-                        method:'post',
-                        onSuccess: function(transport){
+            if(event_count == 0)
+                new Ajax.Request(php_file,
+                  {
+                    method:'post',
+                    onSuccess: function(transport){
 
-                        var response = transport.responseText;
-                        var reponse_div = new Element("div");
-                        reponse_div.innerHTML = response;
-                        var replace_div = reponse_div.select('div');
+                    var response = transport.responseText;
+                    var reponse_div = new Element("div");
+                    reponse_div.innerHTML = response;
+                    var replace_div = reponse_div.select('div');
 
-                        for (var i = 0; i < replace_div.length; ++i)
-                            for(var j = 0; j < update_divs.length; ++j)
-                            {
-                                if(replace_div[i].id == update_divs[j])
-                                    $(update_divs[j]).replace(replace_div[i]);
-                            }
-                        },
-                        onFailure: function(){ alert('Something went wrong...'); },
-                        parameters: params
-                      });
-            }, timeout);
-        }
+                    for (var i = 0; i < replace_div.length; ++i)
+                        for(var j = 0; j < update_divs.length; ++j)
+                        {
+                            if(replace_div[i].id == update_divs[j])
+                                $(update_divs[j]).replace(replace_div[i]);
+                        }
+                    },
+                    onFailure: function(){ alert('Something went wrong...'); },
+                    parameters: params
+                  });
+        }, timeout);
     }
+}
 
+/**
+* List used for autocompletion
+*
+*/
+var initList = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv)
+{
+    new Ajax.Autocompleter(
+        idField,
+        idList,
+        theUrlToListScript,
+        {
+            paramName: paramNameSrv,
+            minChars: minCharsSrv
+        });
+};
 
-    /**
-    * List used for autocompletion
-    *
-    */
-    var initList = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv)
-    {
-        new Ajax.Autocompleter(
-            idField,
-            idList,
-            theUrlToListScript,
-            {
-                paramName: paramNameSrv,
-                minChars: minCharsSrv
-            });
-    };
-
-    /**
-    * List used for autocompletion and set id in hidden input
-    *
-    */
-    var initList_hidden_input = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value)
-    {
-        new Ajax.Autocompleter(
-            idField,
-            idList,
-            theUrlToListScript,
-            {
-                paramName: paramNameSrv,
-                minChars: minCharsSrv,
-                afterUpdateElement: function (text, li){
-                    $(new_value).value = li.id;
-                }
-            });
-    };
+/**
+* List used for autocompletion and set id in hidden input
+*
+*/
+var initList_hidden_input = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value)
+{
+    new Ajax.Autocompleter(
+        idField,
+        idList,
+        theUrlToListScript,
+        {
+            paramName: paramNameSrv,
+            minChars: minCharsSrv,
+            afterUpdateElement: function (text, li){
+                $(new_value).value = li.id;
+            }
+        });
+};
 
-    var initList_hidden_input2 = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, actual_value)
-    {
-        new Ajax.Autocompleter(
-            idField,
-            idList,
-            theUrlToListScript,
-            {
-                paramName: paramNameSrv,
-                minChars: minCharsSrv,
-                afterUpdateElement: function (text, li){
-                    var str = li.id;
-                    var res = str.split(",");
-                    $(new_value).value = res[1];
-                    $(actual_value).value = res[0];
-                    $('country').value = 'FRANCE';
-                }
-            });
-    };
+var initList_hidden_input2 = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, actual_value)
+{
+    new Ajax.Autocompleter(
+        idField,
+        idList,
+        theUrlToListScript,
+        {
+            paramName: paramNameSrv,
+            minChars: minCharsSrv,
+            afterUpdateElement: function (text, li){
+                var str = li.id;
+                var res = str.split(",");
+                $(new_value).value = res[1];
+                $(actual_value).value = res[0];
+                $('country').value = 'FRANCE';
+            }
+        });
+};
 
-    var initList_hidden_input3 = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, actual_value)
-    {
-        new Ajax.Autocompleter(
-            idField,
-            idList,
-            theUrlToListScript,
-            {
-                paramName: paramNameSrv,
-                minChars: minCharsSrv,
-                afterUpdateElement: function (text, li){
-                    var str = li.id;
-                    var res = str.split(",");
-                    $(new_value).value = res[0];
-                    $(actual_value).value = res[1];
-                    $('country').value = 'FRANCE';
-                }
-            });
-    };
+var initList_hidden_input3 = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, actual_value)
+{
+    new Ajax.Autocompleter(
+        idField,
+        idList,
+        theUrlToListScript,
+        {
+            paramName: paramNameSrv,
+            minChars: minCharsSrv,
+            afterUpdateElement: function (text, li){
+                var str = li.id;
+                var res = str.split(",");
+                $(new_value).value = res[0];
+                $(actual_value).value = res[1];
+                $('country').value = 'FRANCE';
+            }
+        });
+};
 
-    var initList_hidden_input_before = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, previous_name, previous_field)
-    {
-        new Ajax.Autocompleter(
-            idField,
-            idList,
-            theUrlToListScript,
-            {
-                paramName: paramNameSrv,
-                minChars: minCharsSrv,
-                callback: function (element, entry){
-					return entry + "&"+previous_name+"=" + $(previous_field).value; 
-			    },
-                afterUpdateElement: function (text, li){
-                    $(new_value).value = li.id;
-                }
-            });
-    };
+var initList_hidden_input_before = function (idField, idList, theUrlToListScript, paramNameSrv, minCharsSrv, new_value, previous_name, previous_field)
+{
+    new Ajax.Autocompleter(
+        idField,
+        idList,
+        theUrlToListScript,
+        {
+            paramName: paramNameSrv,
+            minChars: minCharsSrv,
+            callback: function (element, entry){
+                return entry + "&"+previous_name+"=" + $(previous_field).value;
+            },
+            afterUpdateElement: function (text, li){
+                $(new_value).value = li.id;
+            }
+        });
+};
 
 
 /*********** Init vars for the calendar ****************/
@@ -1017,7 +1013,7 @@ function createModal(txt, id_mod, height, width, mode_frm, iframe_container_id){
     Event.observe(layer, 'mousewheel', function(event){Event.stop(event);}.bindAsEventListener(), true);
     Event.observe(layer, 'DOMMouseScroll', function(event){Event.stop(event);}.bindAsEventListener(), false);
     $(id_mod).focus();
-    $$("input[type='button']").each(function(v) {v.removeAttribute('disabled');v.style.opacity="1";})
+    $j("input[type='button']").prop("disabled", false).css("opacity", "1");
 }
 
 function test_form()
@@ -1232,10 +1228,7 @@ function valid_action_form(current_form_id, path_manage_script, id_action, value
             },
             onCreate: function(answer) {
                 //show loading image in toolbar
-                $$("input[type='button']").each(function(v) {
-                    v.setAttribute("disabled","disabled");
-                    v.style.opacity = "0.5";
-                });
+                $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
             },
             onSuccess: function(answer){
                 eval('response='+answer.responseText);
@@ -1266,7 +1259,8 @@ function valid_action_form(current_form_id, path_manage_script, id_action, value
                     try {
                         $('frm_error_'+id_action).innerHTML = response.error_txt;
                         alert($('frm_error_'+id_action).innerHTML);
-                        $$("input[type='button']").each(function(v) {v.removeAttribute('disabled');v.style.opacity="1";});
+                        $j("input[type='button']").prop("disabled", false).css("opacity", "1");
+
                     } catch(e){
 
                     }
@@ -1474,7 +1468,8 @@ function action_send_first_request( path_manage_script, mode_req,  id_action, re
             },
             beforeSend: function() {
                 //show loading image in toolbar
-                $$("input[type='button']").each(function(v) {v.setAttribute("disabled","disabled");v.style.opacity="0.5";});
+                $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
+
             },
             success: function(answer){
                 eval("response = " + answer);
@@ -1561,9 +1556,7 @@ function action_send_form_confirm_result(path_manage_script, mode_req, id_action
                               },
                 onCreate: function(answer) {
                     //show loading image in toolbar
-                    $$("input[type='button']").each(function(v) {
-                        v.setAttribute("disabled","disabled");v.style.opacity="0.5";
-                    });
+                    $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
                 },
                 onSuccess: function(answer){
                     eval('response='+answer.responseText);
@@ -1588,12 +1581,8 @@ function action_send_form_confirm_result(path_manage_script, mode_req, id_action
                     {
                         try{
                             $('frm_error').innerHTML = response.error_txt;
-                            $$("input[type='button']").each(function(v) {
-                                v.setAttribute("disabled","disabled");
-                                v.style.opacity="0.5";
-                            });
-                            }
-                        catch(e){}
+                            $j("input[type='button']").prop("disabled", true).css("opacity", "0.5");
+                        } catch(e) {}
                     }
                 },
                 onFailure: function(){
@@ -3118,7 +3107,7 @@ function loadTab(resId,collId,titleTab,pathScriptTab,module){
             document.getElementById('show_tab').style.display='block';
             document.getElementById('show_tab').setAttribute('module',module);
             
-            $$("span[class='tab_module']").each(function(v) {v.innerHTML = '<i class="fa fa-plus-square-o"></i>';})
+            $j("span[class='tab_module']").each(function(i, e) {e.innerHTML = '<i class="fa fa-plus-square-o"></i>';})
             if(document.getElementById(module+'_tab') != undefined ){
                 document.getElementById(module+'_tab').innerHTML = '<i class="fa fa-minus-square-o"></i>';
             }
diff --git a/apps/maarch_entreprise/js/indexing.js b/apps/maarch_entreprise/js/indexing.js
index 0dead96a2fda4ff4b4fa40281072946861e979d0..14b038787ada8be79697a3b540d60caea9c009e4 100644
--- a/apps/maarch_entreprise/js/indexing.js
+++ b/apps/maarch_entreprise/js/indexing.js
@@ -924,30 +924,6 @@ function process_category(category, display_value_tr, params_cat)
 /** Declaration of the autocompleter object used for the contacts*/
 var contact_autocompleter;
 
-/**
- * Launch the Ajax autocomplete object to activate autocompletion on contacts
- *
- * @param path_script String Path to the Ajax script
- **/
-function launch_autocompleter_contacts(path_script, id_text, id_div, cat_id)
-{
-    var input  = id_text || 'contact';
-    var div    = id_div  || 'show_contacts';
-    
-    var params = get_contacts_params();
-    
-    if (contact_autocompleter && contact_autocompleter.element == $$('#' + input)[0])
-        contact_autocompleter.options.defaultParams = params;
-    else if(path_script)
-        contact_autocompleter = new Ajax.Autocompleter(input, div, path_script, {
-            method:'get',
-            paramName:'Input',
-            parameters: params,
-            minChars: 2
-        });
-    else return false;
-}
-
 /**
  * Launch the Ajax autocomplete object to activate autocompletion on contacts en put address_id and contact_id in an hidden input
  *
@@ -960,7 +936,7 @@ function launch_autocompleter_contacts_v2(path_script, id_text, id_div, cat_id,
     
     var params = get_contacts_params();
 
-    if (contact_autocompleter && contact_autocompleter.element == $$('#' + input)[0])
+    if (contact_autocompleter && contact_autocompleter.element == $j('#' + input)[0])
         contact_autocompleter.options.defaultParams = params;
     else if(path_script)
         contact_autocompleter = new Ajax.Autocompleter(input, div, path_script, {
@@ -991,9 +967,7 @@ function launch_autocompleter2_contacts_v2(path_script, id_text, id_div, cat_id,
     var input  = id_text || 'contact';
     var div    = id_div  || 'show_contacts';
     
-    // var params = get_contacts_params();
-    
-    if (contact_autocompleter && contact_autocompleter.element == $$('#' + input)[0])
+    if (contact_autocompleter && contact_autocompleter.element == $j('#' + input)[0])
         contact_autocompleter.options.defaultParams = params;
     else if(path_script)
         contact_autocompleter = new Ajax.Autocompleter2(input, div, path_script, {
@@ -1008,11 +982,13 @@ function launch_autocompleter2_contacts_v2(path_script, id_text, id_div, cat_id,
                 parent.$(address_id).value = res[1];
                 if (path_script2 && res[1]) {
                     getDepartment(path_script2, res[1]);
-                };
+                }
                 
             }
         });
-    else return false;
+    else {
+        return false;
+    }
 }
 
 function getDepartment(path_script, address_id) {
@@ -1031,24 +1007,6 @@ function getDepartment(path_script, address_id) {
     });
 }
 
-function launch_autocompleter_choose_contact(path_script, id_text, id_div, cat_id, contact_id){
-    var input  = id_text || 'contact';
-    var div    = id_div  || 'show_contacts';
-    
-    // var params = get_contacts_params();
-
-    contact_autocompleter = new Ajax.Autocompleter(input, div, path_script, {
-        method:'get',
-        paramName:'what',
-        // parameters: params,
-        minChars: 2,
-        afterUpdateElement: function (text, li){
-            $(contact_id).value = li.id;
-        }
-    });
-
-}
-
 function putInSessionContact(path_script){
     var contactSelected = $('contactSelect').options[$('contactSelect').selectedIndex].value;
     if (contactSelected == "") {
@@ -1172,126 +1130,6 @@ function update_contact_autocompleter()
     }
 }
 
-/**
- * Open in a popup the contact or user card
- *
- * @param path_contact_card String Path to the contact card
- * @param path_user_card String Path to the user card
- **/
-function open_contact_card(path_contact_card,path_user_card,mode)
-{
-    if (mode == '') {
-        mode = 'view';
-    }
-	
-	if($('email')){
-		var contact_value = $('email').value;
-	}else{
-		var contact_value = $('contact').value;
-	}
-    var arr = get_checked_values('type_contact');
-    var contact_id = contact_value.substring(contact_value.indexOf('(')+1, contact_value.indexOf(')'));
-    if (arr.length == 0) {
-        //~ if (console != null) {
-            //~ console.log('Erreur launch_autocompleter_contacts, no items checked');
-        //~ } else {
-            //~ alert('Erreur launch_autocompleter_contacts, no items checked');
-        //~ }
-        window.open(path_contact_card+'&id='+contact_id, 'contact_info', 'height=600, width=600,scrollbars=yes,resizable=yes');
-    } else {
-        if (arr[0] == 'internal') {
-            window.open(path_user_card+'&id='+contact_id, 'contact_info', 'height=450, width=600,scrollbars=no,resizable=yes');
-        } else if(arr[0] == 'external' || arr[0] == 'multi_external') {
-            window.open(path_contact_card+'&mode='+mode+'&id='+contact_id, 'contact_info', 'height=600, width=600,scrollbars=yes,resizable=yes');
-        }
-    }
-}
-
-function create_contact(path_create, id_action)
-{
-    /*if ($('type_contact_external')) {
-        $('type_contact_external').checked = true;
-        $('type_contact_external').onclick();
-    }*/
-
-    
-    var contact_frm = $('indexingfrmcontact');
-    var contact_type = get_contact_type($('category_id').value);
-    if (contact_frm) {
-        var corporate = 'Y' ;
-        if ($('is_corporate_N').checked == true) {
-            corporate = 'N' ;
-        }
-        var private = 'Y' ;
-        if ($('is_private_N').checked == true) {
-            private = 'N' ;
-        }
-        var title_val = $('title').value;
-        var society_val = $('society').value;
-        var phone_val = $('phone').value;
-        var mail_val = $('mail').value;
-        var num_val =  $('num').value;
-        var street_val = $('street').value;
-        var add_comp_val = $('add_comp').value;
-        var cp_val = $('cp').value;
-        var town_val = $('town').value;
-        var country_val = $('country').value;
-        var comp_data_val = $('comp_data').value;
-        var lastname_val = $('lastname').value;
-        var firstname_val = $('firstname').value;
-        var func_val = $('function').value;
-
-        new Ajax.Request(path_create,
-        {
-            method:'post',
-            asynchronous:false,
-            parameters: {
-                is_corporate : corporate,
-                is_private : private,
-                title : title_val,
-                society : society_val,
-                phone : phone_val,
-                mail : mail_val,
-                num : num_val,
-                street : street_val,
-                add_comp : add_comp_val,
-                cp : cp_val,
-                town : town_val,
-                country : country_val,
-                comp_data : comp_data_val,
-                lastname : lastname_val,
-                firstname : firstname_val,
-                func : func_val,
-                contactType : contact_type
-                },
-                    onSuccess: function(answer){
-                    eval("response = "+answer.responseText);
-                    //alert(answer.responseText);
-                    if (response.status == 0 ) {
-						if($('type_multi_contact_external').checked == true){
-							var contact = $('email');
-						}else{
-							var contact = $('contact');
-						}
-						
-                        if (contact) {
-                            contact.value = response.value;
-                            //$('contact_card').style.visibility = 'visible';
-                            new Effect.toggle('create_contact_div', 'blind', {delay:0.2});
-                            clear_form('indexingfrmcontact');
-                        }
-                    } else {
-                        try{
-                            $('frm_error_'+id_action).innerHTML = response.error_txt;
-                            }
-                        catch(e){}
-                    }
-                }
-        });
-    }
-
-}
-
 /**
  * When you change the contact type, the table used for the autocompletion change
  *
@@ -1763,7 +1601,7 @@ function hideSelectFile(){
     } else {
         // $('choose_file_div').style.display='block';
         window.frames["choose_file"].$('with_file').click(); 
-    };
+    }
 }
 
 function affiche_chrono(){
@@ -1814,33 +1652,6 @@ function affiche_chrono(){
     }
 }
 
-function affiche_get_chrono(){
-    
-    var type_id = document.getElementById('attachment_types').options[document.getElementById('attachment_types').selectedIndex];
-
-    if (type_id.getAttribute('get_chrono') == 'true') {      
-        $('get_chrono_label').setStyle({display: 'inline'});
-        $('get_chrono_display').setStyle({display: 'inline'});
-            new Ajax.Request('index.php?display=true&module=attachments&page=get_other_chrono_attachment',
-                {
-                    method:'post',
-                    parameters:
-                    {
-                        type_id : type_id
-                    },
-                     onSuccess: function(answer){
-                        eval("response = "+answer.responseText);
-                        $('get_chrono_display').innerHTML=response.chronoList;
-                    }
-                });
-    } else {
-        $('get_chrono_label').setStyle({display: 'none'});
-        $('get_chrono_display').setStyle({display: 'none'});
-        $('get_chrono_display').value='';
-        $('get_chrono').value='';
-    }
-}
-
 function showEditButton(){
 
     var modele_id = document.getElementById('templateOffice').options[document.getElementById('templateOffice').selectedIndex];
diff --git a/apps/maarch_entreprise/js/prototype.js b/apps/maarch_entreprise/js/prototype.js
index a5bfce268c5117d711e06e18cbfae09cdf0ed68a..cc89dafcd6ae69cf81adfea016a0f1a8d8341c58 100644
--- a/apps/maarch_entreprise/js/prototype.js
+++ b/apps/maarch_entreprise/js/prototype.js
@@ -1,4 +1,4 @@
-/*  Prototype JavaScript framework, version 1.7.2
+/*  Prototype JavaScript framework, version 1.7.3
  *  (c) 2005-2010 Sam Stephenson
  *
  *  Prototype is freely distributable under the terms of an MIT-style license.
@@ -8,7 +8,7 @@
 
 var Prototype = {
 
-  Version: '1.7.2',
+  Version: '1.7.3',
 
   Browser: (function(){
     var ua = navigator.userAgent;
@@ -621,7 +621,7 @@ Object.extend(String.prototype, (function() {
   }
 
   function stripTags() {
-    return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
+    return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?(\/)?>|<\/\w+>/gi, '');
   }
 
   function stripScripts() {
@@ -734,7 +734,7 @@ Object.extend(String.prototype, (function() {
 
   function evalJSON(sanitize) {
     var json = this.unfilterJSON(),
-        cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+        cx = /[\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff\u0000]/g;
     if (cx.test(json)) {
       json = json.replace(cx, function (a) {
         return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
@@ -1332,10 +1332,9 @@ Array.from = $A;
   }
 
   if (arrayProto.some) {
-    var some = wrapNative(Array.prototype.some);
+    some = wrapNative(Array.prototype.some);
   }
 
-
   function every(iterator) {
     if (this == null) throw new TypeError();
     iterator = iterator || Prototype.K;
@@ -1352,22 +1351,16 @@ Array.from = $A;
   }
 
   if (arrayProto.every) {
-    var every = wrapNative(Array.prototype.every);
-  }
-
-  var _reduce = arrayProto.reduce;
-  function inject(memo, iterator) {
-    iterator = iterator || Prototype.K;
-    var context = arguments[2];
-    return _reduce.call(this, iterator.bind(context), memo);
+    every = wrapNative(Array.prototype.every);
   }
 
-  if (!arrayProto.reduce) {
-    var inject = Enumerable.inject;
-  }
 
   Object.extend(arrayProto, Enumerable);
 
+  if (arrayProto.entries === Enumerable.entries) {
+    delete arrayProto.entries;
+  }
+
   if (!arrayProto._reverse)
     arrayProto._reverse = arrayProto.reverse;
 
@@ -1383,7 +1376,6 @@ Array.from = $A;
     any:       some,
     every:     every,
     all:       every,
-    inject:    inject,
 
     clear:     clear,
     first:     first,
@@ -2146,12 +2138,12 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
 
 
   function visible(element) {
-    return $(element).style.display !== 'none';
+    return $(element).getStyle('display') !== 'none';
   }
 
   function toggle(element, bool) {
     element = $(element);
-    if (Object.isUndefined(bool))
+    if (typeof bool !== 'boolean')
       bool = !Element.visible(element);
     Element[bool ? 'show' : 'hide'](element);
 
@@ -2683,6 +2675,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
 
   function descendantOf_DOM(element, ancestor) {
     element = $(element), ancestor = $(ancestor);
+    if (!element || !ancestor) return false;
     while (element = element.parentNode)
       if (element === ancestor) return true;
     return false;
@@ -2690,12 +2683,14 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
 
   function descendantOf_contains(element, ancestor) {
     element = $(element), ancestor = $(ancestor);
+    if (!element || !ancestor) return false;
     if (!ancestor.contains) return descendantOf_DOM(element, ancestor);
     return ancestor.contains(element) && ancestor !== element;
   }
 
   function descendantOf_compareDocumentPosition(element, ancestor) {
     element = $(element), ancestor = $(ancestor);
+    if (!element || !ancestor) return false;
     return (element.compareDocumentPosition(ancestor) & 8) === 8;
   }
 
@@ -2800,8 +2795,10 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
     for (var attr in attributes) {
       name = table.names[attr] || attr;
       value = attributes[attr];
-      if (table.values[attr])
-        name = table.values[attr](element, value) || name;
+      if (table.values[attr]) {
+        value = table.values[attr](element, value);
+        if (Object.isUndefined(value)) continue;
+      }
       if (value === false || value === null)
         element.removeAttribute(name);
       else if (value === true)
@@ -2979,7 +2976,9 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
 
     values: {
       checked: function(element, value) {
-        element.checked = !!value;
+        value = !!value;
+        element.checked = value;
+        return value ? 'checked' : null;
       },
 
       style: function(element, value) {
@@ -3124,8 +3123,11 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
       value = element.currentStyle[style];
     }
 
-    if (style === 'opacity' && !STANDARD_CSS_OPACITY_SUPPORTED)
-      return getOpacity_IE(element);
+    if (style === 'opacity') {
+      if (!STANDARD_CSS_OPACITY_SUPPORTED)
+        return getOpacity_IE(element);
+      else return value ? parseFloat(value) : 1.0;
+    }
 
     if (value === 'auto') {
       if ((style === 'width' || style === 'height') && Element.visible(element))
@@ -3177,7 +3179,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
     if (value < 0.00001) value = 0;
 
     style.filter = stripAlphaFromFilter_IE(filter) +
-     'alpha(opacity=' + (value * 100) + ')';
+     ' alpha(opacity=' + (value * 100) + ')';
 
     return element;
   }
@@ -3193,7 +3195,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
 
     var filter = Element.getStyle(element, 'filter');
     if (filter.length === 0) return 1.0;
-    var match = (filter || '').match(/alpha\(opacity=(.*)\)/);
+    var match = (filter || '').match(/alpha\(opacity=(.*)\)/i);
     if (match && match[1]) return parseFloat(match[1]) / 100;
     return 1.0;
   }
@@ -3519,7 +3521,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
     return boxWidth - bl - br - pl - pr;
   }
 
-  if ('currentStyle' in document.documentElement) {
+  if (!Object.isUndefined(document.documentElement.currentStyle) && !Prototype.Browser.Opera) {
     getRawStyle = getRawStyle_IE;
   }
 
@@ -4047,15 +4049,19 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
   function getOffsetParent(element) {
     element = $(element);
 
+    function selfOrBody(element) {
+      return isHtml(element) ? $(document.body) : $(element);
+    }
+
     if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
       return $(document.body);
 
     var isInline = (Element.getStyle(element, 'display') === 'inline');
-    if (!isInline && element.offsetParent) return $(element.offsetParent);
+    if (!isInline && element.offsetParent) return selfOrBody(element.offsetParent);
 
     while ((element = element.parentNode) && element !== document.body) {
       if (Element.getStyle(element, 'position') !== 'static') {
-        return isHtml(element) ? $(document.body) : $(element);
+        return selfOrBody(element);
       }
     }
 
@@ -4093,8 +4099,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
       }
     } while (element);
 
-    valueL -= layout.get('margin-top');
-    valueT -= layout.get('margin-left');
+    valueL -= layout.get('margin-left');
+    valueT -= layout.get('margin-top');
 
     return new Element.Offset(valueL, valueT);
   }
@@ -4265,6 +4271,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
       offsetLeft: 0
     }, options || {});
 
+    var docEl = document.documentElement;
+
     source  = $(source);
     element = $(element);
     var p, delta, layout, styles = {};
@@ -4278,19 +4286,41 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
       }
     }
 
+    function pageScrollXY() {
+      var x = 0, y = 0;
+      if (Object.isNumber(window.pageXOffset)) {
+        x = window.pageXOffset;
+        y = window.pageYOffset;
+      } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
+        x = document.body.scrollLeft;
+        y = document.body.scrollTop;
+      } else if (docEl && (docEl.scrollLeft || docEl.scrollTop)) {
+        x = docEl.scrollLeft;
+        y = docEl.scrollTop;
+      }
+      return { x: x, y: y };
+    }
+
+    var pageXY = pageScrollXY();
+
+
     if (options.setWidth || options.setHeight) {
       layout = Element.getLayout(source);
     }
 
     if (options.setLeft)
-      styles.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+      styles.left = (p[0] + pageXY.x - delta[0] + options.offsetLeft) + 'px';
     if (options.setTop)
-      styles.top  = (p[1] - delta[1] + options.offsetTop)  + 'px';
+      styles.top  = (p[1] + pageXY.y - delta[1] + options.offsetTop)  + 'px';
+
+    var currentLayout = element.getLayout();
 
-    if (options.setWidth)
-      styles.width  = layout.get('border-box-width')  + 'px';
-    if (options.setHeight)
-      styles.height = layout.get('border-box-height') + 'px';
+    if (options.setWidth) {
+      styles.width = layout.get('width')  + 'px';
+    }
+    if (options.setHeight) {
+      styles.height = layout.get('height') + 'px';
+    }
 
     return Element.setStyle(element, styles);
   }
@@ -4488,260 +4518,274 @@ Prototype.Selector = (function() {
   };
 })();
 Prototype._original_property = window.Sizzle;
+
+;(function () {
+  function fakeDefine(fn) {
+    Prototype._actual_sizzle = fn();
+  }
+  fakeDefine.amd = true;
+
+  if (typeof define !== 'undefined' && define.amd) {
+    Prototype._original_define = define;
+    Prototype._actual_sizzle = null;
+    window.define = fakeDefine;
+  }
+})();
+
 /*!
- * Sizzle CSS Selector Engine v@VERSION
+ * Sizzle CSS Selector Engine v1.10.18
  * http://sizzlejs.com/
  *
  * Copyright 2013 jQuery Foundation, Inc. and other contributors
  * Released under the MIT license
  * http://jquery.org/license
  *
- * Date: @DATE
+ * Date: 2014-02-05
  */
 (function( window ) {
 
 var i,
-  support,
-  Expr,
-  getText,
-  isXML,
-  compile,
-  select,
-  outermostContext,
-  sortInput,
-  hasDuplicate,
-
-  setDocument,
-  document,
-  docElem,
-  documentIsHTML,
-  rbuggyQSA,
-  rbuggyMatches,
-  matches,
-  contains,
-
-  expando = "sizzle" + -(new Date()),
-  preferredDoc = window.document,
-  dirruns = 0,
-  done = 0,
-  classCache = createCache(),
-  tokenCache = createCache(),
-  compilerCache = createCache(),
-  sortOrder = function( a, b ) {
-    if ( a === b ) {
-      hasDuplicate = true;
-    }
-    return 0;
-  },
-
-  strundefined = typeof undefined,
-  MAX_NEGATIVE = 1 << 31,
-
-  hasOwn = ({}).hasOwnProperty,
-  arr = [],
-  pop = arr.pop,
-  push_native = arr.push,
-  push = arr.push,
-  slice = arr.slice,
-  indexOf = arr.indexOf || function( elem ) {
-    var i = 0,
-      len = this.length;
-    for ( ; i < len; i++ ) {
-      if ( this[i] === elem ) {
-        return i;
-      }
-    }
-    return -1;
-  },
-
-  booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
-
-  whitespace = "[\\x20\\t\\r\\n\\f]",
-  characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
-  identifier = characterEncoding.replace( "w", "w#" ),
-
-  attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
-    "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
-  pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
-
-  rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
-  rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-  rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-  rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
-
-  rpseudo = new RegExp( pseudos ),
-  ridentifier = new RegExp( "^" + identifier + "$" ),
-
-  matchExpr = {
-    "ID": new RegExp( "^#(" + characterEncoding + ")" ),
-    "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
-    "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
-    "ATTR": new RegExp( "^" + attributes ),
-    "PSEUDO": new RegExp( "^" + pseudos ),
-    "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-      "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-      "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
-    "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
-    "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-      whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
-  },
-
-  rinputs = /^(?:input|select|textarea|button)$/i,
-  rheader = /^h\d$/i,
-
-  rnative = /^[^{]+\{\s*\[native \w/,
-
-  rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
-  rsibling = /[+~]/,
-  rescape = /'|\\/g,
-
-  runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-  funescape = function( _, escaped, escapedWhitespace ) {
-    var high = "0x" + escaped - 0x10000;
-    return high !== high || escapedWhitespace ?
-      escaped :
-      high < 0 ?
-        String.fromCharCode( high + 0x10000 ) :
-        String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
-  };
+	support,
+	Expr,
+	getText,
+	isXML,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	expando = "sizzle" + -(new Date()),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	strundefined = typeof undefined,
+	MAX_NEGATIVE = 1 << 31,
+
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	indexOf = arr.indexOf || function( elem ) {
+		var i = 0,
+			len = this.length;
+		for ( ; i < len; i++ ) {
+			if ( this[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+	identifier = characterEncoding.replace( "w", "w#" ),
+
+	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
+
+	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
+
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
+		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+	rescape = /'|\\/g,
+
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				String.fromCharCode( high + 0x10000 ) :
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	};
 
 try {
-  push.apply(
-    (arr = slice.call( preferredDoc.childNodes )),
-    preferredDoc.childNodes
-  );
-  arr[ preferredDoc.childNodes.length ].nodeType;
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	arr[ preferredDoc.childNodes.length ].nodeType;
 } catch ( e ) {
-  push = { apply: arr.length ?
-
-    function( target, els ) {
-      push_native.apply( target, slice.call(els) );
-    } :
-
-    function( target, els ) {
-      var j = target.length,
-        i = 0;
-      while ( (target[j++] = els[i++]) ) {}
-      target.length = j - 1;
-    }
-  };
+	push = { apply: arr.length ?
+
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
 }
 
 function Sizzle( selector, context, results, seed ) {
-  var match, elem, m, nodeType,
-    i, groups, old, nid, newContext, newSelector;
-
-  if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-    setDocument( context );
-  }
-
-  context = context || document;
-  results = results || [];
-
-  if ( !selector || typeof selector !== "string" ) {
-    return results;
-  }
-
-  if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
-    return [];
-  }
-
-  if ( documentIsHTML && !seed ) {
-
-    if ( (match = rquickExpr.exec( selector )) ) {
-      if ( (m = match[1]) ) {
-        if ( nodeType === 9 ) {
-          elem = context.getElementById( m );
-          if ( elem && elem.parentNode ) {
-            if ( elem.id === m ) {
-              results.push( elem );
-              return results;
-            }
-          } else {
-            return results;
-          }
-        } else {
-          if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
-            contains( context, elem ) && elem.id === m ) {
-            results.push( elem );
-            return results;
-          }
-        }
-
-      } else if ( match[2] ) {
-        push.apply( results, context.getElementsByTagName( selector ) );
-        return results;
-
-      } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
-        push.apply( results, context.getElementsByClassName( m ) );
-        return results;
-      }
-    }
-
-    if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-      nid = old = expando;
-      newContext = context;
-      newSelector = nodeType === 9 && selector;
-
-      if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-        groups = tokenize( selector );
-
-        if ( (old = context.getAttribute("id")) ) {
-          nid = old.replace( rescape, "\\$&" );
-        } else {
-          context.setAttribute( "id", nid );
-        }
-        nid = "[id='" + nid + "'] ";
-
-        i = groups.length;
-        while ( i-- ) {
-          groups[i] = nid + toSelector( groups[i] );
-        }
-        newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
-        newSelector = groups.join(",");
-      }
-
-      if ( newSelector ) {
-        try {
-          push.apply( results,
-            newContext.querySelectorAll( newSelector )
-          );
-          return results;
-        } catch(qsaError) {
-        } finally {
-          if ( !old ) {
-            context.removeAttribute("id");
-          }
-        }
-      }
-    }
-  }
-
-  return select( selector.replace( rtrim, "$1" ), context, results, seed );
+	var match, elem, m, nodeType,
+		i, groups, old, nid, newContext, newSelector;
+
+	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+		setDocument( context );
+	}
+
+	context = context || document;
+	results = results || [];
+
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
+
+	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
+		return [];
+	}
+
+	if ( documentIsHTML && !seed ) {
+
+		if ( (match = rquickExpr.exec( selector )) ) {
+			if ( (m = match[1]) ) {
+				if ( nodeType === 9 ) {
+					elem = context.getElementById( m );
+					if ( elem && elem.parentNode ) {
+						if ( elem.id === m ) {
+							results.push( elem );
+							return results;
+						}
+					} else {
+						return results;
+					}
+				} else {
+					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+						contains( context, elem ) && elem.id === m ) {
+						results.push( elem );
+						return results;
+					}
+				}
+
+			} else if ( match[2] ) {
+				push.apply( results, context.getElementsByTagName( selector ) );
+				return results;
+
+			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
+				push.apply( results, context.getElementsByClassName( m ) );
+				return results;
+			}
+		}
+
+		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+			nid = old = expando;
+			newContext = context;
+			newSelector = nodeType === 9 && selector;
+
+			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+				groups = tokenize( selector );
+
+				if ( (old = context.getAttribute("id")) ) {
+					nid = old.replace( rescape, "\\$&" );
+				} else {
+					context.setAttribute( "id", nid );
+				}
+				nid = "[id='" + nid + "'] ";
+
+				i = groups.length;
+				while ( i-- ) {
+					groups[i] = nid + toSelector( groups[i] );
+				}
+				newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
+				newSelector = groups.join(",");
+			}
+
+			if ( newSelector ) {
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch(qsaError) {
+				} finally {
+					if ( !old ) {
+						context.removeAttribute("id");
+					}
+				}
+			}
+		}
+	}
+
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
 }
 
 /**
  * Create key-value caches of limited size
  * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- *  property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- *  deleting the oldest entry
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
  */
 function createCache() {
-  var keys = [];
-
-  function cache( key, value ) {
-    if ( keys.push( key + " " ) > Expr.cacheLength ) {
-      delete cache[ keys.shift() ];
-    }
-    return (cache[ key + " " ] = value);
-  }
-  return cache;
+	var keys = [];
+
+	function cache( key, value ) {
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
 }
 
 /**
@@ -4749,8 +4793,8 @@ function createCache() {
  * @param {Function} fn The function to mark
  */
 function markFunction( fn ) {
-  fn[ expando ] = true;
-  return fn;
+	fn[ expando ] = true;
+	return fn;
 }
 
 /**
@@ -4758,18 +4802,18 @@ function markFunction( fn ) {
  * @param {Function} fn Passed the created div and expects a boolean result
  */
 function assert( fn ) {
-  var div = document.createElement("div");
-
-  try {
-    return !!fn( div );
-  } catch (e) {
-    return false;
-  } finally {
-    if ( div.parentNode ) {
-      div.parentNode.removeChild( div );
-    }
-    div = null;
-  }
+	var div = document.createElement("div");
+
+	try {
+		return !!fn( div );
+	} catch (e) {
+		return false;
+	} finally {
+		if ( div.parentNode ) {
+			div.parentNode.removeChild( div );
+		}
+		div = null;
+	}
 }
 
 /**
@@ -4778,12 +4822,12 @@ function assert( fn ) {
  * @param {Function} handler The method that will be applied
  */
 function addHandle( attrs, handler ) {
-  var arr = attrs.split("|"),
-    i = attrs.length;
+	var arr = attrs.split("|"),
+		i = attrs.length;
 
-  while ( i-- ) {
-    Expr.attrHandle[ arr[i] ] = handler;
-  }
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
 }
 
 /**
@@ -4793,24 +4837,24 @@ function addHandle( attrs, handler ) {
  * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
  */
 function siblingCheck( a, b ) {
-  var cur = b && a,
-    diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
-      ( ~b.sourceIndex || MAX_NEGATIVE ) -
-      ( ~a.sourceIndex || MAX_NEGATIVE );
-
-  if ( diff ) {
-    return diff;
-  }
-
-  if ( cur ) {
-    while ( (cur = cur.nextSibling) ) {
-      if ( cur === b ) {
-        return -1;
-      }
-    }
-  }
-
-  return a ? 1 : -1;
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			( ~b.sourceIndex || MAX_NEGATIVE ) -
+			( ~a.sourceIndex || MAX_NEGATIVE );
+
+	if ( diff ) {
+		return diff;
+	}
+
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
 }
 
 /**
@@ -4818,10 +4862,10 @@ function siblingCheck( a, b ) {
  * @param {String} type
  */
 function createInputPseudo( type ) {
-  return function( elem ) {
-    var name = elem.nodeName.toLowerCase();
-    return name === "input" && elem.type === type;
-  };
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
 }
 
 /**
@@ -4829,10 +4873,10 @@ function createInputPseudo( type ) {
  * @param {String} type
  */
 function createButtonPseudo( type ) {
-  return function( elem ) {
-    var name = elem.nodeName.toLowerCase();
-    return (name === "input" || name === "button") && elem.type === type;
-  };
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
 }
 
 /**
@@ -4840,20 +4884,20 @@ function createButtonPseudo( type ) {
  * @param {Function} fn
  */
 function createPositionalPseudo( fn ) {
-  return markFunction(function( argument ) {
-    argument = +argument;
-    return markFunction(function( seed, matches ) {
-      var j,
-        matchIndexes = fn( [], seed.length, argument ),
-        i = matchIndexes.length;
-
-      while ( i-- ) {
-        if ( seed[ (j = matchIndexes[i]) ] ) {
-          seed[j] = !(matches[j] = seed[j]);
-        }
-      }
-    });
-  });
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
 }
 
 /**
@@ -4862,7 +4906,7 @@ function createPositionalPseudo( fn ) {
  * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
  */
 function testContext( context ) {
-  return context && typeof context.getElementsByTagName !== strundefined && context;
+	return context && typeof context.getElementsByTagName !== strundefined && context;
 }
 
 support = Sizzle.support = {};
@@ -4873,8 +4917,8 @@ support = Sizzle.support = {};
  * @returns {Boolean} True iff elem is a non-HTML XML node
  */
 isXML = Sizzle.isXML = function( elem ) {
-  var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-  return documentElement ? documentElement.nodeName !== "HTML" : false;
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
 };
 
 /**
@@ -4883,342 +4927,342 @@ isXML = Sizzle.isXML = function( elem ) {
  * @returns {Object} Returns the current document
  */
 setDocument = Sizzle.setDocument = function( node ) {
-  var hasCompare,
-    doc = node ? node.ownerDocument || node : preferredDoc,
-    parent = doc.defaultView;
-
-  if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
-    return document;
-  }
-
-  document = doc;
-  docElem = doc.documentElement;
-
-  documentIsHTML = !isXML( doc );
-
-  if ( parent && parent !== parent.top ) {
-    if ( parent.addEventListener ) {
-      parent.addEventListener( "unload", function() {
-        setDocument();
-      }, false );
-    } else if ( parent.attachEvent ) {
-      parent.attachEvent( "onunload", function() {
-        setDocument();
-      });
-    }
-  }
-
-  /* Attributes
-  ---------------------------------------------------------------------- */
-
-  support.attributes = assert(function( div ) {
-    div.className = "i";
-    return !div.getAttribute("className");
-  });
-
-  /* getElement(s)By*
-  ---------------------------------------------------------------------- */
-
-  support.getElementsByTagName = assert(function( div ) {
-    div.appendChild( doc.createComment("") );
-    return !div.getElementsByTagName("*").length;
-  });
-
-  support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
-    div.innerHTML = "<div class='a'></div><div class='a i'></div>";
-
-    div.firstChild.className = "i";
-    return div.getElementsByClassName("i").length === 2;
-  });
-
-  support.getById = assert(function( div ) {
-    docElem.appendChild( div ).id = expando;
-    return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
-  });
-
-  if ( support.getById ) {
-    Expr.find["ID"] = function( id, context ) {
-      if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
-        var m = context.getElementById( id );
-        return m && m.parentNode ? [m] : [];
-      }
-    };
-    Expr.filter["ID"] = function( id ) {
-      var attrId = id.replace( runescape, funescape );
-      return function( elem ) {
-        return elem.getAttribute("id") === attrId;
-      };
-    };
-  } else {
-    delete Expr.find["ID"];
-
-    Expr.filter["ID"] =  function( id ) {
-      var attrId = id.replace( runescape, funescape );
-      return function( elem ) {
-        var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
-        return node && node.value === attrId;
-      };
-    };
-  }
-
-  Expr.find["TAG"] = support.getElementsByTagName ?
-    function( tag, context ) {
-      if ( typeof context.getElementsByTagName !== strundefined ) {
-        return context.getElementsByTagName( tag );
-      }
-    } :
-    function( tag, context ) {
-      var elem,
-        tmp = [],
-        i = 0,
-        results = context.getElementsByTagName( tag );
-
-      if ( tag === "*" ) {
-        while ( (elem = results[i++]) ) {
-          if ( elem.nodeType === 1 ) {
-            tmp.push( elem );
-          }
-        }
-
-        return tmp;
-      }
-      return results;
-    };
-
-  Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
-    if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
-      return context.getElementsByClassName( className );
-    }
-  };
-
-  /* QSA/matchesSelector
-  ---------------------------------------------------------------------- */
-
-
-  rbuggyMatches = [];
-
-  rbuggyQSA = [];
-
-  if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
-    assert(function( div ) {
-      div.innerHTML = "<select t=''><option selected=''></option></select>";
-
-      if ( div.querySelectorAll("[t^='']").length ) {
-        rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
-      }
-
-      if ( !div.querySelectorAll("[selected]").length ) {
-        rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
-      }
-
-      if ( !div.querySelectorAll(":checked").length ) {
-        rbuggyQSA.push(":checked");
-      }
-    });
-
-    assert(function( div ) {
-      var input = doc.createElement("input");
-      input.setAttribute( "type", "hidden" );
-      div.appendChild( input ).setAttribute( "name", "D" );
-
-      if ( div.querySelectorAll("[name=d]").length ) {
-        rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
-      }
-
-      if ( !div.querySelectorAll(":enabled").length ) {
-        rbuggyQSA.push( ":enabled", ":disabled" );
-      }
-
-      div.querySelectorAll("*,:x");
-      rbuggyQSA.push(",.*:");
-    });
-  }
-
-  if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
-    docElem.mozMatchesSelector ||
-    docElem.oMatchesSelector ||
-    docElem.msMatchesSelector) )) ) {
-
-    assert(function( div ) {
-      support.disconnectedMatch = matches.call( div, "div" );
-
-      matches.call( div, "[s!='']:x" );
-      rbuggyMatches.push( "!=", pseudos );
-    });
-  }
-
-  rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-  rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
-  /* Contains
-  ---------------------------------------------------------------------- */
-  hasCompare = rnative.test( docElem.compareDocumentPosition );
-
-  contains = hasCompare || rnative.test( docElem.contains ) ?
-    function( a, b ) {
-      var adown = a.nodeType === 9 ? a.documentElement : a,
-        bup = b && b.parentNode;
-      return a === bup || !!( bup && bup.nodeType === 1 && (
-        adown.contains ?
-          adown.contains( bup ) :
-          a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-      ));
-    } :
-    function( a, b ) {
-      if ( b ) {
-        while ( (b = b.parentNode) ) {
-          if ( b === a ) {
-            return true;
-          }
-        }
-      }
-      return false;
-    };
-
-  /* Sorting
-  ---------------------------------------------------------------------- */
-
-  sortOrder = hasCompare ?
-  function( a, b ) {
-
-    if ( a === b ) {
-      hasDuplicate = true;
-      return 0;
-    }
-
-    var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
-    if ( compare ) {
-      return compare;
-    }
-
-    compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
-      a.compareDocumentPosition( b ) :
-
-      1;
-
-    if ( compare & 1 ||
-      (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
-      if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
-        return -1;
-      }
-      if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
-        return 1;
-      }
-
-      return sortInput ?
-        ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-        0;
-    }
-
-    return compare & 4 ? -1 : 1;
-  } :
-  function( a, b ) {
-    if ( a === b ) {
-      hasDuplicate = true;
-      return 0;
-    }
-
-    var cur,
-      i = 0,
-      aup = a.parentNode,
-      bup = b.parentNode,
-      ap = [ a ],
-      bp = [ b ];
-
-    if ( !aup || !bup ) {
-      return a === doc ? -1 :
-        b === doc ? 1 :
-        aup ? -1 :
-        bup ? 1 :
-        sortInput ?
-        ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-        0;
-
-    } else if ( aup === bup ) {
-      return siblingCheck( a, b );
-    }
-
-    cur = a;
-    while ( (cur = cur.parentNode) ) {
-      ap.unshift( cur );
-    }
-    cur = b;
-    while ( (cur = cur.parentNode) ) {
-      bp.unshift( cur );
-    }
-
-    while ( ap[i] === bp[i] ) {
-      i++;
-    }
-
-    return i ?
-      siblingCheck( ap[i], bp[i] ) :
-
-      ap[i] === preferredDoc ? -1 :
-      bp[i] === preferredDoc ? 1 :
-      0;
-  };
-
-  return doc;
+	var hasCompare,
+		doc = node ? node.ownerDocument || node : preferredDoc,
+		parent = doc.defaultView;
+
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	document = doc;
+	docElem = doc.documentElement;
+
+	documentIsHTML = !isXML( doc );
+
+	if ( parent && parent !== parent.top ) {
+		if ( parent.addEventListener ) {
+			parent.addEventListener( "unload", function() {
+				setDocument();
+			}, false );
+		} else if ( parent.attachEvent ) {
+			parent.attachEvent( "onunload", function() {
+				setDocument();
+			});
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	support.attributes = assert(function( div ) {
+		div.className = "i";
+		return !div.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	support.getElementsByTagName = assert(function( div ) {
+		div.appendChild( doc.createComment("") );
+		return !div.getElementsByTagName("*").length;
+	});
+
+	support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
+		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
+
+		div.firstChild.className = "i";
+		return div.getElementsByClassName("i").length === 2;
+	});
+
+	support.getById = assert(function( div ) {
+		docElem.appendChild( div ).id = expando;
+		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
+	});
+
+	if ( support.getById ) {
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
+				var m = context.getElementById( id );
+				return m && m.parentNode ? [m] : [];
+			}
+		};
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+	} else {
+		delete Expr.find["ID"];
+
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+	}
+
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== strundefined ) {
+				return context.getElementsByTagName( tag );
+			}
+		} :
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				results = context.getElementsByTagName( tag );
+
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+
+	rbuggyMatches = [];
+
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
+		assert(function( div ) {
+			div.innerHTML = "<select t=''><option selected=''></option></select>";
+
+			if ( div.querySelectorAll("[t^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			if ( !div.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			if ( !div.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+		});
+
+		assert(function( div ) {
+			var input = doc.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			div.appendChild( input ).setAttribute( "name", "D" );
+
+			if ( div.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			if ( !div.querySelectorAll(":enabled").length ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			div.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( div ) {
+			support.disconnectedMatch = matches.call( div, "div" );
+
+			matches.call( div, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			1;
+
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			return sortInput ?
+				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		if ( !aup || !bup ) {
+			return a === doc ? -1 :
+				b === doc ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+				0;
+
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			siblingCheck( ap[i], bp[i] ) :
+
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return doc;
 };
 
 Sizzle.matches = function( expr, elements ) {
-  return Sizzle( expr, null, null, elements );
+	return Sizzle( expr, null, null, elements );
 };
 
 Sizzle.matchesSelector = function( elem, expr ) {
-  if ( ( elem.ownerDocument || elem ) !== document ) {
-    setDocument( elem );
-  }
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
 
-  expr = expr.replace( rattributeQuotes, "='$1']" );
+	expr = expr.replace( rattributeQuotes, "='$1']" );
 
-  if ( support.matchesSelector && documentIsHTML &&
-    ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
-    ( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+	if ( support.matchesSelector && documentIsHTML &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
-    try {
-      var ret = matches.call( elem, expr );
+		try {
+			var ret = matches.call( elem, expr );
 
-      if ( ret || support.disconnectedMatch ||
-          elem.document && elem.document.nodeType !== 11 ) {
-        return ret;
-      }
-    } catch(e) {}
-  }
+			if ( ret || support.disconnectedMatch ||
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch(e) {}
+	}
 
-  return Sizzle( expr, document, null, [elem] ).length > 0;
+	return Sizzle( expr, document, null, [elem] ).length > 0;
 };
 
 Sizzle.contains = function( context, elem ) {
-  if ( ( context.ownerDocument || context ) !== document ) {
-    setDocument( context );
-  }
-  return contains( context, elem );
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
 };
 
 Sizzle.attr = function( elem, name ) {
-  if ( ( elem.ownerDocument || elem ) !== document ) {
-    setDocument( elem );
-  }
-
-  var fn = Expr.attrHandle[ name.toLowerCase() ],
-    val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
-      fn( elem, name, !documentIsHTML ) :
-      undefined;
-
-  return val !== undefined ?
-    val :
-    support.attributes || !documentIsHTML ?
-      elem.getAttribute( name ) :
-      (val = elem.getAttributeNode(name)) && val.specified ?
-        val.value :
-        null;
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
 };
 
 Sizzle.error = function( msg ) {
-  throw new Error( "Syntax error, unrecognized expression: " + msg );
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
 };
 
 /**
@@ -5226,29 +5270,29 @@ Sizzle.error = function( msg ) {
  * @param {ArrayLike} results
  */
 Sizzle.uniqueSort = function( results ) {
-  var elem,
-    duplicates = [],
-    j = 0,
-    i = 0;
-
-  hasDuplicate = !support.detectDuplicates;
-  sortInput = !support.sortStable && results.slice( 0 );
-  results.sort( sortOrder );
-
-  if ( hasDuplicate ) {
-    while ( (elem = results[i++]) ) {
-      if ( elem === results[ i ] ) {
-        j = duplicates.push( i );
-      }
-    }
-    while ( j-- ) {
-      results.splice( duplicates[ j ], 1 );
-    }
-  }
-
-  sortInput = null;
-
-  return results;
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	sortInput = null;
+
+	return results;
 };
 
 /**
@@ -5256,443 +5300,443 @@ Sizzle.uniqueSort = function( results ) {
  * @param {Array|Element} elem
  */
 getText = Sizzle.getText = function( elem ) {
-  var node,
-    ret = "",
-    i = 0,
-    nodeType = elem.nodeType;
-
-  if ( !nodeType ) {
-    while ( (node = elem[i++]) ) {
-      ret += getText( node );
-    }
-  } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-    if ( typeof elem.textContent === "string" ) {
-      return elem.textContent;
-    } else {
-      for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-        ret += getText( elem );
-      }
-    }
-  } else if ( nodeType === 3 || nodeType === 4 ) {
-    return elem.nodeValue;
-  }
-
-  return ret;
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		while ( (node = elem[i++]) ) {
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+
+	return ret;
 };
 
 Expr = Sizzle.selectors = {
 
-  cacheLength: 50,
-
-  createPseudo: markFunction,
-
-  match: matchExpr,
-
-  attrHandle: {},
-
-  find: {},
-
-  relative: {
-    ">": { dir: "parentNode", first: true },
-    " ": { dir: "parentNode" },
-    "+": { dir: "previousSibling", first: true },
-    "~": { dir: "previousSibling" }
-  },
-
-  preFilter: {
-    "ATTR": function( match ) {
-      match[1] = match[1].replace( runescape, funescape );
-
-      match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
-
-      if ( match[2] === "~=" ) {
-        match[3] = " " + match[3] + " ";
-      }
-
-      return match.slice( 0, 4 );
-    },
-
-    "CHILD": function( match ) {
-      /* matches from matchExpr["CHILD"]
-        1 type (only|nth|...)
-        2 what (child|of-type)
-        3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
-        4 xn-component of xn+y argument ([+-]?\d*n|)
-        5 sign of xn-component
-        6 x of xn-component
-        7 sign of y-component
-        8 y of y-component
-      */
-      match[1] = match[1].toLowerCase();
-
-      if ( match[1].slice( 0, 3 ) === "nth" ) {
-        if ( !match[3] ) {
-          Sizzle.error( match[0] );
-        }
-
-        match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-        match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
-      } else if ( match[3] ) {
-        Sizzle.error( match[0] );
-      }
-
-      return match;
-    },
-
-    "PSEUDO": function( match ) {
-      var excess,
-        unquoted = !match[5] && match[2];
-
-      if ( matchExpr["CHILD"].test( match[0] ) ) {
-        return null;
-      }
+	cacheLength: 50,
 
-      if ( match[3] && match[4] !== undefined ) {
-        match[2] = match[4];
+	createPseudo: markFunction,
 
-      } else if ( unquoted && rpseudo.test( unquoted ) &&
-        (excess = tokenize( unquoted, true )) &&
-        (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+	match: matchExpr,
 
-        match[0] = match[0].slice( 0, excess );
-        match[2] = unquoted.slice( 0, excess );
-      }
-
-      return match.slice( 0, 3 );
-    }
-  },
+	attrHandle: {},
 
-  filter: {
+	find: {},
 
-    "TAG": function( nodeNameSelector ) {
-      var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
-      return nodeNameSelector === "*" ?
-        function() { return true; } :
-        function( elem ) {
-          return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
-        };
-    },
-
-    "CLASS": function( className ) {
-      var pattern = classCache[ className + " " ];
-
-      return pattern ||
-        (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-        classCache( className, function( elem ) {
-          return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
-        });
-    },
-
-    "ATTR": function( name, operator, check ) {
-      return function( elem ) {
-        var result = Sizzle.attr( elem, name );
-
-        if ( result == null ) {
-          return operator === "!=";
-        }
-        if ( !operator ) {
-          return true;
-        }
-
-        result += "";
-
-        return operator === "=" ? result === check :
-          operator === "!=" ? result !== check :
-          operator === "^=" ? check && result.indexOf( check ) === 0 :
-          operator === "*=" ? check && result.indexOf( check ) > -1 :
-          operator === "$=" ? check && result.slice( -check.length ) === check :
-          operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
-          operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
-          false;
-      };
-    },
-
-    "CHILD": function( type, what, argument, first, last ) {
-      var simple = type.slice( 0, 3 ) !== "nth",
-        forward = type.slice( -4 ) !== "last",
-        ofType = what === "of-type";
-
-      return first === 1 && last === 0 ?
-
-        function( elem ) {
-          return !!elem.parentNode;
-        } :
-
-        function( elem, context, xml ) {
-          var cache, outerCache, node, diff, nodeIndex, start,
-            dir = simple !== forward ? "nextSibling" : "previousSibling",
-            parent = elem.parentNode,
-            name = ofType && elem.nodeName.toLowerCase(),
-            useCache = !xml && !ofType;
-
-          if ( parent ) {
-
-            if ( simple ) {
-              while ( dir ) {
-                node = elem;
-                while ( (node = node[ dir ]) ) {
-                  if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
-                    return false;
-                  }
-                }
-                start = dir = type === "only" && !start && "nextSibling";
-              }
-              return true;
-            }
-
-            start = [ forward ? parent.firstChild : parent.lastChild ];
-
-            if ( forward && useCache ) {
-              outerCache = parent[ expando ] || (parent[ expando ] = {});
-              cache = outerCache[ type ] || [];
-              nodeIndex = cache[0] === dirruns && cache[1];
-              diff = cache[0] === dirruns && cache[2];
-              node = nodeIndex && parent.childNodes[ nodeIndex ];
-
-              while ( (node = ++nodeIndex && node && node[ dir ] ||
-
-                (diff = nodeIndex = 0) || start.pop()) ) {
-
-                if ( node.nodeType === 1 && ++diff && node === elem ) {
-                  outerCache[ type ] = [ dirruns, nodeIndex, diff ];
-                  break;
-                }
-              }
-
-            } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
-              diff = cache[1];
-
-            } else {
-              while ( (node = ++nodeIndex && node && node[ dir ] ||
-                (diff = nodeIndex = 0) || start.pop()) ) {
-
-                if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
-                  if ( useCache ) {
-                    (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
-                  }
-
-                  if ( node === elem ) {
-                    break;
-                  }
-                }
-              }
-            }
-
-            diff -= last;
-            return diff === first || ( diff % first === 0 && diff / first >= 0 );
-          }
-        };
-    },
-
-    "PSEUDO": function( pseudo, argument ) {
-      var args,
-        fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
-          Sizzle.error( "unsupported pseudo: " + pseudo );
-
-      if ( fn[ expando ] ) {
-        return fn( argument );
-      }
-
-      if ( fn.length > 1 ) {
-        args = [ pseudo, pseudo, "", argument ];
-        return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-          markFunction(function( seed, matches ) {
-            var idx,
-              matched = fn( seed, argument ),
-              i = matched.length;
-            while ( i-- ) {
-              idx = indexOf.call( seed, matched[i] );
-              seed[ idx ] = !( matches[ idx ] = matched[i] );
-            }
-          }) :
-          function( elem ) {
-            return fn( elem, 0, args );
-          };
-      }
-
-      return fn;
-    }
-  },
-
-  pseudos: {
-    "not": markFunction(function( selector ) {
-      var input = [],
-        results = [],
-        matcher = compile( selector.replace( rtrim, "$1" ) );
-
-      return matcher[ expando ] ?
-        markFunction(function( seed, matches, context, xml ) {
-          var elem,
-            unmatched = matcher( seed, null, xml, [] ),
-            i = seed.length;
-
-          while ( i-- ) {
-            if ( (elem = unmatched[i]) ) {
-              seed[i] = !(matches[i] = elem);
-            }
-          }
-        }) :
-        function( elem, context, xml ) {
-          input[0] = elem;
-          matcher( input, null, xml, results );
-          return !results.pop();
-        };
-    }),
-
-    "has": markFunction(function( selector ) {
-      return function( elem ) {
-        return Sizzle( selector, elem ).length > 0;
-      };
-    }),
-
-    "contains": markFunction(function( text ) {
-      return function( elem ) {
-        return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
-      };
-    }),
-
-    "lang": markFunction( function( lang ) {
-      if ( !ridentifier.test(lang || "") ) {
-        Sizzle.error( "unsupported lang: " + lang );
-      }
-      lang = lang.replace( runescape, funescape ).toLowerCase();
-      return function( elem ) {
-        var elemLang;
-        do {
-          if ( (elemLang = documentIsHTML ?
-            elem.lang :
-            elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
-            elemLang = elemLang.toLowerCase();
-            return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
-          }
-        } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
-        return false;
-      };
-    }),
-
-    "target": function( elem ) {
-      var hash = window.location && window.location.hash;
-      return hash && hash.slice( 1 ) === elem.id;
-    },
-
-    "root": function( elem ) {
-      return elem === docElem;
-    },
-
-    "focus": function( elem ) {
-      return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
-    },
-
-    "enabled": function( elem ) {
-      return elem.disabled === false;
-    },
-
-    "disabled": function( elem ) {
-      return elem.disabled === true;
-    },
-
-    "checked": function( elem ) {
-      var nodeName = elem.nodeName.toLowerCase();
-      return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
-    },
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
 
-    "selected": function( elem ) {
-      if ( elem.parentNode ) {
-        elem.parentNode.selectedIndex;
-      }
-
-      return elem.selected === true;
-    },
-
-    "empty": function( elem ) {
-      for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-        if ( elem.nodeType < 6 ) {
-          return false;
-        }
-      }
-      return true;
-    },
-
-    "parent": function( elem ) {
-      return !Expr.pseudos["empty"]( elem );
-    },
-
-    "header": function( elem ) {
-      return rheader.test( elem.nodeName );
-    },
-
-    "input": function( elem ) {
-      return rinputs.test( elem.nodeName );
-    },
-
-    "button": function( elem ) {
-      var name = elem.nodeName.toLowerCase();
-      return name === "input" && elem.type === "button" || name === "button";
-    },
-
-    "text": function( elem ) {
-      var attr;
-      return elem.nodeName.toLowerCase() === "input" &&
-        elem.type === "text" &&
-
-        ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
-    },
-
-    "first": createPositionalPseudo(function() {
-      return [ 0 ];
-    }),
-
-    "last": createPositionalPseudo(function( matchIndexes, length ) {
-      return [ length - 1 ];
-    }),
-
-    "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
-      return [ argument < 0 ? argument + length : argument ];
-    }),
-
-    "even": createPositionalPseudo(function( matchIndexes, length ) {
-      var i = 0;
-      for ( ; i < length; i += 2 ) {
-        matchIndexes.push( i );
-      }
-      return matchIndexes;
-    }),
-
-    "odd": createPositionalPseudo(function( matchIndexes, length ) {
-      var i = 1;
-      for ( ; i < length; i += 2 ) {
-        matchIndexes.push( i );
-      }
-      return matchIndexes;
-    }),
-
-    "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-      var i = argument < 0 ? argument + length : argument;
-      for ( ; --i >= 0; ) {
-        matchIndexes.push( i );
-      }
-      return matchIndexes;
-    }),
-
-    "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-      var i = argument < 0 ? argument + length : argument;
-      for ( ; ++i < length; ) {
-        matchIndexes.push( i );
-      }
-      return matchIndexes;
-    })
-  }
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[5] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			if ( match[3] && match[4] !== undefined ) {
+				match[2] = match[4];
+
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				(excess = tokenize( unquoted, true )) &&
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, outerCache, node, diff, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType;
+
+					if ( parent ) {
+
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+										return false;
+									}
+								}
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						if ( forward && useCache ) {
+							outerCache = parent[ expando ] || (parent[ expando ] = {});
+							cache = outerCache[ type ] || [];
+							nodeIndex = cache[0] === dirruns && cache[1];
+							diff = cache[0] === dirruns && cache[2];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+							diff = cache[1];
+
+						} else {
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+									if ( useCache ) {
+										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+									}
+
+									if ( node === elem ) {
+										break;
+									}
+								}
+							}
+						}
+
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf.call( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		"not": markFunction(function( selector ) {
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		"lang": markFunction( function( lang ) {
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		"enabled": function( elem ) {
+			return elem.disabled === false;
+		},
+
+		"disabled": function( elem ) {
+			return elem.disabled === true;
+		},
+
+		"checked": function( elem ) {
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		"empty": function( elem ) {
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
 };
 
 Expr.pseudos["nth"] = Expr.pseudos["eq"];
 
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
-  Expr.pseudos[ i ] = createInputPseudo( i );
+	Expr.pseudos[ i ] = createInputPseudo( i );
 }
 for ( i in { submit: true, reset: true } ) {
-  Expr.pseudos[ i ] = createButtonPseudo( i );
+	Expr.pseudos[ i ] = createButtonPseudo( i );
 }
 
 function setFilters() {}
@@ -5700,405 +5744,405 @@ setFilters.prototype = Expr.filters = Expr.pseudos;
 Expr.setFilters = new setFilters();
 
 function tokenize( selector, parseOnly ) {
-  var matched, match, tokens, type,
-    soFar, groups, preFilters,
-    cached = tokenCache[ selector + " " ];
-
-  if ( cached ) {
-    return parseOnly ? 0 : cached.slice( 0 );
-  }
-
-  soFar = selector;
-  groups = [];
-  preFilters = Expr.preFilter;
-
-  while ( soFar ) {
-
-    if ( !matched || (match = rcomma.exec( soFar )) ) {
-      if ( match ) {
-        soFar = soFar.slice( match[0].length ) || soFar;
-      }
-      groups.push( (tokens = []) );
-    }
-
-    matched = false;
-
-    if ( (match = rcombinators.exec( soFar )) ) {
-      matched = match.shift();
-      tokens.push({
-        value: matched,
-        type: match[0].replace( rtrim, " " )
-      });
-      soFar = soFar.slice( matched.length );
-    }
-
-    for ( type in Expr.filter ) {
-      if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-        (match = preFilters[ type ]( match ))) ) {
-        matched = match.shift();
-        tokens.push({
-          value: matched,
-          type: type,
-          matches: match
-        });
-        soFar = soFar.slice( matched.length );
-      }
-    }
-
-    if ( !matched ) {
-      break;
-    }
-  }
-
-  return parseOnly ?
-    soFar.length :
-    soFar ?
-      Sizzle.error( selector ) :
-      tokenCache( selector, groups ).slice( 0 );
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			tokenCache( selector, groups ).slice( 0 );
 }
 
 function toSelector( tokens ) {
-  var i = 0,
-    len = tokens.length,
-    selector = "";
-  for ( ; i < len; i++ ) {
-    selector += tokens[i].value;
-  }
-  return selector;
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
 }
 
 function addCombinator( matcher, combinator, base ) {
-  var dir = combinator.dir,
-    checkNonElements = base && dir === "parentNode",
-    doneName = done++;
-
-  return combinator.first ?
-    function( elem, context, xml ) {
-      while ( (elem = elem[ dir ]) ) {
-        if ( elem.nodeType === 1 || checkNonElements ) {
-          return matcher( elem, context, xml );
-        }
-      }
-    } :
-
-    function( elem, context, xml ) {
-      var oldCache, outerCache,
-        newCache = [ dirruns, doneName ];
-
-      if ( xml ) {
-        while ( (elem = elem[ dir ]) ) {
-          if ( elem.nodeType === 1 || checkNonElements ) {
-            if ( matcher( elem, context, xml ) ) {
-              return true;
-            }
-          }
-        }
-      } else {
-        while ( (elem = elem[ dir ]) ) {
-          if ( elem.nodeType === 1 || checkNonElements ) {
-            outerCache = elem[ expando ] || (elem[ expando ] = {});
-            if ( (oldCache = outerCache[ dir ]) &&
-              oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
-
-              return (newCache[ 2 ] = oldCache[ 2 ]);
-            } else {
-              outerCache[ dir ] = newCache;
-
-              if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
-                return true;
-              }
-            }
-          }
-        }
-      }
-    };
+	var dir = combinator.dir,
+		checkNonElements = base && dir === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+		} :
+
+		function( elem, context, xml ) {
+			var oldCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						if ( (oldCache = outerCache[ dir ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							outerCache[ dir ] = newCache;
+
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+		};
 }
 
 function elementMatcher( matchers ) {
-  return matchers.length > 1 ?
-    function( elem, context, xml ) {
-      var i = matchers.length;
-      while ( i-- ) {
-        if ( !matchers[i]( elem, context, xml ) ) {
-          return false;
-        }
-      }
-      return true;
-    } :
-    matchers[0];
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
 }
 
 function multipleContexts( selector, contexts, results ) {
-  var i = 0,
-    len = contexts.length;
-  for ( ; i < len; i++ ) {
-    Sizzle( selector, contexts[i], results );
-  }
-  return results;
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
 }
 
 function condense( unmatched, map, filter, context, xml ) {
-  var elem,
-    newUnmatched = [],
-    i = 0,
-    len = unmatched.length,
-    mapped = map != null;
-
-  for ( ; i < len; i++ ) {
-    if ( (elem = unmatched[i]) ) {
-      if ( !filter || filter( elem, context, xml ) ) {
-        newUnmatched.push( elem );
-        if ( mapped ) {
-          map.push( i );
-        }
-      }
-    }
-  }
-
-  return newUnmatched;
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
 }
 
 function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
-  if ( postFilter && !postFilter[ expando ] ) {
-    postFilter = setMatcher( postFilter );
-  }
-  if ( postFinder && !postFinder[ expando ] ) {
-    postFinder = setMatcher( postFinder, postSelector );
-  }
-  return markFunction(function( seed, results, context, xml ) {
-    var temp, i, elem,
-      preMap = [],
-      postMap = [],
-      preexisting = results.length,
-
-      elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
-      matcherIn = preFilter && ( seed || !selector ) ?
-        condense( elems, preMap, preFilter, context, xml ) :
-        elems,
-
-      matcherOut = matcher ?
-        postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
-          [] :
-
-          results :
-        matcherIn;
-
-    if ( matcher ) {
-      matcher( matcherIn, matcherOut, context, xml );
-    }
-
-    if ( postFilter ) {
-      temp = condense( matcherOut, postMap );
-      postFilter( temp, [], context, xml );
-
-      i = temp.length;
-      while ( i-- ) {
-        if ( (elem = temp[i]) ) {
-          matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
-        }
-      }
-    }
-
-    if ( seed ) {
-      if ( postFinder || preFilter ) {
-        if ( postFinder ) {
-          temp = [];
-          i = matcherOut.length;
-          while ( i-- ) {
-            if ( (elem = matcherOut[i]) ) {
-              temp.push( (matcherIn[i] = elem) );
-            }
-          }
-          postFinder( null, (matcherOut = []), temp, xml );
-        }
-
-        i = matcherOut.length;
-        while ( i-- ) {
-          if ( (elem = matcherOut[i]) &&
-            (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
-            seed[temp] = !(results[temp] = elem);
-          }
-        }
-      }
-
-    } else {
-      matcherOut = condense(
-        matcherOut === results ?
-          matcherOut.splice( preexisting, matcherOut.length ) :
-          matcherOut
-      );
-      if ( postFinder ) {
-        postFinder( null, results, matcherOut, xml );
-      } else {
-        push.apply( results, matcherOut );
-      }
-    }
-  });
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					[] :
+
+					results :
+				matcherIn;
+
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
 }
 
 function matcherFromTokens( tokens ) {
-  var checkContext, matcher, j,
-    len = tokens.length,
-    leadingRelative = Expr.relative[ tokens[0].type ],
-    implicitRelative = leadingRelative || Expr.relative[" "],
-    i = leadingRelative ? 1 : 0,
-
-    matchContext = addCombinator( function( elem ) {
-      return elem === checkContext;
-    }, implicitRelative, true ),
-    matchAnyContext = addCombinator( function( elem ) {
-      return indexOf.call( checkContext, elem ) > -1;
-    }, implicitRelative, true ),
-    matchers = [ function( elem, context, xml ) {
-      return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-        (checkContext = context).nodeType ?
-          matchContext( elem, context, xml ) :
-          matchAnyContext( elem, context, xml ) );
-    } ];
-
-  for ( ; i < len; i++ ) {
-    if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-      matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
-    } else {
-      matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
-      if ( matcher[ expando ] ) {
-        j = ++i;
-        for ( ; j < len; j++ ) {
-          if ( Expr.relative[ tokens[j].type ] ) {
-            break;
-          }
-        }
-        return setMatcher(
-          i > 1 && elementMatcher( matchers ),
-          i > 1 && toSelector(
-            tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
-          ).replace( rtrim, "$1" ),
-          matcher,
-          i < j && matcherFromTokens( tokens.slice( i, j ) ),
-          j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
-          j < len && toSelector( tokens )
-        );
-      }
-      matchers.push( matcher );
-    }
-  }
-
-  return elementMatcher( matchers );
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf.call( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			if ( matcher[ expando ] ) {
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
 }
 
 function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
-  var bySet = setMatchers.length > 0,
-    byElement = elementMatchers.length > 0,
-    superMatcher = function( seed, context, xml, results, outermost ) {
-      var elem, j, matcher,
-        matchedCount = 0,
-        i = "0",
-        unmatched = seed && [],
-        setMatched = [],
-        contextBackup = outermostContext,
-        elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
-        dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
-        len = elems.length;
-
-      if ( outermost ) {
-        outermostContext = context !== document && context;
-      }
-
-      for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
-        if ( byElement && elem ) {
-          j = 0;
-          while ( (matcher = elementMatchers[j++]) ) {
-            if ( matcher( elem, context, xml ) ) {
-              results.push( elem );
-              break;
-            }
-          }
-          if ( outermost ) {
-            dirruns = dirrunsUnique;
-          }
-        }
-
-        if ( bySet ) {
-          if ( (elem = !matcher && elem) ) {
-            matchedCount--;
-          }
-
-          if ( seed ) {
-            unmatched.push( elem );
-          }
-        }
-      }
-
-      matchedCount += i;
-      if ( bySet && i !== matchedCount ) {
-        j = 0;
-        while ( (matcher = setMatchers[j++]) ) {
-          matcher( unmatched, setMatched, context, xml );
-        }
-
-        if ( seed ) {
-          if ( matchedCount > 0 ) {
-            while ( i-- ) {
-              if ( !(unmatched[i] || setMatched[i]) ) {
-                setMatched[i] = pop.call( results );
-              }
-            }
-          }
-
-          setMatched = condense( setMatched );
-        }
-
-        push.apply( results, setMatched );
-
-        if ( outermost && !seed && setMatched.length > 0 &&
-          ( matchedCount + setMatchers.length ) > 1 ) {
-
-          Sizzle.uniqueSort( results );
-        }
-      }
-
-      if ( outermost ) {
-        dirruns = dirrunsUnique;
-        outermostContext = contextBackup;
-      }
-
-      return unmatched;
-    };
-
-  return bySet ?
-    markFunction( superMatcher ) :
-    superMatcher;
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context !== document && context;
+			}
+
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context, xml ) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				if ( bySet ) {
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			matchedCount += i;
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					setMatched = condense( setMatched );
+				}
+
+				push.apply( results, setMatched );
+
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
 }
 
 compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
-  var i,
-    setMatchers = [],
-    elementMatchers = [],
-    cached = compilerCache[ selector + " " ];
-
-  if ( !cached ) {
-    if ( !match ) {
-      match = tokenize( selector );
-    }
-    i = match.length;
-    while ( i-- ) {
-      cached = matcherFromTokens( match[i] );
-      if ( cached[ expando ] ) {
-        setMatchers.push( cached );
-      } else {
-        elementMatchers.push( cached );
-      }
-    }
-
-    cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-
-    cached.selector = selector;
-  }
-  return cached;
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		cached.selector = selector;
+	}
+	return cached;
 };
 
 /**
@@ -6111,64 +6155,64 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
  * @param {Array} [seed] A set of elements to match against
  */
 select = Sizzle.select = function( selector, context, results, seed ) {
-  var i, tokens, token, type, find,
-    compiled = typeof selector === "function" && selector,
-    match = !seed && tokenize( (selector = compiled.selector || selector) );
-
-  results = results || [];
-
-  if ( match.length === 1 ) {
-
-    tokens = match[0] = match[0].slice( 0 );
-    if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-        support.getById && context.nodeType === 9 && documentIsHTML &&
-        Expr.relative[ tokens[1].type ] ) {
-
-      context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
-      if ( !context ) {
-        return results;
-
-      } else if ( compiled ) {
-        context = context.parentNode;
-      }
-
-      selector = selector.slice( tokens.shift().value.length );
-    }
-
-    i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
-    while ( i-- ) {
-      token = tokens[i];
-
-      if ( Expr.relative[ (type = token.type) ] ) {
-        break;
-      }
-      if ( (find = Expr.find[ type ]) ) {
-        if ( (seed = find(
-          token.matches[0].replace( runescape, funescape ),
-          rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
-        )) ) {
-
-          tokens.splice( i, 1 );
-          selector = seed.length && toSelector( tokens );
-          if ( !selector ) {
-            push.apply( results, seed );
-            return results;
-          }
-
-          break;
-        }
-      }
-    }
-  }
-
-  ( compiled || compile( selector, match ) )(
-    seed,
-    context,
-    !documentIsHTML,
-    results,
-    rsibling.test( selector ) && testContext( context.parentNode ) || context
-  );
-  return results;
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	if ( match.length === 1 ) {
+
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				support.getById && context.nodeType === 9 && documentIsHTML &&
+				Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
 };
 
 
@@ -6179,56 +6223,72 @@ support.detectDuplicates = !!hasDuplicate;
 setDocument();
 
 support.sortDetached = assert(function( div1 ) {
-  return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
 });
 
 if ( !assert(function( div ) {
-  div.innerHTML = "<a href='#'></a>";
-  return div.firstChild.getAttribute("href") === "#" ;
+	div.innerHTML = "<a href='#'></a>";
+	return div.firstChild.getAttribute("href") === "#" ;
 }) ) {
-  addHandle( "type|href|height|width", function( elem, name, isXML ) {
-    if ( !isXML ) {
-      return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
-    }
-  });
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
 }
 
 if ( !support.attributes || !assert(function( div ) {
-  div.innerHTML = "<input/>";
-  div.firstChild.setAttribute( "value", "" );
-  return div.firstChild.getAttribute( "value" ) === "";
+	div.innerHTML = "<input/>";
+	div.firstChild.setAttribute( "value", "" );
+	return div.firstChild.getAttribute( "value" ) === "";
 }) ) {
-  addHandle( "value", function( elem, name, isXML ) {
-    if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
-      return elem.defaultValue;
-    }
-  });
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
 }
 
 if ( !assert(function( div ) {
-  return div.getAttribute("disabled") == null;
+	return div.getAttribute("disabled") == null;
 }) ) {
-  addHandle( booleans, function( elem, name, isXML ) {
-    var val;
-    if ( !isXML ) {
-      return elem[ name ] === true ? name.toLowerCase() :
-          (val = elem.getAttributeNode( name )) && val.specified ?
-          val.value :
-        null;
-    }
-  });
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
 }
 
 if ( typeof define === "function" && define.amd ) {
-  define(function() { return Sizzle; });
+	define(function() { return Sizzle; });
 } else if ( typeof module !== "undefined" && module.exports ) {
-  module.exports = Sizzle;
+	module.exports = Sizzle;
 } else {
-  window.Sizzle = Sizzle;
+	window.Sizzle = Sizzle;
 }
 
 })( window );
 
+;(function() {
+  if (typeof Sizzle !== 'undefined') {
+    return;
+  }
+
+  if (typeof define !== 'undefined' && define.amd) {
+    window.Sizzle = Prototype._actual_sizzle;
+    window.define = Prototype._original_define;
+    delete Prototype._actual_sizzle;
+    delete Prototype._original_define;
+  } else if (typeof module !== 'undefined' && module.exports) {
+    window.Sizzle = module.exports;
+    module.exports = {};
+  }
+})();
+
 ;(function(engine) {
   var extendElements = Prototype.Selector.extendElements;
 
@@ -6870,7 +6930,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
 
   Event._isCustomEvent = isCustomEvent;
 
-  function getRegistryForElement(element, uid) {
+  function getOrCreateRegistryFor(element, uid) {
     var CACHE = GLOBAL.Event.cache;
     if (Object.isUndefined(uid))
       uid = getUniqueElementID(element);
@@ -6886,7 +6946,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
 
 
   function register(element, eventName, handler) {
-    var registry = getRegistryForElement(element);
+    var registry = getOrCreateRegistryFor(element);
     if (!registry[eventName]) registry[eventName] = [];
     var entries = registry[eventName];
 
@@ -6906,9 +6966,8 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
   }
 
   function unregister(element, eventName, handler) {
-    var registry = getRegistryForElement(element);
-    var entries = registry[eventName];
-    if (!entries) return;
+    var registry = getOrCreateRegistryFor(element);
+    var entries = registry[eventName] || [];
 
     var i = entries.length, entry;
     while (i--) {
@@ -6918,10 +6977,16 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
       }
     }
 
-    if (!entry) return;
+    if (entry) {
+      var index = entries.indexOf(entry);
+      entries.splice(index, 1);
+    }
 
-    var index = entries.indexOf(entry);
-    entries.splice(index, 1);
+    if (entries.length === 0) {
+      delete registry[eventName];
+      if (Object.keys(registry).length === 1 && ('element' in registry))
+        destroyRegistryForElement(element);
+    }
 
     return entry;
   }
@@ -7020,14 +7085,24 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
   }
 
   function stopObservingEventName(element, eventName) {
-    var registry = getRegistryForElement(element);
+    var registry = getOrCreateRegistryFor(element);
     var entries = registry[eventName];
-    if (!entries) return;
-    delete registry[eventName];
+    if (entries) {
+      delete registry[eventName];
+    }
+
+    entries = entries || [];
 
     var i = entries.length;
     while (i--)
       removeEvent(element, eventName, entries[i].responder);
+
+    for (var name in registry) {
+      if (name === 'element') continue;
+      return; // There is another registered event
+    }
+
+    destroyRegistryForElement(element);
   }
 
 
@@ -7194,7 +7269,8 @@ Form.EventObserver = Class.create(Abstract.EventObserver, {
 
   function createResponderForCustomEvent(uid, eventName, handler) {
     return function(event) {
-      var element = Event.cache[uid].element;
+      var cache = Event.cache[uid];
+      var element =  cache && cache.element;
 
       if (Object.isUndefined(event.eventName))
         return false;
@@ -7283,7 +7359,9 @@ Hash.toQueryString = Object.toQueryString;
 
 var Toggle = { display: Element.toggle };
 
-Element.Methods.childOf = Element.Methods.descendantOf;
+Element.addMethods({
+  childOf: Element.Methods.descendantOf
+});
 
 var Insertion = {
   Before: function(element, content) {
@@ -7507,4 +7585,4 @@ Object.extend(Element.ClassNames.prototype, Enumerable);
       return Prototype.Selector.select(selector, element || document);
     }
   });
-})();
\ No newline at end of file
+})();
diff --git a/apps/maarch_entreprise/js/unittest.js b/apps/maarch_entreprise/js/unittest.js
deleted file mode 100644
index 9555c22cc3e2cf7c03bbccab4e7245220f46f2ad..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/js/unittest.js
+++ /dev/null
@@ -1,568 +0,0 @@
-// script.aculo.us unittest.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010
-
-// Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005-2010 Jon Tirsen (http://www.tirsen.com)
-//           (c) 2005-2010 Michael Schuerig (http://www.schuerig.de/michael/)
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// experimental, Firefox-only
-Event.simulateMouse = function(element, eventName) {
-  var options = Object.extend({
-    pointerX: 0,
-    pointerY: 0,
-    buttons:  0,
-    ctrlKey:  false,
-    altKey:   false,
-    shiftKey: false,
-    metaKey:  false
-  }, arguments[2] || {});
-  var oEvent = document.createEvent("MouseEvents");
-  oEvent.initMouseEvent(eventName, true, true, document.defaultView, 
-    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element));
-  
-  if(this.mark) Element.remove(this.mark);
-  this.mark = document.createElement('div');
-  this.mark.appendChild(document.createTextNode(" "));
-  document.body.appendChild(this.mark);
-  this.mark.style.position = 'absolute';
-  this.mark.style.top = options.pointerY + "px";
-  this.mark.style.left = options.pointerX + "px";
-  this.mark.style.width = "5px";
-  this.mark.style.height = "5px;";
-  this.mark.style.borderTop = "1px solid red;";
-  this.mark.style.borderLeft = "1px solid red;";
-  
-  if(this.step)
-    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
-  
-  $(element).dispatchEvent(oEvent);
-};
-
-// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
-// You need to downgrade to 1.0.4 for now to get this working
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
-Event.simulateKey = function(element, eventName) {
-  var options = Object.extend({
-    ctrlKey: false,
-    altKey: false,
-    shiftKey: false,
-    metaKey: false,
-    keyCode: 0,
-    charCode: 0
-  }, arguments[2] || {});
-
-  var oEvent = document.createEvent("KeyEvents");
-  oEvent.initKeyEvent(eventName, true, true, window, 
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
-    options.keyCode, options.charCode );
-  $(element).dispatchEvent(oEvent);
-};
-
-Event.simulateKeys = function(element, command) {
-  for(var i=0; i<command.length; i++) {
-    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
-  }
-};
-
-var Test = {};
-Test.Unit = {};
-
-// security exception workaround
-Test.Unit.inspect = Object.inspect;
-
-Test.Unit.Logger = Class.create();
-Test.Unit.Logger.prototype = {
-  initialize: function(log) {
-    this.log = $(log);
-    if (this.log) {
-      this._createLogTable();
-    }
-  },
-  start: function(testName) {
-    if (!this.log) return;
-    this.testName = testName;
-    this.lastLogLine = document.createElement('tr');
-    this.statusCell = document.createElement('td');
-    this.nameCell = document.createElement('td');
-    this.nameCell.className = "nameCell";
-    this.nameCell.appendChild(document.createTextNode(testName));
-    this.messageCell = document.createElement('td');
-    this.lastLogLine.appendChild(this.statusCell);
-    this.lastLogLine.appendChild(this.nameCell);
-    this.lastLogLine.appendChild(this.messageCell);
-    this.loglines.appendChild(this.lastLogLine);
-  },
-  finish: function(status, summary) {
-    if (!this.log) return;
-    this.lastLogLine.className = status;
-    this.statusCell.innerHTML = status;
-    this.messageCell.innerHTML = this._toHTML(summary);
-    this.addLinksToResults();
-  },
-  message: function(message) {
-    if (!this.log) return;
-    this.messageCell.innerHTML = this._toHTML(message);
-  },
-  summary: function(summary) {
-    if (!this.log) return;
-    this.logsummary.innerHTML = this._toHTML(summary);
-  },
-  _createLogTable: function() {
-    this.log.innerHTML =
-    '<div id="logsummary"></div>' +
-    '<table id="logtable">' +
-    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
-    '<tbody id="loglines"></tbody>' +
-    '</table>';
-    this.logsummary = $('logsummary');
-    this.loglines = $('loglines');
-  },
-  _toHTML: function(txt) {
-    return txt.escapeHTML().replace(/\n/g,"<br/>");
-  },
-  addLinksToResults: function(){ 
-    $$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
-      td.title = "Run only this test";
-      Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
-    });
-    $$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
-      td.title = "Run all tests";
-      Event.observe(td, 'click', function(){ window.location.search = "";});
-    });
-  }
-};
-
-Test.Unit.Runner = Class.create();
-Test.Unit.Runner.prototype = {
-  initialize: function(testcases) {
-    this.options = Object.extend({
-      testLog: 'testlog'
-    }, arguments[1] || {});
-    this.options.resultsURL = this.parseResultsURLQueryParameter();
-    this.options.tests      = this.parseTestsQueryParameter();
-    if (this.options.testLog) {
-      this.options.testLog = $(this.options.testLog) || null;
-    }
-    if(this.options.tests) {
-      this.tests = [];
-      for(var i = 0; i < this.options.tests.length; i++) {
-        if(/^test/.test(this.options.tests[i])) {
-          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
-        }
-      }
-    } else {
-      if (this.options.test) {
-        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
-      } else {
-        this.tests = [];
-        for(var testcase in testcases) {
-          if(/^test/.test(testcase)) {
-            this.tests.push(
-               new Test.Unit.Testcase(
-                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, 
-                 testcases[testcase], testcases["setup"], testcases["teardown"]
-               ));
-          }
-        }
-      }
-    }
-    this.currentTest = 0;
-    this.logger = new Test.Unit.Logger(this.options.testLog);
-    setTimeout(this.runTests.bind(this), 1000);
-  },
-  parseResultsURLQueryParameter: function() {
-    return window.location.search.parseQuery()["resultsURL"];
-  },
-  parseTestsQueryParameter: function(){
-    if (window.location.search.parseQuery()["tests"]){
-        return window.location.search.parseQuery()["tests"].split(',');
-    };
-  },
-  // Returns:
-  //  "ERROR" if there was an error,
-  //  "FAILURE" if there was a failure, or
-  //  "SUCCESS" if there was neither
-  getResult: function() {
-    var hasFailure = false;
-    for(var i=0;i<this.tests.length;i++) {
-      if (this.tests[i].errors > 0) {
-        return "ERROR";
-      }
-      if (this.tests[i].failures > 0) {
-        hasFailure = true;
-      }
-    }
-    if (hasFailure) {
-      return "FAILURE";
-    } else {
-      return "SUCCESS";
-    }
-  },
-  postResults: function() {
-    if (this.options.resultsURL) {
-      new Ajax.Request(this.options.resultsURL, 
-        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
-    }
-  },
-  runTests: function() {
-    var test = this.tests[this.currentTest];
-    if (!test) {
-      // finished!
-      this.postResults();
-      this.logger.summary(this.summary());
-      return;
-    }
-    if(!test.isWaiting) {
-      this.logger.start(test.name);
-    }
-    test.run();
-    if(test.isWaiting) {
-      this.logger.message("Waiting for " + test.timeToWait + "ms");
-      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
-    } else {
-      this.logger.finish(test.status(), test.summary());
-      this.currentTest++;
-      // tail recursive, hopefully the browser will skip the stackframe
-      this.runTests();
-    }
-  },
-  summary: function() {
-    var assertions = 0;
-    var failures = 0;
-    var errors = 0;
-    var messages = [];
-    for(var i=0;i<this.tests.length;i++) {
-      assertions +=   this.tests[i].assertions;
-      failures   +=   this.tests[i].failures;
-      errors     +=   this.tests[i].errors;
-    }
-    return (
-      (this.options.context ? this.options.context + ': ': '') + 
-      this.tests.length + " tests, " + 
-      assertions + " assertions, " + 
-      failures   + " failures, " +
-      errors     + " errors");
-  }
-};
-
-Test.Unit.Assertions = Class.create();
-Test.Unit.Assertions.prototype = {
-  initialize: function() {
-    this.assertions = 0;
-    this.failures   = 0;
-    this.errors     = 0;
-    this.messages   = [];
-  },
-  summary: function() {
-    return (
-      this.assertions + " assertions, " + 
-      this.failures   + " failures, " +
-      this.errors     + " errors" + "\n" +
-      this.messages.join("\n"));
-  },
-  pass: function() {
-    this.assertions++;
-  },
-  fail: function(message) {
-    this.failures++;
-    this.messages.push("Failure: " + message);
-  },
-  info: function(message) {
-    this.messages.push("Info: " + message);
-  },
-  error: function(error) {
-    this.errors++;
-    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
-  },
-  status: function() {
-    if (this.failures > 0) return 'failed';
-    if (this.errors > 0) return 'error';
-    return 'passed';
-  },
-  assert: function(expression) {
-    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
-    try { expression ? this.pass() : 
-      this.fail(message); }
-    catch(e) { this.error(e); }
-  },
-  assertEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEqual";
-    try { (expected == actual) ? this.pass() :
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertInspect: function(expected, actual) {
-    var message = arguments[2] || "assertInspect";
-    try { (expected == actual.inspect()) ? this.pass() :
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertEnumEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEnumEqual";
-    try { $A(expected).length == $A(actual).length && 
-      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
-        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + 
-          ', actual ' + Test.Unit.inspect(actual)); }
-    catch(e) { this.error(e); }
-  },
-  assertNotEqual: function(expected, actual) {
-    var message = arguments[2] || "assertNotEqual";
-    try { (expected != actual) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertIdentical"; 
-    try { (expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNotIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertNotIdentical"; 
-    try { !(expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNull: function(obj) {
-    var message = arguments[1] || 'assertNull';
-    try { (obj==null) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertMatch: function(expected, actual) {
-    var message = arguments[2] || 'assertMatch';
-    var regex = new RegExp(expected);
-    try { (regex.exec(actual)) ? this.pass() :
-      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertHidden: function(element) {
-    var message = arguments[1] || 'assertHidden';
-    this.assertEqual("none", element.style.display, message);
-  },
-  assertNotNull: function(object) {
-    var message = arguments[1] || 'assertNotNull';
-    this.assert(object != null, message);
-  },
-  assertType: function(expected, actual) {
-    var message = arguments[2] || 'assertType';
-    try { 
-      (actual.constructor == expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertNotOfType: function(expected, actual) {
-    var message = arguments[2] || 'assertNotOfType';
-    try { 
-      (actual.constructor != expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertInstanceOf';
-    try { 
-      (actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was not an instance of the expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertNotInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertNotInstanceOf';
-    try { 
-      !(actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was an instance of the not expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertRespondsTo: function(method, obj) {
-    var message = arguments[2] || 'assertRespondsTo';
-    try {
-      (obj[method] && typeof obj[method] == 'function') ? this.pass() : 
-      this.fail(message + ": object doesn't respond to [" + method + "]"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsTrue: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsTrue';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      m() ? this.pass() : 
-      this.fail(message + ": method returned false"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsFalse: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsFalse';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      !m() ? this.pass() : 
-      this.fail(message + ": method returned true"); }
-    catch(e) { this.error(e); }
-  },
-  assertRaise: function(exceptionName, method) {
-    var message = arguments[2] || 'assertRaise';
-    try { 
-      method();
-      this.fail(message + ": exception expected but none was raised"); }
-    catch(e) {
-      ((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e); 
-    }
-  },
-  assertElementsMatch: function() {
-    var expressions = $A(arguments), elements = $A(expressions.shift());
-    if (elements.length != expressions.length) {
-      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
-      return false;
-    }
-    elements.zip(expressions).all(function(pair, index) {
-      var element = $(pair.first()), expression = pair.last();
-      if (element.match(expression)) return true;
-      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
-    }.bind(this)) && this.pass();
-  },
-  assertElementMatches: function(element, expression) {
-    this.assertElementsMatch([element], expression);
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  },
-  _isVisible: function(element) {
-    element = $(element);
-    if(!element.parentNode) return true;
-    this.assertNotNull(element);
-    if(element.style && Element.getStyle(element, 'display') == 'none')
-      return false;
-    
-    return this._isVisible(element.parentNode);
-  },
-  assertNotVisible: function(element) {
-    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
-  },
-  assertVisible: function(element) {
-    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  }
-};
-
-Test.Unit.Testcase = Class.create();
-Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
-  initialize: function(name, test, setup, teardown) {
-    Test.Unit.Assertions.prototype.initialize.bind(this)();
-    this.name           = name;
-    
-    if(typeof test == 'string') {
-      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
-      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
-      this.test = function() {
-        eval('with(this){'+test+'}');
-      }
-    } else {
-      this.test = test || function() {};
-    }
-    
-    this.setup          = setup || function() {};
-    this.teardown       = teardown || function() {};
-    this.isWaiting      = false;
-    this.timeToWait     = 1000;
-  },
-  wait: function(time, nextPart) {
-    this.isWaiting = true;
-    this.test = nextPart;
-    this.timeToWait = time;
-  },
-  run: function() {
-    try {
-      try {
-        if (!this.isWaiting) this.setup.bind(this)();
-        this.isWaiting = false;
-        this.test.bind(this)();
-      } finally {
-        if(!this.isWaiting) {
-          this.teardown.bind(this)();
-        }
-      }
-    }
-    catch(e) { this.error(e); }
-  }
-});
-
-// *EXPERIMENTAL* BDD-style testing to please non-technical folk
-// This draws many ideas from RSpec http://rspec.rubyforge.org/
-
-Test.setupBDDExtensionMethods = function(){
-  var METHODMAP = {
-    shouldEqual:     'assertEqual',
-    shouldNotEqual:  'assertNotEqual',
-    shouldEqualEnum: 'assertEnumEqual',
-    shouldBeA:       'assertType',
-    shouldNotBeA:    'assertNotOfType',
-    shouldBeAn:      'assertType',
-    shouldNotBeAn:   'assertNotOfType',
-    shouldBeNull:    'assertNull',
-    shouldNotBeNull: 'assertNotNull',
-    
-    shouldBe:        'assertReturnsTrue',
-    shouldNotBe:     'assertReturnsFalse',
-    shouldRespondTo: 'assertRespondsTo'
-  };
-  var makeAssertion = function(assertion, args, object) { 
-   	this[assertion].apply(this,(args || []).concat([object]));
-  };
-  
-  Test.BDDMethods = {};   
-  $H(METHODMAP).each(function(pair) { 
-    Test.BDDMethods[pair.key] = function() { 
-       var args = $A(arguments); 
-       var scope = args.shift(); 
-       makeAssertion.apply(scope, [pair.value, args, this]); }; 
-  });
-  
-  [Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
-    function(p){ Object.extend(p, Test.BDDMethods) }
-  );
-};
-
-Test.context = function(name, spec, log){
-  Test.setupBDDExtensionMethods();
-  
-  var compiledSpec = {};
-  var titles = {};
-  for(specName in spec) {
-    switch(specName){
-      case "setup":
-      case "teardown":
-        compiledSpec[specName] = spec[specName];
-        break;
-      default:
-        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
-        var body = spec[specName].toString().split('\n').slice(1);
-        if(/^\{/.test(body[0])) body = body.slice(1);
-        body.pop();
-        body = body.map(function(statement){ 
-          return statement.strip()
-        });
-        compiledSpec[testName] = body.join('\n');
-        titles[testName] = specName;
-    }
-  }
-  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
-};
\ No newline at end of file
diff --git a/apps/maarch_entreprise/template/documents_list_search_adv.html b/apps/maarch_entreprise/template/documents_list_search_adv.html
index ae33a90ae68db6ea59aaeaaf0f77ccfff892caa0..35aec327338ea392e2664c5bf2150b5332d73b33 100644
--- a/apps/maarch_entreprise/template/documents_list_search_adv.html
+++ b/apps/maarch_entreprise/template/documents_list_search_adv.html
@@ -202,12 +202,7 @@ Mods
     <br/>
 
 <script>
-    $$('#container')[0].setAttribute('style', 'width: 90%; min-width: 1000px;');
-    $$('#content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');
-    //$$('#inner_content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');
-    $$('table#extended_list')[0].setAttribute('style', 'width: 100%; min-width: 900px; margin: 0;');
-    /*
-    // liste condensée
-    $$('table.listing')[0].setAttribute('style', 'width: 100%; min-width: 900px;');
-    */
+    $j('#container').attr('style', 'width: 90%; min-width: 1000px;');
+    $j('#content').attr('style', 'width: auto; min-width: 1000px;');
+    $j('table#extended_list').attr('style', 'width: 100%; min-width: 900px; margin: 0;');
 </script>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/template/documents_list_with_attachments.html b/apps/maarch_entreprise/template/documents_list_with_attachments.html
index db0ac81a931f26308ba3dd846fa1ce357a779f4e..5c4229dd3aa84e0dd07c2d91f5a1eefabe4fda17 100644
--- a/apps/maarch_entreprise/template/documents_list_with_attachments.html
+++ b/apps/maarch_entreprise/template/documents_list_with_attachments.html
@@ -203,12 +203,8 @@ Mods
     <br/>
 
 <script>
-    $$('#container')[0].setAttribute('style', 'width: 90%; min-width: 1000px;');
-    $$('#content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');
-    $$('#inner_content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');
-    $$('table#extended_list')[0].setAttribute('style', 'width: 100%; min-width: 900px; margin: 0;');
-    /*
-    // liste condensée
-    $$('table.listing')[0].setAttribute('style', 'width: 100%; min-width: 900px;');
-    */
+    $j('#container').attr('style', 'width: 90%; min-width: 1000px;');
+    $j('#content').attr('style', 'width: auto; min-width: 1000px;');
+    $j('#inner_content').attr('style', 'width: auto; min-width: 1000px;');
+    $j('table#extended_list').attr('style', 'width: 100%; min-width: 900px; margin: 0;');
 </script>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/test_elastic.php b/apps/maarch_entreprise/test_elastic.php
deleted file mode 100644
index cb80a07dd1c720feeb564ca388f0f9daa90d6317..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/test_elastic.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-require 'apps/maarch_entreprise/tools/elasticsearch-php/vendor/autoload.php';
-
-use Elasticsearch\ClientBuilder;
-
-$hosts = [
-    '192.168.21.15:9200',         // IP + Port
-    // '192.168.1.2',              // Just IP
-    // 'mydomain.server.com:9201', // Domain + Port
-    // 'mydomain2.server.com',     // Just Domain
-    // 'https://localhost',        // SSL to localhost
-    // 'https://192.168.1.3:9200'  // SSL to IP + Port
-];
-$clientBuilder = ClientBuilder::create();   // Instantiate a new ClientBuilder
-$clientBuilder->setHosts($hosts);           // Set the hosts
-$client = $clientBuilder->build();          // Build the client object
-
-//$client = ClientBuilder::create()->build();
-
-echo '<pre>';
-print_r($client);
-echo '</pre>';
-exit;
-
-
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$response = $client->get($params);
-print_r($response);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/.php_cs b/apps/maarch_entreprise/tools/elasticsearch-php/.php_cs
deleted file mode 100644
index e01869ce0560c124320b23c5e9633a64bd5fcad0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/.php_cs
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-function php_cs() {
-    $finder = Symfony\CS\Finder\DefaultFinder::create()
-        ->exclude('benchmarks')
-        ->exclude('docs')
-        ->exclude('util')
-        ->exclude('.github')
-        ->exclude('util')
-        ->exclude('travis')
-        ->exclude('util/cache')
-        ->exclude('util/elasticsearch')
-        ->exclude('vendor')
-        ->in(__DIR__);
-
-    return Symfony\CS\Config\Config::create()
-        ->setUsingCache(true)
-        ->level(Symfony\CS\FixerInterface::PSR2_LEVEL)
-        ->finder($finder);
-}
-
-return php_cs();
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/.travis.yml b/apps/maarch_entreprise/tools/elasticsearch-php/.travis.yml
deleted file mode 100644
index 420bd07b63cd52cd3dbbcbd960daf46e77b0e89e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/.travis.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-language: php
-
-jdk:
-  - oraclejdk8
-
-addons:
-  apt:
-    packages:
-      - oracle-java8-installer
-
-branches:
-  except:
-    - 0.4
-
-sudo: true
-
-php:
-  - 7.0
-  - 7.1
-  - hhvm
-
-matrix:
-  fast_finish: true
-  include:
-    - php: 7.1
-      env: ES_VERSION="5.0" TEST_BUILD_REF="origin/5.0"
-    - php: 7.1
-      env: ES_VERSION="5.1" TEST_BUILD_REF="origin/5.1"
-    - php: 7.1
-      env: ES_VERSION="5.2" TEST_BUILD_REF="origin/5.2"
-  allow_failures:
-    - php: hhvm
-
-env:
-  global:
-    - ES_VERSION="5.x"
-    - TEST_BUILD_REF="origin/5.x"
-    - ES_TEST_HOST=http://localhost:9200
-    - JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"
-
-before_install:
-  - sudo update-java-alternatives -s java-8-oracle
-  - ./travis/download_and_run_es.sh
-
-install:
-  - composer install --prefer-source
-
-before_script:
-  - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then PHPUNIT_FLAGS="--coverage-clover ./build/logs/clover.xml"; fi
-  - php util/RestSpecRunner.php
-  - php util/EnsureClusterAlive.php
-
-script:
-  - vendor/bin/phpunit $PHPUNIT_FLAGS
-  - vendor/bin/phpunit -c phpunit-integration.xml --group sync $PHPUNIT_FLAGS
-
-after_script:
-  - if [ $TRAVIS_PHP_VERSION = '7.0' ]; then php vendor/bin/coveralls; fi
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/BREAKING_CHANGES.md b/apps/maarch_entreprise/tools/elasticsearch-php/BREAKING_CHANGES.md
deleted file mode 100644
index cba9966ebdd0caaa4788ddd5a4b117164ff18ef9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/BREAKING_CHANGES.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 5.0
-
-## Breaking changes
-
-- Indices/Analyze Endpoint: `filters` and `char_filters` URI parameters have renamed to `filter` and `char_filter` respectively
-- SearchExists endpoint has been removed ([use `size=0` and `terminate_after=1` instead](https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_search_changes.html#_search_exists_api_removed))
-- Warmers have been removed because they are [no longer useful](https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_index_apis.html#_warmers)
-- Indices/Optimize Endpoint has been removed ([use `_forcemerge` instead](https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_rest_api_changes.html#_literal__optimize_literal_endpoint_removed))
-- MoreLikeThis (MLT) endpoint has been removed
-- DeleteByQuery endpoint has been removed.
-- Tasks/List and Tasks/Get are now separate endpoints (see: [[e0cc5f9]](http://github.com/elasticsearch/elasticsearch-php/commit/752d5a2))
-- Client requires PHP 5.6.6 or higher
-
-## Deprecations
-
-- Percolator endpoints are deprecated and will be removed in Elasticsearch 6.0
-
-## Internal BWC Breaks
-
-- Namespace injection has changed slightly.  If you use custom namespaces, you'll need to update your code (see: Add better ability to inject namespaces [[b1a27b7]](http://github.com/elasticsearch/elasticsearch-php/commit/b1a27b7))
-- Endpoints no longer use the Transport directly.  If you use custom endpoints, you'll need to do some minor
-refactoring (see: Refactor to remove Transport dependence in endpoints [[ecd454c]](http://github.com/elasticsearch/elasticsearch-php/commit/ecd454c))
-- To facilitate testing and other features, the `ConnectionInterface` has expanded to obtain some more methods ([[getPath()]](http://github.com/elasticsearch/elasticsearch-php/commit/8bcf1a8), [[getUserPass()]](http://github.com/elasticsearch/elasticsearch-php/commit/586fbdb), [[getHost()]](http://github.com/elasticsearch/elasticsearch-php/commit/445fdea))
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/CHANGELOG.md b/apps/maarch_entreprise/tools/elasticsearch-php/CHANGELOG.md
deleted file mode 100644
index e265b7d6509606d9c5fba027715a6cb0909756e6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/CHANGELOG.md
+++ /dev/null
@@ -1,192 +0,0 @@
-## Release 5.1.0
-
-- Catch additional exceptions in the ping function for those who use multiple nodes in their connection pool. [[ffe0510]](http://github.com/elasticsearch/elasticsearch-php/commit/ffe0510)
-- Use `array_diff` to Check Endpoint Parameters (#514) [[46f7f36]](http://github.com/elasticsearch/elasticsearch-php/commit/46f7f36)
-- Re-Add the DeleteByQuery Functionality (#513) [[b262dca]](http://github.com/elasticsearch/elasticsearch-php/commit/b262dca)
-- Add 'full_id' to Cat/Nodes endpoint [[f32cc54]](http://github.com/elasticsearch/elasticsearch-php/commit/f32cc54)
-- add ClientBuilder->setConnectionParams() (#507) [[3923432]](http://github.com/elasticsearch/elasticsearch-php/commit/3923432)
-- Add new (undocumented) PHP-7 JSON error codes, better unknown handling [[0a7fd55]](http://github.com/elasticsearch/elasticsearch-php/commit/0a7fd55)
-- Add ext-json version constraint, update some docs [[ca2791a]](http://github.com/elasticsearch/elasticsearch-php/commit/ca2791a)
-- Add catch-all in exception handling [[eb4117c]](http://github.com/elasticsearch/elasticsearch-php/commit/eb4117c)
-- Revert "Simplify error parsing now that we don't support <2.0 errors" [[fd38538]](http://github.com/elasticsearch/elasticsearch-php/commit/fd38538)
-
-### Testing
-
-- [TEST] Make sure property_exists calls only ocurr on objects [[30baa0d]](http://github.com/elasticsearch/elasticsearch-php/commit/30baa0d)
-- [TEST] Tweak travis to install better ext-json [[3409a81]](http://github.com/elasticsearch/elasticsearch-php/commit/3409a81)
-- [TEST] Mute rollover test temporarily [[2316d33]](http://github.com/elasticsearch/elasticsearch-php/commit/2316d33)
-- [TEST] Add support for warning header checks [[ac1b053]](http://github.com/elasticsearch/elasticsearch-php/commit/ac1b053)
-
-### Documentation
-
-- [DOCS] Removed unwanted ) and added proper formatting (#497) [[8187fdd]](http://github.com/elasticsearch/elasticsearch-php/commit/8187fdd)
-- [DOCS] Update index-operations.asciidoc (#496) [[a4dd09f]](http://github.com/elasticsearch/elasticsearch-php/commit/a4dd09f)
-- [DOCS] Update version in monolog configuration. (#489)  [[90fbd53]](http://github.com/elasticsearch/elasticsearch-php/commit/90fbd53)
-- [DOCS] Update php-version-requirement.asciidoc (#491) [[4951439]](http://github.com/elasticsearch/elasticsearch-php/commit/4951439)
-- [DOCS] "password" param should be "password" [[8ee2bc9]](http://github.com/elasticsearch/elasticsearch-php/commit/8ee2bc9)
-- More asciidoc tweaks [[451f985]](http://github.com/elasticsearch/elasticsearch-php/commit/451f985)
-- Asciidoc != markdown [[8a816c1]](http://github.com/elasticsearch/elasticsearch-php/commit/8a816c1)
-- [Docs] More 5.0 readme tweaks [[a60dd09]](http://github.com/elasticsearch/elasticsearch-php/commit/a60dd09)
-- [DOCS] 5.0 doc updates, readme, breaking changes [[6fb6421]](http://github.com/elasticsearch/elasticsearch-php/commit/6fb6421)
-
-
-## Release 5.0.0
-
-Woo!
-
-### New Endpoints
-- Add Cat/Tasks endpoint [[42856dc]](http://github.com/elasticsearch/elasticsearch-php/commit/42856dc)
-- Add Reindex endpoint [[d2484c7]](http://github.com/elasticsearch/elasticsearch-php/commit/d2484c7)
-- Add Indices/Shrink endpoint [[b6b97a4]](http://github.com/elasticsearch/elasticsearch-php/commit/b6b97a4)
-- Add Indices/Rollover endpoint [[1ba8299]](http://github.com/elasticsearch/elasticsearch-php/commit/1ba8299)
-
-### Removals/BWC Breaks/Deprecations
-
-- Indices/Optimize endpoint has been removed in 5.0 [[4f0b9da]](http://github.com/elasticsearch/elasticsearch-php/commit/4f0b9da)
-- Warmers have been removed in 5.0 [[ef24d5d]](http://github.com/elasticsearch/elasticsearch-php/commit/ef24d5d)
-- Deprecate various Percolate endpoints [[959eee5]](http://github.com/elasticsearch/elasticsearch-php/commit/959eee5)
-- Remove old `percolate` parameter on docblocks [[f64345d]](http://github.com/elasticsearch/elasticsearch-php/commit/f64345d)
-- SearchExists Endpoint removed in 5.0 [[6dfc6a0]](http://github.com/elasticsearch/elasticsearch-php/commit/6dfc6a0)
-- [Internal BWC Break] Add better ability to inject namespaces [[b1a27b7]](http://github.com/elasticsearch/elasticsearch-php/commit/b1a27b7)
-- [Internal BWC Break] Refactor to remove Transport dependence in endpoints [[ecd454c]](http://github.com/elasticsearch/elasticsearch-php/commit/ecd454c)
-- [BWC Break] Remove MLT endpoint [[38c05da]](http://github.com/elasticsearch/elasticsearch-php/commit/38c05da)
-- [BWC Break] Remove DeleteByQuery endpoint [[9f3776a]](http://github.com/elasticsearch/elasticsearch-php/commit/9f3776a)
-- [BWC Break] Rename internal TermVector -> TermVectors, remove old public TermVector [[cbe8619]](http://github.com/elasticsearch/elasticsearch-php/commit/cbe8619)
-- [BWC] Add getPath() method to ConnectionInterface [[8bcf1a8]](http://github.com/elasticsearch/elasticsearch-php/commit/8bcf1a8)
-- [BWC] Add getUserPass() method to ConnectionInterface [[586fbdb]](http://github.com/elasticsearch/elasticsearch-php/commit/586fbdb)
-- [BWC] Add getHost() method to ConnectionInterface [[445fdea]](http://github.com/elasticsearch/elasticsearch-php/commit/445fdea)
-- Tasks/List and Tasks/Get are now separate endpoints [[e0cc5f9]](http://github.com/elasticsearch/elasticsearch-php/commit/752d5a2)
-
-### Updated/Added whitelist params
-
-- Add Ingest namespace and endpoints [[7b87954]](http://github.com/elasticsearch/elasticsearch-php/commit/7b87954)
-- Add `pipeline` parameter to Bulk endpoint whitelist [[3fa1c51]](http://github.com/elasticsearch/elasticsearch-php/commit/3fa1c51)
-- Add `pipeline` to Index endpoint [[db5d794]](http://github.com/elasticsearch/elasticsearch-php/commit/db5d794)
-- Add `include_defaults` param to Indices/GetSettings whitelist [[496071c]](http://github.com/elasticsearch/elasticsearch-php/commit/496071c)
-- Add `preserve_existing` param to Indices/PutSettings whitelist [[69389fc]](http://github.com/elasticsearch/elasticsearch-php/commit/69389fc)
-- Add Cluster/AllocationExplain endpoint [[f9c297c]](http://github.com/elasticsearch/elasticsearch-php/commit/f9c297c)
-- Add Ingest namespace and endpoints [[66c851f]](http://github.com/elasticsearch/elasticsearch-php/commit/66c851f)
-- Add missing params to Analyze endpoint: `char_filter`, `format`, `attributes`, `explain` [[8a0a932]](http://github.com/elasticsearch/elasticsearch-php/commit/8a0a932)
-- `filters` is now `filter` in Analyze endpoint [[94dbb15]](http://github.com/elasticsearch/elasticsearch-php/commit/94dbb15)
-- Add `size` param to Cat/Threadpool whitelist [[bece0e5]](http://github.com/elasticsearch/elasticsearch-php/commit/bece0e5)
-- Add `task_id` to Tasks/Get whitelist [[6a315e0]](http://github.com/elasticsearch/elasticsearch-php/commit/6a315e0)
-- Add `docvalue_fields` to Search whitelist, remove `fields` [[63ff8c5]](http://github.com/elasticsearch/elasticsearch-php/commit/63ff8c5)
-- Add `format` to Cat/Aliases whitelist [[68630a0]](http://github.com/elasticsearch/elasticsearch-php/commit/68630a0)
-- Add 'thread_pool_patterns' parameter to Cat\Threadpool endpoint [[c0820dc]](http://github.com/elasticsearch/elasticsearch-php/commit/c0820dc)
-- Add 's' sort param to all Cat endpoints [[87f23a1]](http://github.com/elasticsearch/elasticsearch-php/commit/87f23a1)
-- Add '_source' to Update whitelist [[d33be49]](http://github.com/elasticsearch/elasticsearch-php/commit/d33be49)
-- Add 'ignore_unavailable' to Snapshot/Status whitelist [[f90c2dd]](http://github.com/elasticsearch/elasticsearch-php/commit/f90c2dd)
-- Add 'ignore_unavailable' to Snapshot/Get whitelist [[93c4f22]](http://github.com/elasticsearch/elasticsearch-php/commit/93c4f22)
-- Add 'stored_fields' to Mget whitelist [[054ebed]](http://github.com/elasticsearch/elasticsearch-php/commit/054ebed)
-- Add 'wait_for_no_relocating_shards' to Cluster/Health whitelist [[8448f99]](http://github.com/elasticsearch/elasticsearch-php/commit/8448f99)
-- Add 'health' to Cat/Indices whitelist [[06a3bf5]](http://github.com/elasticsearch/elasticsearch-php/commit/06a3bf5)
-- Add '_source_include', '_source_exclude', 'pipeline' params to Bulk whitelist [[3ca12f4]](http://github.com/elasticsearch/elasticsearch-php/commit/3ca12f4)
-- Add 'stored_fields' to Get Endpoint [[c57a5a4]](http://github.com/elasticsearch/elasticsearch-php/commit/c57a5a4)
-- Add '_source' to Bulk endpoint whitelist [[35b7087]](http://github.com/elasticsearch/elasticsearch-php/commit/35b7087)
-
-### Documentation
-
-- [DOCS] Usage example for creating ClientBuilder fixed (#406) [[6a868ea]](http://github.com/elasticsearch/elasticsearch-php/commit/6a868ea)
-- [Docs] Fix typo. (#409) [[b013ab0]](http://github.com/elasticsearch/elasticsearch-php/commit/b013ab0)
-- Docs: Fixed broken link. [[17a4ed7]](http://github.com/elasticsearch/elasticsearch-php/commit/17a4ed7)
-- [DOCS] Rebuild auto-generated docs [[2904d7a]](http://github.com/elasticsearch/elasticsearch-php/commit/2904d7a)
-- Add script to generate docs [[4ce648c]](http://github.com/elasticsearch/elasticsearch-php/commit/4ce648c)
-- Update Readme with 5.0 branching information [[ddb8ecd]](http://github.com/elasticsearch/elasticsearch-php/commit/ddb8ecd)
-- [DOCS] Update URL/Email in class-level doc blocks [[8238cb3]](http://github.com/elasticsearch/elasticsearch-php/commit/8238cb3)
-- [DOCS] Update copyright year in licenses [[fcc4ad6]](http://github.com/elasticsearch/elasticsearch-php/commit/fcc4ad6)
-- [DOCS] Add Breaking Changes list for 5.0 [[65953ac]](http://github.com/elasticsearch/elasticsearch-php/commit/65953ac)
-- [DOCS] add getSource method to the readme (#465) [[90cbdfb]](http://github.com/elasticsearch/elasticsearch-php/commit/90cbdfb)
-- [DOCS] Replace deprecated filtered query with boolean [[3b81615]](http://github.com/elasticsearch/elasticsearch-php/commit/3b81615)
-- [DOCS] Add Plastic Laravel integration to community page [[e4530a7]](http://github.com/elasticsearch/elasticsearch-php/commit/e4530a7)
-- [DOCS] Fix return type in docblock for all Exists* endpoints [[498c003]](http://github.com/elasticsearch/elasticsearch-php/commit/498c003)
-- Add autogenerated reference documentation [[bd64d52]](http://github.com/elasticsearch/elasticsearch-php/commit/bd64d52)
-- [DOCS] Regenerate reference docs [[030d96e]](http://github.com/elasticsearch/elasticsearch-php/commit/030d96e)
-
-### Cleanup
-
-- Remove benchmark autoload [[74b5ad9]](http://github.com/elasticsearch/elasticsearch-php/commit/74b5ad9)
-- Remove old rest-spec parser [[07754c4]](http://github.com/elasticsearch/elasticsearch-php/commit/07754c4)
-- Remove unused benchmarks [[20a75b1]](http://github.com/elasticsearch/elasticsearch-php/commit/20a75b1)
-- Automated PSR-2 style cleanup [[fbe6f92]](http://github.com/elasticsearch/elasticsearch-php/commit/fbe6f92)
-- Tweak script for new cli format [[4adbe94]](http://github.com/elasticsearch/elasticsearch-php/commit/4adbe94)
-- Fix Indices/Flush after autogeneration [[d56e2c4]](http://github.com/elasticsearch/elasticsearch-php/commit/d56e2c4)
-- Tweak SpecParser template [[8341c4c]](http://github.com/elasticsearch/elasticsearch-php/commit/8341c4c)
-- Added output folder from SpecParser to gitignore [[cfd49ee]](http://github.com/elasticsearch/elasticsearch-php/commit/cfd49ee)
-- Updated ParseSpec to be able to run from console and use new api path [[e0cc5f9]](http://github.com/elasticsearch/elasticsearch-php/commit/d44a323)
-
-### Bugfixes and Misc.
-
-- Split Create out to its own internal endpoint for simplicity [[9eb573a]](http://github.com/elasticsearch/elasticsearch-php/commit/9eb573a)
-- Cat/Snapshots 'repository' param is not in-fact required, despite spec [[6c77f62]](http://github.com/elasticsearch/elasticsearch-php/commit/6c77f62)
-- Fix error handler when no structured error is present [[f380a69]](http://github.com/elasticsearch/elasticsearch-php/commit/f380a69)
-- add JSON_PRESERVE_ZERO_FRACTION for Json_encode (#481) [[2ab3971]](http://github.com/elasticsearch/elasticsearch-php/commit/2ab3971)
-- Simplify error parsing now that we don't support <2.0 errors [[a6d896b]](http://github.com/elasticsearch/elasticsearch-php/commit/a6d896b)
-- Added support for PHP 7.1 (#474) [[864d4d3]](http://github.com/elasticsearch/elasticsearch-php/commit/864d4d3)
-- Type exists URI has changed to index/_mapping/type [[dd63eaa]](http://github.com/elasticsearch/elasticsearch-php/commit/dd63eaa)
-- Index creation only accepts PUT verbs now [[9c620c2]](http://github.com/elasticsearch/elasticsearch-php/commit/9c620c2)
-- Update SearchResponseIterator to remove old-style scan/scroll flow [[72f3b15]](http://github.com/elasticsearch/elasticsearch-php/commit/72f3b15)
-- Add "extended" host configuration syntax [[a0ddad1]](http://github.com/elasticsearch/elasticsearch-php/commit/a0ddad1)
-- Allow ConnectionFactory to be override (#456) [[cc2a5fe]](http://github.com/elasticsearch/elasticsearch-php/commit/cc2a5fe)
-- Special-case unwrapping for async methods that use Exist* endpoints [[347e5c5]](http://github.com/elasticsearch/elasticsearch-php/commit/347e5c5)
-- composer: bump min version to PHP 5.6 (#451) [[6648646]](http://github.com/elasticsearch/elasticsearch-php/commit/6648646)
-- Allow to get multiple pipelines without id (#453) [[c7f737b]](http://github.com/elasticsearch/elasticsearch-php/commit/c7f737b)
-- Split, refactor and fix some tests (#447) [[68e819b]](http://github.com/elasticsearch/elasticsearch-php/commit/68e819b)
-- Tests cleaned up a little [[afc9af0]](http://github.com/elasticsearch/elasticsearch-php/commit/afc9af0)
-- Fix doc output on github [[62d6132]](http://github.com/elasticsearch/elasticsearch-php/commit/62d6132)
-- (pr/445) Move resultOrFuture from endpoint to transport [[80bfeea]](http://github.com/elasticsearch/elasticsearch-php/commit/80bfeea)
-- Manually convert true/false to "true"/"false" before http_build_query() [[bef93cb]](http://github.com/elasticsearch/elasticsearch-php/commit/bef93cb)
-- getApiPath function returns path without trailing slash [[8bcfaf0]](http://github.com/elasticsearch/elasticsearch-php/commit/8bcfaf0)
-- Use valid SPDX license identifier [[963e635]](http://github.com/elasticsearch/elasticsearch-php/commit/963e635)
-- Fix bug when Create is called with an stdClass body [[adcaa2c]](http://github.com/elasticsearch/elasticsearch-php/commit/adcaa2c)
-- Fix comment tag [[3b8e918]](http://github.com/elasticsearch/elasticsearch-php/commit/3b8e918)
-- Add .github templates [[104a7ea]](http://github.com/elasticsearch/elasticsearch-php/commit/104a7ea)
-
-### Testing
-
-Lots of work re-working the REST Yaml test framework, getting travis to play nicely with Java8, and misc
-tweaks over time.  The test framework is in much better shape, largely thanks to help from community member @joelwurtz!
-
-- [TEST] Add 5.x to test matrix [[77b548d]](http://github.com/elasticsearch/elasticsearch-php/commit/77b548d)
-- [TEST] Fixup server startup [[18ea943]](http://github.com/elasticsearch/elasticsearch-php/commit/18ea943)
-- [TEST] Add ignore to custom param since ES now validates extraneous uri params [[61f62d8]](http://github.com/elasticsearch/elasticsearch-php/commit/61f62d8)
-- [TEST] Regex to detect "stashed" values is not useful, throws false-positives [[7ff9b20]](http://github.com/elasticsearch/elasticsearch-php/commit/7ff9b20)
-- [TEST] (Fix) Better context to true/false failures [[a9ee47d]](http://github.com/elasticsearch/elasticsearch-php/commit/a9ee47d)
-- [TEST] Better context to true/false failures [[9df055b]](http://github.com/elasticsearch/elasticsearch-php/commit/9df055b)
-- [TEST] Add 'indices.shrink/10_basic.yaml' to temp blacklist [[aa93f39]](http://github.com/elasticsearch/elasticsearch-php/commit/aa93f39)
-- [TEST] Only run sync tests on Travis [[2f7b863]](http://github.com/elasticsearch/elasticsearch-php/commit/2f7b863)
-- [TEST] Update travis config to use ES 5.0 branch [[cbad348]](http://github.com/elasticsearch/elasticsearch-php/commit/cbad348)
-- [TEST] Add back accidentally deleted annotations [[c7f8c06]](http://github.com/elasticsearch/elasticsearch-php/commit/c7f8c06)
-- [TEST] Better snapshot/repo clearing [[cc3a40d]](http://github.com/elasticsearch/elasticsearch-php/commit/cc3a40d)
-- [TEST] output tweaks for better debugging, add temporary blacklist for fatal parsing files [[cb1956b]](http://github.com/elasticsearch/elasticsearch-php/commit/cb1956b)
-- [TEST] Tweak verbosity of tests [[e0cc5f9]](http://github.com/elasticsearch/elasticsearch-php/commit/e0cc5f9)
-- [TEST] No need to test below PHP 5.6 on master [[7aad25a]](http://github.com/elasticsearch/elasticsearch-php/commit/7aad25a)
-- [TEST] Allow hhvm to fail [[fe6993d]](http://github.com/elasticsearch/elasticsearch-php/commit/fe6993d)
-- [TEST] Remove ES host/port so it starts in "dev" mode [[c91242d]](http://github.com/elasticsearch/elasticsearch-php/commit/c91242d)
-- [TEST] Bump travis file descriptors [[b24fc85]](http://github.com/elasticsearch/elasticsearch-php/commit/b24fc85)
-- [TEST] Bump travis file descriptors [[5cd7c37]](http://github.com/elasticsearch/elasticsearch-php/commit/5cd7c37)
-- [TEST] Bump travis file descriptors [[65f2eb9]](http://github.com/elasticsearch/elasticsearch-php/commit/65f2eb9)
-- [TEST] (Nuclear option) more Java8 JRE tweaks [[00ce1df]](http://github.com/elasticsearch/elasticsearch-php/commit/00ce1df)
-- [TEST] (Hundred and one time's a charm) more Java8 JRE tweaks [[c38e5fe]](http://github.com/elasticsearch/elasticsearch-php/commit/c38e5fe)
-- [TEST] (Hundredth time's a charm) more Java8 JRE tweaks [[2cef10d]](http://github.com/elasticsearch/elasticsearch-php/commit/2cef10d)
-- [TEST] (And yet) more Java8 JRE tweaks [[ecb44ab]](http://github.com/elasticsearch/elasticsearch-php/commit/ecb44ab)
-- [TEST] (Yet) more Java8 JRE tweaks [[afc6b8a]](http://github.com/elasticsearch/elasticsearch-php/commit/afc6b8a)
-- [TEST] More Java8 JRE tweaks [[0567579]](http://github.com/elasticsearch/elasticsearch-php/commit/0567579)
-- [TEST] More Java8 JRE tweaks [[9869977]](http://github.com/elasticsearch/elasticsearch-php/commit/9869977)
-- [TEST] Print java version for debug [[9dec069]](http://github.com/elasticsearch/elasticsearch-php/commit/9dec069)
-- [TEST] Manually configure Java8 JRE [[1fd3612]](http://github.com/elasticsearch/elasticsearch-php/commit/1fd3612)
-- Revert "[TEST] Use Java 8 for tests" [[6fc4c5c]](http://github.com/elasticsearch/elasticsearch-php/commit/6fc4c5c)
-- [TEST] Use Java 8 for tests [[2d59159]](http://github.com/elasticsearch/elasticsearch-php/commit/2d59159)
-- [TEST] Replace stash before finding nested variables in match [[2dae755]](http://github.com/elasticsearch/elasticsearch-php/commit/2dae755)
-- [TEST] Convert `tasks.list` to `tasks.get` because `list` is a reserved word [[e0956a5]](http://github.com/elasticsearch/elasticsearch-php/commit/e0956a5)
-- [TEST] Small tweak to timestamp regex [[d5e50c1]](http://github.com/elasticsearch/elasticsearch-php/commit/d5e50c1)
-- [TEST] return second level of exception message if possible, for further testing [[a76cbf2]](http://github.com/elasticsearch/elasticsearch-php/commit/a76cbf2)
-- [TEST] Master tests only track ES-master (5.0 alpha) now [[76e621c]](http://github.com/elasticsearch/elasticsearch-php/commit/76e621c)
-- [TEST] Fix jq syntax for numeric branches (e.g. `2.2`) [[eb48dab]](http://github.com/elasticsearch/elasticsearch-php/commit/eb48dab)
-- [TEST] Automate snapshot retrieval [[c08b08b]](http://github.com/elasticsearch/elasticsearch-php/commit/c08b08b)
-- [TEST] Update snapshot download script for 2.2 [[350cd6e]](http://github.com/elasticsearch/elasticsearch-php/commit/350cd6e)
-- [TEST] Update travis matrix [[04bcf81]](http://github.com/elasticsearch/elasticsearch-php/commit/04bcf81)
-- [TEST] Invoke phpunit dependency instead of travis phpunit.phar [[f9e0d99]](http://github.com/elasticsearch/elasticsearch-php/commit/f9e0d99)
-- Revert "[TEST] fix object notation" [[b966328]](http://github.com/elasticsearch/elasticsearch-php/commit/b966328)
-- Make test fail on Yaml parse error [[f1b3adb]](http://github.com/elasticsearch/elasticsearch-php/commit/f1b3adb)
-- Only show log when test fails [[f2acb43]](http://github.com/elasticsearch/elasticsearch-php/commit/f2acb43)
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/LICENSE
deleted file mode 100644
index 0f773ccb4379a25b7446cdd206858ce430adc480..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/LICENSE
+++ /dev/null
@@ -1,635 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-
-                      GNU LESSER GENERAL PUBLIC LICENSE
-                           Version 2.1, February 1999
-
-     Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-    [This is the first released version of the Lesser GPL.  It also counts
-     as the successor of the GNU Library Public License, version 2, hence
-     the version number 2.1.]
-
-                                Preamble
-
-      The licenses for most software are designed to take away your
-    freedom to share and change it.  By contrast, the GNU General Public
-    Licenses are intended to guarantee your freedom to share and change
-    free software--to make sure the software is free for all its users.
-
-      This license, the Lesser General Public License, applies to some
-    specially designated software packages--typically libraries--of the
-    Free Software Foundation and other authors who decide to use it.  You
-    can use it too, but we suggest you first think carefully about whether
-    this license or the ordinary General Public License is the better
-    strategy to use in any particular case, based on the explanations below.
-
-      When we speak of free software, we are referring to freedom of use,
-    not price.  Our General Public Licenses are designed to make sure that
-    you have the freedom to distribute copies of free software (and charge
-    for this service if you wish); that you receive source code or can get
-    it if you want it; that you can change the software and use pieces of
-    it in new free programs; and that you are informed that you can do
-    these things.
-
-      To protect your rights, we need to make restrictions that forbid
-    distributors to deny you these rights or to ask you to surrender these
-    rights.  These restrictions translate to certain responsibilities for
-    you if you distribute copies of the library or if you modify it.
-
-      For example, if you distribute copies of the library, whether gratis
-    or for a fee, you must give the recipients all the rights that we gave
-    you.  You must make sure that they, too, receive or can get the source
-    code.  If you link other code with the library, you must provide
-    complete object files to the recipients, so that they can relink them
-    with the library after making changes to the library and recompiling
-    it.  And you must show them these terms so they know their rights.
-
-      We protect your rights with a two-step method: (1) we copyright the
-    library, and (2) we offer you this license, which gives you legal
-    permission to copy, distribute and/or modify the library.
-
-      To protect each distributor, we want to make it very clear that
-    there is no warranty for the free library.  Also, if the library is
-    modified by someone else and passed on, the recipients should know
-    that what they have is not the original version, so that the original
-    author's reputation will not be affected by problems that might be
-    introduced by others.
-    
-      Finally, software patents pose a constant threat to the existence of
-    any free program.  We wish to make sure that a company cannot
-    effectively restrict the users of a free program by obtaining a
-    restrictive license from a patent holder.  Therefore, we insist that
-    any patent license obtained for a version of the library must be
-    consistent with the full freedom of use specified in this license.
-
-      Most GNU software, including some libraries, is covered by the
-    ordinary GNU General Public License.  This license, the GNU Lesser
-    General Public License, applies to certain designated libraries, and
-    is quite different from the ordinary General Public License.  We use
-    this license for certain libraries in order to permit linking those
-    libraries into non-free programs.
-
-      When a program is linked with a library, whether statically or using
-    a shared library, the combination of the two is legally speaking a
-    combined work, a derivative of the original library.  The ordinary
-    General Public License therefore permits such linking only if the
-    entire combination fits its criteria of freedom.  The Lesser General
-    Public License permits more lax criteria for linking other code with
-    the library.
-
-      We call this license the "Lesser" General Public License because it
-    does Less to protect the user's freedom than the ordinary General
-    Public License.  It also provides other free software developers Less
-    of an advantage over competing non-free programs.  These disadvantages
-    are the reason we use the ordinary General Public License for many
-    libraries.  However, the Lesser license provides advantages in certain
-    special circumstances.
-
-      For example, on rare occasions, there may be a special need to
-    encourage the widest possible use of a certain library, so that it becomes
-    a de-facto standard.  To achieve this, non-free programs must be
-    allowed to use the library.  A more frequent case is that a free
-    library does the same job as widely used non-free libraries.  In this
-    case, there is little to gain by limiting the free library to free
-    software only, so we use the Lesser General Public License.
-
-      In other cases, permission to use a particular library in non-free
-    programs enables a greater number of people to use a large body of
-    free software.  For example, permission to use the GNU C Library in
-    non-free programs enables many more people to use the whole GNU
-    operating system, as well as its variant, the GNU/Linux operating
-    system.
-
-      Although the Lesser General Public License is Less protective of the
-    users' freedom, it does ensure that the user of a program that is
-    linked with the Library has the freedom and the wherewithal to run
-    that program using a modified version of the Library.
-
-      The precise terms and conditions for copying, distribution and
-    modification follow.  Pay close attention to the difference between a
-    "work based on the library" and a "work that uses the library".  The
-    former contains code derived from the library, whereas the latter must
-    be combined with the library in order to run.
-    
-                      GNU LESSER GENERAL PUBLIC LICENSE
-       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-      0. This License Agreement applies to any software library or other
-    program which contains a notice placed by the copyright holder or
-    other authorized party saying it may be distributed under the terms of
-    this Lesser General Public License (also called "this License").
-    Each licensee is addressed as "you".
-
-      A "library" means a collection of software functions and/or data
-    prepared so as to be conveniently linked with application programs
-    (which use some of those functions and data) to form executables.
-
-      The "Library", below, refers to any such software library or work
-    which has been distributed under these terms.  A "work based on the
-    Library" means either the Library or any derivative work under
-    copyright law: that is to say, a work containing the Library or a
-    portion of it, either verbatim or with modifications and/or translated
-    straightforwardly into another language.  (Hereinafter, translation is
-    included without limitation in the term "modification".)
-
-      "Source code" for a work means the preferred form of the work for
-    making modifications to it.  For a library, complete source code means
-    all the source code for all modules it contains, plus any associated
-    interface definition files, plus the scripts used to control compilation
-    and installation of the library.
-
-      Activities other than copying, distribution and modification are not
-    covered by this License; they are outside its scope.  The act of
-    running a program using the Library is not restricted, and output from
-    such a program is covered only if its contents constitute a work based
-    on the Library (independent of the use of the Library in a tool for
-    writing it).  Whether that is true depends on what the Library does
-    and what the program that uses the Library does.
-
-      1. You may copy and distribute verbatim copies of the Library's
-    complete source code as you receive it, in any medium, provided that
-    you conspicuously and appropriately publish on each copy an
-    appropriate copyright notice and disclaimer of warranty; keep intact
-    all the notices that refer to this License and to the absence of any
-    warranty; and distribute a copy of this License along with the
-    Library.
-
-      You may charge a fee for the physical act of transferring a copy,
-    and you may at your option offer warranty protection in exchange for a
-    fee.
-    
-      2. You may modify your copy or copies of the Library or any portion
-    of it, thus forming a work based on the Library, and copy and
-    distribute such modifications or work under the terms of Section 1
-    above, provided that you also meet all of these conditions:
-
-        a) The modified work must itself be a software library.
-
-        b) You must cause the files modified to carry prominent notices
-        stating that you changed the files and the date of any change.
-
-        c) You must cause the whole of the work to be licensed at no
-        charge to all third parties under the terms of this License.
-
-        d) If a facility in the modified Library refers to a function or a
-        table of data to be supplied by an application program that uses
-        the facility, other than as an argument passed when the facility
-        is invoked, then you must make a good faith effort to ensure that,
-        in the event an application does not supply such function or
-        table, the facility still operates, and performs whatever part of
-        its purpose remains meaningful.
-
-        (For example, a function in a library to compute square roots has
-        a purpose that is entirely well-defined independent of the
-        application.  Therefore, Subsection 2d requires that any
-        application-supplied function or table used by this function must
-        be optional: if the application does not supply it, the square
-        root function must still compute square roots.)
-
-    These requirements apply to the modified work as a whole.  If
-    identifiable sections of that work are not derived from the Library,
-    and can be reasonably considered independent and separate works in
-    themselves, then this License, and its terms, do not apply to those
-    sections when you distribute them as separate works.  But when you
-    distribute the same sections as part of a whole which is a work based
-    on the Library, the distribution of the whole must be on the terms of
-    this License, whose permissions for other licensees extend to the
-    entire whole, and thus to each and every part regardless of who wrote
-    it.
-
-    Thus, it is not the intent of this section to claim rights or contest
-    your rights to work written entirely by you; rather, the intent is to
-    exercise the right to control the distribution of derivative or
-    collective works based on the Library.
-
-    In addition, mere aggregation of another work not based on the Library
-    with the Library (or with a work based on the Library) on a volume of
-    a storage or distribution medium does not bring the other work under
-    the scope of this License.
-
-      3. You may opt to apply the terms of the ordinary GNU General Public
-    License instead of this License to a given copy of the Library.  To do
-    this, you must alter all the notices that refer to this License, so
-    that they refer to the ordinary GNU General Public License, version 2,
-    instead of to this License.  (If a newer version than version 2 of the
-    ordinary GNU General Public License has appeared, then you can specify
-    that version instead if you wish.)  Do not make any other change in
-    these notices.
-    
-      Once this change is made in a given copy, it is irreversible for
-    that copy, so the ordinary GNU General Public License applies to all
-    subsequent copies and derivative works made from that copy.
-
-      This option is useful when you wish to copy part of the code of
-    the Library into a program that is not a library.
-
-      4. You may copy and distribute the Library (or a portion or
-    derivative of it, under Section 2) in object code or executable form
-    under the terms of Sections 1 and 2 above provided that you accompany
-    it with the complete corresponding machine-readable source code, which
-    must be distributed under the terms of Sections 1 and 2 above on a
-    medium customarily used for software interchange.
-
-      If distribution of object code is made by offering access to copy
-    from a designated place, then offering equivalent access to copy the
-    source code from the same place satisfies the requirement to
-    distribute the source code, even though third parties are not
-    compelled to copy the source along with the object code.
-
-      5. A program that contains no derivative of any portion of the
-    Library, but is designed to work with the Library by being compiled or
-    linked with it, is called a "work that uses the Library".  Such a
-    work, in isolation, is not a derivative work of the Library, and
-    therefore falls outside the scope of this License.
-
-      However, linking a "work that uses the Library" with the Library
-    creates an executable that is a derivative of the Library (because it
-    contains portions of the Library), rather than a "work that uses the
-    library".  The executable is therefore covered by this License.
-    Section 6 states terms for distribution of such executables.
-
-      When a "work that uses the Library" uses material from a header file
-    that is part of the Library, the object code for the work may be a
-    derivative work of the Library even though the source code is not.
-    Whether this is true is especially significant if the work can be
-    linked without the Library, or if the work is itself a library.  The
-    threshold for this to be true is not precisely defined by law.
-
-      If such an object file uses only numerical parameters, data
-    structure layouts and accessors, and small macros and small inline
-    functions (ten lines or less in length), then the use of the object
-    file is unrestricted, regardless of whether it is legally a derivative
-    work.  (Executables containing this object code plus portions of the
-    Library will still fall under Section 6.)
-
-      Otherwise, if the work is a derivative of the Library, you may
-    distribute the object code for the work under the terms of Section 6.
-    Any executables containing that work also fall under Section 6,
-    whether or not they are linked directly with the Library itself.
-    
-      6. As an exception to the Sections above, you may also combine or
-    link a "work that uses the Library" with the Library to produce a
-    work containing portions of the Library, and distribute that work
-    under terms of your choice, provided that the terms permit
-    modification of the work for the customer's own use and reverse
-    engineering for debugging such modifications.
-
-      You must give prominent notice with each copy of the work that the
-    Library is used in it and that the Library and its use are covered by
-    this License.  You must supply a copy of this License.  If the work
-    during execution displays copyright notices, you must include the
-    copyright notice for the Library among them, as well as a reference
-    directing the user to the copy of this License.  Also, you must do one
-    of these things:
-
-        a) Accompany the work with the complete corresponding
-        machine-readable source code for the Library including whatever
-        changes were used in the work (which must be distributed under
-        Sections 1 and 2 above); and, if the work is an executable linked
-        with the Library, with the complete machine-readable "work that
-        uses the Library", as object code and/or source code, so that the
-        user can modify the Library and then relink to produce a modified
-        executable containing the modified Library.  (It is understood
-        that the user who changes the contents of definitions files in the
-        Library will not necessarily be able to recompile the application
-        to use the modified definitions.)
-
-        b) Use a suitable shared library mechanism for linking with the
-        Library.  A suitable mechanism is one that (1) uses at run time a
-        copy of the library already present on the user's computer system,
-        rather than copying library functions into the executable, and (2)
-        will operate properly with a modified version of the library, if
-        the user installs one, as long as the modified version is
-        interface-compatible with the version that the work was made with.
-
-        c) Accompany the work with a written offer, valid for at
-        least three years, to give the same user the materials
-        specified in Subsection 6a, above, for a charge no more
-        than the cost of performing this distribution.
-
-        d) If distribution of the work is made by offering access to copy
-        from a designated place, offer equivalent access to copy the above
-        specified materials from the same place.
-
-        e) Verify that the user has already received a copy of these
-        materials or that you have already sent this user a copy.
-
-      For an executable, the required form of the "work that uses the
-    Library" must include any data and utility programs needed for
-    reproducing the executable from it.  However, as a special exception,
-    the materials to be distributed need not include anything that is
-    normally distributed (in either source or binary form) with the major
-    components (compiler, kernel, and so on) of the operating system on
-    which the executable runs, unless that component itself accompanies
-    the executable.
-
-      It may happen that this requirement contradicts the license
-    restrictions of other proprietary libraries that do not normally
-    accompany the operating system.  Such a contradiction means you cannot
-    use both them and the Library together in an executable that you
-    distribute.
-    
-      7. You may place library facilities that are a work based on the
-    Library side-by-side in a single library together with other library
-    facilities not covered by this License, and distribute such a combined
-    library, provided that the separate distribution of the work based on
-    the Library and of the other library facilities is otherwise
-    permitted, and provided that you do these two things:
-
-        a) Accompany the combined library with a copy of the same work
-        based on the Library, uncombined with any other library
-        facilities.  This must be distributed under the terms of the
-        Sections above.
-
-        b) Give prominent notice with the combined library of the fact
-        that part of it is a work based on the Library, and explaining
-        where to find the accompanying uncombined form of the same work.
-
-      8. You may not copy, modify, sublicense, link with, or distribute
-    the Library except as expressly provided under this License.  Any
-    attempt otherwise to copy, modify, sublicense, link with, or
-    distribute the Library is void, and will automatically terminate your
-    rights under this License.  However, parties who have received copies,
-    or rights, from you under this License will not have their licenses
-    terminated so long as such parties remain in full compliance.
-
-      9. You are not required to accept this License, since you have not
-    signed it.  However, nothing else grants you permission to modify or
-    distribute the Library or its derivative works.  These actions are
-    prohibited by law if you do not accept this License.  Therefore, by
-    modifying or distributing the Library (or any work based on the
-    Library), you indicate your acceptance of this License to do so, and
-    all its terms and conditions for copying, distributing or modifying
-    the Library or works based on it.
-
-      10. Each time you redistribute the Library (or any work based on the
-    Library), the recipient automatically receives a license from the
-    original licensor to copy, distribute, link with or modify the Library
-    subject to these terms and conditions.  You may not impose any further
-    restrictions on the recipients' exercise of the rights granted herein.
-    You are not responsible for enforcing compliance by third parties with
-    this License.
-    
-      11. If, as a consequence of a court judgment or allegation of patent
-    infringement or for any other reason (not limited to patent issues),
-    conditions are imposed on you (whether by court order, agreement or
-    otherwise) that contradict the conditions of this License, they do not
-    excuse you from the conditions of this License.  If you cannot
-    distribute so as to satisfy simultaneously your obligations under this
-    License and any other pertinent obligations, then as a consequence you
-    may not distribute the Library at all.  For example, if a patent
-    license would not permit royalty-free redistribution of the Library by
-    all those who receive copies directly or indirectly through you, then
-    the only way you could satisfy both it and this License would be to
-    refrain entirely from distribution of the Library.
-
-    If any portion of this section is held invalid or unenforceable under any
-    particular circumstance, the balance of the section is intended to apply,
-    and the section as a whole is intended to apply in other circumstances.
-
-    It is not the purpose of this section to induce you to infringe any
-    patents or other property right claims or to contest validity of any
-    such claims; this section has the sole purpose of protecting the
-    integrity of the free software distribution system which is
-    implemented by public license practices.  Many people have made
-    generous contributions to the wide range of software distributed
-    through that system in reliance on consistent application of that
-    system; it is up to the author/donor to decide if he or she is willing
-    to distribute software through any other system and a licensee cannot
-    impose that choice.
-
-    This section is intended to make thoroughly clear what is believed to
-    be a consequence of the rest of this License.
-
-      12. If the distribution and/or use of the Library is restricted in
-    certain countries either by patents or by copyrighted interfaces, the
-    original copyright holder who places the Library under this License may add
-    an explicit geographical distribution limitation excluding those countries,
-    so that distribution is permitted only in or among countries not thus
-    excluded.  In such case, this License incorporates the limitation as if
-    written in the body of this License.
-
-      13. The Free Software Foundation may publish revised and/or new
-    versions of the Lesser General Public License from time to time.
-    Such new versions will be similar in spirit to the present version,
-    but may differ in detail to address new problems or concerns.
-
-    Each version is given a distinguishing version number.  If the Library
-    specifies a version number of this License which applies to it and
-    "any later version", you have the option of following the terms and
-    conditions either of that version or of any later version published by
-    the Free Software Foundation.  If the Library does not specify a
-    license version number, you may choose any version ever published by
-    the Free Software Foundation.
-    
-      14. If you wish to incorporate parts of the Library into other free
-    programs whose distribution conditions are incompatible with these,
-    write to the author to ask for permission.  For software which is
-    copyrighted by the Free Software Foundation, write to the Free
-    Software Foundation; we sometimes make exceptions for this.  Our
-    decision will be guided by the two goals of preserving the free status
-    of all derivatives of our free software and of promoting the sharing
-    and reuse of software generally.
-
-                                NO WARRANTY
-
-      15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-    WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-    EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-    OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-    KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-    PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-    LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-    THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-      16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-    WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-    AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-    FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-    CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-    LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-    RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-    FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-    SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-    DAMAGES.
-
-                         END OF TERMS AND CONDITIONS
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/NOTICE b/apps/maarch_entreprise/tools/elasticsearch-php/NOTICE
deleted file mode 100644
index 3897fb59481d697d0d4cc7d3576eb586a67474cb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/NOTICE
+++ /dev/null
@@ -1,32 +0,0 @@
-Apache v2.0 Notice:
-    Copyright 2013-2014 Elasticsearch
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
-
-LGPL v2.1 Notice:
-    Copyright (C) 2013-2014  Elasticsearch
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/README.md b/apps/maarch_entreprise/tools/elasticsearch-php/README.md
deleted file mode 100644
index 700bd9d12c90a24a1dc0039daa49025e2c4b4d34..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/README.md
+++ /dev/null
@@ -1,377 +0,0 @@
-elasticsearch-php
-=================
-
-[![Build Status](https://img.shields.io/travis/elastic/elasticsearch-php.svg?style=flat-square)](https://travis-ci.org/elastic/elasticsearch-php)
-
-
-Official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in PHP; because of this it tries to be opinion-free and very extendable.
-
-To maintain consistency across all the low-level clients (Ruby, Python, etc), clients accept simple associative arrays as parameters.  All parameters, from the URI to the document body, are defined in the associative array.
-
-
-Features
---------
-
- - One-to-one mapping with REST API and other language clients
- - Configurable, automatic discovery of cluster nodes
- - Persistent, Keep-Alive connections (within the lifetime of the script)
- - Load balancing (with pluggable selection strategy) across all available nodes. Defaults to round-robin
- - Pluggable connection pools to offer different connection strategies
- - Generalized, pluggable architecture - most components can be replaced with your own custom class if specialized behavior is required
- - Option to use asyncronous future, which enables parallel execution of curl requests to multiple nodes
-
-Version Matrix
---------------
-
-| Elasticsearch Version | Elasticsearch-PHP Branch |
-| --------------------- | ------------------------ |
-| >= 5.0                | 5.0               |
-| >= 2.0, < 5.0         | 1.0 or 2.0               |
-| >= 1.0, < 2.0         | 1.0 or 2.0               |
-| <= 0.90.x             | 0.4                      |
-
- - If you are using Elasticsearch 5.0+ , use Elasticsearch-PHP 5.0 branch.
- - If you are using Elasticsearch 1.x or 2.x, prefer using the Elasticsearch-PHP 2.0 branch.  The 1.0 branch is compatible however.
- - If you are using a version older than 1.0, you must install the `0.4` Elasticsearch-PHP branch. Since ES 0.90.x and below is now EOL, the corresponding `0.4` branch will not receive any more development or bugfixes.  Please upgrade.
- - You should never use Elasticsearch-PHP Master branch, as it tracks Elasticearch master and may contain incomplete features or breaks in backwards compat.  Only use ES-PHP master if you are developing against ES master for some reason.
-
-Documentation
---------------
-[Full documentation can be found here.](http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/5.0/index.html)  Docs are stored within the repo under /docs/, so if you see a typo or problem, please submit a PR to fix it!
-
-Installation via Composer
--------------------------
-The recommended method to install _Elasticsearch-PHP_ is through [Composer](http://getcomposer.org).
-
-1. Add ``elasticsearch/elasticsearch`` as a dependency in your project's ``composer.json`` file (change version to suit your version of Elasticsearch):
-
-    ```json
-        {
-            "require": {
-                "elasticsearch/elasticsearch": "~5.0"
-            }
-        }
-    ```
-
-2. Download and install Composer:
-
-    ```bash
-        curl -s http://getcomposer.org/installer | php
-    ```
-
-3. Install your dependencies:
-
-    ```bash
-        php composer.phar install --no-dev
-    ```
-
-4. Require Composer's autoloader
-
-    Composer also prepares an autoload file that's capable of autoloading all of the classes in any of the libraries that it downloads. To use it, just add the following line to your code's bootstrap process:
-
-    ```php
-        <?php
-
-        use Elasticsearch\ClientBuilder;
-
-        require 'vendor/autoload.php';
-
-        $client = ClientBuilder::create()->build();
-    ```
-You can find out more on how to install Composer, configure autoloading, and other best-practices for defining dependencies at [getcomposer.org](http://getcomposer.org).
-
-You'll notice that the installation command specified `--no-dev`.  This prevents Composer from installing the various testing and development dependencies.  For average users, there is no need to install the test suite (which also includes the complete source code of Elasticsearch).  If you wish to contribute to development, just omit the `--no-dev` flag to be able to run tests.
-
-PHP Version Requirement
-----
-Version 5.0 of this library requires at least PHP version 5.6.6 to function.  In addition, it requires the native JSON
-extension to be version 1.3.7 or higher.
-
-| PHP Version | Elasticsearch-PHP Branch |
-| ----------- | ------------------------ |
-| >= 5.6.6    | 5.0              |
-| >= 5.4.0    | 2.0                      |
-| >= 5.3.9    | 0.4, 1.0                 |
-
-
-Quickstart
-----
-
-
-### Index a document
-
-In elasticsearch-php, almost everything is configured by associative arrays.  The REST endpoint, document and optional parameters - everything is an associative array.
-
-To index a document, we need to specify four pieces of information: index, type, id and a document body. This is done by
-constructing an associative array of key:value pairs.  The request body is itself an associative array with key:value pairs
-corresponding to the data in your document:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => ['testField' => 'abc']
-];
-
-$response = $client->index($params);
-print_r($response);
-```
-
-The response that you get back indicates the document was created in the index that you specified.  The response is an
-associative array containing a decoded version of the JSON that Elasticsearch returns:
-
-```php
-Array
-(
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 1
-    [created] => 1
-)
-
-```
-
-### Get a document
-
-Let's get the document that we just indexed.  This will simply return the document:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$response = $client->get($params);
-print_r($response);
-```
-
-The response contains some metadata (index, type, etc) as well as a `_source` field...this is the original document
-that you sent to Elasticsearch.
-
-```php
-Array
-(
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 1
-    [found] => 1
-    [_source] => Array
-        (
-            [testField] => abc
-        )
-
-)
-```
-
-If you want to retrieve the `_source` field directly, there is the `getSource` method:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$source = $client->getSource($params);
-doSomething($source);
-```
-
-### Search for a document
-
-Searching is a hallmark of Elasticsearch, so let's perform a search.  We are going to use the Match query as a demonstration:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'match' => [
-                'testField' => 'abc'
-            ]
-        ]
-    ]
-];
-
-$response = $client->search($params);
-print_r($response);
-```
-
-The response is a little different from the previous responses.  We see some metadata (`took`, `timed_out`, etc) and
-an array named `hits`.  This represents your search results.  Inside of `hits` is another array named `hits`, which contains
-individual search results:
-
-```php
-Array
-(
-    [took] => 1
-    [timed_out] =>
-    [_shards] => Array
-        (
-            [total] => 5
-            [successful] => 5
-            [failed] => 0
-        )
-
-    [hits] => Array
-        (
-            [total] => 1
-            [max_score] => 0.30685282
-            [hits] => Array
-                (
-                    [0] => Array
-                        (
-                            [_index] => my_index
-                            [_type] => my_type
-                            [_id] => my_id
-                            [_score] => 0.30685282
-                            [_source] => Array
-                                (
-                                    [testField] => abc
-                                )
-                        )
-                )
-        )
-)
-```
-
-### Delete a document
-
-Alright, let's go ahead and delete the document that we added previously:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$response = $client->delete($params);
-print_r($response);
-```
-
-You'll notice this is identical syntax to the `get` syntax.  The only difference is the operation: `delete` instead of
-`get`.  The response will confirm the document was deleted:
-
-```php
-Array
-(
-    [found] => 1
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 2
-)
-```
-
-
-### Delete an index
-
-Due to the dynamic nature of Elasticsearch, the first document we added automatically built an index with some default settings.  Let's delete that index because we want to specify our own settings later:
-
-```php
-$deleteParams = [
-    'index' => 'my_index'
-];
-$response = $client->indices()->delete($deleteParams);
-print_r($response);
-```
-
-The response:
-
-
-```php
-Array
-(
-    [acknowledged] => 1
-)
-```
-
-### Create an index
-
-Now that we are starting fresh (no data or index), let's add a new index with some custom settings:
-
-```php
-$params = [
-    'index' => 'my_index',
-    'body' => [
-        'settings' => [
-            'number_of_shards' => 2,
-            'number_of_replicas' => 0
-        ]
-    ]
-];
-
-$response = $client->indices()->create($params);
-print_r($response);
-```
-
-Elasticsearch will now create that index with your chosen settings, and return an acknowledgement:
-
-```php
-Array
-(
-    [acknowledged] => 1
-)
-```
-
-
-
-Wrap up
-=======
-
-That was just a crash-course overview of the client and it's syntax.  If you are familiar with elasticsearch, you'll notice that the methods are named just like REST endpoints.
-
-You'll also notice that the client is configured in a manner that facilitates easy discovery via the IDE.  All core actions are available under the `$client` object (indexing, searching, getting, etc).  Index and cluster management are located under the `$client->indices()` and `$client->cluster()` objects, respectively.
-
-Check out the rest of the [Documentation](http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/current/index.html) to see how the entire client works.
-
-
-Available Licenses
--------
-
-Starting with version 1.3.1, Elasticsearch-PHP is available under two licenses: Apache v2.0 and LGPL v2.1.  Versions
-prior to 1.3.1 are still licensed with only Apache v2.0.
-
-The user may choose which license they wish to use.  Since there is no discriminating executable or distribution bundle
-to differentiate licensing, the user should document their license choice externally, in case the library is re-distributed.
-If no explicit choice is made, assumption is that redistribution obeys rules of both licenses.
-
-### Contributions
-All contributions to the library are to be so that they can be licensed under both licenses.
-
-Apache v2.0 License:
->Copyright 2013-2016 Elasticsearch
->
->Licensed under the Apache License, Version 2.0 (the "License");
->you may not use this file except in compliance with the License.
->You may obtain a copy of the License at
->
->    http://www.apache.org/licenses/LICENSE-2.0
->
->Unless required by applicable law or agreed to in writing, software
->distributed under the License is distributed on an "AS IS" BASIS,
->WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
->See the License for the specific language governing permissions and
->limitations under the License.
-
-LGPL v2.1 Notice:
->Copyright (C) 2013-2016 Elasticsearch
->
->This library is free software; you can redistribute it and/or
->modify it under the terms of the GNU Lesser General Public
->License as published by the Free Software Foundation; either
->version 2.1 of the License, or (at your option) any later version.
->
->This library is distributed in the hope that it will be useful,
->but WITHOUT ANY WARRANTY; without even the implied warranty of
->MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
->Lesser General Public License for more details.
->
->You should have received a copy of the GNU Lesser General Public
->License along with this library; if not, write to the Free Software
->Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/composer.json b/apps/maarch_entreprise/tools/elasticsearch-php/composer.json
deleted file mode 100644
index 7b1a8502187370df52b431b83b50c5c03fa57196..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/composer.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "elasticsearch/elasticsearch",
-  "description": "PHP Client for Elasticsearch",
-  "keywords": ["search","client", "elasticsearch"],
-  "type": "library",
-  "license": "Apache-2.0",
-  "authors": [
-    {
-      "name": "Zachary Tong"
-    }
-  ],
-  "require": {
-    "php": "^7.0",
-    "ext-json": ">=1.3.7",
-    "psr/log": "~1.0",
-    "guzzlehttp/ringphp" : "~1.0"
-  },
-  "require-dev": {
-    "phpunit/phpunit": "^4.7|^5.4",
-    "mockery/mockery": "0.9.4",
-    "symfony/yaml": "^2.8",
-    "symfony/finder": "^2.8",
-    "cpliakas/git-wrapper": "~1.0",
-    "sami/sami": "~3.2",
-    "doctrine/inflector": "^1.1"
-  },
-  "suggest": {
-    "ext-curl": "*",
-    "monolog/monolog": "Allows for client-level logging and tracing"
-  },
-  "autoload": {
-    "psr-4": {
-      "Elasticsearch\\": "src/Elasticsearch/"
-    }
-  },
-  "autoload-dev": {
-    "psr-4": {
-      "Elasticsearch\\Tests\\":      "tests/Elasticsearch/Tests/"
-    }
-  }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/composer.lock b/apps/maarch_entreprise/tools/elasticsearch-php/composer.lock
deleted file mode 100644
index 3831a4d68ce656b3e0b5b52327a8a36342ec27d5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/composer.lock
+++ /dev/null
@@ -1,2360 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
-        "This file is @generated automatically"
-    ],
-    "content-hash": "f7006a2828136e37b92c88ef2d41cdf6",
-    "packages": [
-        {
-            "name": "guzzlehttp/ringphp",
-            "version": "1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/RingPHP.git",
-                "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
-                "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
-                "shasum": ""
-            },
-            "require": {
-                "guzzlehttp/streams": "~3.0",
-                "php": ">=5.4.0",
-                "react/promise": "~2.0"
-            },
-            "require-dev": {
-                "ext-curl": "*",
-                "phpunit/phpunit": "~4.0"
-            },
-            "suggest": {
-                "ext-curl": "Guzzle will use specific adapters if cURL is present"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "GuzzleHttp\\Ring\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                }
-            ],
-            "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.",
-            "time": "2015-05-20T03:37:09+00:00"
-        },
-        {
-            "name": "guzzlehttp/streams",
-            "version": "3.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/streams.git",
-                "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
-                "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "GuzzleHttp\\Stream\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                }
-            ],
-            "description": "Provides a simple abstraction over streams of data",
-            "homepage": "http://guzzlephp.org/",
-            "keywords": [
-                "Guzzle",
-                "stream"
-            ],
-            "time": "2014-10-12T19:18:40+00:00"
-        },
-        {
-            "name": "psr/log",
-            "version": "1.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/log.git",
-                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
-                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Log\\": "Psr/Log/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for logging libraries",
-            "homepage": "https://github.com/php-fig/log",
-            "keywords": [
-                "log",
-                "psr",
-                "psr-3"
-            ],
-            "time": "2016-10-10T12:19:37+00:00"
-        },
-        {
-            "name": "react/promise",
-            "version": "v2.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/promise.git",
-                "reference": "2760f3898b7e931aa71153852dcd48a75c9b95db"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/promise/zipball/2760f3898b7e931aa71153852dcd48a75c9b95db",
-                "reference": "2760f3898b7e931aa71153852dcd48a75c9b95db",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "React\\Promise\\": "src/"
-                },
-                "files": [
-                    "src/functions_include.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com"
-                }
-            ],
-            "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-            "keywords": [
-                "promise",
-                "promises"
-            ],
-            "time": "2016-12-22T14:09:01+00:00"
-        }
-    ],
-    "packages-dev": [
-        {
-            "name": "blackfire/php-sdk",
-            "version": "v1.6.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/blackfireio/php-sdk.git",
-                "reference": "193220138dd197c1a2b77f7c3abfbb054d3bf796"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/blackfireio/php-sdk/zipball/193220138dd197c1a2b77f7c3abfbb054d3bf796",
-                "reference": "193220138dd197c1a2b77f7c3abfbb054d3bf796",
-                "shasum": ""
-            },
-            "require": {
-                "composer/ca-bundle": "^1.0",
-                "php": ">=5.2.0"
-            },
-            "suggest": {
-                "ext-blackfire": "The C version of the Blackfire probe",
-                "ext-xhprof": "XHProf is required as a fallback"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.5.x-dev"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "src/autostart.php"
-                ],
-                "psr-4": {
-                    "Blackfire\\": "src/Blackfire"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Blackfire.io",
-                    "email": "support@blackfire.io"
-                }
-            ],
-            "description": "Blackfire.io PHP SDK",
-            "keywords": [
-                "performance",
-                "profiler",
-                "uprofiler",
-                "xhprof"
-            ],
-            "time": "2016-12-06T15:49:36+00:00"
-        },
-        {
-            "name": "composer/ca-bundle",
-            "version": "1.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/ca-bundle.git",
-                "reference": "a795611394b3c05164fd0eb291b492b39339cba4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/ca-bundle/zipball/a795611394b3c05164fd0eb291b492b39339cba4",
-                "reference": "a795611394b3c05164fd0eb291b492b39339cba4",
-                "shasum": ""
-            },
-            "require": {
-                "ext-openssl": "*",
-                "ext-pcre": "*",
-                "php": "^5.3.2 || ^7.0"
-            },
-            "require-dev": {
-                "psr/log": "^1.0",
-                "symfony/process": "^2.5 || ^3.0"
-            },
-            "suggest": {
-                "symfony/process": "This is necessary to reliably check whether openssl_x509_parse is vulnerable on older php versions, but can be ignored on PHP 5.5.6+"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\CaBundle\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
-            "keywords": [
-                "cabundle",
-                "cacert",
-                "certificate",
-                "ssl",
-                "tls"
-            ],
-            "time": "2016-11-02T18:11:27+00:00"
-        },
-        {
-            "name": "cpliakas/git-wrapper",
-            "version": "1.7.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/cpliakas/git-wrapper.git",
-                "reference": "1a2f1131ec9ebe04a0b729b141396fa55f992d44"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/cpliakas/git-wrapper/zipball/1a2f1131ec9ebe04a0b729b141396fa55f992d44",
-                "reference": "1a2f1131ec9ebe04a0b729b141396fa55f992d44",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0",
-                "symfony/event-dispatcher": "~2.3|~3.0",
-                "symfony/process": "~2.3|~3.0"
-            },
-            "require-dev": {
-                "pdepend/pdepend": "~1.0",
-                "phploc/phploc": "~2.0",
-                "phpmd/phpmd": "~1.0",
-                "phpunit/phpunit": "~3.0",
-                "psr/log": "~1.0",
-                "scrutinizer/ocular": "~1.0",
-                "sebastian/phpcpd": "~2.0",
-                "symfony/filesystem": "~2.0"
-            },
-            "suggest": {
-                "monolog/monolog": "Enables logging of executed git commands"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-0": {
-                    "GitWrapper": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Chris Pliakas",
-                    "email": "opensource@chrispliakas.com"
-                }
-            ],
-            "description": "A PHP wrapper around the Git command line utility.",
-            "homepage": "https://github.com/cpliakas/git-wrapper",
-            "keywords": [
-                "git"
-            ],
-            "time": "2016-04-19T16:12:33+00:00"
-        },
-        {
-            "name": "doctrine/inflector",
-            "version": "v1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/inflector.git",
-                "reference": "90b2128806bfde671b6952ab8bea493942c1fdae"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae",
-                "reference": "90b2128806bfde671b6952ab8bea493942c1fdae",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "4.*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Doctrine\\Common\\Inflector\\": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Benjamin Eberlei",
-                    "email": "kontakt@beberlei.de"
-                },
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Jonathan Wage",
-                    "email": "jonwage@gmail.com"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "Common String Manipulations with regard to casing and singular/plural rules.",
-            "homepage": "http://www.doctrine-project.org",
-            "keywords": [
-                "inflection",
-                "pluralize",
-                "singularize",
-                "string"
-            ],
-            "time": "2015-11-06T14:35:42+00:00"
-        },
-        {
-            "name": "doctrine/instantiator",
-            "version": "1.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3,<8.0-DEV"
-            },
-            "require-dev": {
-                "athletic/athletic": "~0.1.8",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpunit/phpunit": "~4.0",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "http://ocramius.github.com/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://github.com/doctrine/instantiator",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "time": "2015-06-14T21:17:01+00:00"
-        },
-        {
-            "name": "hamcrest/hamcrest-php",
-            "version": "v1.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hamcrest/hamcrest-php.git",
-                "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
-                "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.2"
-            },
-            "replace": {
-                "cordoval/hamcrest-php": "*",
-                "davedevelopment/hamcrest-php": "*",
-                "kodova/hamcrest-php": "*"
-            },
-            "require-dev": {
-                "phpunit/php-file-iterator": "1.3.3",
-                "satooshi/php-coveralls": "dev-master"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "hamcrest"
-                ],
-                "files": [
-                    "hamcrest/Hamcrest.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD"
-            ],
-            "description": "This is the PHP port of Hamcrest Matchers",
-            "keywords": [
-                "test"
-            ],
-            "time": "2015-05-11T14:41:42+00:00"
-        },
-        {
-            "name": "michelf/php-markdown",
-            "version": "1.7.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/michelf/php-markdown.git",
-                "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/michelf/php-markdown/zipball/1f51cc520948f66cd2af8cbc45a5ee175e774220",
-                "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-lib": "1.4.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Michelf": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Michel Fortin",
-                    "email": "michel.fortin@michelf.ca",
-                    "homepage": "https://michelf.ca/",
-                    "role": "Developer"
-                },
-                {
-                    "name": "John Gruber",
-                    "homepage": "https://daringfireball.net/"
-                }
-            ],
-            "description": "PHP Markdown",
-            "homepage": "https://michelf.ca/projects/php-markdown/",
-            "keywords": [
-                "markdown"
-            ],
-            "time": "2016-10-29T18:58:20+00:00"
-        },
-        {
-            "name": "mockery/mockery",
-            "version": "0.9.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/padraic/mockery.git",
-                "reference": "70bba85e4aabc9449626651f48b9018ede04f86b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/padraic/mockery/zipball/70bba85e4aabc9449626651f48b9018ede04f86b",
-                "reference": "70bba85e4aabc9449626651f48b9018ede04f86b",
-                "shasum": ""
-            },
-            "require": {
-                "hamcrest/hamcrest-php": "~1.1",
-                "lib-pcre": ">=7.0",
-                "php": ">=5.3.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "0.9.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Mockery": "library/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Pádraic Brady",
-                    "email": "padraic.brady@gmail.com",
-                    "homepage": "http://blog.astrumfutura.com"
-                },
-                {
-                    "name": "Dave Marshall",
-                    "email": "dave.marshall@atstsolutions.co.uk",
-                    "homepage": "http://davedevelopment.co.uk"
-                }
-            ],
-            "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
-            "homepage": "http://github.com/padraic/mockery",
-            "keywords": [
-                "BDD",
-                "TDD",
-                "library",
-                "mock",
-                "mock objects",
-                "mockery",
-                "stub",
-                "test",
-                "test double",
-                "testing"
-            ],
-            "time": "2015-04-02T19:54:00+00:00"
-        },
-        {
-            "name": "myclabs/deep-copy",
-            "version": "1.6.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/5a5a9fc8025a08d8919be87d6884d5a92520cefe",
-                "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4.0"
-            },
-            "require-dev": {
-                "doctrine/collections": "1.*",
-                "phpunit/phpunit": "~4.1"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "DeepCopy\\": "src/DeepCopy/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Create deep copies (clones) of your objects",
-            "homepage": "https://github.com/myclabs/DeepCopy",
-            "keywords": [
-                "clone",
-                "copy",
-                "duplicate",
-                "object",
-                "object graph"
-            ],
-            "time": "2017-01-26T22:05:40+00:00"
-        },
-        {
-            "name": "nikic/php-parser",
-            "version": "v1.4.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
-                "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "lib/bootstrap.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Nikita Popov"
-                }
-            ],
-            "description": "A PHP parser written in PHP",
-            "keywords": [
-                "parser",
-                "php"
-            ],
-            "time": "2015-09-19T14:15:08+00:00"
-        },
-        {
-            "name": "phpdocumentor/reflection-docblock",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0"
-            },
-            "suggest": {
-                "dflydev/markdown": "~1.0",
-                "erusev/parsedown": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "phpDocumentor": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "mike.vanriel@naenius.com"
-                }
-            ],
-            "time": "2015-02-03T12:10:50+00:00"
-        },
-        {
-            "name": "phpspec/prophecy",
-            "version": "v1.6.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0.2",
-                "php": "^5.3|^7.0",
-                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
-                "sebastian/comparator": "^1.1",
-                "sebastian/recursion-context": "^1.0|^2.0"
-            },
-            "require-dev": {
-                "phpspec/phpspec": "^2.0",
-                "phpunit/phpunit": "^4.8 || ^5.6.5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.6.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Prophecy\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Konstantin Kudryashov",
-                    "email": "ever.zet@gmail.com",
-                    "homepage": "http://everzet.com"
-                },
-                {
-                    "name": "Marcello Duarte",
-                    "email": "marcello.duarte@gmail.com"
-                }
-            ],
-            "description": "Highly opinionated mocking framework for PHP 5.3+",
-            "homepage": "https://github.com/phpspec/prophecy",
-            "keywords": [
-                "Double",
-                "Dummy",
-                "fake",
-                "mock",
-                "spy",
-                "stub"
-            ],
-            "time": "2016-11-21T14:58:47+00:00"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "4.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "c19cfc7cbb0e9338d8c469c7eedecc2a428b0971"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c19cfc7cbb0e9338d8c469c7eedecc2a428b0971",
-                "reference": "c19cfc7cbb0e9338d8c469c7eedecc2a428b0971",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.6 || ^7.0",
-                "phpunit/php-file-iterator": "~1.3",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-token-stream": "^1.4.2",
-                "sebastian/code-unit-reverse-lookup": "~1.0",
-                "sebastian/environment": "^1.3.2 || ^2.0",
-                "sebastian/version": "~1.0|~2.0"
-            },
-            "require-dev": {
-                "ext-xdebug": ">=2.1.4",
-                "phpunit/phpunit": "^5.4"
-            },
-            "suggest": {
-                "ext-dom": "*",
-                "ext-xdebug": ">=2.4.0",
-                "ext-xmlwriter": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "time": "2017-01-20T15:06:43+00:00"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "1.4.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
-                "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "time": "2016-10-03T07:40:28+00:00"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "1.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "time": "2015-06-21T13:50:34+00:00"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "1.0.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4|~5"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "time": "2016-05-12T18:03:57+00:00"
-        },
-        {
-            "name": "phpunit/php-token-stream",
-            "version": "1.4.9",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-            "keywords": [
-                "tokenizer"
-            ],
-            "time": "2016-11-15T14:06:22+00:00"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "5.7.9",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "69f832b87c731d5cacad7f91948778fe98335fdd"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/69f832b87c731d5cacad7f91948778fe98335fdd",
-                "reference": "69f832b87c731d5cacad7f91948778fe98335fdd",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-libxml": "*",
-                "ext-mbstring": "*",
-                "ext-xml": "*",
-                "myclabs/deep-copy": "~1.3",
-                "php": "^5.6 || ^7.0",
-                "phpspec/prophecy": "^1.6.2",
-                "phpunit/php-code-coverage": "^4.0.4",
-                "phpunit/php-file-iterator": "~1.4",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": "^1.0.6",
-                "phpunit/phpunit-mock-objects": "^3.2",
-                "sebastian/comparator": "~1.2.2",
-                "sebastian/diff": "~1.2",
-                "sebastian/environment": "^1.3.4 || ^2.0",
-                "sebastian/exporter": "~2.0",
-                "sebastian/global-state": "^1.0 || ^2.0",
-                "sebastian/object-enumerator": "~2.0",
-                "sebastian/resource-operations": "~1.0",
-                "sebastian/version": "~1.0|~2.0",
-                "symfony/yaml": "~2.1|~3.0"
-            },
-            "conflict": {
-                "phpdocumentor/reflection-docblock": "3.0.2"
-            },
-            "require-dev": {
-                "ext-pdo": "*"
-            },
-            "suggest": {
-                "ext-xdebug": "*",
-                "phpunit/php-invoker": "~1.1"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.7.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "time": "2017-01-28T06:14:33+00:00"
-        },
-        {
-            "name": "phpunit/phpunit-mock-objects",
-            "version": "3.4.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
-                "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0.2",
-                "php": "^5.6 || ^7.0",
-                "phpunit/php-text-template": "^1.2",
-                "sebastian/exporter": "^1.2 || ^2.0"
-            },
-            "conflict": {
-                "phpunit/phpunit": "<5.4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^5.4"
-            },
-            "suggest": {
-                "ext-soap": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Mock Object library for PHPUnit",
-            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-            "keywords": [
-                "mock",
-                "xunit"
-            ],
-            "time": "2016-12-08T20:27:08+00:00"
-        },
-        {
-            "name": "pimple/pimple",
-            "version": "v3.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/silexphp/Pimple.git",
-                "reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a30f7d6e57565a2e1a316e1baf2a483f788b258a",
-                "reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Pimple": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                }
-            ],
-            "description": "Pimple, a simple Dependency Injection Container",
-            "homepage": "http://pimple.sensiolabs.org",
-            "keywords": [
-                "container",
-                "dependency injection"
-            ],
-            "time": "2015-09-11T15:10:35+00:00"
-        },
-        {
-            "name": "sami/sami",
-            "version": "v3.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/FriendsOfPHP/Sami.git",
-                "reference": "f76c8f6dd0c7c27156f193cbc666dd4b36f68d0d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/FriendsOfPHP/Sami/zipball/f76c8f6dd0c7c27156f193cbc666dd4b36f68d0d",
-                "reference": "f76c8f6dd0c7c27156f193cbc666dd4b36f68d0d",
-                "shasum": ""
-            },
-            "require": {
-                "blackfire/php-sdk": "^1.5.6",
-                "michelf/php-markdown": "~1.3",
-                "nikic/php-parser": "~1.0",
-                "php": ">=5.3.9",
-                "phpdocumentor/reflection-docblock": "~2.0",
-                "pimple/pimple": "~3.0",
-                "symfony/console": "~2.1",
-                "symfony/filesystem": "~2.1",
-                "symfony/finder": "~2.1",
-                "symfony/process": "~2.1",
-                "symfony/yaml": "~2.1",
-                "twig/twig": "~1.20|~2.0"
-            },
-            "bin": [
-                "sami.php"
-            ],
-            "type": "application",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.3-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Sami\\": "Sami/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                }
-            ],
-            "description": "Sami, an API documentation generator",
-            "homepage": "http://sami.sensiolabs.org",
-            "keywords": [
-                "phpdoc"
-            ],
-            "time": "2016-06-07T16:36:49+00:00"
-        },
-        {
-            "name": "sebastian/code-unit-reverse-lookup",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
-                "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
-                "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.6"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Looks up which function or method a line of code belongs to",
-            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
-            "time": "2016-02-13T06:45:14+00:00"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "1.2.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
-                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/diff": "~1.2",
-                "sebastian/exporter": "~1.2 || ~2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "http://www.github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "time": "2017-01-29T09:50:25+00:00"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "1.4.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.8"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff"
-            ],
-            "time": "2015-12-08T07:14:41+00:00"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
-                "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.6 || ^7.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^5.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "time": "2016-11-26T07:53:53+00:00"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
-                "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/recursion-context": "~2.0"
-            },
-            "require-dev": {
-                "ext-mbstring": "*",
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "http://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "time": "2016-11-19T08:54:04+00:00"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "1.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
-                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "suggest": {
-                "ext-uopz": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "time": "2015-10-12T03:26:01+00:00"
-        },
-        {
-            "name": "sebastian/object-enumerator",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
-                "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35",
-                "reference": "96f8a3f257b69e8128ad74d3a7fd464bcbaa3b35",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.6",
-                "sebastian/recursion-context": "~2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
-            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
-            "time": "2016-11-19T07:35:10+00:00"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
-                "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
-            "time": "2016-11-19T07:33:16+00:00"
-        },
-        {
-            "name": "sebastian/resource-operations",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/resource-operations.git",
-                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
-                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.6.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides a list of PHP built-in functions that operate on resources",
-            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
-            "time": "2015-07-28T20:34:47+00:00"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "2.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
-                "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.6"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "time": "2016-10-03T07:35:21+00:00"
-        },
-        {
-            "name": "symfony/console",
-            "version": "v2.8.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/console.git",
-                "reference": "2e18b8903d9c498ba02e1dfa73f64d4894bb6912"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/2e18b8903d9c498ba02e1dfa73f64d4894bb6912",
-                "reference": "2e18b8903d9c498ba02e1dfa73f64d4894bb6912",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9",
-                "symfony/debug": "~2.7,>=2.7.2|~3.0.0",
-                "symfony/polyfill-mbstring": "~1.0"
-            },
-            "require-dev": {
-                "psr/log": "~1.0",
-                "symfony/event-dispatcher": "~2.1|~3.0.0",
-                "symfony/process": "~2.1|~3.0.0"
-            },
-            "suggest": {
-                "psr/log": "For using the console logger",
-                "symfony/event-dispatcher": "",
-                "symfony/process": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Console\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Console Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-08T20:43:03+00:00"
-        },
-        {
-            "name": "symfony/debug",
-            "version": "v3.0.9",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/debug.git",
-                "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a",
-                "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5.9",
-                "psr/log": "~1.0"
-            },
-            "conflict": {
-                "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
-            },
-            "require-dev": {
-                "symfony/class-loader": "~2.8|~3.0",
-                "symfony/http-kernel": "~2.8|~3.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Debug\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Debug Component",
-            "homepage": "https://symfony.com",
-            "time": "2016-07-30T07:22:48+00:00"
-        },
-        {
-            "name": "symfony/event-dispatcher",
-            "version": "v3.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9137eb3a3328e413212826d63eeeb0217836e2b6",
-                "reference": "9137eb3a3328e413212826d63eeeb0217836e2b6",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5.9"
-            },
-            "require-dev": {
-                "psr/log": "~1.0",
-                "symfony/config": "~2.8|~3.0",
-                "symfony/dependency-injection": "~2.8|~3.0",
-                "symfony/expression-language": "~2.8|~3.0",
-                "symfony/stopwatch": "~2.8|~3.0"
-            },
-            "suggest": {
-                "symfony/dependency-injection": "",
-                "symfony/http-kernel": ""
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.2-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\EventDispatcher\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony EventDispatcher Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-02T20:32:22+00:00"
-        },
-        {
-            "name": "symfony/filesystem",
-            "version": "v2.8.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/filesystem.git",
-                "reference": "5b77d49ab76e5b12743b359ef4b4a712e6f5360d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/5b77d49ab76e5b12743b359ef4b4a712e6f5360d",
-                "reference": "5b77d49ab76e5b12743b359ef4b4a712e6f5360d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Filesystem\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Filesystem Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-08T20:43:03+00:00"
-        },
-        {
-            "name": "symfony/finder",
-            "version": "v2.8.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/finder.git",
-                "reference": "355fccac526522dc5fca8ecf0e62749a149f3b8b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/355fccac526522dc5fca8ecf0e62749a149f3b8b",
-                "reference": "355fccac526522dc5fca8ecf0e62749a149f3b8b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Finder\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Finder Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-02T20:30:24+00:00"
-        },
-        {
-            "name": "symfony/polyfill-mbstring",
-            "version": "v1.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e79d363049d1c2128f133a2667e4f4190904f7f4",
-                "reference": "e79d363049d1c2128f133a2667e4f4190904f7f4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "suggest": {
-                "ext-mbstring": "For best performance"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.3-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Polyfill\\Mbstring\\": ""
-                },
-                "files": [
-                    "bootstrap.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for the Mbstring extension",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "mbstring",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "time": "2016-11-14T01:06:16+00:00"
-        },
-        {
-            "name": "symfony/process",
-            "version": "v2.8.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/process.git",
-                "reference": "ebb3c2abe0940a703f08e0cbe373f62d97d40231"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/ebb3c2abe0940a703f08e0cbe373f62d97d40231",
-                "reference": "ebb3c2abe0940a703f08e0cbe373f62d97d40231",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Process\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Process Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-02T20:30:24+00:00"
-        },
-        {
-            "name": "symfony/yaml",
-            "version": "v2.8.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/yaml.git",
-                "reference": "dbe61fed9cd4a44c5b1d14e5e7b1a8640cfb2bf2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/dbe61fed9cd4a44c5b1d14e5e7b1a8640cfb2bf2",
-                "reference": "dbe61fed9cd4a44c5b1d14e5e7b1a8640cfb2bf2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Yaml\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Yaml Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-03T13:49:52+00:00"
-        },
-        {
-            "name": "twig/twig",
-            "version": "v2.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/twigphp/Twig.git",
-                "reference": "9062992538bc5855a683c6737257bfa18d25a4b8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/twigphp/Twig/zipball/9062992538bc5855a683c6737257bfa18d25a4b8",
-                "reference": "9062992538bc5855a683c6737257bfa18d25a4b8",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.0",
-                "symfony/polyfill-mbstring": "~1.0"
-            },
-            "require-dev": {
-                "symfony/debug": "~2.7",
-                "symfony/phpunit-bridge": "~3.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.1-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Twig_": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com",
-                    "homepage": "http://fabien.potencier.org",
-                    "role": "Lead Developer"
-                },
-                {
-                    "name": "Armin Ronacher",
-                    "email": "armin.ronacher@active-4.com",
-                    "role": "Project Founder"
-                },
-                {
-                    "name": "Twig Team",
-                    "homepage": "http://twig.sensiolabs.org/contributors",
-                    "role": "Contributors"
-                }
-            ],
-            "description": "Twig, the flexible, fast, and secure template language for PHP",
-            "homepage": "http://twig.sensiolabs.org",
-            "keywords": [
-                "templating"
-            ],
-            "time": "2017-01-11T19:39:01+00:00"
-        }
-    ],
-    "aliases": [],
-    "minimum-stability": "stable",
-    "stability-flags": [],
-    "prefer-stable": false,
-    "prefer-lowest": false,
-    "platform": {
-        "php": "^7.0",
-        "ext-json": ">=1.3.7"
-    },
-    "platform-dev": []
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/breaking-changes.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/breaking-changes.asciidoc
deleted file mode 100644
index 637ecd40cd2d7ce21edc147fa3116775f264958c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/breaking-changes.asciidoc
+++ /dev/null
@@ -1,21 +0,0 @@
-== Breaking changes from 2.x
-
-- Indices/Analyze Endpoint: `filters` and `char_filters` URI parameters have renamed to `filter` and `char_filter` respectively
-- SearchExists endpoint has been removed (use `size=0` and `terminate_after=1` instead)
-- Warmers have been removed because they are no longer useful
-- Indices/Optimize Endpoint has been removed (use `_forcemerge` instead)
-- MoreLikeThis (MLT) endpoint has been removed
-- DeleteByQuery endpoint has been removed.
-- Tasks/List and Tasks/Get are now separate endpoints (see: link:http://github.com/elasticsearch/elasticsearch-php/commit/752d5a2[e0cc5f9])
-- Client requires PHP 5.6.6 or higher
-
-=== Deprecations
-
-- Percolator endpoints are deprecated and will be removed in Elasticsearch 6.0
-
-=== Internal BWC Breaks
-
-- Namespace injection has changed slightly.  If you use custom namespaces, you'll need to update your code (see: Add better ability to inject namespaces link:http://github.com/elasticsearch/elasticsearch-php/commit/b1a27b7[b1a27b7])
-- Endpoints no longer use the Transport directly.  If you use custom endpoints, you'll need to do some minor
-refactoring (see: Refactor to remove Transport dependence in endpoints link:http://github.com/elasticsearch/elasticsearch-php/commit/ecd454c[ecd454c])
-- To facilitate testing and other features, the `ConnectionInterface` has expanded to obtain some more methods (link:http://github.com/elasticsearch/elasticsearch-php/commit/8bcf1a8[getPath()], link:http://github.com/elasticsearch/elasticsearch-php/commit/586fbdb[getUserPass()], link:http://github.com/elasticsearch/elasticsearch-php/commit/445fdea[getHost()])
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Client.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Client.asciidoc
deleted file mode 100644
index 6704ef25aede92877ba17afa9e58bcbf73d2a047..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Client.asciidoc
+++ /dev/null
@@ -1,1174 +0,0 @@
-
-
-[[Elasticsearch_Client]]
-=== Elasticsearch\Client
-
-
-
-Class Client
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Clientinfo_info,`info()`>>
-* <<Elasticsearch_Clientping_ping,`ping()`>>
-* <<Elasticsearch_Clientget_get,`get()`>>
-* <<Elasticsearch_ClientgetSource_getSource,`getSource()`>>
-* <<Elasticsearch_Clientdelete_delete,`delete()`>>
-* <<Elasticsearch_Clientcount_count,`count()`>>
-* <<Elasticsearch_ClientcountPercolate_countPercolate,`countPercolate()`>>
-* <<Elasticsearch_Clientpercolate_percolate,`percolate()`>>
-* <<Elasticsearch_Clientmpercolate_mpercolate,`mpercolate()`>>
-* <<Elasticsearch_Clienttermvectors_termvectors,`termvectors()`>>
-* <<Elasticsearch_Clientmtermvectors_mtermvectors,`mtermvectors()`>>
-* <<Elasticsearch_Clientexists_exists,`exists()`>>
-* <<Elasticsearch_Clientmget_mget,`mget()`>>
-* <<Elasticsearch_Clientmsearch_msearch,`msearch()`>>
-* <<Elasticsearch_Clientcreate_create,`create()`>>
-* <<Elasticsearch_Clientbulk_bulk,`bulk()`>>
-* <<Elasticsearch_Clientindex_index,`index()`>>
-* <<Elasticsearch_Clientreindex_reindex,`reindex()`>>
-* <<Elasticsearch_Clientsuggest_suggest,`suggest()`>>
-* <<Elasticsearch_Clientexplain_explain,`explain()`>>
-* <<Elasticsearch_Clientsearch_search,`search()`>>
-* <<Elasticsearch_ClientsearchShards_searchShards,`searchShards()`>>
-* <<Elasticsearch_ClientsearchTemplate_searchTemplate,`searchTemplate()`>>
-* <<Elasticsearch_Clientscroll_scroll,`scroll()`>>
-* <<Elasticsearch_ClientclearScroll_clearScroll,`clearScroll()`>>
-* <<Elasticsearch_Clientupdate_update,`update()`>>
-* <<Elasticsearch_ClientgetScript_getScript,`getScript()`>>
-* <<Elasticsearch_ClientdeleteScript_deleteScript,`deleteScript()`>>
-* <<Elasticsearch_ClientputScript_putScript,`putScript()`>>
-* <<Elasticsearch_ClientgetTemplate_getTemplate,`getTemplate()`>>
-* <<Elasticsearch_ClientdeleteTemplate_deleteTemplate,`deleteTemplate()`>>
-* <<Elasticsearch_ClientputTemplate_putTemplate,`putTemplate()`>>
-* <<Elasticsearch_ClientfieldStats_fieldStats,`fieldStats()`>>
-* <<Elasticsearch_ClientrenderSearchTemplate_renderSearchTemplate,`renderSearchTemplate()`>>
-* <<Elasticsearch_Clientindices_indices,`indices()`>>
-* <<Elasticsearch_Clientcluster_cluster,`cluster()`>>
-* <<Elasticsearch_Clientnodes_nodes,`nodes()`>>
-* <<Elasticsearch_Clientsnapshot_snapshot,`snapshot()`>>
-* <<Elasticsearch_Clientcat_cat,`cat()`>>
-* <<Elasticsearch_Clientingest_ingest,`ingest()`>>
-* <<Elasticsearch_Clienttasks_tasks,`tasks()`>>
-* <<Elasticsearch_Client-call-_call,`__call()`>>
-* <<Elasticsearch_ClientextractArgument_extractArgument,`extractArgument()`>>
-
-
-
-
-[[Elasticsearch_Clientinfo_info]]
-.`info()`
-****
-[source,php]
-----
-/*
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->info($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientping_ping]]
-.`ping()`
-****
-[source,php]
-----
-/*
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ping($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientget_get]]
-.`get()`
-****
-[source,php]
-----
-/*
-$params['id']              = (string) The document ID (Required)
-       ['index']           = (string) The name of the index (Required)
-       ['type']            = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-       ['ignore_missing']  = ??
-       ['fields']          = (list) A comma-separated list of fields to return in the response
-       ['parent']          = (string) The ID of the parent document
-       ['preference']      = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['realtime']        = (boolean) Specify whether to perform the operation in realtime or search mode
-       ['refresh']         = (boolean) Refresh the shard containing the document before performing the operation
-       ['routing']         = (string) Specific routing value
-       ['_source']         = (list) True or false to return the _source field or not, or a list of fields to return
-       ['_source_exclude'] = (list) A list of fields to exclude from the returned _source field
-       ['_source_include'] = (list) A list of fields to extract and return from the _source field
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->get($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientgetSource_getSource]]
-.`getSource()`
-****
-[source,php]
-----
-/*
-$params['id']             = (string) The document ID (Required)
-       ['index']          = (string) The name of the index (Required)
-       ['type']           = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-       ['ignore_missing'] = ??
-       ['parent']         = (string) The ID of the parent document
-       ['preference']     = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['realtime']       = (boolean) Specify whether to perform the operation in realtime or search mode
-       ['refresh']        = (boolean) Refresh the shard containing the document before performing the operation
-       ['routing']        = (string) Specific routing value
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->getSource($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientdelete_delete]]
-.`delete()`
-****
-[source,php]
-----
-/*
-$params['id']           = (string) The document ID (Required)
-       ['index']        = (string) The name of the index (Required)
-       ['type']         = (string) The type of the document (Required)
-       ['consistency']  = (enum) Specific write consistency setting for the operation
-       ['parent']       = (string) ID of parent document
-       ['refresh']      = (boolean) Refresh the index after performing the operation
-       ['replication']  = (enum) Specific replication type
-       ['routing']      = (string) Specific routing value
-       ['timeout']      = (time) Explicit operation timeout
-       ['version_type'] = (enum) Specific version type
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->delete($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientcount_count]]
-.`count()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of indices to restrict the results
-       ['type']               = (list) A comma-separated list of types to restrict the results
-       ['min_score']          = (number) Include only documents with a specific `_score` value in the result
-       ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['routing']            = (string) Specific routing value
-       ['source']             = (string) The URL-encoded query definition (instead of using the request body)
-       ['body']               = (array) A query to restrict the results (optional)
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->count($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientcountPercolate_countPercolate]]
-.`countPercolate()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of indices to restrict the results
-       ['type']               = (list) A comma-separated list of types to restrict the results
-       ['id']                 = (string) ID of document
-       ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['routing']            = (string) Specific routing value
-       ['allow_no_indices']   = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['body']               = (array) A query to restrict the results (optional)
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['percolate_index']    = (string) The index to count percolate the document into. Defaults to index.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->countPercolate($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientpercolate_percolate]]
-.`percolate()`
-****
-[source,php]
-----
-/*
-$params['index']        = (string) The name of the index with a registered percolator query (Required)
-       ['type']         = (string) The document type (Required)
-       ['prefer_local'] = (boolean) With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)
-       ['body']         = (array) The document (`doc`) to percolate against registered queries; optionally also a `query` to limit the percolation to specific registered queries
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->percolate($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientmpercolate_mpercolate]]
-.`mpercolate()`
-****
-[source,php]
-----
-/*
-$params['index']              = (string) Default index for items which don't provide one
-       ['type']               = (string) Default document type for items which don't provide one
-       ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->mpercolate($params);
-----
-****
-
-
-
-[[Elasticsearch_Clienttermvectors_termvectors]]
-.`termvectors()`
-****
-[source,php]
-----
-/*
-$params['index']            = (string) Default index for items which don't provide one
-       ['type']             = (string) Default document type for items which don't provide one
-       ['term_statistics']  = (boolean) Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['field_statistics'] = (boolean) Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['fields']           = (list) A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['offsets']          = (boolean) Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['positions']        = (boolean) Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['payloads']         = (boolean) Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->termvectors($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientmtermvectors_mtermvectors]]
-.`mtermvectors()`
-****
-[source,php]
-----
-/*
-$params['index']            = (string) Default index for items which don't provide one
-       ['type']             = (string) Default document type for items which don't provide one
-       ['ids']              = (list) A comma-separated list of documents ids. You must define ids as parameter or set \"ids\" or \"docs\" in the request body
-       ['term_statistics']  = (boolean) Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['field_statistics'] = (boolean) Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['fields']           = (list) A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['offsets']          = (boolean) Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['positions']        = (boolean) Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-       ['payloads']         = (boolean) Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->mtermvectors($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientexists_exists]]
-.`exists()`
-****
-[source,php]
-----
-/*
-$params['id']         = (string) The document ID (Required)
-       ['index']      = (string) The name of the index (Required)
-       ['type']       = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-       ['parent']     = (string) The ID of the parent document
-       ['preference'] = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['realtime']   = (boolean) Specify whether to perform the operation in realtime or search mode
-       ['refresh']    = (boolean) Refresh the shard containing the document before performing the operation
-       ['routing']    = (string) Specific routing value
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->exists($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientmget_mget]]
-.`mget()`
-****
-[source,php]
-----
-/*
-$params['index']           = (string) The name of the index
-       ['type']            = (string) The type of the document
-       ['fields']          = (list) A comma-separated list of fields to return in the response
-       ['parent']          = (string) The ID of the parent document
-       ['preference']      = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['realtime']        = (boolean) Specify whether to perform the operation in realtime or search mode
-       ['refresh']         = (boolean) Refresh the shard containing the document before performing the operation
-       ['routing']         = (string) Specific routing value
-       ['body']            = (array) Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->mget($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientmsearch_msearch]]
-.`msearch()`
-****
-[source,php]
-----
-/*
-$params['index']       = (list) A comma-separated list of index names to use as default
-       ['type']        = (list) A comma-separated list of document types to use as default
-       ['search_type'] = (enum) Search operation type
-       ['body']        = (array|string) The request definitions (metadata-search request definition pairs), separated by newlines
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->msearch($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientcreate_create]]
-.`create()`
-****
-[source,php]
-----
-/*
-$params['index']        = (string) The name of the index (Required)
-       ['type']         = (string) The type of the document (Required)
-       ['id']           = (string) Specific document ID (when the POST method is used)
-       ['consistency']  = (enum) Explicit write consistency setting for the operation
-       ['parent']       = (string) ID of the parent document
-       ['refresh']      = (boolean) Refresh the index after performing the operation
-       ['replication']  = (enum) Specific replication type
-       ['routing']      = (string) Specific routing value
-       ['timeout']      = (time) Explicit operation timeout
-       ['timestamp']    = (time) Explicit timestamp for the document
-       ['ttl']          = (duration) Expiration time for the document
-       ['version']      = (number) Explicit version number for concurrency control
-       ['version_type'] = (enum) Specific version type
-       ['body']         = (array) The document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->create($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientbulk_bulk]]
-.`bulk()`
-****
-[source,php]
-----
-/*
-$params['index']       = (string) Default index for items which don't provide one
-       ['type']        = (string) Default document type for items which don't provide one
-       ['consistency'] = (enum) Explicit write consistency setting for the operation
-       ['refresh']     = (boolean) Refresh the index after performing the operation
-       ['replication'] = (enum) Explicitly set the replication type
-       ['fields']      = (list) Default comma-separated list of fields to return in the response for updates
-       ['body']        = (array) The document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->bulk($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientindex_index]]
-.`index()`
-****
-[source,php]
-----
-/*
-$params['index']        = (string) The name of the index (Required)
-       ['type']         = (string) The type of the document (Required)
-       ['id']           = (string) Specific document ID (when the POST method is used)
-       ['consistency']  = (enum) Explicit write consistency setting for the operation
-       ['op_type']      = (enum) Explicit operation type
-       ['parent']       = (string) ID of the parent document
-       ['refresh']      = (boolean) Refresh the index after performing the operation
-       ['replication']  = (enum) Specific replication type
-       ['routing']      = (string) Specific routing value
-       ['timeout']      = (time) Explicit operation timeout
-       ['timestamp']    = (time) Explicit timestamp for the document
-       ['ttl']          = (duration) Expiration time for the document
-       ['version']      = (number) Explicit version number for concurrency control
-       ['version_type'] = (enum) Specific version type
-       ['body']         = (array) The document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->index($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientreindex_reindex]]
-.`reindex()`
-****
-[source,php]
-----
-/*
-$params['refresh']             = (boolean) Should the effected indexes be refreshed?
-       ['timeout']             = (time) Time each individual bulk request should wait for shards that are unavailable
-       ['consistency']         = (enum) Explicit write consistency setting for the operation
-       ['wait_for_completion'] = (boolean) Should the request should block until the reindex is complete
-       ['requests_per_second'] = (float) The throttle for this request in sub-requests per second. 0 means set no throttle
-       ['body']                = (array) The search definition using the Query DSL and the prototype for the index request (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->reindex($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientsuggest_suggest]]
-.`suggest()`
-****
-[source,php]
-----
-/*
-$params['index']          = (list) A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices
-       ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['preference']     = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['routing']        = (string) Specific routing value
-       ['source']         = (string) The URL-encoded request definition (instead of using request body)
-       ['body']           = (array) The request definition
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->suggest($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientexplain_explain]]
-.`explain()`
-****
-[source,php]
-----
-/*
-$params['id']                       = (string) The document ID (Required)
-       ['index']                    = (string) The name of the index (Required)
-       ['type']                     = (string) The type of the document (Required)
-       ['analyze_wildcard']         = (boolean) Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)
-       ['analyzer']                 = (string) The analyzer for the query string query
-       ['default_operator']         = (enum) The default operator for query string query (AND or OR)
-       ['df']                       = (string) The default field for query string query (default: _all)
-       ['fields']                   = (list) A comma-separated list of fields to return in the response
-       ['lenient']                  = (boolean) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
-       ['lowercase_expanded_terms'] = (boolean) Specify whether query terms should be lowercased
-       ['parent']                   = (string) The ID of the parent document
-       ['preference']               = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['q']                        = (string) Query in the Lucene query string syntax
-       ['routing']                  = (string) Specific routing value
-       ['source']                   = (string) The URL-encoded query definition (instead of using the request body)
-       ['_source']                  = (list) True or false to return the _source field or not, or a list of fields to return
-       ['_source_exclude']          = (list) A list of fields to exclude from the returned _source field
-       ['_source_include']          = (list) A list of fields to extract and return from the _source field
-       ['body']                     = (string) The URL-encoded query definition (instead of using the request body)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->explain($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientsearch_search]]
-.`search()`
-****
-[source,php]
-----
-/*
-$params['index']                    = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-       ['type']                     = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-       ['analyzer']                 = (string) The analyzer to use for the query string
-       ['analyze_wildcard']         = (boolean) Specify whether wildcard and prefix queries should be analyzed (default: false)
-       ['default_operator']         = (enum) The default operator for query string query (AND or OR)
-       ['df']                       = (string) The field to use as default where no field prefix is given in the query string
-       ['explain']                  = (boolean) Specify whether to return detailed information about score computation as part of a hit
-       ['fields']                   = (list) A comma-separated list of fields to return as part of a hit
-       ['from']                     = (number) Starting offset (default: 0)
-       ['ignore_indices']           = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['indices_boost']            = (list) Comma-separated list of index boosts
-       ['lenient']                  = (boolean) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
-       ['lowercase_expanded_terms'] = (boolean) Specify whether query terms should be lowercased
-       ['preference']               = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['q']                        = (string) Query in the Lucene query string syntax
-       ['query_cache']              = (boolean) Enable query cache for this request
-       ['request_cache']            = (boolean) Enable request cache for this request
-       ['routing']                  = (list) A comma-separated list of specific routing values
-       ['scroll']                   = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-       ['search_type']              = (enum) Search operation type
-       ['size']                     = (number) Number of hits to return (default: 10)
-       ['sort']                     = (list) A comma-separated list of <field>:<direction> pairs
-       ['source']                   = (string) The URL-encoded request definition using the Query DSL (instead of using request body)
-       ['_source']                  = (list) True or false to return the _source field or not, or a list of fields to return
-       ['_source_exclude']          = (list) A list of fields to exclude from the returned _source field
-       ['_source_include']          = (list) A list of fields to extract and return from the _source field
-       ['stats']                    = (list) Specific 'tag' of the request for logging and statistical purposes
-       ['suggest_field']            = (string) Specify which field to use for suggestions
-       ['suggest_mode']             = (enum) Specify suggest mode
-       ['suggest_size']             = (number) How many suggestions to return in response
-       ['suggest_text']             = (text) The source text for which the suggestions should be returned
-       ['timeout']                  = (time) Explicit operation timeout
-       ['version']                  = (boolean) Specify whether to return document version as part of a hit
-       ['body']                     = (array|string) The search definition using the Query DSL
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->search($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientsearchShards_searchShards]]
-.`searchShards()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-       ['type']               = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-       ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-       ['routing']            = (string) Specific routing value
-       ['local']              = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->searchShards($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientsearchTemplate_searchTemplate]]
-.`searchTemplate()`
-****
-[source,php]
-----
-/*
-$params['index']                    = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-       ['type']                     = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->searchTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientscroll_scroll]]
-.`scroll()`
-****
-[source,php]
-----
-/*
-$params['scroll_id'] = (string) The scroll ID for scrolled search
-       ['scroll']    = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-       ['body']      = (string) The scroll ID for scrolled search
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->scroll($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientclearScroll_clearScroll]]
-.`clearScroll()`
-****
-[source,php]
-----
-/*
-$params['scroll_id'] = (string) The scroll ID for scrolled search
-       ['scroll']    = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-       ['body']      = (string) The scroll ID for scrolled search
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->clearScroll($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientupdate_update]]
-.`update()`
-****
-[source,php]
-----
-/*
-$params['id']                = (string) Document ID (Required)
-       ['index']             = (string) The name of the index (Required)
-       ['type']              = (string) The type of the document (Required)
-       ['consistency']       = (enum) Explicit write consistency setting for the operation
-       ['fields']            = (list) A comma-separated list of fields to return in the response
-       ['lang']              = (string) The script language (default: mvel)
-       ['parent']            = (string) ID of the parent document
-       ['refresh']           = (boolean) Refresh the index after performing the operation
-       ['replication']       = (enum) Specific replication type
-       ['retry_on_conflict'] = (number) Specify how many times should the operation be retried when a conflict occurs (default: 0)
-       ['routing']           = (string) Specific routing value
-       ['script']            = () The URL-encoded script definition (instead of using request body)
-       ['timeout']           = (time) Explicit operation timeout
-       ['timestamp']         = (time) Explicit timestamp for the document
-       ['ttl']               = (duration) Expiration time for the document
-       ['version_type']      = (number) Explicit version number for concurrency control
-       ['body']              = (array) The request definition using either `script` or partial `doc`
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->update($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientgetScript_getScript]]
-.`getScript()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The script ID (Required)
-       ['lang'] = (string) The script language (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->getScript($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientdeleteScript_deleteScript]]
-.`deleteScript()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The script ID (Required)
-       ['lang'] = (string) The script language (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->deleteScript($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientputScript_putScript]]
-.`putScript()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The script ID (Required)
-       ['lang'] = (string) The script language (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->putScript($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientgetTemplate_getTemplate]]
-.`getTemplate()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The search template ID (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->getTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientdeleteTemplate_deleteTemplate]]
-.`deleteTemplate()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The search template ID (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->deleteTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientputTemplate_putTemplate]]
-.`putTemplate()`
-****
-[source,php]
-----
-/*
-$params['id']   = (string) The search template ID (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->putTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientfieldStats_fieldStats]]
-.`fieldStats()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of indices to restrict the results
-       ['fields']             = (list) A comma-separated list of fields for to get field statistics for (min value, max value, and more)
-       ['level']              = (enum) Defines if field stats should be returned on a per index level or on a cluster wide level
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->fieldStats($params);
-----
-****
-
-
-
-[[Elasticsearch_ClientrenderSearchTemplate_renderSearchTemplate]]
-.`renderSearchTemplate()`
-****
-[source,php]
-----
-/*
-$params['id']                 = (string) ID of the template to render
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->renderSearchTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Clientindices_indices]]
-.`indices()`
-****
-[source,php]
-----
-/*
-Operate on the Indices Namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices();
-----
-****
-
-
-
-[[Elasticsearch_Clientcluster_cluster]]
-.`cluster()`
-****
-[source,php]
-----
-/*
-Operate on the Cluster namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster();
-----
-****
-
-
-
-[[Elasticsearch_Clientnodes_nodes]]
-.`nodes()`
-****
-[source,php]
-----
-/*
-Operate on the Nodes namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->nodes();
-----
-****
-
-
-
-[[Elasticsearch_Clientsnapshot_snapshot]]
-.`snapshot()`
-****
-[source,php]
-----
-/*
-Operate on the Snapshot namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot();
-----
-****
-
-
-
-[[Elasticsearch_Clientcat_cat]]
-.`cat()`
-****
-[source,php]
-----
-/*
-Operate on the Cat namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat();
-----
-****
-
-
-
-[[Elasticsearch_Clientingest_ingest]]
-.`ingest()`
-****
-[source,php]
-----
-/*
-Operate on the Ingest namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ingest();
-----
-****
-
-
-
-[[Elasticsearch_Clienttasks_tasks]]
-.`tasks()`
-****
-[source,php]
-----
-/*
-Operate on the Tasks namespace of commands
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->tasks();
-----
-****
-
-
-
-[[Elasticsearch_Client-call-_call]]
-.`__call()`
-****
-[source,php]
-----
-/*
-Catchall for registered namespaces
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->__call($name,$arguments);
-----
-****
-
-
-
-[[Elasticsearch_ClientextractArgument_extractArgument]]
-.`extractArgument()`
-****
-[source,php]
-----
-/*
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->extractArgument($params,$arg);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/ClientBuilder.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/ClientBuilder.asciidoc
deleted file mode 100644
index 63eacc98e8ff9c8d7c2753d3f4f007fa7f2b59bd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/ClientBuilder.asciidoc
+++ /dev/null
@@ -1,342 +0,0 @@
-
-
-[[Elasticsearch_ClientBuilder]]
-=== Elasticsearch\ClientBuilder
-
-
-
-Class ClientBuilder
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_ClientBuildercreate_create,`create()`>>
-* <<Elasticsearch_ClientBuilderfromConfig_fromConfig,`fromConfig()`>>
-* <<Elasticsearch_ClientBuilderdefaultHandler_defaultHandler,`defaultHandler()`>>
-* <<Elasticsearch_ClientBuildermultiHandler_multiHandler,`multiHandler()`>>
-* <<Elasticsearch_ClientBuildersingleHandler_singleHandler,`singleHandler()`>>
-* <<Elasticsearch_ClientBuilderdefaultLogger_defaultLogger,`defaultLogger()`>>
-* <<Elasticsearch_ClientBuildersetConnectionFactory_setConnectionFactory,`setConnectionFactory()`>>
-* <<Elasticsearch_ClientBuildersetConnectionPool_setConnectionPool,`setConnectionPool()`>>
-* <<Elasticsearch_ClientBuildersetEndpoint_setEndpoint,`setEndpoint()`>>
-* <<Elasticsearch_ClientBuilderregisterNamespace_registerNamespace,`registerNamespace()`>>
-* <<Elasticsearch_ClientBuildersetTransport_setTransport,`setTransport()`>>
-* <<Elasticsearch_ClientBuildersetHandler_setHandler,`setHandler()`>>
-* <<Elasticsearch_ClientBuildersetLogger_setLogger,`setLogger()`>>
-* <<Elasticsearch_ClientBuildersetTracer_setTracer,`setTracer()`>>
-* <<Elasticsearch_ClientBuildersetSerializer_setSerializer,`setSerializer()`>>
-* <<Elasticsearch_ClientBuildersetHosts_setHosts,`setHosts()`>>
-* <<Elasticsearch_ClientBuildersetRetries_setRetries,`setRetries()`>>
-* <<Elasticsearch_ClientBuildersetSelector_setSelector,`setSelector()`>>
-* <<Elasticsearch_ClientBuildersetSniffOnStart_setSniffOnStart,`setSniffOnStart()`>>
-* <<Elasticsearch_ClientBuildersetSSLCert_setSSLCert,`setSSLCert()`>>
-* <<Elasticsearch_ClientBuildersetSSLKey_setSSLKey,`setSSLKey()`>>
-* <<Elasticsearch_ClientBuildersetSSLVerification_setSSLVerification,`setSSLVerification()`>>
-* <<Elasticsearch_ClientBuilderbuild_build,`build()`>>
-
-
-
-[[Elasticsearch_ClientBuildercreate_create]]
-.`create()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuilderfromConfig_fromConfig]]
-.`fromConfig()`
-****
-[source,php]
-----
-/*
-    Build a new client from the provided config.  Hash keys
-should correspond to the method name e.g. ['connectionPool']
-corresponds to setConnectionPool().
-    ['body']  = (array) Request body
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuilderdefaultHandler_defaultHandler]]
-.`defaultHandler()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildermultiHandler_multiHandler]]
-.`multiHandler()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersingleHandler_singleHandler]]
-.`singleHandler()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuilderdefaultLogger_defaultLogger]]
-.`defaultLogger()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetConnectionFactory_setConnectionFactory]]
-.`setConnectionFactory()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetConnectionPool_setConnectionPool]]
-.`setConnectionPool()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetEndpoint_setEndpoint]]
-.`setEndpoint()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuilderregisterNamespace_registerNamespace]]
-.`registerNamespace()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetTransport_setTransport]]
-.`setTransport()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetHandler_setHandler]]
-.`setHandler()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetLogger_setLogger]]
-.`setLogger()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetTracer_setTracer]]
-.`setTracer()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSerializer_setSerializer]]
-.`setSerializer()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetHosts_setHosts]]
-.`setHosts()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetRetries_setRetries]]
-.`setRetries()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSelector_setSelector]]
-.`setSelector()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSniffOnStart_setSniffOnStart]]
-.`setSniffOnStart()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSSLCert_setSSLCert]]
-.`setSSLCert()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSSLKey_setSSLKey]]
-.`setSSLKey()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuildersetSSLVerification_setSSLVerification]]
-.`setSSLVerification()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
-
-[[Elasticsearch_ClientBuilderbuild_build]]
-.`build()`
-****
-[source,php]
-----
-/*
-*/
-
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/CatNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/CatNamespace.asciidoc
deleted file mode 100644
index afd8914af26ead2dfad4d2da8b5e173de79451cc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/CatNamespace.asciidoc
+++ /dev/null
@@ -1,515 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_CatNamespace]]
-=== Elasticsearch\Namespaces\CatNamespace
-
-
-
-Class CatNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_CatNamespacealiases_aliases,`aliases()`>>
-* <<Elasticsearch_Namespaces_CatNamespaceallocation_allocation,`allocation()`>>
-* <<Elasticsearch_Namespaces_CatNamespacecount_count,`count()`>>
-* <<Elasticsearch_Namespaces_CatNamespacehealth_health,`health()`>>
-* <<Elasticsearch_Namespaces_CatNamespacehelp_help,`help()`>>
-* <<Elasticsearch_Namespaces_CatNamespaceindices_indices,`indices()`>>
-* <<Elasticsearch_Namespaces_CatNamespacemaster_master,`master()`>>
-* <<Elasticsearch_Namespaces_CatNamespacenodes_nodes,`nodes()`>>
-* <<Elasticsearch_Namespaces_CatNamespacenodeAttrs_nodeAttrs,`nodeAttrs()`>>
-* <<Elasticsearch_Namespaces_CatNamespacependingTasks_pendingTasks,`pendingTasks()`>>
-* <<Elasticsearch_Namespaces_CatNamespacerecovery_recovery,`recovery()`>>
-* <<Elasticsearch_Namespaces_CatNamespacerepositories_repositories,`repositories()`>>
-* <<Elasticsearch_Namespaces_CatNamespaceshards_shards,`shards()`>>
-* <<Elasticsearch_Namespaces_CatNamespacesnapshots_snapshots,`snapshots()`>>
-* <<Elasticsearch_Namespaces_CatNamespacethreadPool_threadPool,`threadPool()`>>
-* <<Elasticsearch_Namespaces_CatNamespacefielddata_fielddata,`fielddata()`>>
-* <<Elasticsearch_Namespaces_CatNamespaceplugins_plugins,`plugins()`>>
-* <<Elasticsearch_Namespaces_CatNamespacesegments_segments,`segments()`>>
-* <<Elasticsearch_Namespaces_CatNamespacetasks_tasks,`tasks()`>>
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacealiases_aliases]]
-.`aliases()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->aliases($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespaceallocation_allocation]]
-.`allocation()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->allocation($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacecount_count]]
-.`count()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->count($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacehealth_health]]
-.`health()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['ts']             = (bool) Set to false to disable timestamping
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->health($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacehelp_help]]
-.`help()`
-****
-[source,php]
-----
-/*
-$params['help'] = (bool) Return help information
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->help($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespaceindices_indices]]
-.`indices()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['pri']            = (bool) Set to true to return stats only for primary shards
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->indices($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacemaster_master]]
-.`master()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->master($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacenodes_nodes]]
-.`nodes()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->nodes($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacenodeAttrs_nodeAttrs]]
-.`nodeAttrs()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->nodeAttrs($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacependingTasks_pendingTasks]]
-.`pendingTasks()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->pendingTasks($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacerecovery_recovery]]
-.`recovery()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->recovery($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacerepositories_repositories]]
-.`repositories()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->repositories($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespaceshards_shards]]
-.`shards()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->shards($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacesnapshots_snapshots]]
-.`snapshots()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['repository']     = (string) Name of repository from which to fetch the snapshot information
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->snapshots($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacethreadPool_threadPool]]
-.`threadPool()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['full_id']        = (bool) Enables displaying the complete node ids
-       ['size']           = (enum) The multiplier in which to display values ([ "", "k", "m", "g", "t", "p" ])
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->threadPool($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacefielddata_fielddata]]
-.`fielddata()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['bytes']          = (enum) The unit in which to display byte values
-       ['fields']         = (list) A comma-separated list of fields to return the fielddata size
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->fielddata($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespaceplugins_plugins]]
-.`plugins()`
-****
-[source,php]
-----
-/*
-$params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->plugins($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacesegments_segments]]
-.`segments()`
-****
-[source,php]
-----
-/*
-$params['h']              = (list) Comma-separated list of column names to display
-       ['help']           = (bool) Return help information
-       ['v']              = (bool) Verbose mode. Display column headers
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->segments($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_CatNamespacetasks_tasks]]
-.`tasks()`
-****
-[source,php]
-----
-/*
-$params['format']         = (string) a short version of the Accept header, e.g. json, yaml
-       ['node_id']        = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['format']         = (string) a short version of the Accept header, e.g. json, yaml
-       ['actions']        = (list) A comma-separated list of actions that should be returned. Leave empty to return all.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cat()->tasks($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/ClusterNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/ClusterNamespace.asciidoc
deleted file mode 100644
index 562182c1ae6babddc9c218eeb8effeec7cc61d5d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/ClusterNamespace.asciidoc
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_ClusterNamespace]]
-=== Elasticsearch\Namespaces\ClusterNamespace
-
-
-
-Class ClusterNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_ClusterNamespacehealth_health,`health()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespacereroute_reroute,`reroute()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespacestate_state,`state()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespacestats_stats,`stats()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespaceputSettings_putSettings,`putSettings()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespacegetSettings_getSettings,`getSettings()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespacependingTasks_pendingTasks,`pendingTasks()`>>
-* <<Elasticsearch_Namespaces_ClusterNamespaceallocationExplain_allocationExplain,`allocationExplain()`>>
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacehealth_health]]
-.`health()`
-****
-[source,php]
-----
-/*
-$params['index']                      = (string) Limit the information returned to a specific index
-       ['level']                      = (enum) Specify the level of detail for returned information
-       ['local']                      = (boolean) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout']             = (time) Explicit operation timeout for connection to master node
-       ['timeout']                    = (time) Explicit operation timeout
-       ['wait_for_active_shards']     = (number) Wait until the specified number of shards is active
-       ['wait_for_nodes']             = (number) Wait until the specified number of nodes is available
-       ['wait_for_relocating_shards'] = (number) Wait until the specified number of relocating shards is finished
-       ['wait_for_status']            = (enum) Wait until cluster is in a specific state
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->health($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacereroute_reroute]]
-.`reroute()`
-****
-[source,php]
-----
-/*
-$params['dry_run']         = (boolean) Simulate the operation only and return the resulting state
-       ['filter_metadata'] = (boolean) Don't return cluster state metadata (default: false)
-       ['body']            = (boolean) Don't return cluster state metadata (default: false)
-       ['explain']         = (boolean) Return an explanation of why the commands can or cannot be executed
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->reroute($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacestate_state]]
-.`state()`
-****
-[source,php]
-----
-/*
-$params['filter_blocks']          = (boolean) Do not return information about blocks
-       ['filter_index_templates'] = (boolean) Do not return information about index templates
-       ['filter_indices']         = (list) Limit returned metadata information to specific indices
-       ['filter_metadata']        = (boolean) Do not return information about indices metadata
-       ['filter_nodes']           = (boolean) Do not return information about nodes
-       ['filter_routing_table']   = (boolean) Do not return information about shard allocation (`routing_table` and `routing_nodes`)
-       ['local']                  = (boolean) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout']         = (time) Specify timeout for connection to master
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->state($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacestats_stats]]
-.`stats()`
-****
-[source,php]
-----
-/*
-$params['flat_settings']          = (boolean) Return settings in flat format (default: false)
-       ['human'] = (boolean) Whether to return time and byte values in human-readable format.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->stats($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespaceputSettings_putSettings]]
-.`putSettings()`
-****
-[source,php]
-----
-/*
-$params['body'] = ()
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->putSettings($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacegetSettings_getSettings]]
-.`getSettings()`
-****
-[source,php]
-----
-/*
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->getSettings($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespacependingTasks_pendingTasks]]
-.`pendingTasks()`
-****
-[source,php]
-----
-/*
-$params['local']   = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['master_timeout']  = (time) Specify timeout for connection to master
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->pendingTasks($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_ClusterNamespaceallocationExplain_allocationExplain]]
-.`allocationExplain()`
-****
-[source,php]
-----
-/*
-$params['include_yes_decisions'] = (bool) Return 'YES' decisions in explanation (default: false)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->cluster()->allocationExplain($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IndicesNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IndicesNamespace.asciidoc
deleted file mode 100644
index e46618b2e1c67b64269dd1c15e26a3ff42046b0f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IndicesNamespace.asciidoc
+++ /dev/null
@@ -1,1071 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_IndicesNamespace]]
-=== Elasticsearch\Namespaces\IndicesNamespace
-
-
-
-Class IndicesNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_IndicesNamespaceexists_exists,`exists()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceget_get,`get()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacesegments_segments,`segments()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacedeleteTemplate_deleteTemplate,`deleteTemplate()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacedelete_delete,`delete()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacestats_stats,`stats()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceputSettings_putSettings,`putSettings()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacesnapshotIndex_snapshotIndex,`snapshotIndex()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceshrink_shrink,`shrink()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetMapping_getMapping,`getMapping()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetFieldMapping_getFieldMapping,`getFieldMapping()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceflush_flush,`flush()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceflushSynced_flushSynced,`flushSynced()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacerefresh_refresh,`refresh()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacerecovery_recovery,`recovery()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceexistsType_existsType,`existsType()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceputAlias_putAlias,`putAlias()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceputTemplate_putTemplate,`putTemplate()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacevalidateQuery_validateQuery,`validateQuery()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetAlias_getAlias,`getAlias()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceputMapping_putMapping,`putMapping()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacedeleteMapping_deleteMapping,`deleteMapping()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetTemplate_getTemplate,`getTemplate()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceexistsTemplate_existsTemplate,`existsTemplate()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacecreate_create,`create()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceforceMerge_forceMerge,`forceMerge()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacedeleteAlias_deleteAlias,`deleteAlias()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceopen_open,`open()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceanalyze_analyze,`analyze()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceclearCache_clearCache,`clearCache()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceupdateAliases_updateAliases,`updateAliases()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetAliases_getAliases,`getAliases()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceexistsAlias_existsAlias,`existsAlias()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacestatus_status,`status()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetSettings_getSettings,`getSettings()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceclose_close,`close()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceseal_seal,`seal()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceupgrade_upgrade,`upgrade()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacegetUpgrade_getUpgrade,`getUpgrade()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespaceshardStores_shardStores,`shardStores()`>>
-* <<Elasticsearch_Namespaces_IndicesNamespacerollover_rollover,`rollover()`>>
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceexists_exists]]
-.`exists()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of indices to check (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->exists($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceget_get]]
-.`get()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of indices to check (Required)
-       ['feature'] = (list) A comma-separated list of features to return
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->get($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacesegments_segments]]
-.`segments()`
-****
-[source,php]
-----
-/*
-$params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['operation_threading'] = () TODO: ?
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->segments($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacedeleteTemplate_deleteTemplate]]
-.`deleteTemplate()`
-****
-[source,php]
-----
-/*
-$params['name']    = (string) The name of the template (Required)
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->deleteTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacedelete_delete]]
-.`delete()`
-****
-[source,php]
-----
-/*
-$params['index']   = (list) A comma-separated list of indices to delete; use `_all` or empty string to delete all indices
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->delete($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacestats_stats]]
-.`stats()`
-****
-[source,php]
-----
-/*
-$params['fields']         = (boolean) A comma-separated list of fields for `fielddata` metric (supports wildcards)
-       ['index']          = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['indexing_types'] = (list) A comma-separated list of document types to include in the `indexing` statistics
-       ['metric_family']  = (enum) Limit the information returned to a specific metric
-       ['search_groups']  = (list) A comma-separated list of search groups to include in the `search` statistics
-       ['all']            = (boolean) Return all available information
-       ['clear']          = (boolean) Reset the default level of detail
-       ['docs']           = (boolean) Return information about indexed and deleted documents
-       ['fielddata']      = (boolean) Return information about field data
-       ['filter_cache']   = (boolean) Return information about filter cache
-       ['flush']          = (boolean) Return information about flush operations
-       ['get']            = (boolean) Return information about get operations
-       ['groups']         = (boolean) A comma-separated list of search groups for `search` statistics
-       ['id_cache']       = (boolean) Return information about ID cache
-       ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['indexing']       = (boolean) Return information about indexing operations
-       ['merge']          = (boolean) Return information about merge operations
-       ['refresh']        = (boolean) Return information about refresh operations
-       ['search']         = (boolean) Return information about search operations; use the `groups` parameter to include information for specific search groups
-       ['store']          = (boolean) Return information about the size of the index
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->stats($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceputSettings_putSettings]]
-.`putSettings()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['body']  = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->putSettings($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacesnapshotIndex_snapshotIndex]]
-.`snapshotIndex()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->snapshotIndex($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceshrink_shrink]]
-.`shrink()`
-****
-[source,php]
-----
-/*
-$params['index']          = (string) The name of the source index to shrink
-       ['target']         = (string) The name of the target index to shrink into
-       ['timeout']        = (time) Explicit operation timeout
-       ['master_timeout'] = (time) Specify timeout for connection to master
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->shrink($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetMapping_getMapping]]
-.`getMapping()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['type']  = (list) A comma-separated list of document types
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getMapping($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetFieldMapping_getFieldMapping]]
-.`getFieldMapping()`
-****
-[source,php]
-----
-/*
-$params['index']            = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['type']             = (list) A comma-separated list of document types
-       ['field']            = (list) A comma-separated list of document fields
-       ['include_defaults'] = (bool) specifies default mapping values should be returned
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getFieldMapping($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceflush_flush]]
-.`flush()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['force']              = (boolean) TODO: ?
-       ['full']               = (boolean) TODO: ?
-       ['refresh']            = (boolean) Refresh the index after performing the operation
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->flush($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceflushSynced_flushSynced]]
-.`flushSynced()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['force']              = (boolean) TODO: ?
-       ['full']               = (boolean) TODO: ?
-       ['refresh']            = (boolean) Refresh the index after performing the operation
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->flushSynced($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacerefresh_refresh]]
-.`refresh()`
-****
-[source,php]
-----
-/*
-$params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['operation_threading'] = () TODO: ?
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->refresh($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacerecovery_recovery]]
-.`recovery()`
-****
-[source,php]
-----
-/*
-$params['index']       = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['detailed']    = (bool) Whether to display detailed information about shard recovery
-       ['active_only'] = (bool) Display only those recoveries that are currently on-going
-       ['human']       = (bool) Whether to return time and byte values in human-readable format.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->recovery($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceexistsType_existsType]]
-.`existsType()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` to check the types across all indices (Required)
-       ['type']               = (list) A comma-separated list of document types to check (Required)
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->existsType($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceputAlias_putAlias]]
-.`putAlias()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index with an alias
-       ['name']    = (string) The name of the alias to be created or updated
-       ['timeout'] = (time) Explicit timestamp for the document
-       ['body']    = (time) Explicit timestamp for the document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->putAlias($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceputTemplate_putTemplate]]
-.`putTemplate()`
-****
-[source,php]
-----
-/*
-$params['name']    = (string) The name of the template (Required)
-       ['order']   = (number) The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']    = (time) Explicit operation timeout
-       ['create']  = (bool) Whether the index template should only be added if new or can also replace an existing one
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->putTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacevalidateQuery_validateQuery]]
-.`validateQuery()`
-****
-[source,php]
-----
-/*
-$params['index']               = (list) A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices
-       ['type']                = (list) A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types
-       ['explain']             = (boolean) Return detailed information about the error
-       ['ignore_indices']      = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['operation_threading'] = () TODO: ?
-       ['source']              = (string) The URL-encoded query definition (instead of using the request body)
-       ['body']                = (string) The URL-encoded query definition (instead of using the request body)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->validateQuery($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetAlias_getAlias]]
-.`getAlias()`
-****
-[source,php]
-----
-/*
-$params['name']           = (list) A comma-separated list of alias names to return (Required)
-       ['index']          = (list) A comma-separated list of index names to filter aliases
-       ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['name']           = (list) A comma-separated list of alias names to return
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getAlias($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceputMapping_putMapping]]
-.`putMapping()`
-****
-[source,php]
-----
-/*
-$params['index']            = (list) A comma-separated list of index names; use `_all` to perform the operation on all indices (Required)
-       ['type']             = (string) The name of the document type
-       ['ignore_conflicts'] = (boolean) Specify whether to ignore conflicts while updating the mapping (default: false)
-       ['timeout']          = (time) Explicit operation timeout
-       ['body']             = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->putMapping($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacedeleteMapping_deleteMapping]]
-.`deleteMapping()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of index names; use `_all` for all indices (Required)
-       ['type']  = (string) The name of the document type to delete (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->deleteMapping($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetTemplate_getTemplate]]
-.`getTemplate()`
-****
-[source,php]
-----
-/*
-$params['name'] = (string) The name of the template (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceexistsTemplate_existsTemplate]]
-.`existsTemplate()`
-****
-[source,php]
-----
-/*
-$params['name'] = (string) The name of the template (Required)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->existsTemplate($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacecreate_create]]
-.`create()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index (Required)
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']    = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->create($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceforceMerge_forceMerge]]
-.`forceMerge()`
-****
-[source,php]
-----
-/*
-$params['index']                = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['flush']                = (boolean) Specify whether the index should be flushed after performing the operation (default: true)
-       ['max_num_segments']     = (number) The number of segments the index should be merged into (default: dynamic)
-       ['only_expunge_deletes'] = (boolean) Specify whether the operation should only expunge deleted documents
-       ['operation_threading']  = () TODO: ?
-       ['refresh']              = (boolean) Specify whether the index should be refreshed after performing the operation (default: true)
-       ['wait_for_merge']       = (boolean) Specify whether the request should block until the merge process is finished (default: true)
-       ['ignore_unavailable']   = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']     = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']     = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->forceMerge($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacedeleteAlias_deleteAlias]]
-.`deleteAlias()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index with an alias (Required)
-       ['name']    = (string) The name of the alias to be deleted (Required)
-       ['timeout'] = (time) Explicit timestamp for the document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->deleteAlias($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceopen_open]]
-.`open()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index (Required)
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->open($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceanalyze_analyze]]
-.`analyze()`
-****
-[source,php]
-----
-/*
-$params['index']        = (string) The name of the index to scope the operation
-       ['analyzer']     = (string) The name of the analyzer to use
-       ['field']        = (string) Use the analyzer configured for this field (instead of passing the analyzer name)
-       ['filter']       = (list) A comma-separated list of filters to use for the analysis
-       ['prefer_local'] = (boolean) With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)
-       ['text']         = (string) The text on which the analysis should be performed (when request body is not used)
-       ['tokenizer']    = (string) The name of the tokenizer to use for the analysis
-       ['format']       = (enum) Format of the output
-       ['body']         = (enum) Format of the output
-       ['char_filter']  = (list) A comma-separated list of character filters to use for the analysis
-       ['explain']      = (bool) With `true`, outputs more advanced details. (default: false)
-       ['attributes']   = (list) A comma-separated list of token attributes to output, this parameter works only with `explain=true`
-       ['format']       = (enum) Format of the output (["detailed", "text"])
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->analyze($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceclearCache_clearCache]]
-.`clearCache()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index name to limit the operation
-       ['field_data']         = (boolean) Clear field data
-       ['fielddata']          = (boolean) Clear field data
-       ['fields']             = (list) A comma-separated list of fields to clear when using the `field_data` parameter (default: all)
-       ['filter']             = (boolean) Clear filter caches
-       ['filter_cache']       = (boolean) Clear filter caches
-       ['filter_keys']        = (boolean) A comma-separated list of keys to clear when using the `filter_cache` parameter (default: all)
-       ['id']                 = (boolean) Clear ID caches for parent/child
-       ['id_cache']           = (boolean) Clear ID caches for parent/child
-       ['recycler']           = (boolean) Clear the recycler cache
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->clearCache($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceupdateAliases_updateAliases]]
-.`updateAliases()`
-****
-[source,php]
-----
-/*
-$params['index']   = (list) A comma-separated list of index names to filter aliases
-       ['timeout'] = (time) Explicit timestamp for the document
-       ['body']    = (time) Explicit timestamp for the document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->updateAliases($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetAliases_getAliases]]
-.`getAliases()`
-****
-[source,php]
-----
-/*
-$params['local']   = (bool) Return local information, do not retrieve the state from master node (default: false)
-       ['timeout'] = (time) Explicit timestamp for the document
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getAliases($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceexistsAlias_existsAlias]]
-.`existsAlias()`
-****
-[source,php]
-----
-/*
-$params['name']               = (list) A comma-separated list of alias names to return (Required)
-       ['index']              = (list) A comma-separated list of index names to filter aliases
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->existsAlias($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacestatus_status]]
-.`status()`
-****
-[source,php]
-----
-/*
-$params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['ignore_indices']      = (enum) When performed on multiple indices, allows to ignore `missing` ones
-       ['operation_threading'] = () TODO: ?
-       ['recovery']            = (boolean) Return information about shard recovery
-       ['snapshot']            = (boolean) TODO: ?
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->status($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetSettings_getSettings]]
-.`getSettings()`
-****
-[source,php]
-----
-/*
-$params['index'] = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getSettings($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceclose_close]]
-.`close()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index (Required)
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->close($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceseal_seal]]
-.`seal()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) The name of the index
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->seal($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceupgrade_upgrade]]
-.`upgrade()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['wait_for_completion']= (boolean) Specify whether the request should block until the all segments are upgraded (default: false)
-       ['only_ancient_segments'] = (boolean) If true, only ancient (an older Lucene major release) segments will be upgraded
-       ['refresh']            = (boolean) Refresh the index after performing the operation
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->upgrade($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacegetUpgrade_getUpgrade]]
-.`getUpgrade()`
-****
-[source,php]
-----
-/*
-$params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-       ['wait_for_completion']= (boolean) Specify whether the request should block until the all segments are upgraded (default: false)
-       ['only_ancient_segments'] = (boolean) If true, only ancient (an older Lucene major release) segments will be upgraded
-       ['refresh']            = (boolean) Refresh the index after performing the operation
-       ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->getUpgrade($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespaceshardStores_shardStores]]
-.`shardStores()`
-****
-[source,php]
-----
-/*
-$params['index']   = (string) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-       ['status']   = (list) A comma-separated list of statuses used to filter on shards to get store information for
-       ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-       ['allow_no_indices'] = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-       ['expand_wildcards'] = (boolean) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->shardStores($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IndicesNamespacerollover_rollover]]
-.`rollover()`
-****
-[source,php]
-----
-/*
-$params['newIndex']       = (string) The name of the rollover index
-       ['alias']          = (string) The name of the alias to rollover
-       ['timeout']        = (time) Explicit operation timeout
-       ['master_timeout'] = (time) Specify timeout for connection to master
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->indices()->rollover($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IngestNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IngestNamespace.asciidoc
deleted file mode 100644
index 7132c885e9500215ef98c7e9e781b754152340db..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/IngestNamespace.asciidoc
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_IngestNamespace]]
-=== Elasticsearch\Namespaces\IngestNamespace
-
-
-
-Class IngestNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_IngestNamespacedeletePipeline_deletePipeline,`deletePipeline()`>>
-* <<Elasticsearch_Namespaces_IngestNamespacegetPipeline_getPipeline,`getPipeline()`>>
-* <<Elasticsearch_Namespaces_IngestNamespaceputPipeline_putPipeline,`putPipeline()`>>
-* <<Elasticsearch_Namespaces_IngestNamespacesimulate_simulate,`simulate()`>>
-
-
-
-[[Elasticsearch_Namespaces_IngestNamespacedeletePipeline_deletePipeline]]
-.`deletePipeline()`
-****
-[source,php]
-----
-/*
-$params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-       ['timeout']                    = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ingest()->deletePipeline($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IngestNamespacegetPipeline_getPipeline]]
-.`getPipeline()`
-****
-[source,php]
-----
-/*
-$params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ingest()->getPipeline($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IngestNamespaceputPipeline_putPipeline]]
-.`putPipeline()`
-****
-[source,php]
-----
-/*
-$params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-       ['timeout']                    = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ingest()->putPipeline($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_IngestNamespacesimulate_simulate]]
-.`simulate()`
-****
-[source,php]
-----
-/*
-$params['verbose'] = (bool) Verbose mode. Display data output for each processor in executed pipeline
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->ingest()->simulate($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/NodesNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/NodesNamespace.asciidoc
deleted file mode 100644
index fb71cc54ca2e8b9edfe5ee69c9033d8430967d5b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/NodesNamespace.asciidoc
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_NodesNamespace]]
-=== Elasticsearch\Namespaces\NodesNamespace
-
-
-
-Class NodesNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_NodesNamespacestats_stats,`stats()`>>
-* <<Elasticsearch_Namespaces_NodesNamespaceinfo_info,`info()`>>
-* <<Elasticsearch_Namespaces_NodesNamespacehotThreads_hotThreads,`hotThreads()`>>
-* <<Elasticsearch_Namespaces_NodesNamespaceshutdown_shutdown,`shutdown()`>>
-
-
-
-[[Elasticsearch_Namespaces_NodesNamespacestats_stats]]
-.`stats()`
-****
-[source,php]
-----
-/*
-$params['fields']        = (list) A comma-separated list of fields for `fielddata` metric (supports wildcards)
-       ['metric_family'] = (enum) Limit the information returned to a certain metric family
-       ['metric']        = (enum) Limit the information returned for `indices` family to a specific metric
-       ['node_id']       = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['all']           = (boolean) Return all available information
-       ['clear']         = (boolean) Reset the default level of detail
-       ['fs']            = (boolean) Return information about the filesystem
-       ['http']          = (boolean) Return information about HTTP
-       ['indices']       = (boolean) Return information about indices
-       ['jvm']           = (boolean) Return information about the JVM
-       ['network']       = (boolean) Return information about network
-       ['os']            = (boolean) Return information about the operating system
-       ['process']       = (boolean) Return information about the Elasticsearch process
-       ['thread_pool']   = (boolean) Return information about the thread pool
-       ['transport']     = (boolean) Return information about transport
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->nodes()->stats($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_NodesNamespaceinfo_info]]
-.`info()`
-****
-[source,php]
-----
-/*
-$params['node_id']       = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['metric']        = (list) A comma-separated list of metrics you wish returned. Leave empty to return all.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->nodes()->info($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_NodesNamespacehotThreads_hotThreads]]
-.`hotThreads()`
-****
-[source,php]
-----
-/*
-$params['node_id']   = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['interval']  = (time) The interval for the second sampling of threads
-       ['snapshots'] = (number) Number of samples of thread stacktrace (default: 10)
-       ['threads']   = (number) Specify the number of threads to provide information for (default: 3)
-       ['type']      = (enum) The type to sample (default: cpu)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->nodes()->hotThreads($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_NodesNamespaceshutdown_shutdown]]
-.`shutdown()`
-****
-[source,php]
-----
-/*
-$params['node_id'] = (list) A comma-separated list of node IDs or names to perform the operation on; use `_local` to perform the operation on the node you're connected to, leave empty to perform the operation on all nodes
-       ['delay']   = (time) Set the delay for the operation (default: 1s)
-       ['exit']    = (boolean) Exit the JVM as well (default: true)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->nodes()->shutdown($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/SnapshotNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/SnapshotNamespace.asciidoc
deleted file mode 100644
index 594133b924b20185acf8758e0e64ce36e7a66116..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/SnapshotNamespace.asciidoc
+++ /dev/null
@@ -1,220 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespace]]
-=== Elasticsearch\Namespaces\SnapshotNamespace
-
-
-
-Class SnapshotNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_SnapshotNamespacecreate_create,`create()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacecreateRepository_createRepository,`createRepository()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacedelete_delete,`delete()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacedeleteRepository_deleteRepository,`deleteRepository()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespaceget_get,`get()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacegetRepository_getRepository,`getRepository()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacerestore_restore,`restore()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespacestatus_status,`status()`>>
-* <<Elasticsearch_Namespaces_SnapshotNamespaceverifyRepository_verifyRepository,`verifyRepository()`>>
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacecreate_create]]
-.`create()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['wait_for_completion'] = (bool) Should this request wait until the operation has completed before returning
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->create($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacecreateRepository_createRepository]]
-.`createRepository()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->createRepository($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacedelete_delete]]
-.`delete()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->delete($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacedeleteRepository_deleteRepository]]
-.`deleteRepository()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->deleteRepository($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespaceget_get]]
-.`get()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->get($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacegetRepository_getRepository]]
-.`getRepository()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->getRepository($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacerestore_restore]]
-.`restore()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['wait_for_completion'] = (bool) Should this request wait until the operation has completed before returning
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->restore($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespacestatus_status]]
-.`status()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->status($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_SnapshotNamespaceverifyRepository_verifyRepository]]
-.`verifyRepository()`
-****
-[source,php]
-----
-/*
-$params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-       ['timeout'] = (time) Explicit operation timeout
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->snapshot()->verifyRepository($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/TasksNamespace.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/TasksNamespace.asciidoc
deleted file mode 100644
index 9d51713aeeb3995e770b8f5b015591c82aba91c8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/Elasticsearch/Namespaces/TasksNamespace.asciidoc
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-[[Elasticsearch_Namespaces_TasksNamespace]]
-=== Elasticsearch\Namespaces\TasksNamespace
-
-
-
-Class TasksNamespace
-
-
-*Methods*
-
-The class defines the following methods:
-
-* <<Elasticsearch_Namespaces_TasksNamespaceget_get,`get()`>>
-* <<Elasticsearch_Namespaces_TasksNamespacetasksList_tasksList,`tasksList()`>>
-* <<Elasticsearch_Namespaces_TasksNamespacecancel_cancel,`cancel()`>>
-
-
-
-[[Elasticsearch_Namespaces_TasksNamespaceget_get]]
-.`get()`
-****
-[source,php]
-----
-/*
-$params['wait_for_completion'] = (bool) Wait for the matching tasks to complete (default: false)
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->tasks()->get($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_TasksNamespacetasksList_tasksList]]
-.`tasksList()`
-****
-[source,php]
-----
-/*
-$params['node_id'] = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['actions'] = (list) A comma-separated list of actions that should be cancelled. Leave empty to cancel all.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->tasks()->tasksList($params);
-----
-****
-
-
-
-[[Elasticsearch_Namespaces_TasksNamespacecancel_cancel]]
-.`cancel()`
-****
-[source,php]
-----
-/*
-$params['node_id'] = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-       ['actions'] = (list) A comma-separated list of actions that should be cancelled. Leave empty to cancel all.
-       ['body']  = (array) Request body
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = $client->tasks()->cancel($params);
-----
-****
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/PROJECT_VERSION b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/PROJECT_VERSION
deleted file mode 100644
index 8b25206ff90e9432f6f1a8600f87a7bd695a24af..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/PROJECT_VERSION
+++ /dev/null
@@ -1 +0,0 @@
-master
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/SAMI_VERSION b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/SAMI_VERSION
deleted file mode 100644
index 75a358eed36ecc603f548bcb2e3b4208c0821048..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/SAMI_VERSION
+++ /dev/null
@@ -1 +0,0 @@
-3.3.0-DEV
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/classes.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/classes.asciidoc
deleted file mode 100644
index af3029969b281cf3ddf9c256c32459a6d3c8a998..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/classes.asciidoc
+++ /dev/null
@@ -1,26 +0,0 @@
-
-[[ElasticsearchPHP_Endpoints]]
-== Reference - Endpoints
-
-This is a complete list of namespaces and their associated endpoints.
-
-NOTE: This is auto-generated documentation
-
-* <<Elasticsearch_Client, Elasticsearch\Client>>
-* <<Elasticsearch_ClientBuilder, Elasticsearch\ClientBuilder>>
-* <<Elasticsearch_Namespaces_CatNamespace, Elasticsearch\Namespaces\CatNamespace>>
-* <<Elasticsearch_Namespaces_ClusterNamespace, Elasticsearch\Namespaces\ClusterNamespace>>
-* <<Elasticsearch_Namespaces_IndicesNamespace, Elasticsearch\Namespaces\IndicesNamespace>>
-* <<Elasticsearch_Namespaces_IngestNamespace, Elasticsearch\Namespaces\IngestNamespace>>
-* <<Elasticsearch_Namespaces_NodesNamespace, Elasticsearch\Namespaces\NodesNamespace>>
-* <<Elasticsearch_Namespaces_SnapshotNamespace, Elasticsearch\Namespaces\SnapshotNamespace>>
-* <<Elasticsearch_Namespaces_TasksNamespace, Elasticsearch\Namespaces\TasksNamespace>>
-include::Elasticsearch/Client.asciidoc[]
-include::Elasticsearch/ClientBuilder.asciidoc[]
-include::Elasticsearch/Namespaces/CatNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/ClusterNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/IndicesNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/IngestNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/NodesNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/SnapshotNamespace.asciidoc[]
-include::Elasticsearch/Namespaces/TasksNamespace.asciidoc[]
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/interfaces.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/interfaces.asciidoc
deleted file mode 100644
index 5b17b386baa8e5ecb59bcc6c073ce739556cde20..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/interfaces.asciidoc
+++ /dev/null
@@ -1,7 +0,0 @@
-
-[[ElasticsearchPHP_Interfaces]]
-== Reference - Interfaces
-
-This is a complete list of available interfaces:
-
-* There are no interfaces available.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/namespaces.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/namespaces.asciidoc
deleted file mode 100644
index a59ad372261112abe2bd335da983faa00e147140..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/namespaces.asciidoc
+++ /dev/null
@@ -1,10 +0,0 @@
-
-[[ElasticsearchPHP_Namespaces]]
-== Reference - Namespaces
-
-This is a complete list of available namespaces:
-
-* <<Elasticsearch, Elasticsearch>>
-* <<Elasticsearch_Namespaces, Elasticsearch\Namespaces>>
-include::Elasticsearch.asciidoc[]
-include::Elasticsearch/Namespaces.asciidoc[]
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/renderer.index b/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/renderer.index
deleted file mode 100644
index 9064cb3089ae424275ad022e8b5c7a9a39bc496c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/build/renderer.index
+++ /dev/null
@@ -1 +0,0 @@
-C:19:"Sami\Renderer\Index":944:{a:3:{i:0;a:9:{s:20:"Elasticsearch\Client";s:40:"c92166baaf85cb08a91ce4e3cf845b1626ba12f0";s:27:"Elasticsearch\ClientBuilder";s:40:"347f22134a07f53b3355a211264d8e53aa545243";s:37:"Elasticsearch\Namespaces\CatNamespace";s:40:"51d06cd6b8334bcf3a2580f67bbc5c88f8fde761";s:41:"Elasticsearch\Namespaces\ClusterNamespace";s:40:"0934f56b5dfa7978ab1907b6c8a04b0a293ae274";s:41:"Elasticsearch\Namespaces\IndicesNamespace";s:40:"3d23245494af9443c215b31faa4e78dd6ab29750";s:40:"Elasticsearch\Namespaces\IngestNamespace";s:40:"b52adeb7071f16cba79cdcc3dac3fa6e53ed62bd";s:39:"Elasticsearch\Namespaces\NodesNamespace";s:40:"da4e71f9d953d00600920c26fe585b6884e45f94";s:42:"Elasticsearch\Namespaces\SnapshotNamespace";s:40:"e28a1807789b0fcca3fd6b9712ed713650cf7ac2";s:39:"Elasticsearch\Namespaces\TasksNamespace";s:40:"2de86d7ab409a629320725f6444c76d2a9313c72";}i:1;a:1:{i:0;s:6:"master";}i:2;a:2:{i:0;s:13:"Elasticsearch";i:1;s:24:"Elasticsearch\Namespaces";}}}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/community.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/community.asciidoc
deleted file mode 100644
index c05b4411fcdda199e3454fa8501a90db7ddd54fd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/community.asciidoc
+++ /dev/null
@@ -1,89 +0,0 @@
-
-== Community DSLs
-
-=== ElasticsearchDSL
-
-https://github.com/ongr-io/ElasticsearchDSL[Link: ElasticsearchDSL]
-[quote, ElasticsearchDSL]
-__________________________
-Introducing Elasticsearch DSL library to provide objective query builder for Elasticsearch bundle and elasticsearch-php client. You can easily build any Elasticsearch query and transform it to an array.
-__________________________
-
-=== elasticsearcher
-
-https://github.com/madewithlove/elasticsearcher[Link: elasticsearcher]
-
-[quote, elasticsearcher]
-__________________________
-This agnostic package is a lightweight wrapper on top of the Elasticsearch PHP client. Its main goal is to allow for easier structuring of queries and indices in your application. It does not want to hide or replace functionality of the Elasticsearch PHP client.
-__________________________
-
-== Community Integrations
-
-=== Symfony
-
-==== ONGR Elasticsearch Bundle
-
-https://github.com/ongr-io/ElasticsearchBundle[Link: ONGR Elasticsearch Bundle]
-
-[quote, ONGR Elasticsearch Bundle]
-__________________________
-Elasticsearch Bundle was created in order to serve the need for professional elasticsearch
-integration with enterprise level Symfony 2 systems. This bundle is:
-
-- Supported by ONGR.io development team.
-- Uses the official elasticsearch-php client.
-- Ensures full integration with Symfony 2 framework.
-
-Technical goodies:
-
-- Provides nestable and DSL query builder to be executed by type repository services.
-- Uses Doctrine-like document / entities document-object mapping using annotations.
-- Query results iterators are provided for your convenience.
-- Registers console commands for index and types management and data import / export.
-- Designed in an extensible way for all your custom needs.
-__________________________
-
-
-=== Drupal
-
-==== Elasticsearch Connector
-
-https://www.drupal.org/project/elasticsearch_connector[Link: Elasticsearch Connector]
-
-[quote, Elasticsearch Connector]
-__________________________
-Elasticsearch Connector is a set of modules designed to build a full Elasticsearch eco system in Drupal.
-__________________________
-
-=== Laravel
-
-==== shift31/Laravel-Elasticsearch
-
-https://github.com/shift31/laravel-elasticsearch[Link: shift31/Laravel-Elasticsearch]
-
-[quote, Laravel-Elasticsearch]
-__________________________
-This is a Laravel (4+) Service Provider for the official Elasticsearch low-level client.
-__________________________
-
-
-==== cviebrock/Laravel-Elasticsearch
-
-https://github.com/cviebrock/laravel-elasticsearch[Link: cviebrock/Laravel-Elasticsearch]
-
-[quote, Laravel-Elasticsearch]
-__________________________
-An easy way to use the official Elastic Search client in your Laravel applications.
-__________________________
-
-
-==== Plastic
-
-https://github.com/sleimanx2/plastic[Link: Plastic]
-
-[quote, Plastic]
-__________________________
-Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.
-__________________________
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/configuration.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/configuration.asciidoc
deleted file mode 100644
index e159eee67f4766619ad05db3f7648b9b00cbe80c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/configuration.asciidoc
+++ /dev/null
@@ -1,442 +0,0 @@
-
-== Configuration
-
-Almost every aspect of the client is configurable.  Most users will only need to configure a few parameters to suit
-their needs, but it is possible to completely replace much of the internals if required.
-
-Custom configuration is accomplished before the client is instantiated, through the ClientBuilder helper object.
-We'll walk through all the configuration options and show sample code to replace the various components.
-
-=== Inline Host Configuration
-
-The most common configuration is telling the client about your cluster: how many nodes, their addresses and ports.  If
-no hosts are specified, the client will attempt to connect to `localhost:9200`.
-
-This behavior can be changed by using the `setHosts()` method on `ClientBuilder`.  The method accepts an array of values,
-each entry corresponding to one node in your cluster.  The format of the host can vary, depending on your needs (ip vs
-hostname, port, ssl, etc)
-
-[source,php]
-----
-$hosts = [
-    '192.168.1.1:9200',         // IP + Port
-    '192.168.1.2',              // Just IP
-    'mydomain.server.com:9201', // Domain + Port
-    'mydomain2.server.com',     // Just Domain
-    'https://localhost',        // SSL to localhost
-    'https://192.168.1.3:9200'  // SSL to IP + Port
-];
-$client = ClientBuilder::create()           // Instantiate a new ClientBuilder
-                    ->setHosts($hosts)      // Set the hosts
-                    ->build();              // Build the client object
-----
-
-Notice that the `ClientBuilder` object allows chaining method calls for brevity.  It is also possible to call the methods
-individually:
-
-[source,php]
-----
-$hosts = [
-    '192.168.1.1:9200',         // IP + Port
-    '192.168.1.2',              // Just IP
-    'mydomain.server.com:9201', // Domain + Port
-    'mydomain2.server.com',     // Just Domain
-    'https://localhost',        // SSL to localhost
-    'https://192.168.1.3:9200'  // SSL to IP + Port
-];
-$clientBuilder = ClientBuilder::create();   // Instantiate a new ClientBuilder
-$clientBuilder->setHosts($hosts);           // Set the hosts
-$client = $clientBuilder->build();          // Build the client object
-----
-
-=== Extended Host Configuration
-
-The client also supports an _extended_ host configuration syntax.  The inline configuration method relies on PHP's
-`filter_var()` and `parse_url()` methods to validate and extract the components of a URL.  Unfortunately, these built-in
-methods run into problems with certain edge-cases.  For example, `filter_var()` will not accept URL's that have underscores
-(which are questionably legal, depending on how you interpret the RFCs).  Similarly, `parse_url()` will choke if a
-Basic Auth's password contains special characters such as a pound sign (`#`) or question-marks (`?`).
-
-For this reason, the client supports an extended host syntax which provides greater control over host initialization.
-None of the components are validated, so edge-cases like underscores domain names will not cause problems.
-
-The extended syntax is an array of parameters for each host:
-
-[source,php]
-----
-$hosts = [
-    // This is effectively equal to: "https://username:password!#$?*abc@foo.com:9200/"
-    [
-        'host' => 'foo.com',
-        'port' => '9200',
-        'scheme' => 'https',
-        'user' => 'username',
-        'pass' => 'password!#$?*abc'
-    ],
-
-    // This is equal to "http://localhost:9200/"
-    [
-        'host' => 'localhost',    // Only host is required
-    ]
-];
-$client = ClientBuilder::create()           // Instantiate a new ClientBuilder
-                    ->setHosts($hosts)      // Set the hosts
-                    ->build();              // Build the client object
-----
-
-Only the `host` parameter is required for each configured host.  If not provided, the default port is `9200`.  The default
-scheme is `http`.
-
-=== Authorization and Encryption
-
-For details about HTTP Authorization and SSL encryption, please see link:_security.html[Authorization and SSL].
-
-=== Set retries
-
-By default, the client will retry `n` times, where `n = number of nodes` in your cluster.  A retry is only performed
-if the operation results in a "hard" exception: connection refusal, connection timeout, DNS lookup timeout, etc.  4xx and
-5xx errors are not considered retry'able events, since the node returns an operational response.
-
-If you would like to disable retries, or change the number, you can do so with the `setRetries()` method:
-
-[source,php]
-----------------------------
-
-$client = ClientBuilder::create()
-                    ->setRetries(2)
-                    ->build();
-----------------------------
-
-When the client runs out of retries, it will throw the last exception that it received.  For example, if you have ten
-alive nodes, and `setRetries(5)`, the client will attempt to execute the command up to five times.  If all five nodes
-result in a connection timeout (for example), the client will throw an `OperationTimeoutException`.  Depending on the
-Connection Pool being used, these nodes may also be marked dead.
-
-To help in identification, exceptions that are thrown due to max retries will wrap a `MaxRetriesException`.  For example,
-you can catch a specific curl exception then check if it wraps a MaxRetriesException using `getPrevious()`:
-
-[source,php]
-----
-$client = Elasticsearch\ClientBuilder::create()
-    ->setHosts(["localhost:1"])
-    ->setRetries(0)
-    ->build();
-
-try {
-    $client->search($searchParams);
-} catch (Elasticsearch\Common\Exceptions\Curl\CouldNotConnectToHost $e) {
-    $previous = $e->getPrevious();
-    if ($previous instanceof 'Elasticsearch\Common\Exceptions\MaxRetriesException') {
-        echo "Max retries!";
-    }
-}
-----
-
-Alternatively, all "hard" curl exceptions (`CouldNotConnectToHost`, `CouldNotResolveHostException`, `OperationTimeoutException`)
-extend the more general `TransportException`.  So you could instead catch the general `TransportException` and then
-check it's previous value:
-
-[source,php]
-----
-$client = Elasticsearch\ClientBuilder::create()
-    ->setHosts(["localhost:1"])
-    ->setRetries(0)
-    ->build();
-
-try {
-    $client->search($searchParams);
-} catch (Elasticsearch\Common\Exceptions\TransportException $e) {
-    $previous = $e->getPrevious();
-    if ($previous instanceof 'Elasticsearch\Common\Exceptions\MaxRetriesException') {
-        echo "Max retries!";
-    }
-}
-----
-
-
-[[enabling_logger]]
-=== Enabling the Logger
-Elasticsearch-PHP supports logging, but it is not enabled by default for performance reasons.  If you wish to enable logging,
-you need to select a logging implementation, install it, then enable the logger in the Client.  The recommended logger
-is https://github.com/Seldaek/monolog[Monolog], but any logger that implements the `PSR/Log` interface will work.
-
-You might have noticed that Monolog was suggested during installation.  To begin using Monolog, add it to your `composer.json`:
-
-[source,json]
-----------------------------
-{
-    "require": {
-        ...
-        "elasticsearch/elasticsearch" : "~5.0",
-        "monolog/monolog": "~1.0"
-    }
-}
-----------------------------
-
-And then update your composer installation:
-
-[source,shell]
-----------------------------
-php composer.phar update
-----------------------------
-
-Once Monolog (or another logger) is installed, you need to create a log object and inject it into the client.  The
-`ClientBuilder` object has a helper static function that will generate a common Monolog-based logger for you.  All you need
-to do is provide the path to your desired logging location:
-
-[source,php]
-----
-$logger = ClientBuilder::defaultLogger('path/to/your.log');
-
-$client = ClientBuilder::create()       // Instantiate a new ClientBuilder
-            ->setLogger($logger)        // Set the logger with a default logger
-            ->build();                  // Build the client object
-----
-
-You can also specify the severity of log messages that you wish to log:
-
-[source,php]
-----
-// set severity with second parameter
-$logger = ClientBuilder::defaultLogger('/path/to/logs/', Logger::INFO);
-
-$client = ClientBuilder::create()       // Instantiate a new ClientBuilder
-            ->setLogger($logger)        // Set the logger with a default logger
-            ->build();                  // Build the client object
-----
-
-The `defaultLogger()` method is just a helper, you are not required to use it.  You can create your own logger and inject
-that instead:
-
-
-[source,php]
-----
-use Monolog\Logger;
-use Monolog\Handler\StreamHandler;
-
-$logger = new Logger('name');
-$logger->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
-
-$client = ClientBuilder::create()       // Instantiate a new ClientBuilder
-            ->setLogger($logger)        // Set your custom logger
-            ->build();                  // Build the client object
-----
-
-
-=== Configure the HTTP Handler
-
-Elasticsearch-PHP uses an interchangeable HTTP transport layer called https://github.com/guzzle/RingPHP/[RingPHP].  This
-allows the client to construct a generic HTTP request, then pass it to the transport layer to execute.  The actual execution
-details are hidden from the client and modular, so that you can choose from several HTTP handlers depending on your needs.
-
-The default handler that the client uses is a combination handler.  When executing in synchronous mode, the handler
-uses `CurlHandler`, which executes single curl calls.  These are very fast for single requests.  When asynchronous (future)
-mode is enabled, the handler switches to `CurlMultiHandler`, which uses the curl_multi interface.  This involves a bit
-more overhead, but allows batches of HTTP requests to be processed in parallel.
-
-You can configure the HTTP handler with one of several helper functions, or provide your own custom handler:
-
-[source,php]
-----
-$defaultHandler = ClientBuilder::defaultHandler();
-$singleHandler  = ClientBuilder::singleHandler();
-$multiHandler   = ClientBuilder::multiHandler();
-$customHandler  = new MyCustomHandler();
-
-$client = ClientBuilder::create()
-            ->setHandler($defaultHandler)
-            ->build();
-----
-
-For details on creating your own custom Ring handler, please see the http://guzzle.readthedocs.org/en/latest/handlers.html[RingPHP Documentation]
-
-The default handler is recommended in almost all cases.  This allows fast synchronous execution, while retaining flexibility
-to invoke parallel batches with async future mode.  You may consider using just the `singleHandler` if you know you will
-never need async capabilities, since it will save a small amount of overhead by reducing indirection.
-
-
-=== Setting the Connection Pool
-
-The client maintains a pool of connections, with each connection representing a node in your cluster.  There are several
-connection pool implementations available, and each has slightly different behavior (pinging vs no pinging, etc).
-Connection pools are configured via the `setConnectionPool()` method:
-
-[source,php]
-----
-$connectionPool = '\Elasticsearch\ConnectionPool\StaticNoPingConnectionPool';
-$client = ClientBuilder::create()
-            ->setConnectionPool($connectionPool)
-            ->build();
-----
-
-For more details, please see the dedicated page on link:_connection_pool.html[configuring connection pools].
-
-=== Setting the Connection Selector
-
-The connection pool manages the connections to your cluster, but the Selector is the logic that decides which connection
-should be used for the next API request.  There are several selectors that you can choose from.  Selectors can be changed
-via the `setSelector()` method:
-
-[source,php]
-----
-$selector = '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector';
-$client = ClientBuilder::create()
-            ->setSelector($selector)
-            ->build();
-----
-
-For more details, please see the dedicated page on link:_selectors.html[configuring selectors].
-
-
-=== Setting the Serializer
-
-Requests are given to the client in the form of associative arrays, but Elasticsearch expects JSON.  The Serializer's
-job is to serialize PHP objects into JSON.  It also de-serializes JSON back into PHP arrays.  This seems trivial, but
-there are a few edgecases which make it useful for the serializer to remain modular.
-
-The majority of people will never need to change the default serializer (`SmartSerializer`), but if you need to,
-it can be done via the `setSerializer()` method:
-
-[source,php]
-----
-$serializer = '\Elasticsearch\Serializers\SmartSerializer';
-$client = ClientBuilder::create()
-            ->setSerializer($serializer)
-            ->build();
-----
-
-For more details, please see the dedicated page on link:_serializers.html[configuring serializers].
-
-
-=== Setting a custom ConnectionFactory
-
-The ConnectionFactory instantiates new Connection objects when requested by the ConnectionPool.  A single Connection
-represents a single node.  Since the client hands actual networking work over to RingPHP, the Connection's main job is
-book-keeping:  Is this node alive?  Did it fail a ping request?  What is the host and port?
-
-There is little reason to provide your own ConnectionFactory, but if you need to do so, you need to supply an intact
-ConnectionFactory object to the `setConnectionFactory()` method.  The object should implement the `ConnectionFactoryInterface`
-interface.
-
-[source,php]
-----
-
-class MyConnectionFactory implements ConnectionFactoryInterface
-{
-
-    public function __construct($handler, array $connectionParams,
-                                SerializerInterface $serializer,
-                                LoggerInterface $logger,
-                                LoggerInterface $tracer)
-    {
-       // Code here
-    }
-
-
-    /**
-     * @param $hostDetails
-     *
-     * @return ConnectionInterface
-     */
-    public function create($hostDetails)
-    {
-        // Code here...must return a Connection object
-    }
-}
-
-
-$connectionFactory = new MyConnectionFactory(
-    $handler,
-    $connectionParams,
-    $serializer,
-    $logger,
-    $tracer
-);
-
-$client = ClientBuilder::create()
-            ->setConnectionFactory($connectionFactory);
-            ->build();
-----
-
-As you can see, if you decide to inject your own ConnectionFactory, you take over the responsibiltiy of wiring it correctly.
-The ConnectionFactory requires a working HTTP handler, serializer, logger and tracer.
-
-
-=== Set the Endpoint closure
-
-The client uses an Endpoint closure to dispatch API requests to the correct Endpoint object.  A namespace object will
-construct a new Endpoint via this closure, which means this is a handy location if you wish to extend the available set
-of API endpoints available
-
-For example, we could add a new endpoint like so:
-
-[source,php]
-----
-
-$transport = $this->transport;
-$serializer = $this->serializer;
-
-$newEndpoint = function ($class) use ($transport, $serializer) {
-    if ($class == 'SuperSearch') {
-        return new MyProject\SuperSearch($transport);
-    } else {
-        // Default handler
-        $fullPath = '\\Elasticsearch\\Endpoints\\' . $class;
-        if ($class === 'Bulk' || $class === 'Msearch' || $class === 'MPercolate') {
-            return new $fullPath($transport, $serializer);
-        } else {
-            return new $fullPath($transport);
-        }
-    }
-};
-
-$client = ClientBuilder::create()
-            ->setEndpoint($newEndpoint)
-            ->build();
-----
-
-Obviously, by doing this you take responsibility that all existing endpoints still function correctly.  And you also
-assume the responsibility of correctly wiring the Transport and Serializer into each endpoint.
-
-
-=== Building the client from a configuration hash
-
-To help ease automated building of the client, all configurations can be provided in a setting
-hash instead of calling the individual methods directly.  This functionality is exposed through
-the `ClientBuilder::FromConfig()` static method, which accepts an array of configurations
-and returns a fully built client.
-
-Array keys correspond to the method name, e.g. `retries` key corresponds to `setRetries()` method.
-
-
-[source,php]
-----
-$params = [
-    'hosts' => [
-        'localhost:9200'
-    ],
-    'retries' => 2,
-    'handler' => ClientBuilder::singleHandler()
-];
-$client = ClientBuilder::fromConfig($params);
-----
-
-
-Unknown parameters will throw an exception, to help the user find potential problems.
-If this behavior is not desired (e.g. you are using the hash for other purposes, and may have
-keys unrelated to the Elasticsearch client), you can set $quiet = true in fromConfig() to
-silence the exceptions.
-
-[source,php]
-----
-$params = [
-    'hosts' => [
-        'localhost:9200'
-    ],
-    'retries' => 2,
-    'imNotReal' => 5
-];
-
-// Set $quiet to true to ignore the unknown `imNotReal` key
-$client = ClientBuilder::fromConfig($params, true);
-----
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/connection-pool.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/connection-pool.asciidoc
deleted file mode 100644
index 192fb3dbd8046b9f459c5978d7227b791b0e746e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/connection-pool.asciidoc
+++ /dev/null
@@ -1,204 +0,0 @@
-
-== Connection Pool
-
-The connection pool is an object inside the client that is responsible for maintaining the current list of nodes.
-Theoretically, nodes are either dead or alive.
-
-However, in the real world, things are never so clear.  Nodes are sometimes in a gray-zone of _"probably dead but not
-confirmed"_, _"timed-out but unclear why"_ or _"recently dead but now alive"_. The connection pool's job is to
-manage this set of unruly connections and try to provide the best behavior to the client.
-
-If a connection pool is unable to find an alive node to query against, it will return a `NoNodesAvailableException`.
-This is distinct from an exception due to maximum retries.  For example, your cluster may have 10 nodes.  You execute
-a request and 9 out of the 10 nodes fail due to connection timeouts.  The tenth node succeeds and the query executes.
-The first nine nodes will be marked dead (depending on the connection pool being used) and their "dead" timers will begin
-ticking.
-
-When the next request is sent to the client, nodes 1-9 are still considered "dead", so they will be skipped.  The request
-is sent to the only known alive node (#10), and if this node fails, a `NoNodesAvailableException` is returned. You'll note
-this is much less than the `retries` value, because `retries` only applies to retries against alive nodes.  In this case,
-only one node is known to be alive, so `NoNodesAvailableException` is returned.
-
-
-There are several connection pool implementations that you can choose from:
-
-=== staticNoPingConnectionPool (default)
-
-This connection pool maintains a static list of hosts, which are assumed to be alive when the client initializes.  If
-a node fails a request, it is marked as `dead` for 60 seconds and the next node is tried.  After 60 seconds, the node
-is revived and put back into rotation.  Each additional failed request will cause the dead timeout to increase exponentially.
-
-A successful request will reset the "failed ping timeout" counter.
-
-If you wish to explicitly set the `StaticNoPingConnectionPool` implementation, you may do so with the `setConnectionPool()`
-method of the ClientBuilder object:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\StaticNoPingConnectionPool', [])
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== staticConnectionPool
-
-Identical to the `StaticNoPingConnectionPool`, except it pings nodes before they are used to determine if they are alive.
-This may be useful for long-running scripts, but tends to be additional overhead that is unnecessary for average PHP scripts.
-
-To use the `StaticConnectionPool`:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\StaticConnectionPool', [])
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== simpleConnectionPool
-
-The `SimpleConnectionPool` simply returns the next node as specified by the Selector; it does not perform track
-the "liveness" of nodes.  This pool will return nodes whether they are alive or dead.  It is just a simple pool of static
-hosts.
-
-The `SimpleConnectionPool` is not recommended for routine use, but it may be a useful debugging tool.
-
-To use the `SimpleConnectionPool`:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\SimpleConnectionPool', [])
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== sniffingConnectionPool
-
-Unlike the two previous static connection pools, this one is dynamic.  The user provides a seed list of hosts, which the
-client uses to "sniff" and discover the rest of the cluster.  It achieves this through the Cluster State API.  As new
-nodes are added or removed from the cluster, the client will update it's pool of active connections.
-
-To use the `SniffingConnectionPool`:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\SniffingConnectionPool', [])
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-
-=== Custom Connection Pool
-
-If you wish to implement your own custom Connection Pool, your class must implement `ConnectionPoolInterface`:
-
-[source,php]
-----
-class MyCustomConnectionPool implements ConnectionPoolInterface
-{
-
-    /**
-     * @param bool $force
-     *
-     * @return ConnectionInterface
-     */
-    public function nextConnection($force = false)
-    {
-        // code here
-    }
-
-    /**
-     * @return void
-     */
-    public function scheduleCheck()
-    {
-        // code here
-    }
-}
-----
-
-You can then instantiate an instance of your ConnectionPool and inject it into the ClientBuilder:
-
-[source,php]
-----
-$myConnectionPool = new MyCustomConnectionPool();
-
-$client = ClientBuilder::create()
-            ->setConnectionPool($myConnectionPool, [])
-            ->build();
-----
-
-If your connection pool only makes minor changes, you may consider extending `AbstractConnectionPool`, which provides
-some helper concrete methods.  If you choose to go down this route, you need to make sure your ConnectionPool's implementation
-has a compatible constructor (since it is not defined in the interface):
-
-[source,php]
-----
-class MyCustomConnectionPool extends AbstractConnectionPool implements ConnectionPoolInterface
-{
-
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactory $factory, $connectionPoolParams)
-    {
-        parent::__construct($connections, $selector, $factory, $connectionPoolParams);
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return ConnectionInterface
-     */
-    public function nextConnection($force = false)
-    {
-        // code here
-    }
-
-    /**
-     * @return void
-     */
-    public function scheduleCheck()
-    {
-        // code here
-    }
-}
-----
-
-If your constructor matches AbstractConnectionPool, you may use either object injection or namespace instantiation:
-
-[source,php]
-----
-$myConnectionPool = new MyCustomConnectionPool();
-
-$client = ClientBuilder::create()
-            ->setConnectionPool($myConnectionPool, [])                                      // object injection
-            ->setConnectionPool('/MyProject/ConnectionPools/MyCustomConnectionPool', [])    // or namespace
-            ->build();
-----
-
-
-=== Which connection pool to choose? PHP and connection pooling
-
-At first glance, the `sniffingConnectionPool` implementation seems superior.  For many languages, it is.  In PHP, the
-conversation is a bit more nuanced.
-
-Because PHP is a share-nothing architecture, there is no way to maintain a connection pool across script instances.
-This means that every script is responsible for creating, maintaining, and destroying connections everytime the script
-is re-run.
-
-Sniffing is a relatively lightweight operation (one API call to `/_cluster/state`, followed by pings to each node) but
-it may be a non-negligible overhead for certain PHP applications.  The average PHP script will likely load the client,
-execute a few queries and then close.  Imagine this script being called 1000 times per second: the sniffing connection
-pool will perform the sniffing and pinging process 1000 times per second.  The sniffing process will add a large
-amount of overhead
-
-In reality, if your script only executes a few queries, the sniffing concept is _too_ robust.  It tends to be more
-useful in long-lived processes which potentially "out-live" a static list.
-
-For this reason the default connection pool is currently the `staticNoPingConnectionPool`.  You can, of course, change
-this default - but we strongly recommend you load test and verify that it does not negatively impact your performance.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/crud.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/crud.asciidoc
deleted file mode 100644
index d778746a8566d94054d1bfbbf7729f10ec4c08c6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/crud.asciidoc
+++ /dev/null
@@ -1,245 +0,0 @@
-
-== Indexing Documents
-
-When you add documents to Elasticsearch, you index JSON documents.  This maps naturally to PHP associative arrays, since
-they can easily be encoded in JSON.  Therefore, in Elasticsearch-PHP you create and pass associative arrays to the client
-for indexing.  There are several methods of ingesting data into Elasticsearch, which we will cover here
-
-=== Single document indexing
-
-When indexing a document, you can either provide an ID or let elasticsearch generate one for you.
-
-{zwsp} +
-
-.Providing an ID value
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => [ 'testField' => 'abc']
-];
-
-// Document will be indexed to my_index/my_type/my_id
-$response = $client->index($params);
-----
-{zwsp} +
-
-.Omitting an ID value
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [ 'testField' => 'abc']
-];
-
-// Document will be indexed to my_index/my_type/<autogenerated ID>
-$response = $client->index($params);
-----
-{zwsp} +
-
-If you need to set other parameters, such as a `routing` value, you specify those in the array alongside the `index`,
-`type`, etc.  For example, let's set the routing and timestamp of this new document:
-
-.Additional parameters
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'routing' => 'company_xyz',
-    'timestamp' => strtotime("-1d"),
-    'body' => [ 'testField' => 'abc']
-];
-
-
-$response = $client->index($params);
-----
-{zwsp} +
-
-=== Bulk Indexing
-
-Elasticsearch also supports bulk indexing of documents.  The bulk API expects JSON action/metadata pairs, separated by
-newlines.  When constructing your documents in PHP, the process is similar.  You first create an action array object
-(e.g. `index` object), then you create a document body object.  This process repeats for all your documents.
-
-A simple example might look like this:
-
-.Bulk indexing with PHP arrays
-[source,php]
-----
-for($i = 0; $i < 100; $i++) {
-    $params['body'][] = [
-        'index' => [
-            '_index' => 'my_index',
-            '_type' => 'my_type',
-	]
-    ];
-
-    $params['body'][] = [
-        'my_field' => 'my_value',
-        'second_field' => 'some more values'
-    ];
-}
-
-$responses = $client->bulk($params);
-----
-
-In practice, you'll likely have more documents than you want to send in a single bulk request.  In that case, you need
-to batch up the requests and periodically send them:
-
-
-.Bulk indexing with batches
-[source,php]
-----
-$params = ['body' => []];
-
-for ($i = 1; $i <= 1234567; $i++) {
-    $params['body'][] = [
-        'index' => [
-            '_index' => 'my_index',
-            '_type' => 'my_type',
-            '_id' => $i
-        ]
-    ];
-
-    $params['body'][] = [
-        'my_field' => 'my_value',
-        'second_field' => 'some more values'
-    ];
-
-    // Every 1000 documents stop and send the bulk request
-    if ($i % 1000 == 0) {
-        $responses = $client->bulk($params);
-
-        // erase the old bulk request
-        $params = ['body' => []];
-
-        // unset the bulk response when you are done to save memory
-        unset($responses);
-    }
-}
-
-// Send the last batch if it exists
-if (!empty($params['body'])) {
-    $responses = $client->bulk($params);
-}
-----
-
-== Getting Documents
-
-Elasticsearch provides realtime GETs of documents.  This means that as soon as the document has been indexed and your
-client receives an acknowledgement, you can immediately retrieve the document from any shard.  Get operations are
-performed by requesting a document by it's full `index/type/id` path:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-// Get doc at /my_index/my_type/my_id
-$response = $client->get($params);
-----
-{zwsp} +
-
-== Updating Documents
-
-Updating a document allows you to either completely replace the contents of the existing document, or perform a partial
-update to just some fields (either changing an existing field, or adding new fields).
-
-=== Partial document update
-
-If you want to partially update a document (e.g. change an existing field, or add a new one) you can do so by specifying
-the `doc` in the `body` parameter.  This will merge the fields in `doc` with the existing document
-
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => [
-        'doc' => [
-            'new_field' => 'abc'
-        ]
-    ]
-];
-
-// Update doc at /my_index/my_type/my_id
-$response = $client->update($params);
-----
-{zwsp} +
-
-=== Scripted document update
-
-Sometimes you need to perform a scripted update, such as incrementing a counter or appending a new value to an array.
-To perform a scripted update, you need to provide a script and (usually) a set of parameters:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => [
-        'script' => 'ctx._source.counter += count',
-        'params' => [
-            'count' => 4
-        ]
-    ]
-];
-
-$response = $client->update($params);
-----
-{zwsp} +
-
-=== Upserts
-
-Upserts are "Update or Insert" operations.  This means an upsert will attempt to run your update script, but if the document
-does not exist (or the field you are trying to update doesn't exist), default values will be inserted instead.
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => [
-        'script' => 'ctx._source.counter += count',
-        'params' => [
-            'count' => 4
-        ],
-        'upsert' => [
-            'counter' => 1
-        ]
-    ]
-];
-
-$response = $client->update($params);
-----
-{zwsp} +
-
-
-== Deleting documents
-
-Finally, you can delete documents by specifying their full `/index/type/id` path:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-// Delete doc at /my_index/my_type/my_id
-$response = $client->delete($params);
-----
-{zwsp} +
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/futures.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/futures.asciidoc
deleted file mode 100644
index ceee52016af7a1146c1cf002ed21494292d44982..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/futures.asciidoc
+++ /dev/null
@@ -1,259 +0,0 @@
-
-== Future Mode
-
-The client offers a mode called "future" or "async" mode.  This allows batch processing of requests (sent in parallel
-to the cluster), which can have a dramatic impact on performance and throughput.
-
-PHP is fundamentally single-threaded, however libcurl provides functionality called the "multi interface".  This allows
-languages like PHP to gain concurrency by providing a batch of requests to process.  The batch is executed in a parallel
-by the underlying multithreaded libcurl library, and the batch of responses is then returned to PHP.
-
-In a single-threaded environment, the time to execute `n` requests is the sum of those `n` request's latencies.  With
-the multi interface, the time to execute `n` requests is the latency of the slowest request (assuming enough handles
-are available to execute all requests in parallel).
-
-Furthermore, the multi-interface allows requests to different hosts simultaneously, which means the Elasticsearch-PHP
-client can more effectively utilize your full cluster.
-
-=== Using Future Mode
-
-Utilizing this feature is relatively straightforward, but it does introduce more responsibility into your code.  To enable
-future mode, set the `future` flag in the client options to `'lazy'`:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-
-$future = $client->get($params);
-----
-
-This will return a _future_, rather than the actual response.  A future represents a _future computation_ and acts like
-a placeholder.  You can pass a future around your code like a regular object.  When you need the result values, you
-can _resolve_ the future.  If the future has already resolved (due to some other activity), the values will be immediately
-available.  If the future has not resolved yet, the resolution will block until those values have become available (e.g.
-after the API call completes).
-
-In practice, this means you can queue up a batch of requests by using `future: lazy` and they will pend until you resolve
-the futures, at which time all requests will be sent in parallel to the cluster and return asynchronously to curl.
-
-This sounds tricky, but it is actually very simple thanks to RingPHP's `FutureArray` interface, which makes the future
-act like a simple associative array.  For example:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-
-$future = $client->get($params);
-
-$doc = $future['_source'];    // This call will block and force the future to resolve
-----
-
-Interacting with the future as an associative array, just like a normal response, will cause the future to resolve
-that particular value (which in turn resolves all pending requests and values).  This allows patterns such as:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$futures = [];
-
-for ($i = 0; $i < 1000; $i++) {
-    $params = [
-        'index' => 'test',
-        'type' => 'test',
-        'id' => $i,
-        'client' => [
-            'future' => 'lazy'
-        ]
-    ];
-
-    $futures[] = $client->get($params);     //queue up the request
-}
-
-
-foreach ($futures as $future) {
-    // access future's values, causing resolution if necessary
-    echo $future['_source'];
-}
-----
-
-The queued requests will execute in parallel and populate their futures after execution.  Batch size defaults to
-100 requests-per-batch.
-
-If you wish to force future resolution, but don't actually need the values immediately, you can call `wait()` on the future
-to force resolution too:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$futures = [];
-
-for ($i = 0; $i < 1000; $i++) {
-    $params = [
-        'index' => 'test',
-        'type' => 'test',
-        'id' => $i,
-        'client' => [
-            'future' => 'lazy'
-        ]
-    ];
-
-    $futures[] = $client->get($params);     //queue up the request
-}
-
-//wait() forces future resolution and will execute the underlying curl batch
-$futures[999]->wait();
-----
-
-=== Changing batch size
-
-The default batch size is 100, meaning 100 requests will queue up before the client forces futures to begin resolving
-(e.g. initiate a `curl_multi` call).  The batch size can be changed depending on your preferences.  The batch size
-is controllable via the `max_handles` setting when configuring the handler:
-
-[source,php]
-----
-$handlerParams = [
-    'max_handles' => 500
-];
-
-$defaultHandler = ClientBuilder::defaultHandler($handlerParams);
-
-$client = ClientBuilder::create()
-            ->setHandler($defaultHandler)
-            ->build();
-----
-
-This will change the behavior to wait on 500 queued requests before sending the batch.  Note, however, that forcing a
-future to resolve will cause the underlying curl batch to execute, regardless of if the batch is "full" or not.  In this
-example, only 499 requests are added to the queue...but the final future resolution will force the batch to flush
-anyway:
-
-[source,php]
-----
-$handlerParams = [
-    'max_handles' => 500
-];
-
-$defaultHandler = ClientBuilder::defaultHandler($handlerParams);
-
-$client = ClientBuilder::create()
-            ->setHandler($defaultHandler)
-            ->build();
-
-$futures = [];
-
-for ($i = 0; $i < 499; $i++) {
-    $params = [
-        'index' => 'test',
-        'type' => 'test',
-        'id' => $i,
-        'client' => [
-            'future' => 'lazy'
-        ]
-    ];
-
-    $futures[] = $client->get($params);     //queue up the request
-}
-
-// resolve the future, and therefore the underlying batch
-$body = $future[499]['body'];
-----
-
-=== Heterogeneous batches are OK
-
-It is possible to queue up heterogeneous batches of requests.  For example, you can queue up several GETs, indexing requests
-and a search:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$futures = [];
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-
-$futures['getRequest'] = $client->get($params);     // First request
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 2,
-    'body' => [
-        'field' => 'value'
-    ],
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-
-$futures['indexRequest'] = $client->index($params);       // Second request
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'body' => [
-        'query' => [
-            'match' => [
-                'field' => 'value'
-            ]
-        ]
-    ],
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-
-$futures['searchRequest'] = $client->search($params);      // Third request
-
-// Resolve futures...blocks until network call completes
-$searchResults = $futures['searchRequest']['hits'];
-
-// Should return immediately, since the previous future resolved the entire batch
-$doc = $futures['getRequest']['_source'];
-----
-
-=== Caveats to Future mode
-
-There are a few caveats to using future mode.  The biggest is also the most obvious: you need to deal with resolving the
-future yourself.  This is usually trivial, but can sometimes introduce unexpected complications.
-
-For example, if you resolve manually using `wait()`, you may need to call `wait()` several times if there were retries.
-This is because each retry will introduce another layer of wrapped futures, and each needs to be resolved to get the
-final result.
-
-This is not needed if you access values via the ArrayInterface however (e.g. `$response['hits']['hits']`), since
-FutureArrayInterface will automatically and fully resolve the future to provide values.
-
-Another caveat is that certain APIs will lose their "helper" functionality.  For example, "exists" APIs (e.g.
-`$client->exists()`, `$client->indices()->exists`, `$client->indices->templateExists()`, etc) typically return a true
-or false under normal operation.
-
-When operated in future mode, unwrapping of the future is left to your application,
-which means the client can no longer inspect the response and return a simple true/false.  Instead, you'll see the raw
-response from Elasticsearch and will have to take action appropriately.
-
-This also applies to `ping()`.
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/index-operations.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/index-operations.asciidoc
deleted file mode 100644
index 3108e14298fa2e61759fe022e65cfa558a94e38f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/index-operations.asciidoc
+++ /dev/null
@@ -1,274 +0,0 @@
-
-== Index Management Operations
-
-Index management operations allow you to manage the indices in your Elasticsearch cluster, such as creating, deleting and
-updating indices and their mappings/settings.
-
-=== Create an index
-
-The index operations are all contained under a distinct namespace, separated from other methods that are on the root
-client object.  As an example, let's create a new index:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$params = [
-    'index' => 'my_index'
-];
-
-// Create the index
-$response = $client->indices()->create($indexParams);
-----
-{zwsp} +
-
-You can specify any parameters that would normally be included in a new index creation API.  All parameters that
-would normally go in the request body are located in the 'body' parameter:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$params = [
-    'index' => 'my_index',
-    'body' => [
-        'settings' => [
-            'number_of_shards' => 3,
-            'number_of_replicas' => 2
-        ],
-        'mappings' => [
-            'my_type' => [
-                '_source' => [
-                    'enabled' => true
-                ],
-                'properties' => [
-                    'first_name' => [
-                        'type' => 'string',
-                        'analyzer' => 'standard'
-                    ],
-                    'age' => [
-                        'type' => 'integer'
-                    ]
-                ]
-            ]
-        ]
-    ]
-];
-
-
-// Create the index with mappings and settings now
-$response = $client->indices()->create($params);
-----
-{zwsp} +
-
-=== Create an index (advanced example)
-
-This is a more complicated example of creating an index, showing how to define analyzers, tokenizers, filters and
-index settings. Although essentially the same as the previous example, the more complicated example can be helpful
-for "real world" usage of the client, since this particular syntax is easy to mess up.
-
-[source,php]
-----
-$params = [
-    'index' => 'reuters',
-    'body' => [
-        'settings' => [ <1>
-            'number_of_shards' => 1,
-            'number_of_replicas' => 0,
-            'analysis' => [ <2>
-                'filter' => [
-                    'shingle' => [
-                        'type' => 'shingle'
-                    ]
-                ],
-                'char_filter' => [
-                    'pre_negs' => [
-                        'type' => 'pattern_replace',
-                        'pattern' => '(\\w+)\\s+((?i:never|no|nothing|nowhere|noone|none|not|havent|hasnt|hadnt|cant|couldnt|shouldnt|wont|wouldnt|dont|doesnt|didnt|isnt|arent|aint))\\b',
-                        'replacement' => '~$1 $2'
-                    ],
-                    'post_negs' => [
-                        'type' => 'pattern_replace',
-                        'pattern' => '\\b((?i:never|no|nothing|nowhere|noone|none|not|havent|hasnt|hadnt|cant|couldnt|shouldnt|wont|wouldnt|dont|doesnt|didnt|isnt|arent|aint))\\s+(\\w+)',
-                        'replacement' => '$1 ~$2'
-                    ]
-                ],
-                'analyzer' => [
-                    'reuters' => [
-                        'type' => 'custom',
-                        'tokenizer' => 'standard',
-                        'filter' => ['lowercase', 'stop', 'kstem']
-                    ]
-                ]
-            ]
-        ],
-        'mappings' => [ <3>
-            '_default_' => [    <4>
-                'properties' => [
-                    'title' => [
-                        'type' => 'string',
-                        'analyzer' => 'reuters',
-                        'term_vector' => 'yes',
-                        'copy_to' => 'combined'
-                    ],
-                    'body' => [
-                        'type' => 'string',
-                        'analyzer' => 'reuters',
-                        'term_vector' => 'yes',
-                        'copy_to' => 'combined'
-                    ],
-                    'combined' => [
-                        'type' => 'string',
-                        'analyzer' => 'reuters',
-                        'term_vector' => 'yes'
-                    ],
-                    'topics' => [
-                        'type' => 'string',
-                        'index' => 'not_analyzed'
-                    ],
-                    'places' => [
-                        'type' => 'string',
-                        'index' => 'not_analyzed'
-                    ]
-                ]
-            ],
-            'my_type' => [  <5>
-                'properties' => [
-                    'my_field' => [
-                        'type' => 'string'
-                    ]
-                ]
-            ]
-        ]
-    ]
-];
-$client->indices()->create($params);
-----
-<1> The top level `settings` contains config about the index (# of shards, etc) as well as analyzers
-<2> `analysis` is nested inside of `settings`, and contains tokenizers, filters, char filters and analyzers
-<3> `mappings` is another element nested inside of `settings`, and contains the mappings for various types
-<4> The `_default_` type is a dynamic template that is applied to all fields that don't have an explicit mapping
-<5> The `my_type` type is an example of a user-defined type that holds a single field, `my_field`
-
-
-=== Delete an index
-
-Deleting an index is very simple:
-
-[source,php]
-----
-$params = ['index' => 'my_index'];
-$response = $client->indices()->delete($params);
-----
-{zwsp} +
-
-=== Put Settings API
-The Put Settings API allows you to modify any index setting that is dynamic:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'body' => [
-        'settings' => [
-            'number_of_replicas' => 0,
-            'refresh_interval' => -1
-        ]
-    ]
-];
-
-$response = $client->indices()->putSettings($params);
-----
-{zwsp} +
-
-=== Get Settings API
-
-Get Settings API will show you the currently configured settings for one or more indexes:
-
-[source,php]
-----
-// Get settings for one index
-$params = ['index' => 'my_index'];
-$response = $client->indices()->getSettings($params);
-
-// Get settings for several indices
-$params = [
-    'index' => [ 'my_index', 'my_index2' ]
-];
-$response = $client->indices()->getSettings($params);
-----
-{zwsp} +
-
-=== Put Mappings API
-
-The Put Mappings API allows you to modify or add to an existing index's mapping.
-
-[source,php]
-----
-// Set the index and type
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type2',
-    'body' => [
-        'my_type2' => [
-            '_source' => [
-                'enabled' => true
-            ],
-            'properties' => [
-                'first_name' => [
-                    'type' => 'string',
-                    'analyzer' => 'standard'
-                ],
-                'age' => [
-                    'type' => 'integer'
-                ]
-            ]
-        ]
-    ]
-];
-
-// Update the index mapping
-$client->indices()->putMapping($params);
-----
-{zwsp} +
-
-=== Get Mappings API
-
-The Get Mappings API will return the mapping details about your indexes and types.  Depending on the mappings that you wish to retrieve, you can specify a number of combinations of index and type:
-
-[source,php]
-----
-// Get mappings for all indexes and types
-$response = $client->indices()->getMapping();
-
-// Get mappings for all types in 'my_index'
-$params = ['index' => 'my_index'];
-$response = $client->indices()->getMapping($params);
-
-// Get mappings for all types of 'my_type', regardless of index
-$params = ['type' => 'my_type' ];
-$response = $client->indices()->getMapping($params);
-
-// Get mapping 'my_type' in 'my_index'
-$params = [
-    'index' => 'my_index'
-    'type' => 'my_type'
-];
-$response = $client->indices()->getMapping($params);
-
-// Get mappings for two indexes
-$params = [
-    'index' => [ 'my_index', 'my_index2' ]
-];
-$response = $client->indices()->getMapping($params);
-----
-{zwsp} +
-
-=== Other APIs in the Indices Namespace
-There are a number of other APIs in the indices namespace that allow you to manage your elasticsearch indexes (add/remove templates, flush segments, close indexes, etc).
-
-If you use an IDE with autocompletion, you should be able to easily explore the indices namespace by typing:
-
-[source,php]
-----
-$client->indices()->
-----
-And perusing the list of available methods.  Alternatively, browsing the `\Elasticsearch\Namespaces\Indices.php` file will show you the full list of available method calls (as well as parameter lists in the comments for each method).
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/index.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/index.asciidoc
deleted file mode 100644
index 4403e2e2d964e7ae062fc943ca27188d12c734e4..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/index.asciidoc
+++ /dev/null
@@ -1,40 +0,0 @@
-
-= Elasticsearch-PHP
-
-include::overview.asciidoc[]
-
-include::quickstart.asciidoc[]
-
-include::installation.asciidoc[]
-
-include::configuration.asciidoc[]
-
-include::per-request-configuration.asciidoc[]
-
-include::futures.asciidoc[]
-
-include::php_json_objects.asciidoc[]
-
-include::index-operations.asciidoc[]
-
-include::crud.asciidoc[]
-
-include::search-operations.asciidoc[]
-
-include::namespaces.asciidoc[]
-
-include::security.asciidoc[]
-
-include::connection-pool.asciidoc[]
-
-include::selectors.asciidoc[]
-
-include::serializers.asciidoc[]
-
-include::php-version-requirement.asciidoc[]
-
-include::breaking-changes.asciidoc[]
-
-include::community.asciidoc[]
-
-include::build/classes.asciidoc[]
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/installation.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/installation.asciidoc
deleted file mode 100644
index f043b4d233d42a01f008008ff6e53ac0631798cd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/installation.asciidoc
+++ /dev/null
@@ -1,79 +0,0 @@
-== Installation
-
-Elasticsearch-php only has a three requirements that you need to worry about:
-
-* PHP 5.6.6 or higher
-* http://getcomposer.org[Composer]
-* http://php.net/manual/en/book.curl.php[ext-curl]: the Libcurl extension for PHP (see note below)
-* Native JSON Extensions (`ext-json`) 1.3.7 or higher
-
-The rest of the dependencies will automatically be downloaded and installed by Composer.  Composer is a package and dependency manager for PHP.  Installing elasticsearch-php with Composer is very easy
-
-[NOTE]
-.Libcurl can be replaced
-====
-The default HTTP handlers that ship with Elasticsearch-php require the PHP libcurl extension, but it is not technically
-required for the client to operate.  If you have a host that does not have libcurl installed, you can use an
-alternate HTTP handler based on PHP streams.  Performance _will_ suffer, as the libcurl extension is much faster
-====
-
-=== Version Matrix
-
-You need to match your version of Elasticsearch to the appropriate version of this library.
-
-The master branch will always track Elasticsearch master, but it is not recommended to use `dev-master` in your production code.
-
-[width="40%",options="header",frame="topbot"]
-|============================
-|Elasticsearch Version | Elasticsearch-PHP Branch
-| >= 5.0                | `5.0`
-| >= 1.0, <= 5.0        | `1.0`, `2.0`
-| <= 0.90.*             | `0.4`
-|============================
-
-=== Composer Installation
-
-* Include elasticsearch-php in your `composer.json` file.  If you are starting a new project, simply paste the following JSON snippet into a new file called `composer.json`.  If you have an existing project, include this requirement under the rest of requirements already present:
-+
-[source,json]
---------------------------
-{
-    "require": {
-        "elasticsearch/elasticsearch": "~5.0"
-    }
-}
---------------------------
-
-* Install the client with composer.  The first command download the `composer.phar` PHP package, and the second command invokes the installation.  Composer will automatically download any required dependencies, store them in a /vendor/ directory and build an autoloader.:
-+
-[source,shell]
---------------------------
-curl -s http://getcomposer.org/installer | php
-php composer.phar install --no-dev
---------------------------
-+
-More information about http://getcomposer.org/[Composer can be found at their website].
-
-* Finally, include the generated autoloader in your main project.  If your project is already based on Composer, the autoloader is likely already included somewhere and you don't need to add it again.  Finally, instantiate a new client:
-+
-[source,php]
---------------------------
-require 'vendor/autoload.php';
-
-$client = Elasticsearch\ClientBuilder::create()->build();
---------------------------
-+
-Client instantiation is performed with a static helper function `create()`.  This creates a ClientBuilder object,
-which helps you to set custom configurations.  When you are done configuring, you call the `build()` method to generate
-a `Client` object.  We'll discuss configuration more in the Configuration section
-
-
-=== --no-dev flag
-You'll notice that the installation command specified `--no-dev`.  This prevents Composer
-from installing the various testing and development dependencies.  For average users, there
-is no need to install the test suite.  In particular, the development dependencies include
-a full copy of Elasticsearch so that tests can be run against the REST specifications.  This
-is a rather large download for non-developers, hence the --no-dev flag
-
-If you wish to contribute to development of this library, just omit the `--no-dev` flag to
-be able to run tests.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/namespaces.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/namespaces.asciidoc
deleted file mode 100644
index 05a18d1fef518d454e5cfe7012528ce9f431343a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/namespaces.asciidoc
+++ /dev/null
@@ -1,82 +0,0 @@
-
-== Namespaces
-
-The client has a number of "namespaces", which generally expose administrative
-functionality.  The namespaces correspond to the various administrative endpoints
-in Elasticsearch.  This is a complete list of namespaces:
-
-
-[width="40%",options="header",frame="topbot"]
-|============================
-| Namespace  | Functionality
-| `indices()`  | Index-centric stats and info
-| `nodes()`    | Node-centric stats and info
-| `cluster()`  | Cluster-centric stats and info
-| `snapshot()` | Methods to snapshot/restore your cluster and indices
-| `cat()`      | Access to the Cat API (which is generally used standalone from the command line
-|============================
-
-Some methods are available in several different namespaces, which give you
-the same information but grouped into different contexts.  To see how these
-namespaces work, let's look at the `_stats` output:
-
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-// Index Stats
-// Corresponds to curl -XGET localhost:9200/_stats
-$response = $client->indices()->stats();
-
-// Node Stats
-// Corresponds to curl -XGET localhost:9200/_nodes/stats
-$response = $client->nodes()->stats();
-
-// Cluster Stats
-// Corresponds to curl -XGET localhost:9200/_cluster/stats
-$response = $client->cluster()->stats();
-----
-{zwsp} +
-
-As you can see, the same `stats()` call is made through three different
-namespaces.  Sometimes the methods require parameters.  These parameters work
-just like any other method in the library.
-
-For example, we can requests index stats about a specific index, or multiple
-indices:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-// Corresponds to curl -XGET localhost:9200/my_index/_stats
-$params['index'] = 'my_index';
-$response = $client->indices()->stats($params);
-
-// Corresponds to curl -XGET localhost:9200/my_index1,my_index2/_stats
-$params['index'] = array('my_index1', 'my_index2');
-$response = $client->indices()->stats($params);
-----
-{zwsp} +
-
-As another example, here is how you might add an alias to an existing index:
-
-[source,php]
-----
-$params['body'] = array(
-    'actions' => array(
-        array(
-            'add' => array(
-                'index' => 'myindex',
-                'alias' => 'myalias'
-            )
-        )
-    )
-);
-$client->indices()->updateAliases($params);
-----
-
-Notice how both the `stats` calls and the updateAlias took a variety of parameters,
-each according to what the particular API requires.  The `stats` API only requires
-an index name(s), while the `updateAlias` requires a body of actions.
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/overview.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/overview.asciidoc
deleted file mode 100644
index f2dda5aee0c96b2d18e524fd46d0c151832b8f59..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/overview.asciidoc
+++ /dev/null
@@ -1,8 +0,0 @@
-== Overview
-
-This is the official PHP client for Elasticsearch.  It is designed to be a very low-level client that does not stray from the REST API.
-
-All methods closely match the REST API, and furthermore, match the method structure of other language clients (ruby, python, etc).  We hope that this consistency makes it easy to get started with a client, and to seamlessly switch from one language to the next with minimal effort.
-
-The client is designed to be "unopinionated".  There are a few universal niceties added to the client (cluster state sniffing, round-robin requests, etc) but largely it is very barebones.  This was intentional.  We want a common base that more sophisticated libraries can build on top of.
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/per-request-configuration.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/per-request-configuration.asciidoc
deleted file mode 100644
index ad33ca98d57ce41a12ee1fe6f4cafebd5fe8d092..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/per-request-configuration.asciidoc
+++ /dev/null
@@ -1,295 +0,0 @@
-
-== Per-request configuration
-
-There are several configurations that can be set on a per-request basis, rather than at a connection- or client-level.
-These are specified as part of the request associative array.
-
-=== Ignoring exceptions
-The library attempts to throw exceptions for common problems.  These exceptions match the HTTP response code provided
-by Elasticsearch.  For example, attempting to GET a nonexistent document will throw a `MissingDocument404Exception`.
-
-Exceptions are a useful and consistent way to deal with problems like missing documents, syntax errors, version
-conflicts, etc.  But sometimes you want to deal with the response body rather than catch exceptions (often useful
-in test suites).
-
-If you need that behavior, you can configure an `ignore` parameter.  This should be configured in the `client` parameter
-of the reuqest array.  For example, this example will ignore the `MissingDocument404Exception`
-exception and instead return the JSON provided by Elasticsearch.
-
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index'  => 'test_missing',
-    'type'   => 'test',
-    'id'     => 1,
-    'client' => [ 'ignore' => 404 ] <1>
-];
-echo $client->get($params);
-
-> {"_index":"test_missing","_type":"test","_id":"1","found":false}
-----
-<1> This will ignore just the 404 missing exception
-
-You can specify multiple HTTP status codes to ignore, by providing an array of values:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index'  => 'test_missing',
-    'type'   => 'test',
-    'client' => [ 'ignore' => [400, 404] ] <1>
-];
-echo $client->get($params);
-
-> No handler found for uri [/test_missing/test/] and method [GET]
-
-----
-<1> `ignore` also accepts an array of exceptions to ignore. In this example,
-the `BadRequest400Exception` is being ignored
-
-
-It should be noted that the response is simply a string, which may or may not be encoded as JSON.  In the first example,
-the response body was a complete JSON object which could be decoded.  In the second example, it was simply a string.
-
-Since the client has no way of knowing what the exception response will contain, no attempts to decode it are taken.
-
-=== Providing custom query parameters
-
-Sometimes you need to provide custom query params, such as authentication tokens for a third-party plugin or proxy.
-All query parameters are white-listed in Elasticsearch-php, which is to protect you from specifying a param which is
-not accepted by Elasticsearch.
-
-If you need custom parameters, you need to bypass this whitelisting mechanism.  To do so, add them to the `custom`
-parameter as an array of values:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'parent' => 'abc',              // white-listed Elasticsearch parameter
-    'client' => [
-        'custom' => [
-            'customToken' => 'abc', // user-defined, not white listed, not checked
-            'otherToken' => 123
-        ]
-    ]
-];
-$exists = $client->exists($params);
-----
-
-
-=== Increasing the Verbosity of responses
-
-By default, the client will only return the response body.  If you require more information (e.g. stats about the transfer,
-headers, status codes, etc), you can tell the client to return a more verbose response.  This is enabled via the
-`verbose` parameter in the client options.
-
-Without verbosity, all you see is the response body:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1
-];
-$response = $client->get($params);
-print_r($response);
-
-
-Array
-(
-    [_index] => test
-    [_type] => test
-    [_id] => 1
-    [_version] => 1
-    [found] => 1
-    [_source] => Array
-        (
-            [field] => value
-        )
-
-)
-----
-
-With verbosity turned on, you will see all of the transfer stats:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'verbose' => true
-    ]
-];
-$response = $client->get($params);
-print_r($response);
-
-
-Array
-(
-    [transfer_stats] => Array
-        (
-            [url] => http://127.0.0.1:9200/test/test/1
-            [content_type] => application/json; charset=UTF-8
-            [http_code] => 200
-            [header_size] => 86
-            [request_size] => 51
-            [filetime] => -1
-            [ssl_verify_result] => 0
-            [redirect_count] => 0
-            [total_time] => 0.00289
-            [namelookup_time] => 9.7E-5
-            [connect_time] => 0.000265
-            [pretransfer_time] => 0.000322
-            [size_upload] => 0
-            [size_download] => 96
-            [speed_download] => 33217
-            [speed_upload] => 0
-            [download_content_length] => 96
-            [upload_content_length] => -1
-            [starttransfer_time] => 0.002796
-            [redirect_time] => 0
-            [redirect_url] =>
-            [primary_ip] => 127.0.0.1
-            [certinfo] => Array
-                (
-                )
-
-            [primary_port] => 9200
-            [local_ip] => 127.0.0.1
-            [local_port] => 62971
-        )
-
-    [curl] => Array
-        (
-            [error] =>
-            [errno] => 0
-        )
-
-    [effective_url] => http://127.0.0.1:9200/test/test/1
-    [headers] => Array
-        (
-            [Content-Type] => Array
-                (
-                    [0] => application/json; charset=UTF-8
-                )
-
-            [Content-Length] => Array
-                (
-                    [0] => 96
-                )
-
-        )
-
-    [status] => 200
-    [reason] => OK
-    [body] => Array
-        (
-            [_index] => test
-            [_type] => test
-            [_id] => 1
-            [_version] => 1
-            [found] => 1
-            [_source] => Array
-                (
-                    [field] => value
-                )
-        )
-)
-----
-
-=== Curl Timeouts
-
-It is possible to configure per-request curl timeouts via the `timeout` and `connect_timeout` parameters.  These
-control the client-side, curl timeouts.  The `connect_timeout` paramter controls how long curl should wait for the
-"connect" phase to finish, while the `timeout` parameter controls how long curl should wait for the entire request
-to finish.
-
-If either timeout expires, curl will close the connection and return an error.  Both parameters should be specified
-in seconds.
-
-Note: client-side timeouts *do not* mean that Elasticsearch aborts the request.  Elasticsearch will continue executing
-the request until it completes.  In the case of a slow query or bulk request, the operation will continue executing
-"in the background", unknown to your client.  If your client kills connections rapidly with a timeout, only to immediately
-execute another request, it is possible to swamp the server with many connections because there is no "back-pressure" on the
-client.  In these situations, you will see the appropriate threadpool queue growing in size, and may start receiving
-`EsRejectedExecutionException` exceptions from Elasticsearch when the queue finally reaches capacity.
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'timeout' => 10,        // ten second timeout
-        'connect_timeout' => 10
-    ]
-];
-$response = $client->get($params);
-----
-
-=== Enabling Future Mode
-
-The client supports asynchronous, batch processing of requests.  This is enabled (if your HTTP handler supports it) on
-a per-request basis via the `future` parameter in the client options:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'future' => 'lazy'
-    ]
-];
-$future = $client->get($params);
-$results = $future->wait();       // resolve the future
-----
-
-Future mode supports two options: `true` or `'lazy'`.  For more details about how asynchronous execution functions, and
-how to work with the results, see the dedicated page on <<_future_mode>>.
-
-=== SSL Encryption
-
-Normally, you will specify SSL configurations when you create the client (see <<_security>> for more details), since encryption typically
-applies to all requests. However, it is possible to configure on a per-request basis too if you need that functionality.
-For example, if you  need to use a self-signed cert on a specific request, you can specify it via the `verify` parameter
-in the client options:
-
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-
-$params = [
-    'index' => 'test',
-    'type' => 'test',
-    'id' => 1,
-    'client' => [
-        'verify' => 'path/to/cacert.pem'      //Use a self-signed certificate
-    ]
-];
-$result = $client->get($params);
-----
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/php-version-requirement.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/php-version-requirement.asciidoc
deleted file mode 100644
index b45fb5aaf91f443c9cb7b6707af9fccfd367fc1a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/php-version-requirement.asciidoc
+++ /dev/null
@@ -1,4 +0,0 @@
-== PHP Version Requirement
-
-Version 5.0 of Elasticsearch-PHP requires PHP version 5.6.6 or higher. In addition, it requires the native JSON
-extension to be version 1.3.7 or higher.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/php_json_objects.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/php_json_objects.asciidoc
deleted file mode 100644
index b237bf4fa7bc066ed7382b7fc06edee40109e165..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/php_json_objects.asciidoc
+++ /dev/null
@@ -1,161 +0,0 @@
-[[php_json_objects]]
-== Dealing with JSON Arrays and Objects in PHP
-
-A common source of confusion with the client revolves around JSON arrays and objects, and how to specify them in PHP.
-In particular, problems are caused by empty objects and arrays of objects.  This page will show you some common patterns
-used in Elasticsearch JSON API, and how to convert that to a PHP representation
-
-=== Empty Objects
-
-The Elasticsearch API uses empty JSON objects in several locations, and this can cause problems for PHP.  Unlike other
-languages, PHP does not have a "short" notation for empty objects and so many developers are unaware how to specify
-an empty object.
-
-Consider adding a Highlight to a query:
-
-[source,json]
-----
-{
-    "query" : {
-        "match" : {
-            "content" : "quick brown fox"
-        }
-    },
-    "highlight" : {
-        "fields" : {
-            "content" : {} <1>
-        }
-    }
-}
-----
-<1> This empty JSON object is what causes problems.
-
-The problem is that PHP will automatically convert `"content" : {}` into `"content" : []`, which is no longer valid
-Elasticsearch DSL.  We need to tell PHP that the empty object is explicitly an object, not an array.  To define this
-query in PHP, you would do:
-
-[source,json]
-----
-$params['body'] = array(
-    'query' => array(
-        'match' => array(
-            'content' => 'quick brown fox'
-        )
-    ),
-    'highlight' => array(
-        'fields' => array(
-            'content' => new \stdClass() <1>
-        )
-    )
-);
-$results = $client->search($params);
-----
-<1> We use the generic PHP stdClass object to represent an empty object.  The JSON will now encode correctly.
-
-By using an explicit stdClass object, we can force the `json_encode` parser to correctly output an empty object, instead
-of an empty array.  Sadly, this verbose solution is the only way to acomplish the goal in PHP...there is no "short"
-version of an empty object.
-
-=== Arrays of Objects
-
-Another common pattern in Elasticsearch DSL is an array of objects.  For example, consider adding a sort to your query:
-
-[source,json]
-----
-{
-    "query" : {
-        "match" : { "content" : "quick brown fox" }
-    },
-    "sort" : [  <1>
-        {"time" : {"order" : "desc"}},
-        {"popularity" : {"order" : "desc"}}
-    ]
-}
-----
-<1> "sort" contains an array of JSON objects
-
-This arrangement is *very* common, but the construction in PHP can be tricky since it requires nesting arrays.  The
-verbosity of PHP tends to obscure what is actually going on.  To construct an array of objects, you actually need
-an array of arrays:
-
-[source,json]
-----
-$params['body'] = array(
-    'query' => array(
-        'match' => array(
-            'content' => 'quick brown fox'
-        )
-    ),
-    'sort' => array(    <1>
-        array('time' => array('order' => 'desc')),  <2>
-        array('popularity' => array('order' => 'desc')) <3>
-    )
-);
-$results = $client->search($params);
-----
-<1> This array encodes the `"sort" : []` array
-<2> This array encodes the `{"time" : {"order" : "desc"}}` object
-<3> This array encodes the `{"popularity" : {"order" : "desc"}}` object
-
-If you are on PHP 5.4+, I would strongly encourage you to use the short array syntax.  It makes these nested arrays
-much simpler to read:
-
-[source,json]
-----
-$params['body'] = [
-    'query' => [
-        'match' => [
-            'content' => 'quick brown fox'
-        ]
-    ],
-    'sort' => [
-        ['time' => ['order' => 'desc']],
-        ['popularity' => ['order' => 'desc']]
-    ]
-];
-$results = $client->search($params);
-----
-
-=== Arrays of empty objects
-
-Occasionally, you'll encounter DSL that requires both of the previous patterns.  The function score query is a good
-example, it sometimes requires an array of objects, and some of those objects might be empty JSON objects.
-
-Given this query:
-[source,json]
-----
-{
-   "query":{
-      "function_score":{
-         "functions":[
-            {
-               "random_score":{}
-            }
-         ],
-         "boost_mode":"replace"
-      }
-   }
-}
-----
-
-We can build it using the following PHP code:
-
-
-[source,json]
-----
-$params['body'] = array(
-    'query' => array(
-        'function_score' => array(
-            'functions' => array(  <1>
-                array(  <2>
-                    'random_score' => new \stdClass() <3>
-                )
-            )
-        )
-    )
-);
-$results = $client->search($params);
-----
-<1> This encodes the array of objects: `"functions" : []`
-<2> This encodes an object inside the array: `{ "random_score": {} }`
-<3> This encodes the empty JSON object: `"random_score": {}`
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/quickstart.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/quickstart.asciidoc
deleted file mode 100644
index 61aa73c016549deb5754c90f15830f3cb6ea76db..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/quickstart.asciidoc
+++ /dev/null
@@ -1,269 +0,0 @@
-
-== Quickstart
-
-This section will give you a quick overview of the client and how the major functions work.
-
-=== Installation
-
-* Include elasticsearch-php in your `composer.json` file:
-+
-[source,json]
-----------------------------
-{
-    "require": {
-        "elasticsearch/elasticsearch": "~5.0"
-    }
-}
-----------------------------
-
-* Install the client with composer:
-+
-[source,shell]
-----------------------------
-curl -s http://getcomposer.org/installer | php
-php composer.phar install --no-dev
-----------------------------
-
-* Include the autoloader in your main project (if you haven't already), and instantiate a new client :
-+
-[source,php]
-----------------------------
-require 'vendor/autoload.php';
-
-use Elasticsearch\ClientBuilder;
-
-$client = ClientBuilder::create()->build();
-----------------------------
-
-
-=== Index a document
-
-In elasticsearch-php, almost everything is configured by associative arrays.  The REST endpoint, document and optional parameters - everything is an associative array.
-
-To index a document, we need to specify four pieces of information: index, type, id and a document body. This is done by
-constructing an associative array of key:value pairs.  The request body is itself an associative array with key:value pairs
-corresponding to the data in your document:
-
-[source,php]
-----------------------------
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id',
-    'body' => ['testField' => 'abc']
-];
-
-$response = $client->index($params);
-print_r($response);
-----------------------------
-
-The response that you get back indicates the document was created in the index that you specified.  The response is an
-associative array containing a decoded version of the JSON that Elasticsearch returns:
-
-[source,php]
-----------------------------
-Array
-(
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 1
-    [created] => 1
-)
-
-----------------------------
-
-=== Get a document
-
-Let's get the document that we just indexed.  This will simply return the document:
-
-[source,php]
-----------------------------
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$response = $client->get($params);
-print_r($response);
-----------------------------
-
-The response contains some metadata (index, type, etc) as well as a `_source` field...this is the original document
-that you sent to Elasticsearch.
-
-[source,php]
-----------------------------
-Array
-(
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 1
-    [found] => 1
-    [_source] => Array
-        (
-            [testField] => abc
-        )
-
-)
-----------------------------
-
-=== Search for a document
-
-Searching is a hallmark of elasticsearch, so let's perform a search.  We are going to use the Match query as a demonstration:
-
-[source,php]
-----------------------------
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'match' => [
-                'testField' => 'abc'
-            ]
-        ]
-    ]
-];
-
-$response = $client->search($params);
-print_r($response);
-----------------------------
-
-The response is a little different from the previous responses.  We see some metadata (`took`, `timed_out`, etc) and
-an array named `hits`.  This represents your search results.  Inside of `hits` is another array named `hits`, which contains
-individual search results:
-
-[source,php]
-----------------------------
-Array
-(
-    [took] => 1
-    [timed_out] =>
-    [_shards] => Array
-        (
-            [total] => 5
-            [successful] => 5
-            [failed] => 0
-        )
-
-    [hits] => Array
-        (
-            [total] => 1
-            [max_score] => 0.30685282
-            [hits] => Array
-                (
-                    [0] => Array
-                        (
-                            [_index] => my_index
-                            [_type] => my_type
-                            [_id] => my_id
-                            [_score] => 0.30685282
-                            [_source] => Array
-                                (
-                                    [testField] => abc
-                                )
-                        )
-                )
-        )
-)
-----------------------------
-
-=== Delete a document
-
-Alright, let's go ahead and delete the document that we added previously:
-
-[source,php]
-----------------------------
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'id' => 'my_id'
-];
-
-$response = $client->delete($params);
-print_r($response);
-----------------------------
-
-You'll notice this is identical syntax to the `get` syntax.  The only difference is the operation: `delete` instead of
-`get`.  The response will confirm the document was deleted:
-
-[source,php]
-----------------------------
-Array
-(
-    [found] => 1
-    [_index] => my_index
-    [_type] => my_type
-    [_id] => my_id
-    [_version] => 2
-)
-----------------------------
-
-
-=== Delete an index
-
-Due to the dynamic nature of elasticsearch, the first document we added automatically built an index with some default settings.  Let's delete that index because we want to specify our own settings later:
-
-[source,php]
-----------------------------
-$deleteParams = [
-    'index' => 'my_index'
-];
-$response = $client->indices()->delete($deleteParams);
-print_r($response);
-----------------------------
-
-The response:
-
-
-[source,php]
-----------------------------
-Array
-(
-    [acknowledged] => 1
-)
-----------------------------
-
-=== Create an index
-
-Now that we are starting fresh (no data or index), let's add a new index with some custom settings:
-
-[source,php]
-----------------------------
-$params = [
-    'index' => 'my_index',
-    'body' => [
-        'settings' => [
-            'number_of_shards' => 2,
-            'number_of_replicas' => 0
-        ]
-    ]
-];
-
-$response = $client->indices()->create($params);
-print_r($response);
-----------------------------
-
-Elasticsearch will now create that index with your chosen settings, and return an acknowledgement:
-
-[source,php]
-----------------------------
-Array
-(
-    [acknowledged] => 1
-)
-----------------------------
-
-=== Wrap up
-
-That was just a crash-course overview of the client and it's syntax.  If you are familiar with elasticsearch, you'll
-notice that the methods are named just like REST endpoints.
-
-You'll also notice that the client is configured in a manner that facilitates easy discovery via your IDE.  All core
-actions are available under the `$client` object (indexing, searching, getting, etc).  Index and cluster management
-are located under the `$client->indices()` and `$client->cluster()` objects, respectively.
-
-Check out the rest of the Documentation to see how the entire client works.
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/search-operations.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/search-operations.asciidoc
deleted file mode 100644
index d45ca847be25736173e85a8ad5da9d0808266264..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/search-operations.asciidoc
+++ /dev/null
@@ -1,270 +0,0 @@
-== Search Operations
-
-Well...it isn't called elasticsearch for nothing!  Let's talk about search operations in the client.
-
-The client gives you full access to every query and parameter exposed by the REST API, following the naming scheme as
-much as possible. Let's look at a few examples so you can become familiar with the syntax.
-
-=== Match Query
-
-Here is a standard curl for a Match query:
-
-[source,shell]
-----
-curl -XGET 'localhost:9200/my_index/my_type/_search' -d '{
-    "query" : {
-        "match" : {
-            "testField" : "abc"
-        }
-    }
-}'
-----
-{zwsp} +
-
-And here is the same query constructed in the client:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'match' => [
-                'testField' => 'abc'
-            ]
-        ]
-    ]
-];
-
-$results = $client->search($params);
-----
-{zwsp} +
-
-Notice how the structure and layout of the PHP array is identical to that of the JSON request body.  This makes it very
-simple to convert JSON examples into PHP.  A quick method to check your PHP array (for more complex examples) is to
-encode it back to JSON and check by eye:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'match' => [
-                'testField' => 'abc'
-            ]
-        ]
-    ]
-];
-
-print_r(json_encode($params['body']));
-
-
-{"query":{"match":{"testField":"abc"}}}
-----
-{zwsp} +
-
-
-.Using Raw JSON
-****
-Sometimes it is convenient to use raw JSON for testing purposes, or when migrating from a different system.  You can
-use raw JSON as a string in the body, and the client will detect this automatically:
-
-[source,php]
-----
-$json = '{
-    "query" : {
-        "match" : {
-            "testField" : "abc"
-        }
-    }
-}';
-
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => $json
-];
-
-$results = $client->search($params);
-----
-****
-{zwsp} +
-
-Search results follow the same format as Elasticsearch search response, the only difference is that the JSON response is
-serialized back into PHP arrays. Working with the search results is as simple as iterating over the array values:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'match' => [
-                'testField' => 'abc'
-            ]
-        ]
-    ]
-];
-
-$results = $client->search($params);
-
-$milliseconds = $results['took'];
-$maxScore     = $results['hits']['max_score'];
-
-$score = $results['hits']['hits'][0]['_score'];
-$doc   = $results['hits']['hits'][0]['_source'];
-----
-{zwsp} +
-
-=== Bool Queries
-
-Bool queries can be easily constructed using the client. For example, this query:
-[source,shell]
-----
-curl -XGET 'localhost:9200/my_index/my_type/_search' -d '{
-    "query" : {
-        "bool" : {
-            "must": [
-                {
-                    "match" : { "testField" : "abc" }
-                },
-                {
-                    "match" : { "testField2" : "xyz" }
-                }
-            ]
-        }
-    }
-}'
-----
-{zwsp} +
-
-Would be structured like this (Note the position of the square brackets):
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'bool' => [
-                'must' => [
-                    [ 'match' => [ 'testField' => 'abc' ] ],
-                    [ 'match' => [ 'testField2' => 'xyz' ] ],
-                ]
-            ]
-        ]
-    ]
-];
-
-$results = $client->search($params);
-----
-{zwsp} +
-
-Notice that the `must` clause accepts an array of arrays.  This will be serialized into an array of JSON objects internally,
-so the final resulting output will be identical to the curl example.  For more details about arrays vs objects in PHP,
-see <<php_json_objects, Dealing with JSON Arrays and Objects in PHP>>.
-
-=== A more complicated example
-
-Let's construct a slightly more complicated example: a boolean query that contains both a filter and a query.
-This is a very common activity in elasticsearch queries, so it will be a good demonstration.
-
-The curl version of the query:
-
-[source,shell]
-----
-curl -XGET 'localhost:9200/my_index/my_type/_search' -d '{
-    "query" : {
-        "bool" : {
-            "filter" : {
-                "term" : { "my_field" : "abc" }
-            },
-            "query" : {
-                "match" : { "my_other_field" : "xyz" }
-            }
-        }
-    }
-}'
-----
-{zwsp} +
-
-And in PHP:
-
-[source,php]
-----
-$params = [
-    'index' => 'my_index',
-    'type' => 'my_type',
-    'body' => [
-        'query' => [
-            'bool' => [
-                'filter' => [
-                    'term' => [ 'my_field' => 'abc' ]
-                ],
-                'query' => [
-                    'match' => [ 'my_other_field' => 'xyz' ]
-                ]
-            ]
-        ]
-    ]
-];
-
-
-$results = $client->search($params);
-----
-{zwsp} +
-
-
-=== Scan/Scroll
-
-The Scan/Scroll functionality of Elasticsearch is similar to search, but different in many ways.  It works by executing a search query with a `search_type` of `scan`.  This initiates a "scan window" which will remain open for the duration of the scan.  This allows proper, consistent pagination.
-
-Once a scan window is open, you may start _scrolling) over that window.  This returns results matching your query...but returns them in random order.  This random ordering is important to performance.  Deep pagination is expensive when you need to maintain a sorted, consistent order across shards.  By removing this obligation, Scan/Scroll can efficiently export all the data from your index.
-
-This is an example which can be used as a template for more advanced operations:
-
-[source,php]
-----
-$client = ClientBuilder::create()->build();
-$params = [
-    "search_type" => "scan",    // use search_type=scan
-    "scroll" => "30s",          // how long between scroll requests. should be small!
-    "size" => 50,               // how many results *per shard* you want back
-    "index" => "my_index",
-    "body" => [
-        "query" => [
-            "match_all" => []
-        ]
-    ]
-];
-
-$docs = $client->search($params);   // Execute the search
-$scroll_id = $docs['_scroll_id'];   // The response will contain no results, just a _scroll_id
-
-// Now we loop until the scroll "cursors" are exhausted
-while (\true) {
-
-    // Execute a Scroll request
-    $response = $client->scroll([
-            "scroll_id" => $scroll_id,  //...using our previously obtained _scroll_id
-            "scroll" => "30s"           // and the same timeout window
-        ]
-    );
-
-    // Check to see if we got any search hits from the scroll
-    if (count($response['hits']['hits']) > 0) {
-        // If yes, Do Work Here
-
-        // Get new scroll_id
-        // Must always refresh your _scroll_id!  It can change sometimes
-        $scroll_id = $response['_scroll_id'];
-    } else {
-        // No results, scroll cursor is empty.  You've exported all the data
-        break;
-    }
-}
-----
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/security.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/security.asciidoc
deleted file mode 100644
index b4484fbe2dc5416952b1103d8ba61ee294561723..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/security.asciidoc
+++ /dev/null
@@ -1,115 +0,0 @@
-
-== Security
-
-The Elasticsearch-PHP client supports two security features: HTTP Authentication and SSL encryption.
-
-=== HTTP Authentication
-
-If your Elasticsearch server is protected by HTTP Authentication, you need to provide the credentials to ES-PHP so
-that requests can be authenticated server-side.  Authentication credentials are provided as part of the host array
-when instantiating the client:
-
-[source,php]
-----
-$hosts = [
-    'http://user:pass@localhost:9200',       // HTTP Basic Authentication
-    'http://user2:pass2@other-host.com:9200' // Different credentials on different host
-];
-
-$client = ClientBuilder::create()
-                    ->setHosts($hosts)
-                    ->build();
-----
-
-Credentials are provided per-host, which allows each host to have their own set of credentials.  All requests sent to the
-cluster will use the appropriate credentials depending on the node being talked to.
-
-=== SSL Encryption
-
-Configuring SSL is a little more complex.  You need to identify if your certificate has been signed by a public
-Certificate Authority (CA), or if it is a self-signed certificate.
-
-[NOTE]
-.A note on libcurl version
-=================
-If you believe the client is configured to correctly use SSL, but it simply is not working, check your libcurl
-version.  On certain platforms, various features may or may not be available depending on version number of libcurl.
-For example, the `--cacert` option was not added to the OSX version of libcurl until version 7.37.1.  The `--cacert`
-option is equivalent to PHP's `CURLOPT_CAINFO` constant, meaning that custom certificate paths will not work on lower
-versions.
-
-If you are encountering problems, update your libcurl version and/or check the http://curl.haxx.se/changes.html[curl changelog].
-=================
-
-==== Public CA Certificates
-
-If your certificate has been signed by a public Certificate Authority and your server has up-to-date root certificates,
-you only need to use `https` in the host path.  The client will automatically verify SSL certificates:
-
-[source,php]
-----
-$hosts = [
-    'https://localhost:9200' <1>
-];
-
-$client = ClientBuilder::create()
-                    ->setHosts($hosts)
-                    ->build();
-----
-<1> Note that `https` is used, not `http`
-
-
-If your server has out-dated root certificates, you may need to use a certificate bundle.  For PHP clients, the best
-way is to use https://github.com/Kdyby/CurlCaBundle[Kdyby/CurlCaBundle].  Once installed, you need to tell the client to
-use your certificates instead of the system-wide bundle.  To do this, specify the path to verify:
-
-
-[source,php]
-----
-$hosts = ['https://localhost:9200'];
-$caBundle = \Kdyby\CurlCaBundle\CertificateHelper::getCaInfoFile();
-
-$client = ClientBuilder::create()
-                    ->setHosts($hosts)
-                    ->setSSLVerification($caBundle)
-                    ->build();
-----
-
-==== Self-signed Certificates
-
-Self-signed certificates are certs that have not been signed by a public CA.  They are signed by your own organization.
-Self-signed certificates are often used for internal purposes, when you can securely spread the root certificate
-yourself.  It should not be used when being exposed to public consumers, since this leaves the client vulnerable to
-man-in-the-middle attacks.
-
-If you are using a self-signed certificate, you need to provide the certificate to the client.  This is the same syntax
-as specifying a new root bundle, but instead you point to your certificate:
-
-[source,php]
-----
-$hosts = ['https://localhost:9200'];
-$myCert = 'path/to/cacert.pem';
-
-$client = ClientBuilder::create()
-                    ->setHosts($hosts)
-                    ->setSSLVerification($myCert)
-                    ->build();
-----
-
-
-=== Using Authentication with SSL
-
-It is possible to use HTTP authentication with SSL.  Simply specify `https` in the URI, configure SSL settings as
-required and provide authentication credentials.  For example, this snippet will authenticate using Basic HTTP auth
-and a self-signed certificate:
-
-[source,php]
-----
-$hosts = ['https://user:pass@localhost:9200'];
-$myCert = 'path/to/cacert.pem';
-
-$client = ClientBuilder::create()
-                    ->setHosts($hosts)
-                    ->setSSLVerification($myCert)
-                    ->build();
-----
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/selectors.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/selectors.asciidoc
deleted file mode 100644
index f091c1f603222c923db88bf5769e2149c2382207..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/selectors.asciidoc
+++ /dev/null
@@ -1,110 +0,0 @@
-
-== Selectors
-
-The connection pool maintains the list of connections, and decides when nodes should transition from alive to dead (and
-vice versa).  It has no logic to choose connections, however.  That job belongs to the Selector class.
-
-The selector's job is to return a single connection from a provided array of connections.  Like the Connection Pool,
-there are several implementations to choose from.
-
-=== RoundRobinSelector (Default)
-
-This selector returns connections in a round-robin fashion.  Node #1 is selected on the first request, Node #2 on
-the second request, etc.  This ensures an even load of traffic across your cluster.  Round-robin'ing happens on a
-per-request basis (e.g. sequential requests go to different nodes).
-
-The `RoundRobinSelector` is default, but if you wish to explicitily configure it you can do:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSelector('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== StickyRoundRobinSelector
-
-This selector is "sticky", in that it prefers to reuse the same connection repeatedly.  For example, Node #1 is chosen
-on the first request.  Node #1 will continue to be re-used for each subsequent request until that node fails.  Upon failure,
-the selector will round-robin to the next available node, then "stick" to that node.
-
-This is an ideal strategy for many PHP scripts.  Since PHP scripts are shared-nothing and tend to exit quickly, creating
-new connections for each request is often a sub-optimal strategy and introduces a lot of overhead.  Instead, it is
-better to "stick" to a single connection for the duration of the script.
-
-By default, this selector will randomize the hosts upon initialization, which will still guarantee an even distribution
-of load across the cluster.  It changes the round-robin dynamics from per-request to per-script.
-
-If you are using <<_future_mode>>, the "sticky" behavior of this selector will be non-ideal, since all parallel requests
-will go to the same node instead of multiple nodes in your cluster.  When using future mode, the default `RoundRobinSelector`
-should be preferred.
-
-If you wish to use this selector, you may do so with:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSelector('\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector')
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== RandomSelector
-
-This selector simply returns a random node, regardless of state.  It is generally just for testing.
-
-If you wish to use this selector, you may do so with:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSelector('\Elasticsearch\ConnectionPool\Selectors\RandomSelector')
-            ->build();
-----
-
-Note that the implementation is specified via a namespace path to the class.
-
-=== Custom Selector
-
-You can implement your own custom selector.  Custom selectors must implement `SelectorInterface`
-
-[source,php]
-----
-namespace MyProject\Selectors;
-
-use Elasticsearch\Connections\ConnectionInterface;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface
-
-class MyCustomSelector implements SelectorInterface
-{
-
-    /**
-     * Selects the first connection
-     *
-     * @param array $connections Array of Connection objects
-     *
-     * @return ConnectionInterface
-     */
-    public function select($connections)
-    {
-        // code here
-    }
-
-}
-----
-{zwsp} +
-
-You can then use your custom selector either via object injection or namespace instantiation:
-
-[source,php]
-----
-$mySelector = new MyCustomSelector();
-
-$client = ClientBuilder::create()
-            ->setSelector($mySelector)                             // object injection
-            ->setSelector('\MyProject\Selectors\FirstSelector')    // or namespace
-            ->build();
-----
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/docs/serializers.asciidoc b/apps/maarch_entreprise/tools/elasticsearch-php/docs/serializers.asciidoc
deleted file mode 100644
index 4b90fd530e44e435f9bb1216068230f44677d17f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/docs/serializers.asciidoc
+++ /dev/null
@@ -1,167 +0,0 @@
-
-== Serializers
-
-The client has three serializers available.  You will most likely never need
-to change the serializer, unless you have special requirements or are
-implementing a new protocol.
-
-The job of the serializer is to encode the outgoing request body and decode
-the incoming response body.  In 99% of cases, this is a simple conversion
-to/from JSON.
-
-The default serializer is the `SmartSerializer`
-
-=== SmartSerializer
-==== Serialize()
-The `SmartSerializer` inspects the data to be encoded.  If the request body
-is provided as a string, it is passed directly to Elasticsearch as a string.
-This allows users to provide raw JSON, or raw strings for certain endpoints that
-dont have structure (such as the Analyze endpoint).
-
-If the data is an array, it is converted to json.  If the data provided was an
-empty array, the serializer manually converts the JSON from an empty array (`[]`)
-to an empty object (`{}`) so that it is valid JSON for Elasticsearch request
-bodies.
-
-==== Deserialize()
-When decoding the response body, the `SmartSerializer` introspects the
-`content_type` headers to determine the appropriate encoding.  If the data is
-encoded as JSON, it is decoded into an array using `json_decode`.  Otherwise,
-it is returned as a string.
-
-This functionality is required to cooperate with endpoints such as the `Cat`
-endpoints, which return tabular text instead of JSON.
-
-==== Selecting the SmartSerializer
-
-The SmartSerializer is selected by default, but if you wish to manually configure it for explicitness, you can
-do so by using the `setSerializer()` method on the ClientBuilder object:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSerializer('\Elasticsearch\Serializers\SmartSerializer');
-            ->build();
-----
-
-Note that the serializer is configured by specifying a namespace path to the serializer.
-
-=== ArrayToJSONSerializer
-==== Serialize()
-The `ArrayToJSONSerializer` inspects the data to be encoded.  If the request body
-is provided as a string, it is passed directly to Elasticsearch as a string.
-This allows users to provide raw JSON, or raw strings for certain endpoints that
-dont have structure (such as the Analyze endpoint).
-
-If the data is an array, it is converted to json.  If the data provided was an
-empty array, the serializer manually converts the JSON from an empty array (`[]`)
-to an empty object (`{}`) so that it is valid JSON for Elasticsearch request
-bodies.
-
-==== Deserialize()
-When decoding the response body, everything is decoded to JSON from JSON.  If
-the data is not valid JSON, `null` will be returned.
-
-==== Selecting the ArrayToJSONSerializer
-
-You can select  `ArrayToJSONSerializer` by using the `setSerializer()` method on the ClientBuilder object:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSerializer('\Elasticsearch\Serializers\ArrayToJSONSerializer');
-            ->build();
-----
-
-Note that the serializer is configured by specifying a namespace path to the serializer.
-
-=== EverythingToJSONSerializer
-==== Serialize()
-The `EverythingToJSONSerializer` tries to convert everything to JSON.
-
-If the data provided was an empty array, the serializer manually converts the
-JSON from an empty array (`[]`) to an empty object (`{}`) so that it is valid
-JSON for Elasticsearch request bodies.
-
-If the data was not an array and/or not convertible to JSON, the method returns
-`null`.
-
-==== Deserialize()
-When decoding the response body, everything is decoded to JSON from JSON.  If
-the data is not valid JSON, `null` will be returned.
-
-==== Selecting the EverythingToJSONSerializer
-
-You can select  `EverythingToJSONSerializer` by using the `setSerializer()` method on the ClientBuilder object:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSerializer('\Elasticsearch\Serializers\EverythingToJSONSerializer');
-            ->build();
-----
-
-Note that the serializer is configured by specifying a namespace path to the serializer.
-
-=== Implementing your own Serializer
-If you want to use your own custom serializer, you need to implement the `SerializerInterface` interface.  Please
-keep in mind that the client uses a single Serializer object for all endpoints and all connections.
-
-
-[source,php]
-----
-class MyCustomSerializer implements SerializerInterface
-{
-
-    /**
-     * Serialize request body
-     *
-     * @param string|array $data Request body
-     *
-     * @return string
-     */
-    public function serialize($data)
-    {
-        // code here
-    }
-
-    /**
-     * Deserialize response body
-     *
-     * @param string $data Response body
-     * @param array  $headers Response Headers
-     *
-     * @return array|string
-     */
-    public function deserialize($data, $headers)
-    {
-        // code here
-    }
-}
-----
-{zwsp} +
-
-To then use your custom serializer, you can specify the namespace path in the `setSerializer()` method of the ClientBuilder
-object:
-
-[source,php]
-----
-$client = ClientBuilder::create()
-            ->setSerializer('\MyProject\Serializers\MyCustomSerializer');
-            ->build();
-----
-
-Alternatively, if your serializer has a constructor or further initialization that should occur before given to the
-client, you can instantiate an object and provide that instead:
-
-[source,php]
-----
-$mySerializer = new MyCustomSerializer($a, $b, $c);
-$mySerializer->setFoo("bar");
-
-$client = ClientBuilder::create()
-            ->setSerializer($mySerializer);
-            ->build();
-----
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/phpunit-integration.xml b/apps/maarch_entreprise/tools/elasticsearch-php/phpunit-integration.xml
deleted file mode 100644
index e7cd6ddf33ee7e7c29207cdd587eb77777d33695..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/phpunit-integration.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<phpunit
-        bootstrap="tests/bootstrap.php"
-        colors="true"
-        convertNoticesToExceptions="true"
-        convertWarningsToExceptions="true"
-        convertErrorsToExceptions="true"
-        syntaxCheck="true"
-        verbose="true"
->
-    <php>
-        <env name="ES_TEST_HOST" value="http://localhost:9200"/>
-    </php>
-    <testsuites>
-        <testsuite>
-            <file>tests/Elasticsearch/Tests/YamlRunnerTest.php</file>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/phpunit.xml b/apps/maarch_entreprise/tools/elasticsearch-php/phpunit.xml
deleted file mode 100644
index 841f48eb3cf8ff6a4bcac113065f4214dd678277..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/phpunit.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<phpunit
-        bootstrap="tests/bootstrap.php"
-        colors="true"
-        convertNoticesToExceptions="true"
-        convertWarningsToExceptions="true"
-        convertErrorsToExceptions="true"
-        syntaxCheck="true"
-        verbose="true"
->
-    <php>
-        <env name="ES_TEST_HOST" value="http://localhost:9200"/>
-    </php>
-    <testsuites>
-        <testsuite>
-            <directory>tests</directory>
-            <exclude>tests/Elasticsearch/Tests/YamlRunnerTest.php</exclude>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Client.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Client.php
deleted file mode 100644
index bfd7712344a8cb9558b0a627dc79dd1b41303dd0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Client.php
+++ /dev/null
@@ -1,1507 +0,0 @@
-<?php
-
-namespace Elasticsearch;
-
-use Elasticsearch\Common\Exceptions\BadMethodCallException;
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Elasticsearch\Common\Exceptions\BadRequest400Exception;
-use Elasticsearch\Common\Exceptions\Missing404Exception;
-use Elasticsearch\Common\Exceptions\TransportException;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Namespaces\CatNamespace;
-use Elasticsearch\Namespaces\ClusterNamespace;
-use Elasticsearch\Namespaces\IndicesNamespace;
-use Elasticsearch\Namespaces\IngestNamespace;
-use Elasticsearch\Namespaces\NamespaceBuilderInterface;
-use Elasticsearch\Namespaces\NodesNamespace;
-use Elasticsearch\Namespaces\SnapshotNamespace;
-use Elasticsearch\Namespaces\BooleanRequestWrapper;
-use Elasticsearch\Namespaces\TasksNamespace;
-
-/**
- * Class Client
- *
- * @category Elasticsearch
- * @package  Elasticsearch
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Client
-{
-    /**
-     * @var Transport
-     */
-    public $transport;
-
-    /**
-     * @var array
-     */
-    protected $params;
-
-    /**
-     * @var IndicesNamespace
-     */
-    protected $indices;
-
-    /**
-     * @var ClusterNamespace
-     */
-    protected $cluster;
-
-    /**
-     * @var NodesNamespace
-     */
-    protected $nodes;
-
-    /**
-     * @var SnapshotNamespace
-     */
-    protected $snapshot;
-
-    /**
-     * @var CatNamespace
-     */
-    protected $cat;
-
-    /**
-     * @var IngestNamespace
-     */
-    protected $ingest;
-
-    /**
-     * @var TasksNamespace
-     */
-    protected $tasks;
-
-    /** @var  callback */
-    protected $endpoints;
-
-    /** @var  NamespaceBuilderInterface[] */
-    protected $registeredNamespaces = [];
-
-    /**
-     * Client constructor
-     *
-     * @param Transport $transport
-     * @param callable $endpoint
-     * @param AbstractNamespace[] $registeredNamespaces
-     */
-    public function __construct(Transport $transport, callable $endpoint, array $registeredNamespaces)
-    {
-        $this->transport = $transport;
-        $this->endpoints = $endpoint;
-        $this->indices   = new IndicesNamespace($transport, $endpoint);
-        $this->cluster   = new ClusterNamespace($transport, $endpoint);
-        $this->nodes     = new NodesNamespace($transport, $endpoint);
-        $this->snapshot  = new SnapshotNamespace($transport, $endpoint);
-        $this->cat       = new CatNamespace($transport, $endpoint);
-        $this->ingest    = new IngestNamespace($transport, $endpoint);
-        $this->tasks     = new TasksNamespace($transport, $endpoint);
-        $this->registeredNamespaces = $registeredNamespaces;
-    }
-
-    /**
-     * @param $params
-     * @return array
-     */
-    public function info($params = [])
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Info $endpoint */
-        $endpoint = $endpointBuilder('Info');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * @param $params array Associative array of parameters
-     *
-     * @return bool
-     */
-    public function ping($params = [])
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Ping $endpoint */
-        $endpoint = $endpointBuilder('Ping');
-        $endpoint->setParams($params);
-
-        try {
-            $this->performRequest($endpoint);
-        } catch (Missing404Exception $exception) {
-            return false;
-        } catch (TransportException $exception) {
-            return false;
-        } catch (NoNodesAvailableException $exception) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * $params['id']              = (string) The document ID (Required)
-     *        ['index']           = (string) The name of the index (Required)
-     *        ['type']            = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-     *        ['ignore_missing']  = ??
-     *        ['fields']          = (list) A comma-separated list of fields to return in the response
-     *        ['parent']          = (string) The ID of the parent document
-     *        ['preference']      = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['realtime']        = (boolean) Specify whether to perform the operation in realtime or search mode
-     *        ['refresh']         = (boolean) Refresh the shard containing the document before performing the operation
-     *        ['routing']         = (string) Specific routing value
-     *        ['_source']         = (list) True or false to return the _source field or not, or a list of fields to return
-     *        ['_source_exclude'] = (list) A list of fields to exclude from the returned _source field
-     *        ['_source_include'] = (list) A list of fields to extract and return from the _source field
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function get($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Get $endpoint */
-        $endpoint = $endpointBuilder('Get');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']             = (string) The document ID (Required)
-     *        ['index']          = (string) The name of the index (Required)
-     *        ['type']           = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-     *        ['ignore_missing'] = ??
-     *        ['parent']         = (string) The ID of the parent document
-     *        ['preference']     = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['realtime']       = (boolean) Specify whether to perform the operation in realtime or search mode
-     *        ['refresh']        = (boolean) Refresh the shard containing the document before performing the operation
-     *        ['routing']        = (string) Specific routing value
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getSource($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Get $endpoint */
-        $endpoint = $endpointBuilder('Get');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type)
-                 ->returnOnlySource();
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']           = (string) The document ID (Required)
-     *        ['index']        = (string) The name of the index (Required)
-     *        ['type']         = (string) The type of the document (Required)
-     *        ['consistency']  = (enum) Specific write consistency setting for the operation
-     *        ['parent']       = (string) ID of parent document
-     *        ['refresh']      = (boolean) Refresh the index after performing the operation
-     *        ['replication']  = (enum) Specific replication type
-     *        ['routing']      = (string) Specific routing value
-     *        ['timeout']      = (time) Explicit operation timeout
-     *        ['version_type'] = (enum) Specific version type
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function delete($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-
-        $this->verifyNotNullOrEmpty("id", $id);
-        $this->verifyNotNullOrEmpty("type", $type);
-        $this->verifyNotNullOrEmpty("index", $index);
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Delete $endpoint */
-        $endpoint = $endpointBuilder('Delete');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     *
-     * $params['_source'] = (list) True or false to return the _source field or not, or a list of fields to return
-     *        ['_source_exclude'] = (array) A list of fields to exclude from the returned _source field
-     *        ['_source_include'] = (array) A list of fields to extract and return from the _source field
-     *        ['allow_no_indices'] = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['analyze_wildcard'] = (bool) Specify whether wildcard and prefix queries should be analyzed (default: false)
-     *        ['analyzer'] = (string) The analyzer to use for the query string
-     *        ['conflicts'] = (enum) What to do when the delete-by-query hits version conflicts?
-     *        ['default_operator'] = (enum) The default operator for query string query (AND or OR)
-     *        ['df'] = (string) The field to use as default where no field prefix is given in the query string
-     *        ['expand_wildcards'] = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *        ['from'] = (number) Starting offset (default: 0)
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['lenient'] = (bool) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
-     *        ['preference'] = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['q'] = (string) Query in the Lucene query string syntax
-     *        ['refresh'] = (bool) Should the effected indexes be refreshed?
-     *        ['request_cache'] = (bool) Specify if request cache should be used for this request or not, defaults to index level setting
-     *        ['requests_per_second'] = (number) The throttle for this request in sub-requests per second. -1 means no throttle.
-     *        ['routing'] = (array) A comma-separated list of specific routing values
-     *        ['scroll'] = (number) Specify how long a consistent view of the index should be maintained for scrolled search
-     *        ['scroll_size'] = (number) Size on the scroll request powering the update_by_query
-     *        ['search_timeout'] = (number) Explicit timeout for each search request. Defaults to no timeout.
-     *        ['search_type'] = (enum) Search operation type
-     *        ['size'] = (number) Number of hits to return (default: 10)
-     *        ['slices'] = (integer) The number of slices this task should be divided into. Defaults to 1 meaning the task isn't sliced into subtasks.
-     *        ['sort'] = (array) A comma-separated list of <field>:<direction> pairs
-     *        ['stats'] = (array) Specific 'tag' of the request for logging and statistical purposes
-     *        ['terminate_after'] = (number) The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.
-     *        ['timeout'] = (number) Time each individual bulk request should wait for shards that are unavailable.
-     *        ['version'] = (bool) Specify whether to return document version as part of a hit
-     *        ['wait_for_active_shards'] = (string) Sets the number of shard copies that must be active before proceeding with the delete by query operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)
-     *        ['wait_for_completion'] = (bool) Should the request should block until the delete-by-query is complete.
-     *
-     * @param array $params
-     *
-     * @return array
-     */
-    public function deleteByQuery($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\DeleteByQuery $endpoint */
-        $endpoint = $endpointBuilder('DeleteByQuery');
-        $endpoint->setIndex($index)
-                ->setType($type)
-                ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of indices to restrict the results
-     *        ['type']               = (list) A comma-separated list of types to restrict the results
-     *        ['min_score']          = (number) Include only documents with a specific `_score` value in the result
-     *        ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['routing']            = (string) Specific routing value
-     *        ['source']             = (string) The URL-encoded query definition (instead of using the request body)
-     *        ['body']               = (array) A query to restrict the results (optional)
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function count($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Count $endpoint */
-        $endpoint = $endpointBuilder('Count');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of indices to restrict the results
-     *        ['type']               = (list) A comma-separated list of types to restrict the results
-     *        ['id']                 = (string) ID of document
-     *        ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['routing']            = (string) Specific routing value
-     *        ['allow_no_indices']   = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['body']               = (array) A query to restrict the results (optional)
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['percolate_index']    = (string) The index to count percolate the document into. Defaults to index.
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *        ['version']            = (number) Explicit version number for concurrency control
-     *        ['version_type']       = (enum) Specific version type
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     *
-     * @deprecated
-     */
-    public function countPercolate($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type  = $this->extractArgument($params, 'type');
-        $id    = $this->extractArgument($params, 'id');
-        $body  = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\CountPercolate $endpoint */
-        $endpoint = $endpointBuilder('CountPercolate');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setID($id)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']        = (string) The name of the index with a registered percolator query (Required)
-     *        ['type']         = (string) The document type (Required)
-     *        ['prefer_local'] = (boolean) With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)
-     *        ['body']         = (array) The document (`doc`) to percolate against registered queries; optionally also a `query` to limit the percolation to specific registered queries
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     *
-     * @deprecated
-     */
-    public function percolate($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type  = $this->extractArgument($params, 'type');
-        $id    = $this->extractArgument($params, 'id');
-        $body  = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Percolate $endpoint */
-        $endpoint = $endpointBuilder('Percolate');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setID($id)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (string) Default index for items which don't provide one
-     *        ['type']               = (string) Default document type for items which don't provide one
-     *        ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     *
-     * @deprecated
-     */
-    public function mpercolate($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\MPercolate $endpoint */
-        $endpoint = $endpointBuilder('MPercolate');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']            = (string) Default index for items which don't provide one
-     *        ['type']             = (string) Default document type for items which don't provide one
-     *        ['term_statistics']  = (boolean) Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['field_statistics'] = (boolean) Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['fields']           = (list) A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['offsets']          = (boolean) Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['positions']        = (boolean) Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['payloads']         = (boolean) Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['preference']       = (string) Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['routing']          = (string) Specific routing value. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['parent']           = (string) Parent id of documents. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['realtime']         = (boolean) Specifies if request is real-time as opposed to near-real-time (default: true).
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function termvectors($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type  = $this->extractArgument($params, 'type');
-        $id    = $this->extractArgument($params, 'id');
-        $body  = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\TermVectors $endpoint */
-        $endpoint = $endpointBuilder('TermVectors');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setID($id)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']            = (string) Default index for items which don't provide one
-     *        ['type']             = (string) Default document type for items which don't provide one
-     *        ['ids']              = (list) A comma-separated list of documents ids. You must define ids as parameter or set \"ids\" or \"docs\" in the request body
-     *        ['term_statistics']  = (boolean) Specifies if total term frequency and document frequency should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['field_statistics'] = (boolean) Specifies if document count, sum of document frequencies and sum of total term frequencies should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['fields']           = (list) A comma-separated list of fields to return. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['offsets']          = (boolean) Specifies if term offsets should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['positions']        = (boolean) Specifies if term positions should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\"."
-     *        ['payloads']         = (boolean) Specifies if term payloads should be returned. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['preference']       = (string) Specify the node or shard the operation should be performed on (default: random) .Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['routing']          = (string) Specific routing value. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['parent']           = (string) Parent id of documents. Applies to all returned documents unless otherwise specified in body \"params\" or \"docs\".
-     *        ['realtime']         = (boolean) Specifies if request is real-time as opposed to near-real-time (default: true).
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function mtermvectors($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type  = $this->extractArgument($params, 'type');
-        $body  = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\MTermVectors $endpoint */
-        $endpoint = $endpointBuilder('MTermVectors');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']         = (string) The document ID (Required)
-     *        ['index']      = (string) The name of the index (Required)
-     *        ['type']       = (string) The type of the document (use `_all` to fetch the first document matching the ID across all types) (Required)
-     *        ['parent']     = (string) The ID of the parent document
-     *        ['preference'] = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['realtime']   = (boolean) Specify whether to perform the operation in realtime or search mode
-     *        ['refresh']    = (boolean) Refresh the shard containing the document before performing the operation
-     *        ['routing']    = (string) Specific routing value
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array | boolean
-     */
-    public function exists($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-
-        //manually make this verbose so we can check status code
-        $params['client']['verbose'] = true;
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Exists $endpoint */
-        $endpoint = $endpointBuilder('Exists');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
-    }
-
-    /**
-     * $params['index']           = (string) The name of the index
-     *        ['type']            = (string) The type of the document
-     *        ['fields']          = (list) A comma-separated list of fields to return in the response
-     *        ['parent']          = (string) The ID of the parent document
-     *        ['preference']      = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['realtime']        = (boolean) Specify whether to perform the operation in realtime or search mode
-     *        ['refresh']         = (boolean) Refresh the shard containing the document before performing the operation
-     *        ['routing']         = (string) Specific routing value
-     *        ['body']            = (array) Document identifiers; can be either `docs` (containing full document information) or `ids` (when index and type is provided in the URL.
-     *        ['_source']         = (list) True or false to return the _source field or not, or a list of fields to return
-     *        ['_source_exclude'] = (list) A list of fields to exclude from the returned _source field
-     *        ['_source_include'] = (list) A list of fields to extract and return from the _source field
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function mget($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Mget $endpoint */
-        $endpoint = $endpointBuilder('Mget');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']       = (list) A comma-separated list of index names to use as default
-     *        ['type']        = (list) A comma-separated list of document types to use as default
-     *        ['search_type'] = (enum) Search operation type
-     *        ['body']        = (array|string) The request definitions (metadata-search request definition pairs), separated by newlines
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function msearch($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Msearch $endpoint */
-        $endpoint = $endpointBuilder('Msearch');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']        = (string) The name of the index (Required)
-     *        ['type']         = (string) The type of the document (Required)
-     *        ['id']           = (string) Specific document ID (when the POST method is used)
-     *        ['consistency']  = (enum) Explicit write consistency setting for the operation
-     *        ['parent']       = (string) ID of the parent document
-     *        ['refresh']      = (boolean) Refresh the index after performing the operation
-     *        ['replication']  = (enum) Specific replication type
-     *        ['routing']      = (string) Specific routing value
-     *        ['timeout']      = (time) Explicit operation timeout
-     *        ['timestamp']    = (time) Explicit timestamp for the document
-     *        ['ttl']          = (duration) Expiration time for the document
-     *        ['version']      = (number) Explicit version number for concurrency control
-     *        ['version_type'] = (enum) Specific version type
-     *        ['body']         = (array) The document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function create($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Create $endpoint */
-        $endpoint = $endpointBuilder('Create');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']       = (string) Default index for items which don't provide one
-     *        ['type']        = (string) Default document type for items which don't provide one
-     *        ['consistency'] = (enum) Explicit write consistency setting for the operation
-     *        ['refresh']     = (boolean) Refresh the index after performing the operation
-     *        ['replication'] = (enum) Explicitly set the replication type
-     *        ['fields']      = (list) Default comma-separated list of fields to return in the response for updates
-     *        ['body']        = (array) The document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function bulk($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Bulk $endpoint */
-        $endpoint = $endpointBuilder('Bulk');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']        = (string) The name of the index (Required)
-     *        ['type']         = (string) The type of the document (Required)
-     *        ['id']           = (string) Specific document ID (when the POST method is used)
-     *        ['consistency']  = (enum) Explicit write consistency setting for the operation
-     *        ['op_type']      = (enum) Explicit operation type
-     *        ['parent']       = (string) ID of the parent document
-     *        ['refresh']      = (boolean) Refresh the index after performing the operation
-     *        ['replication']  = (enum) Specific replication type
-     *        ['routing']      = (string) Specific routing value
-     *        ['timeout']      = (time) Explicit operation timeout
-     *        ['timestamp']    = (time) Explicit timestamp for the document
-     *        ['ttl']          = (duration) Expiration time for the document
-     *        ['version']      = (number) Explicit version number for concurrency control
-     *        ['version_type'] = (enum) Specific version type
-     *        ['body']         = (array) The document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function index($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Index $endpoint */
-        $endpoint = $endpointBuilder('Index');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['refresh']             = (boolean) Should the effected indexes be refreshed?
-     *        ['timeout']             = (time) Time each individual bulk request should wait for shards that are unavailable
-     *        ['consistency']         = (enum) Explicit write consistency setting for the operation
-     *        ['wait_for_completion'] = (boolean) Should the request should block until the reindex is complete
-     *        ['requests_per_second'] = (float) The throttle for this request in sub-requests per second. 0 means set no throttle
-     *        ['body']                = (array) The search definition using the Query DSL and the prototype for the index request (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function reindex($params)
-    {
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-        /** @var \Elasticsearch\Endpoints\Reindex $endpoint */
-        $endpoint = $endpointBuilder('Reindex');
-        $endpoint->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']          = (list) A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices
-     *        ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['preference']     = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['routing']        = (string) Specific routing value
-     *        ['source']         = (string) The URL-encoded request definition (instead of using request body)
-     *        ['body']           = (array) The request definition
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function suggest($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Suggest $endpoint */
-        $endpoint = $endpointBuilder('Suggest');
-        $endpoint->setIndex($index)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']                       = (string) The document ID (Required)
-     *        ['index']                    = (string) The name of the index (Required)
-     *        ['type']                     = (string) The type of the document (Required)
-     *        ['analyze_wildcard']         = (boolean) Specify whether wildcards and prefix queries in the query string query should be analyzed (default: false)
-     *        ['analyzer']                 = (string) The analyzer for the query string query
-     *        ['default_operator']         = (enum) The default operator for query string query (AND or OR)
-     *        ['df']                       = (string) The default field for query string query (default: _all)
-     *        ['fields']                   = (list) A comma-separated list of fields to return in the response
-     *        ['lenient']                  = (boolean) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
-     *        ['lowercase_expanded_terms'] = (boolean) Specify whether query terms should be lowercased
-     *        ['parent']                   = (string) The ID of the parent document
-     *        ['preference']               = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['q']                        = (string) Query in the Lucene query string syntax
-     *        ['routing']                  = (string) Specific routing value
-     *        ['source']                   = (string) The URL-encoded query definition (instead of using the request body)
-     *        ['_source']                  = (list) True or false to return the _source field or not, or a list of fields to return
-     *        ['_source_exclude']          = (list) A list of fields to exclude from the returned _source field
-     *        ['_source_include']          = (list) A list of fields to extract and return from the _source field
-     *        ['body']                     = (string) The URL-encoded query definition (instead of using the request body)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function explain($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Explain $endpoint */
-        $endpoint = $endpointBuilder('Explain');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']                    = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-     *        ['type']                     = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-     *        ['analyzer']                 = (string) The analyzer to use for the query string
-     *        ['analyze_wildcard']         = (boolean) Specify whether wildcard and prefix queries should be analyzed (default: false)
-     *        ['default_operator']         = (enum) The default operator for query string query (AND or OR)
-     *        ['df']                       = (string) The field to use as default where no field prefix is given in the query string
-     *        ['explain']                  = (boolean) Specify whether to return detailed information about score computation as part of a hit
-     *        ['fields']                   = (list) A comma-separated list of fields to return as part of a hit
-     *        ['from']                     = (number) Starting offset (default: 0)
-     *        ['ignore_indices']           = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['indices_boost']            = (list) Comma-separated list of index boosts
-     *        ['lenient']                  = (boolean) Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
-     *        ['lowercase_expanded_terms'] = (boolean) Specify whether query terms should be lowercased
-     *        ['preference']               = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['q']                        = (string) Query in the Lucene query string syntax
-     *        ['query_cache']              = (boolean) Enable query cache for this request
-     *        ['request_cache']            = (boolean) Enable request cache for this request
-     *        ['routing']                  = (list) A comma-separated list of specific routing values
-     *        ['scroll']                   = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-     *        ['search_type']              = (enum) Search operation type
-     *        ['size']                     = (number) Number of hits to return (default: 10)
-     *        ['sort']                     = (list) A comma-separated list of <field>:<direction> pairs
-     *        ['source']                   = (string) The URL-encoded request definition using the Query DSL (instead of using request body)
-     *        ['_source']                  = (list) True or false to return the _source field or not, or a list of fields to return
-     *        ['_source_exclude']          = (list) A list of fields to exclude from the returned _source field
-     *        ['_source_include']          = (list) A list of fields to extract and return from the _source field
-     *        ['stats']                    = (list) Specific 'tag' of the request for logging and statistical purposes
-     *        ['suggest_field']            = (string) Specify which field to use for suggestions
-     *        ['suggest_mode']             = (enum) Specify suggest mode
-     *        ['suggest_size']             = (number) How many suggestions to return in response
-     *        ['suggest_text']             = (text) The source text for which the suggestions should be returned
-     *        ['timeout']                  = (time) Explicit operation timeout
-     *        ['terminate_after']          = (number) The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.
-     *        ['version']                  = (boolean) Specify whether to return document version as part of a hit
-     *        ['body']                     = (array|string) The search definition using the Query DSL
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function search($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Search $endpoint */
-        $endpoint = $endpointBuilder('Search');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-     *        ['type']               = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-     *        ['preference']         = (string) Specify the node or shard the operation should be performed on (default: random)
-     *        ['routing']            = (string) Specific routing value
-     *        ['local']              = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function searchShards($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\SearchShards $endpoint */
-        $endpoint = $endpointBuilder('SearchShards');
-        $endpoint->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']                    = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
-     *        ['type']                     = (list) A comma-separated list of document types to search; leave empty to perform the operation on all types
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function searchTemplate($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Search $endpoint */
-        $endpoint = $endpointBuilder('SearchTemplate');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['scroll_id'] = (string) The scroll ID for scrolled search
-     *        ['scroll']    = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-     *        ['body']      = (string) The scroll ID for scrolled search
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function scroll($params = array())
-    {
-        $scrollID = $this->extractArgument($params, 'scroll_id');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Scroll $endpoint */
-        $endpoint = $endpointBuilder('Scroll');
-        $endpoint->setScrollID($scrollID)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['scroll_id'] = (string) The scroll ID for scrolled search
-     *        ['scroll']    = (duration) Specify how long a consistent view of the index should be maintained for scrolled search
-     *        ['body']      = (string) The scroll ID for scrolled search
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function clearScroll($params = array())
-    {
-        $scrollID = $this->extractArgument($params, 'scroll_id');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Scroll $endpoint */
-        $endpoint = $endpointBuilder('Scroll');
-        $endpoint->setScrollID($scrollID)
-                 ->setBody($body)
-                 ->setClearScroll(true);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']                = (string) Document ID (Required)
-     *        ['index']             = (string) The name of the index (Required)
-     *        ['type']              = (string) The type of the document (Required)
-     *        ['consistency']       = (enum) Explicit write consistency setting for the operation
-     *        ['fields']            = (list) A comma-separated list of fields to return in the response
-     *        ['lang']              = (string) The script language (default: mvel)
-     *        ['parent']            = (string) ID of the parent document
-     *        ['refresh']           = (boolean) Refresh the index after performing the operation
-     *        ['replication']       = (enum) Specific replication type
-     *        ['retry_on_conflict'] = (number) Specify how many times should the operation be retried when a conflict occurs (default: 0)
-     *        ['routing']           = (string) Specific routing value
-     *        ['script']            = () The URL-encoded script definition (instead of using request body)
-     *        ['timeout']           = (time) Explicit operation timeout
-     *        ['timestamp']         = (time) Explicit timestamp for the document
-     *        ['ttl']               = (duration) Expiration time for the document
-     *        ['version_type']      = (number) Explicit version number for concurrency control
-     *        ['body']              = (array) The request definition using either `script` or partial `doc`
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function update($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Update $endpoint */
-        $endpoint = $endpointBuilder('Update');
-        $endpoint->setID($id)
-                 ->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']                    = (list) A comma-separated list of index names to search; use `_all` or
-     * empty string to perform the operation on all indices (Required)
-     *        ['type']                     = (list) A comma-separated list of document types to search; leave empty to
-     * perform the operation on all types
-     *        ['analyzer']                 = (string) The analyzer to use for the query string
-     *        ['analyze_wildcard']         = (boolean) Specify whether wildcard and prefix queries should be analyzed
-     * (default: false)
-     *        ['default_operator']         = (enum) The default operator for query string query (AND or OR) (AND,OR)
-     * (default: OR)
-     *        ['df']                       = (string) The field to use as default where no field prefix is given in the
-     * query string
-     *        ['explain']                  = (boolean) Specify whether to return detailed information about score
-     * computation as part of a hit
-     *        ['fields']                   = (list) A comma-separated list of fields to return as part of a hit
-     *        ['fielddata_fields']         = (list) A comma-separated list of fields to return as the field data
-     * representation of a field for each hit
-     *        ['from']                     = (number) Starting offset (default: 0)
-     *        ['ignore_unavailable']       = (boolean) Whether specified concrete indices should be ignored when
-     * unavailable (missing or closed)
-     *        ['allow_no_indices']         = (boolean) Whether to ignore if a wildcard indices expression resolves into
-     * no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['conflicts']                = (enum) What to do when the reindex hits version conflicts? (abort,proceed)
-     * (default: abort)
-     *        ['expand_wildcards']         = (enum) Whether to expand wildcard expression to concrete indices that are
-     * open, closed or both. (open,closed,none,all) (default: open)
-     *        ['lenient']                  = (boolean) Specify whether format-based query failures (such as providing
-     * text to a numeric field) should be ignored
-     *        ['lowercase_expanded_terms'] = (boolean) Specify whether query terms should be lowercased
-     *        ['preference']               = (string) Specify the node or shard the operation should be performed on
-     * (default: random)
-     *        ['q']                        = (string) Query in the Lucene query string syntax
-     *        ['routing']                  = (list) A comma-separated list of specific routing values
-     *        ['scroll']                   = (duration) Specify how long a consistent view of the index should be
-     * maintained for scrolled search
-     *        ['search_type']              = (enum) Search operation type (query_then_fetch,dfs_query_then_fetch)
-     *        ['search_timeout']           = (time) Explicit timeout for each search request. Defaults to no timeout.
-     *        ['size']                     = (number) Number of hits to return (default: 10)
-     *        ['sort']                     = (list) A comma-separated list of <field>:<direction> pairs
-     *        ['_source']                  = (list) True or false to return the _source field or not, or a list of
-     * fields to return
-     *        ['_source_exclude']          = (list) A list of fields to exclude from the returned _source field
-     *        ['_source_include']          = (list) A list of fields to extract and return from the _source field
-     *        ['terminate_after']          = (number) The maximum number of documents to collect for each shard, upon
-     * reaching which the query execution will terminate early.
-     *        ['stats']                    = (list) Specific 'tag' of the request for logging and statistical purposes
-     *        ['suggest_field']            = (string) Specify which field to use for suggestions
-     *        ['suggest_mode']             = (enum) Specify suggest mode (missing,popular,always) (default: missing)
-     *        ['suggest_size']             = (number) How many suggestions to return in response
-     *        ['suggest_text']             = (text) The source text for which the suggestions should be returned
-     *        ['timeout']                  = (time) Time each individual bulk request should wait for shards that are
-     * unavailable. (default: 1m)
-     *        ['track_scores']             = (boolean) Whether to calculate and return scores even if they are not used
-     * for sorting
-     *        ['version']                  = (boolean) Specify whether to return document version as part of a hit
-     *        ['version_type']             = (boolean) Should the document increment the version number (internal) on
-     * hit or not (reindex)
-     *        ['request_cache']            = (boolean) Specify if request cache should be used for this request or not,
-     * defaults to index level setting
-     *        ['refresh']                  = (boolean) Should the effected indexes be refreshed?
-     *        ['consistency']              = (enum) Explicit write consistency setting for the operation
-     * (one,quorum,all)
-     *        ['scroll_size']              = (integer) Size on the scroll request powering the update_by_query
-     *        ['wait_for_completion']      = (boolean) Should the request should block until the reindex is complete.
-     * (default: false)
-     *        ['body']                     = The search definition using the Query DSL
-     *
-     * @param array $params
-     *
-     * @return array
-     */
-    public function updateByQuery($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $body = $this->extractArgument($params, 'body');
-
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\UpdateByQuery $endpoint */
-        $endpoint = $endpointBuilder('UpdateByQuery');
-        $endpoint->setIndex($index)
-            ->setType($type)
-            ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The script ID (Required)
-     *        ['lang'] = (string) The script language (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getScript($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $lang = $this->extractArgument($params, 'lang');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Script\Get $endpoint */
-        $endpoint = $endpointBuilder('Script\Get');
-        $endpoint->setID($id)
-                 ->setLang($lang);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The script ID (Required)
-     *        ['lang'] = (string) The script language (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteScript($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-        $lang = $this->extractArgument($params, 'lang');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Script\Delete $endpoint */
-        $endpoint = $endpointBuilder('Script\Delete');
-        $endpoint->setID($id)
-                 ->setLang($lang);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The script ID (Required)
-     *        ['lang'] = (string) The script language (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putScript($params)
-    {
-        $id   = $this->extractArgument($params, 'id');
-        $lang = $this->extractArgument($params, 'lang');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Script\Put $endpoint */
-        $endpoint = $endpointBuilder('Script\Put');
-        $endpoint->setID($id)
-                 ->setLang($lang)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The search template ID (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getTemplate($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Template\Get $endpoint */
-        $endpoint = $endpointBuilder('Template\Get');
-        $endpoint->setID($id);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The search template ID (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteTemplate($params)
-    {
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Template\Delete $endpoint */
-        $endpoint = $endpointBuilder('Template\Delete');
-        $endpoint->setID($id);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']   = (string) The search template ID (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putTemplate($params)
-    {
-        $id   = $this->extractArgument($params, 'id');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Template\Put $endpoint */
-        $endpoint = $endpointBuilder('Template\Put');
-        $endpoint->setID($id)
-            ->setBody($body)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of indices to restrict the results
-     *        ['fields']             = (list) A comma-separated list of fields for to get field statistics for (min value, max value, and more)
-     *        ['level']              = (enum) Defines if field stats should be returned on a per index level or on a cluster wide level
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function fieldStats($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\FieldStats $endpoint */
-        $endpoint = $endpointBuilder('FieldStats');
-        $endpoint->setIndex($index)
-            ->setBody($body)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['id']                 = (string) ID of the template to render
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function renderSearchTemplate($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-        $id   = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\RenderSearchTemplate $endpoint */
-        $endpoint = $endpointBuilder('RenderSearchTemplate');
-        $endpoint->setBody($body)
-            ->setID($id);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * Operate on the Indices Namespace of commands
-     *
-     * @return IndicesNamespace
-     */
-    public function indices()
-    {
-        return $this->indices;
-    }
-
-    /**
-     * Operate on the Cluster namespace of commands
-     *
-     * @return ClusterNamespace
-     */
-    public function cluster()
-    {
-        return $this->cluster;
-    }
-
-    /**
-     * Operate on the Nodes namespace of commands
-     *
-     * @return NodesNamespace
-     */
-    public function nodes()
-    {
-        return $this->nodes;
-    }
-
-    /**
-     * Operate on the Snapshot namespace of commands
-     *
-     * @return SnapshotNamespace
-     */
-    public function snapshot()
-    {
-        return $this->snapshot;
-    }
-
-    /**
-     * Operate on the Cat namespace of commands
-     *
-     * @return CatNamespace
-     */
-    public function cat()
-    {
-        return $this->cat;
-    }
-
-    /**
-     * Operate on the Ingest namespace of commands
-     *
-     * @return IngestNamespace
-     */
-    public function ingest()
-    {
-        return $this->ingest;
-    }
-
-    /**
-     * Operate on the Tasks namespace of commands
-     *
-     * @return TasksNamespace
-     */
-    public function tasks()
-    {
-        return $this->tasks;
-    }
-
-    /**
-     * Catchall for registered namespaces
-     *
-     * @param $name
-     * @param $arguments
-     * @return Object
-     * @throws BadMethodCallException if the namespace cannot be found
-     */
-    public function __call($name, $arguments)
-    {
-        if (isset($this->registeredNamespaces[$name])) {
-            return $this->registeredNamespaces[$name];
-        }
-        throw new BadMethodCallException("Namespace [$name] not found");
-    }
-
-    /**
-     * @param array $params
-     * @param string $arg
-     *
-     * @return null|mixed
-     */
-    public function extractArgument(&$params, $arg)
-    {
-        if (is_object($params) === true) {
-            $params = (array) $params;
-        }
-
-        if (isset($params[$arg]) === true) {
-            $val = $params[$arg];
-            unset($params[$arg]);
-
-            return $val;
-        } else {
-            return null;
-        }
-    }
-
-    private function verifyNotNullOrEmpty($name, $var)
-    {
-        if ($var === null) {
-            throw new InvalidArgumentException("$name cannot be null.");
-        }
-
-        if (is_string($var)) {
-            if (strlen($var) === 0) {
-                throw new InvalidArgumentException("$name cannot be an empty string");
-            }
-        }
-
-        if (is_array($var)) {
-            if (strlen(implode("", $var)) === 0) {
-                throw new InvalidArgumentException("$name cannot be an array of empty strings");
-            }
-        }
-    }
-
-    /**
-     * @param $endpoint AbstractEndpoint
-     * 
-     * @throws \Exception
-     * @return array
-     */
-    private function performRequest(AbstractEndpoint $endpoint)
-    {
-        $promise =  $this->transport->performRequest(
-            $endpoint->getMethod(),
-            $endpoint->getURI(),
-            $endpoint->getParams(),
-            $endpoint->getBody(),
-            $endpoint->getOptions()
-        );
-
-        return $this->transport->resultOrFuture($promise, $endpoint->getOptions());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ClientBuilder.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ClientBuilder.php
deleted file mode 100644
index bc36abaf832fa10bcc023e2b7c64007c96317e9f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ClientBuilder.php
+++ /dev/null
@@ -1,633 +0,0 @@
-<?php
-
-namespace Elasticsearch;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Common\Exceptions\RuntimeException;
-use Elasticsearch\ConnectionPool\AbstractConnectionPool;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\ConnectionPool\StaticNoPingConnectionPool;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactory;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-use Elasticsearch\Namespaces\NamespaceBuilderInterface;
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\ConnectionPool\Selectors;
-use Elasticsearch\Serializers\SmartSerializer;
-use GuzzleHttp\Ring\Client\CurlHandler;
-use GuzzleHttp\Ring\Client\CurlMultiHandler;
-use GuzzleHttp\Ring\Client\Middleware;
-use Psr\Log\LoggerInterface;
-use Psr\Log\NullLogger;
-use Monolog\Logger;
-use Monolog\Handler\StreamHandler;
-use Monolog\Processor\IntrospectionProcessor;
-
-/**
- * Class ClientBuilder
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
-  */
-class ClientBuilder
-{
-    /** @var Transport */
-    private $transport;
-
-    /** @var callback */
-    private $endpoint;
-
-    /** @var NamespaceBuilderInterface[] */
-    private $registeredNamespacesBuilders = [];
-
-    /** @var  ConnectionFactoryInterface */
-    private $connectionFactory;
-
-    private $handler;
-
-    /** @var  LoggerInterface */
-    private $logger;
-
-    /** @var  LoggerInterface */
-    private $tracer;
-
-    /** @var string */
-    private $connectionPool = '\Elasticsearch\ConnectionPool\StaticNoPingConnectionPool';
-
-    /** @var  string */
-    private $serializer = '\Elasticsearch\Serializers\SmartSerializer';
-
-    /** @var  string */
-    private $selector = '\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector';
-
-    /** @var  array */
-    private $connectionPoolArgs = [
-        'randomizeHosts' => true
-    ];
-
-    /** @var array */
-    private $hosts;
-
-    /** @var array */
-    private $connectionParams;
-
-    /** @var  int */
-    private $retries;
-
-    /** @var bool */
-    private $sniffOnStart = false;
-
-    /** @var null|array  */
-    private $sslCert = null;
-
-    /** @var null|array  */
-    private $sslKey = null;
-
-    /** @var null|bool|string */
-    private $sslVerification = null;
-
-    /**
-     * @return ClientBuilder
-     */
-    public static function create()
-    {
-        return new static();
-    }
-
-    /**
-     * Build a new client from the provided config.  Hash keys
-     * should correspond to the method name e.g. ['connectionPool']
-     * corresponds to setConnectionPool().
-     *
-     * Missing keys will use the default for that setting if applicable
-     *
-     * Unknown keys will throw an exception by default, but this can be silenced
-     * by setting `quiet` to true
-     *
-     * @param array $config hash of settings
-     * @param bool $quiet False if unknown settings throw exception, true to silently
-     *                    ignore unknown settings
-     * @throws Common\Exceptions\RuntimeException
-     * @return \Elasticsearch\Client
-     */
-    public static function fromConfig($config, $quiet = false)
-    {
-        $builder = new self;
-        foreach ($config as $key => $value) {
-            $method = "set$key";
-            if (method_exists($builder, $method)) {
-                $builder->$method($value);
-                unset($config[$key]);
-            }
-        }
-
-        if ($quiet === false && count($config) > 0) {
-            $unknown = implode(array_keys($config));
-            throw new RuntimeException("Unknown parameters provided: $unknown");
-        }
-        return $builder->build();
-    }
-
-    /**
-     * @param array $singleParams
-     * @param array $multiParams
-     * @throws \RuntimeException
-     * @return callable
-     */
-    public static function defaultHandler($multiParams = [], $singleParams = [])
-    {
-        $future = null;
-        if (extension_loaded('curl')) {
-            $config = array_merge([ 'mh' => curl_multi_init() ], $multiParams);
-            if (function_exists('curl_reset')) {
-                $default = new CurlHandler($singleParams);
-                $future = new CurlMultiHandler($config);
-            } else {
-                $default = new CurlMultiHandler($config);
-            }
-        } else {
-            throw new \RuntimeException('Elasticsearch-PHP requires cURL, or a custom HTTP handler.');
-        }
-
-        return $future ? Middleware::wrapFuture($default, $future) : $default;
-    }
-
-    /**
-     * @param array $params
-     * @throws \RuntimeException
-     * @return CurlMultiHandler
-     */
-    public static function multiHandler($params = [])
-    {
-        if (function_exists('curl_multi_init')) {
-            return new CurlMultiHandler(array_merge([ 'mh' => curl_multi_init() ], $params));
-        } else {
-            throw new \RuntimeException('CurlMulti handler requires cURL.');
-        }
-    }
-
-    /**
-     * @return CurlHandler
-     * @throws \RuntimeException
-     */
-    public static function singleHandler()
-    {
-        if (function_exists('curl_reset')) {
-            return new CurlHandler();
-        } else {
-            throw new \RuntimeException('CurlSingle handler requires cURL.');
-        }
-    }
-
-    /**
-     * @param $path string
-     * @return \Monolog\Logger\Logger
-     */
-    public static function defaultLogger($path, $level = Logger::WARNING)
-    {
-        $log       = new Logger('log');
-        $handler   = new StreamHandler($path, $level);
-        $log->pushHandler($handler);
-
-        return $log;
-    }
-
-    /**
-     * @param \Elasticsearch\Connections\ConnectionFactoryInterface $connectionFactory
-     * @return $this
-     */
-    public function setConnectionFactory(ConnectionFactoryInterface $connectionFactory)
-    {
-        $this->connectionFactory = $connectionFactory;
-
-        return $this;
-    }
-
-    /**
-     * @param \Elasticsearch\ConnectionPool\AbstractConnectionPool|string $connectionPool
-     * @param array $args
-     * @throws \InvalidArgumentException
-     * @return $this
-     */
-    public function setConnectionPool($connectionPool, array $args = [])
-    {
-        if (is_string($connectionPool)) {
-            $this->connectionPool = $connectionPool;
-            $this->connectionPoolArgs = $args;
-        } elseif (is_object($connectionPool)) {
-            $this->connectionPool = $connectionPool;
-        } else {
-            throw new InvalidArgumentException("Serializer must be a class path or instantiated object extending AbstractConnectionPool");
-        }
-
-        return $this;
-    }
-
-    /**
-     * @param callable $endpoint
-     * @return $this
-     */
-    public function setEndpoint($endpoint)
-    {
-        $this->endpoint = $endpoint;
-
-        return $this;
-    }
-
-    /**
-     * @param NamespaceBuilderInterface $namespaceBuilder
-     * @return $this
-     */
-    public function registerNamespace(NamespaceBuilderInterface $namespaceBuilder)
-    {
-        $this->registeredNamespacesBuilders[] = $namespaceBuilder;
-
-        return $this;
-    }
-
-    /**
-     * @param \Elasticsearch\Transport $transport
-     * @return $this
-     */
-    public function setTransport($transport)
-    {
-        $this->transport = $transport;
-
-        return $this;
-    }
-
-    /**
-     * @param mixed $handler
-     * @return $this
-     */
-    public function setHandler($handler)
-    {
-        $this->handler = $handler;
-
-        return $this;
-    }
-
-    /**
-     * @param \Psr\Log\LoggerInterface $logger
-     * @return $this
-     */
-    public function setLogger($logger)
-    {
-        $this->logger = $logger;
-
-        return $this;
-    }
-
-    /**
-     * @param \Psr\Log\LoggerInterface $tracer
-     * @return $this
-     */
-    public function setTracer($tracer)
-    {
-        $this->tracer = $tracer;
-
-        return $this;
-    }
-
-    /**
-     * @param \Elasticsearch\Serializers\SerializerInterface|string $serializer
-     * @throws \InvalidArgumentException
-     * @return $this
-     */
-    public function setSerializer($serializer)
-    {
-        $this->parseStringOrObject($serializer, $this->serializer, 'SerializerInterface');
-
-        return $this;
-    }
-
-    /**
-     * @param array $hosts
-     * @return $this
-     */
-    public function setHosts($hosts)
-    {
-        $this->hosts = $hosts;
-
-        return $this;
-    }
-
-    /**
-     * @param array $params
-     * @return $this
-     */
-    public function setConnectionParams(array $params)
-    {
-        $this->connectionParams = $params;
-
-        return $this;
-    }
-
-    /**
-     * @param int $retries
-     * @return $this
-     */
-    public function setRetries($retries)
-    {
-        $this->retries = $retries;
-
-        return $this;
-    }
-
-    /**
-     * @param \Elasticsearch\ConnectionPool\Selectors\SelectorInterface|string $selector
-     * @throws \InvalidArgumentException
-     * @return $this
-     */
-    public function setSelector($selector)
-    {
-        $this->parseStringOrObject($selector, $this->selector, 'SelectorInterface');
-
-        return $this;
-    }
-
-    /**
-     * @param boolean $sniffOnStart
-     * @return $this
-     */
-    public function setSniffOnStart($sniffOnStart)
-    {
-        $this->sniffOnStart = $sniffOnStart;
-
-        return $this;
-    }
-
-    /**
-     * @param $cert
-     * @param null|string $password
-     * @return $this
-     */
-    public function setSSLCert($cert, $password = null)
-    {
-        $this->sslCert = [$cert, $password];
-
-        return $this;
-    }
-
-    /**
-     * @param $key
-     * @param null|string $password
-     * @return $this
-     */
-    public function setSSLKey($key, $password = null)
-    {
-        $this->sslKey = [$key, $password];
-
-        return $this;
-    }
-
-    /**
-     * @param bool|string $value
-     * @return $this
-     */
-    public function setSSLVerification($value = true)
-    {
-        $this->sslVerification = $value;
-
-        return $this;
-    }
-
-    /**
-     * @return Client
-     */
-    public function build()
-    {
-        $this->buildLoggers();
-
-        if (is_null($this->handler)) {
-            $this->handler = ClientBuilder::defaultHandler();
-        }
-
-        $sslOptions = null;
-        if (isset($this->sslKey)) {
-            $sslOptions['ssl_key'] = $this->sslKey;
-        }
-        if (isset($this->sslCert)) {
-            $sslOptions['cert'] = $this->sslCert;
-        }
-        if (isset($this->sslVerification)) {
-            $sslOptions['verify'] = $this->sslVerification;
-        }
-
-        if (!is_null($sslOptions)) {
-            $sslHandler = function (callable $handler, array $sslOptions) {
-                return function (array $request) use ($handler, $sslOptions) {
-                    // Add our custom headers
-                    foreach ($sslOptions as $key => $value) {
-                        $request['client'][$key] = $value;
-                    }
-
-                    // Send the request using the handler and return the response.
-                    return $handler($request);
-                };
-            };
-            $this->handler = $sslHandler($this->handler, $sslOptions);
-        }
-
-        if (is_null($this->serializer)) {
-            $this->serializer = new SmartSerializer();
-        } elseif (is_string($this->serializer)) {
-            $this->serializer = new $this->serializer;
-        }
-
-        if (is_null($this->connectionFactory)) {
-            if (is_null($this->connectionParams)) {
-                $this->connectionParams = [];
-            }
-            $this->connectionFactory = new ConnectionFactory($this->handler, $this->connectionParams, $this->serializer, $this->logger, $this->tracer);
-        }
-
-        if (is_null($this->hosts)) {
-            $this->hosts = $this->getDefaultHost();
-        }
-
-        if (is_null($this->selector)) {
-            $this->selector = new Selectors\RoundRobinSelector();
-        } elseif (is_string($this->selector)) {
-            $this->selector = new $this->selector;
-        }
-
-        $this->buildTransport();
-
-        if (is_null($this->endpoint)) {
-            $serializer = $this->serializer;
-
-            $this->endpoint = function ($class) use ($serializer) {
-                $fullPath = '\\Elasticsearch\\Endpoints\\' . $class;
-                if ($class === 'Bulk' || $class === 'Msearch' || $class === 'MPercolate') {
-                    return new $fullPath($serializer);
-                } else {
-                    return new $fullPath();
-                }
-            };
-        }
-
-        $registeredNamespaces = [];
-        foreach ($this->registeredNamespacesBuilders as $builder) {
-            /** @var $builder NamespaceBuilderInterface */
-            $registeredNamespaces[$builder->getName()] = $builder->getObject($this->transport, $this->serializer);
-        }
-
-        return $this->instantiate($this->transport, $this->endpoint, $registeredNamespaces);
-    }
-
-    /**
-     * @param Transport $transport
-     * @param callable $endpoint
-     * @param Object[] $registeredNamespaces
-     * @return Client
-     */
-    protected function instantiate(Transport $transport, callable $endpoint, array $registeredNamespaces)
-    {
-        return new Client($transport, $endpoint, $registeredNamespaces);
-    }
-
-    private function buildLoggers()
-    {
-        if (is_null($this->logger)) {
-            $this->logger = new NullLogger();
-        }
-
-        if (is_null($this->tracer)) {
-            $this->tracer = new NullLogger();
-        }
-    }
-
-    private function buildTransport()
-    {
-        $connections = $this->buildConnectionsFromHosts($this->hosts);
-
-        if (is_string($this->connectionPool)) {
-            $this->connectionPool = new $this->connectionPool(
-                $connections,
-                $this->selector,
-                $this->connectionFactory,
-                $this->connectionPoolArgs);
-        } elseif (is_null($this->connectionPool)) {
-            $this->connectionPool = new StaticNoPingConnectionPool(
-                $connections,
-                $this->selector,
-                $this->connectionFactory,
-                $this->connectionPoolArgs);
-        }
-
-        if (is_null($this->retries)) {
-            $this->retries = count($connections);
-        }
-
-        if (is_null($this->transport)) {
-            $this->transport = new Transport($this->retries, $this->sniffOnStart, $this->connectionPool, $this->logger);
-        }
-    }
-
-    private function parseStringOrObject($arg, &$destination, $interface)
-    {
-        if (is_string($arg)) {
-            $destination = new $arg;
-        } elseif (is_object($arg)) {
-            $destination = $arg;
-        } else {
-            throw new InvalidArgumentException("Serializer must be a class path or instantiated object implementing $interface");
-        }
-    }
-
-    /**
-     * @return array
-     */
-    private function getDefaultHost()
-    {
-        return ['localhost:9200'];
-    }
-
-    /**
-     * @param array $hosts
-     *
-     * @throws \InvalidArgumentException
-     * @return \Elasticsearch\Connections\Connection[]
-     */
-    private function buildConnectionsFromHosts($hosts)
-    {
-        if (is_array($hosts) === false) {
-            $this->logger->error("Hosts parameter must be an array of strings, or an array of Connection hashes.");
-            throw new InvalidArgumentException('Hosts parameter must be an array of strings, or an array of Connection hashes.');
-        }
-
-        $connections = [];
-        foreach ($hosts as $host) {
-            if (is_string($host)) {
-                $host = $this->prependMissingScheme($host);
-                $host = $this->extractURIParts($host);
-            } else if (is_array($host)) {
-                $host = $this->normalizeExtendedHost($host);
-            } else {
-                $this->logger->error("Could not parse host: ".print_r($host, true));
-                throw new RuntimeException("Could not parse host: ".print_r($host, true));
-            }
-            $connections[] = $this->connectionFactory->create($host);
-        }
-
-        return $connections;
-    }
-
-    /**
-     * @param $host
-     * @return array
-     */
-    private function normalizeExtendedHost($host) {
-        if (isset($host['host']) === false) {
-            $this->logger->error("Required 'host' was not defined in extended format: ".print_r($host, true));
-            throw new RuntimeException("Required 'host' was not defined in extended format: ".print_r($host, true));
-        }
-
-        if (isset($host['scheme']) === false) {
-            $host['scheme'] = 'http';
-        }
-        if (isset($host['port']) === false) {
-            $host['port'] = '9200';
-        }
-        return $host;
-    }
-
-    /**
-     * @param array $host
-     *
-     * @throws \InvalidArgumentException
-     * @return array
-     */
-    private function extractURIParts($host)
-    {
-        $parts = parse_url($host);
-
-        if ($parts === false) {
-            throw new InvalidArgumentException("Could not parse URI");
-        }
-
-        if (isset($parts['port']) !== true) {
-            $parts['port'] = 9200;
-        }
-
-        return $parts;
-    }
-
-    /**
-     * @param string $host
-     *
-     * @return string
-     */
-    private function prependMissingScheme($host)
-    {
-        if (!filter_var($host, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED)) {
-            $host = 'http://' . $host;
-        }
-
-        return $host;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/EmptyLogger.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/EmptyLogger.php
deleted file mode 100644
index 89ced833da357fb52c35b7029f2a14302d67fc3c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/EmptyLogger.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common;
-
-use Psr\Log\AbstractLogger;
-use Psr\Log\LoggerInterface;
-
-/**
- * Class EmptyLogger
- *
- * Logger that doesn't do anything.  Similar to Monolog's NullHandler,
- * but avoids the overhead of partially loading Monolog
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class EmptyLogger extends AbstractLogger implements LoggerInterface
-{
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed $level
-     * @param string $message
-     * @param array $context
-     *
-     * @return null
-     */
-    public function log($level, $message, array $context = array())
-    {
-        return;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/AlreadyExpiredException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/AlreadyExpiredException.php
deleted file mode 100644
index 411c70abb9b7e37ab70acca2fdbd5a5b70125dcd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/AlreadyExpiredException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * AlreadyExpiredException, thrown when a document has already expired
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class AlreadyExpiredException extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadMethodCallException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadMethodCallException.php
deleted file mode 100644
index d8dea6c66309e43243774fc44f9649d8f6028b25..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadMethodCallException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * BadMethodCallException
- *
- * Denote problems with a method call (e.g. incorrect number of arguments)
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class BadMethodCallException extends \BadMethodCallException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadRequest400Exception.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadRequest400Exception.php
deleted file mode 100644
index 1c652d78b9c54dff6bf586d63277cbd1d553664c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/BadRequest400Exception.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * BadRequest400Exception, thrown on 400 conflict http error
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class BadRequest400Exception extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ClientErrorResponseException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ClientErrorResponseException.php
deleted file mode 100644
index 844bbccaaa13134dde5dc6bfb78159e54415f318..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ClientErrorResponseException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * Class ClientErrorResponseException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ClientErrorResponseException extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Conflict409Exception.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Conflict409Exception.php
deleted file mode 100644
index d7f10a47aac6146bd75c62cd26b3157a0e629be8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Conflict409Exception.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * Conflict409Exception, thrown on 409 conflict http error
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Conflict409Exception extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotConnectToHost.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotConnectToHost.php
deleted file mode 100644
index b1ccc22c9da7e9adf7c177361b3850abbbd28d43..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotConnectToHost.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions\Curl;
-
-use Elasticsearch\Common\Exceptions\ElasticsearchException;
-use Elasticsearch\Common\Exceptions\TransportException;
-
-/**
- * Class CouldNotConnectToHost
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions\Curl
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class CouldNotConnectToHost extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotResolveHostException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotResolveHostException.php
deleted file mode 100644
index 283afdf9dba2c5eeec63dba2b33be91ded7de44f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/CouldNotResolveHostException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions\Curl;
-
-use Elasticsearch\Common\Exceptions\ElasticsearchException;
-use Elasticsearch\Common\Exceptions\TransportException;
-
-/**
- * Class CouldNotResolveHostException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions\Curl
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
-  */
-class CouldNotResolveHostException extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/OperationTimeoutException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/OperationTimeoutException.php
deleted file mode 100644
index 12c1722f1230b1a02d3a7a2d99b5f9d22780d5c5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Curl/OperationTimeoutException.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions\Curl;
-
-use Elasticsearch\Common\Exceptions\ElasticsearchException;
-use Elasticsearch\Common\Exceptions\TransportException;
-
-/**
- * Class OperationTimeoutException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions\Curl
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
-  */
-class OperationTimeoutException extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ElasticsearchException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ElasticsearchException.php
deleted file mode 100644
index a5cab88c52dd93f2be592fde6946dd32ad6dea5d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ElasticsearchException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * Generic Exception interface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Forbidden403Exception.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Forbidden403Exception.php
deleted file mode 100644
index 2b84c64bcdcd968b4e28450b0a10ea264cbf1f75..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Forbidden403Exception.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * Forbidden403Exception
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Forbidden403Exception extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/InvalidArgumentException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/InvalidArgumentException.php
deleted file mode 100644
index 65e932baf3f0ee67a6a44fde4856267d39eba772..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/InvalidArgumentException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * InvalidArgumentException
- *
- * Denote invalid or incorrect argument values
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class InvalidArgumentException extends \InvalidArgumentException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/MaxRetriesException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/MaxRetriesException.php
deleted file mode 100644
index 15b28337d23cea6b58189401cea043ca3ac1be09..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/MaxRetriesException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * MaxRetriesException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class MaxRetriesException extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Missing404Exception.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Missing404Exception.php
deleted file mode 100644
index 76bc87a8d34d5ddbd74d676d43ea1e050b918793..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Missing404Exception.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * Missing404Exception
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Missing404Exception extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoDocumentsToGetException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoDocumentsToGetException.php
deleted file mode 100644
index 75beb9f590f3ca85035101d2a4a2a8ce4ebabbe6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoDocumentsToGetException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * NoDocumentsToGetException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class NoDocumentsToGetException extends ServerErrorResponseException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoNodesAvailableException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoNodesAvailableException.php
deleted file mode 100644
index 63a1793274a7d8b7099a3e5bfd903bb3a37865c3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoNodesAvailableException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * NoNodesAvailableException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class NoNodesAvailableException extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoShardAvailableException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoShardAvailableException.php
deleted file mode 100644
index 71b9a4ade77981a17e70c87299d2f9e770985776..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/NoShardAvailableException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * NoShardAvailableException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class NoShardAvailableException extends ServerErrorResponseException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RequestTimeout408Exception.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RequestTimeout408Exception.php
deleted file mode 100644
index 8b668a88dda69ec17e08632c6ef0877421b00cc3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RequestTimeout408Exception.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * RequestTimeout408Exception
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class RequestTimeout408Exception extends BadRequest400Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RoutingMissingException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RoutingMissingException.php
deleted file mode 100644
index efa3cbd901b0446351dd049e797c4e3b69239411..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RoutingMissingException.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * RoutingMissingException, thrown on when a routing value is required but
- * not provided
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class RoutingMissingException extends ServerErrorResponseException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RuntimeException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RuntimeException.php
deleted file mode 100644
index 2fc381a5f366bb8b447ecfe0168e544c40090ebb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/RuntimeException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * RuntimeException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class RuntimeException extends \RuntimeException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ScriptLangNotSupportedException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ScriptLangNotSupportedException.php
deleted file mode 100644
index 255c3a55a3f50e04129bf0382ba117b89ba59de9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ScriptLangNotSupportedException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * ScriptLangNotSupportedException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ScriptLangNotSupportedException extends BadRequest400Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Serializer/JsonErrorException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Serializer/JsonErrorException.php
deleted file mode 100644
index 626d4ae47e107405f2036b0e12eba4bb0d431644..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/Serializer/JsonErrorException.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions\Serializer;
-
-use Elasticsearch\Common\Exceptions\ElasticsearchException;
-
-/**
- * Class JsonErrorException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions\Curl
- * @author   Bez Hermoso <bezalelhermoso@gmail.com>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class JsonErrorException extends \Exception implements ElasticsearchException
-{
-    /**
-     * @var mixed
-     */
-    private $input;
-
-    /**
-     * @var mixed
-     */
-    private $result;
-
-    private static $messages = array(
-        JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
-        JSON_ERROR_STATE_MISMATCH => 'Invalid or malformed JSON',
-        JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
-        JSON_ERROR_SYNTAX => 'Syntax error',
-        JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded',
-        JSON_ERROR_RECURSION => 'One or more recursive references in the value to be encoded',
-        JSON_ERROR_INF_OR_NAN => 'One or more NAN or INF values in the value to be encoded',
-        JSON_ERROR_UNSUPPORTED_TYPE => 'A value of a type that cannot be encoded was given',
-
-        // JSON_ERROR_* constant values that are available on PHP >= 7.0
-        9 => 'Decoding of value would result in invalid PHP property name', //JSON_ERROR_INVALID_PROPERTY_NAME
-        10 => 'Attempted to decode nonexistent UTF-16 code-point' //JSON_ERROR_UTF16
-    );
-
-    public function __construct($code, $input, $result, $previous = null)
-    {
-        if (isset(self::$messages[$code]) !== true) {
-            throw new \InvalidArgumentException(sprintf('Encountered unknown JSON error code: [%d]', $code));
-        }
-
-        parent::__construct(self::$messages[$code], $code, $previous);
-        $this->input = $input;
-        $this->result = $result;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getInput()
-    {
-        return $this->input;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getResult()
-    {
-        return $this->result;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ServerErrorResponseException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ServerErrorResponseException.php
deleted file mode 100644
index 9841254e1b590b134a082b4d8261821312b31967..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/ServerErrorResponseException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * ServerErrorResponseException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ServerErrorResponseException extends TransportException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/TransportException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/TransportException.php
deleted file mode 100644
index 6dce5b482583099bafefcc7d392e24b45594fe4b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/TransportException.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * TransportException
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class TransportException extends \Exception implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/UnexpectedValueException.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/UnexpectedValueException.php
deleted file mode 100644
index 2a63e8088061879b6b1501764a9108ece2ebeaf0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Common/Exceptions/UnexpectedValueException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Elasticsearch\Common\Exceptions;
-
-/**
- * UnexpectedValueException
- *
- * Denote a value that is outside the normally accepted values
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Common\Exceptions
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class UnexpectedValueException extends \UnexpectedValueException implements ElasticsearchException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/AbstractConnectionPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/AbstractConnectionPool.php
deleted file mode 100644
index 625eaa4a075440e90cd0c282ed68b8ca3a15f718..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/AbstractConnectionPool.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-use Elasticsearch\Connections\ConnectionInterface;
-
-/**
- * Class AbstractConnectionPool
- *
- * @category Elasticsearch
- * @package  Elasticsearch\ConnectionPool
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractConnectionPool implements ConnectionPoolInterface
-{
-    /**
-     * Array of connections
-     *
-     * @var ConnectionInterface[]
-     */
-    protected $connections;
-
-    /**
-     * Array of initial seed connections
-     *
-     * @var ConnectionInterface[]
-     */
-    protected $seedConnections;
-
-    /**
-     * Selector object, used to select a connection on each request
-     *
-     * @var SelectorInterface
-     */
-    protected $selector;
-
-    /** @var array */
-    protected $connectionPoolParams;
-
-    /** @var \Elasticsearch\Connections\ConnectionFactory  */
-    protected $connectionFactory;
-
-    /**
-     * Constructor
-     *
-     * @param ConnectionInterface[]          $connections          The Connections to choose from
-     * @param SelectorInterface              $selector             A Selector instance to perform the selection logic for the available connections
-     * @param ConnectionFactoryInterface     $factory              ConnectionFactory instance
-     * @param array                          $connectionPoolParams
-     */
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactoryInterface $factory, $connectionPoolParams)
-    {
-        $paramList = array('connections', 'selector', 'connectionPoolParams');
-        foreach ($paramList as $param) {
-            if (isset($$param) === false) {
-                throw new InvalidArgumentException('`' . $param . '` parameter must not be null');
-            }
-        }
-
-        if (isset($connectionPoolParams['randomizeHosts']) === true
-            && $connectionPoolParams['randomizeHosts'] === true) {
-            shuffle($connections);
-        }
-
-        $this->connections          = $connections;
-        $this->seedConnections      = $connections;
-        $this->selector             = $selector;
-        $this->connectionPoolParams = $connectionPoolParams;
-        $this->connectionFactory    = $factory;
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return Connection
-     */
-    abstract public function nextConnection($force = false);
-
-    abstract public function scheduleCheck();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/ConnectionPoolInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/ConnectionPoolInterface.php
deleted file mode 100644
index d10fc3542575aefee57c1a22c4ab0639c01967d0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/ConnectionPoolInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\Connections\ConnectionInterface;
-
-/**
- * ConnectionPoolInterface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\ConnectionPool
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface ConnectionPoolInterface
-{
-    /**
-     * @param bool $force
-     *
-     * @return ConnectionInterface
-     */
-    public function nextConnection($force = false);
-
-    /**
-     * @return void
-     */
-    public function scheduleCheck();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RandomSelector.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RandomSelector.php
deleted file mode 100644
index b544292e3012fd4c65a59fc0bfe13a50b1e4d079..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RandomSelector.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool\Selectors;
-
-use Elasticsearch\Connections\ConnectionInterface;
-
-/**
- * Class RandomSelector
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections\Selectors\RandomSelector
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class RandomSelector implements SelectorInterface
-{
-    /**
-     * Select a random connection from the provided array
-     *
-     * @param  ConnectionInterface[] $connections an array of ConnectionInterface instances to choose from
-     *
-     * @return \Elasticsearch\Connections\ConnectionInterface
-     */
-    public function select($connections)
-    {
-        return $connections[array_rand($connections)];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RoundRobinSelector.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RoundRobinSelector.php
deleted file mode 100644
index e8b978454a80b665b07cd6660e2faecc01a0d27d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/RoundRobinSelector.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool\Selectors;
-
-use Elasticsearch\Connections\ConnectionInterface;
-
-/**
- * Class RoundRobinSelector
- *
- * @category Elasticsearch
- * @package  Elasticsearch\ConnectionPool\Selectors\ConnectionPool
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class RoundRobinSelector implements SelectorInterface
-{
-    /**
-     * @var int
-     */
-    private $current = 0;
-
-    /**
-     * Select the next connection in the sequence
-     *
-     * @param  ConnectionInterface[] $connections an array of ConnectionInterface instances to choose from
-     *
-     * @return \Elasticsearch\Connections\ConnectionInterface
-     */
-    public function select($connections)
-    {
-        $this->current += 1;
-
-        return $connections[$this->current % count($connections)];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/SelectorInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/SelectorInterface.php
deleted file mode 100644
index 72dfd195bb5b850a9ac12e37921bce0aae9bf0ec..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/SelectorInterface.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool\Selectors;
-
-/**
- * Class RandomSelector
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections\Selectors
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface SelectorInterface
-{
-    /**
-     * Perform logic to select a single ConnectionInterface instance from the array provided
-     *
-     * @param  ConnectionInterface[] $connections an array of ConnectionInterface instances to choose from
-     *
-     * @return \Elasticsearch\Connections\ConnectionInterface
-     */
-    public function select($connections);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/StickyRoundRobinSelector.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/StickyRoundRobinSelector.php
deleted file mode 100644
index f44a68ca42b2d6decf9d2fe835212ed74d8e095c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/Selectors/StickyRoundRobinSelector.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool\Selectors;
-
-use Elasticsearch\Connections\ConnectionInterface;
-
-/**
- * Class StickyRoundRobinSelector
- *
- * @category Elasticsearch
- * @package  Elasticsearch\ConnectionPool\Selectors\ConnectionPool
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class StickyRoundRobinSelector implements SelectorInterface
-{
-    /**
-     * @var int
-     */
-    private $current = 0;
-
-    /**
-     * @var int
-     */
-    private $currentCounter = 0;
-
-    /**
-     * Use current connection unless it is dead, otherwise round-robin
-     *
-     * @param ConnectionInterface[] $connections Array of connections to choose from
-     *
-     * @return ConnectionInterface
-     */
-    public function select($connections)
-    {
-        /** @var ConnectionInterface[] $connections */
-        if ($connections[$this->current]->isAlive()) {
-            return $connections[$this->current];
-        }
-
-        $this->currentCounter += 1;
-        $this->current = $this->currentCounter % count($connections);
-
-        return $connections[$this->current];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SimpleConnectionPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SimpleConnectionPool.php
deleted file mode 100644
index f77e8d7666114302cdfff23087508908035580ca..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SimpleConnectionPool.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-
-class SimpleConnectionPool extends AbstractConnectionPool implements ConnectionPoolInterface
-{
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactoryInterface $factory, $connectionPoolParams)
-    {
-        parent::__construct($connections, $selector, $factory, $connectionPoolParams);
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return Connection
-     * @throws \Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function nextConnection($force = false)
-    {
-        return $this->selector->select($this->connections);
-    }
-
-    public function scheduleCheck()
-    {
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php
deleted file mode 100644
index 89b1f8126f17ae0e35c9514f4050ff5c06ddf5f7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException;
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-
-class SniffingConnectionPool extends AbstractConnectionPool implements ConnectionPoolInterface
-{
-    /** @var int  */
-    private $sniffingInterval = 300;
-
-    /** @var  int */
-    private $nextSniff = -1;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactoryInterface $factory, $connectionPoolParams)
-    {
-        parent::__construct($connections, $selector, $factory, $connectionPoolParams);
-
-        $this->setConnectionPoolParams($connectionPoolParams);
-        $this->nextSniff = time() + $this->sniffingInterval;
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return Connection
-     * @throws \Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function nextConnection($force = false)
-    {
-        $this->sniff($force);
-
-        $size = count($this->connections);
-        while ($size--) {
-            /** @var Connection $connection */
-            $connection = $this->selector->select($this->connections);
-            if ($connection->isAlive() === true || $connection->ping() === true) {
-                return $connection;
-            }
-        }
-
-        if ($force === true) {
-            throw new NoNodesAvailableException("No alive nodes found in your cluster");
-        }
-
-        return $this->nextConnection(true);
-    }
-
-    public function scheduleCheck()
-    {
-        $this->nextSniff = -1;
-    }
-
-    /**
-     * @param bool $force
-     */
-    private function sniff($force = false)
-    {
-        if ($force === false && $this->nextSniff >= time()) {
-            return;
-        }
-
-        $total = count($this->connections);
-
-        while ($total--) {
-            /** @var Connection $connection */
-            $connection = $this->selector->select($this->connections);
-
-            if ($connection->isAlive() xor $force) {
-                continue;
-            }
-
-            if ($this->sniffConnection($connection) === true) {
-                return;
-            }
-        }
-
-        if ($force === true) {
-            return;
-        }
-
-        foreach ($this->seedConnections as $connection) {
-            if ($this->sniffConnection($connection) === true) {
-                return;
-            }
-        }
-    }
-
-    /**
-     * @param Connection $connection
-     * @return bool
-     */
-    private function sniffConnection(Connection $connection)
-    {
-        try {
-            $response = $connection->sniff();
-        } catch (OperationTimeoutException $exception) {
-            return false;
-        }
-
-        $nodes = $this->parseClusterState($connection->getTransportSchema(), $response);
-
-        if (count($nodes) === 0) {
-            return false;
-        }
-
-        $this->connections = array();
-
-        foreach ($nodes as $node) {
-            $nodeDetails = array(
-                'host' => $node['host'],
-                'port' => $node['port']
-            );
-            $this->connections[] = $this->connectionFactory->create($nodeDetails);
-        }
-
-        $this->nextSniff = time() + $this->sniffingInterval;
-
-        return true;
-    }
-
-    private function parseClusterState($transportSchema, $nodeInfo)
-    {
-        $pattern       = '/\/([^:]*):([0-9]+)\]/';
-        $schemaAddress = $transportSchema . '_address';
-        $hosts         = array();
-
-        foreach ($nodeInfo['nodes'] as $node) {
-            if (isset($node[$schemaAddress]) === true) {
-                if (preg_match($pattern, $node[$schemaAddress], $match) === 1) {
-                    $hosts[] = array(
-                        'host' => $match[1],
-                        'port' => (int) $match[2],
-                    );
-                }
-            }
-        }
-
-        return $hosts;
-    }
-
-    private function setConnectionPoolParams($connectionPoolParams)
-    {
-        if (isset($connectionPoolParams['sniffingInterval']) === true) {
-            $this->sniffingInterval = $connectionPoolParams['sniffingInterval'];
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticConnectionPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticConnectionPool.php
deleted file mode 100644
index 102dda37c11196069428a4744bf66c85485a5978..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticConnectionPool.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-
-class StaticConnectionPool extends AbstractConnectionPool implements ConnectionPoolInterface
-{
-    /**
-     * @var int
-     */
-    private $pingTimeout    = 60;
-
-    /**
-     * @var int
-     */
-    private $maxPingTimeout = 3600;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactoryInterface $factory, $connectionPoolParams)
-    {
-        parent::__construct($connections, $selector, $factory, $connectionPoolParams);
-        $this->scheduleCheck();
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return Connection
-     * @throws \Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function nextConnection($force = false)
-    {
-        $skipped = array();
-
-        $total = count($this->connections);
-        while ($total--) {
-            /** @var Connection $connection */
-            $connection = $this->selector->select($this->connections);
-            if ($connection->isAlive() === true) {
-                return $connection;
-            }
-
-            if ($this->readyToRevive($connection) === true) {
-                if ($connection->ping() === true) {
-                    return $connection;
-                }
-            } else {
-                $skipped[] = $connection;
-            }
-        }
-
-        // All "alive" nodes failed, force pings on "dead" nodes
-        foreach ($skipped as $connection) {
-            if ($connection->ping() === true) {
-                return $connection;
-            }
-        }
-
-        throw new NoNodesAvailableException("No alive nodes found in your cluster");
-    }
-
-    public function scheduleCheck()
-    {
-        foreach ($this->connections as $connection) {
-            $connection->markDead();
-        }
-    }
-
-    /**
-     * @param Connection $connection
-     *
-     * @return bool
-     */
-    private function readyToRevive(Connection $connection)
-    {
-        $timeout = min(
-            $this->pingTimeout * pow(2, $connection->getPingFailures()),
-            $this->maxPingTimeout
-        );
-
-        if ($connection->getLastPing() + $timeout < time()) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php
deleted file mode 100644
index b7b056e67c3a2bf7e620cceaacedc76725f121c9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace Elasticsearch\ConnectionPool;
-
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Elasticsearch\ConnectionPool\Selectors\SelectorInterface;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionFactoryInterface;
-
-class StaticNoPingConnectionPool extends AbstractConnectionPool implements ConnectionPoolInterface
-{
-    /**
-     * @var int
-     */
-    private $pingTimeout    = 60;
-
-    /**
-     * @var int
-     */
-    private $maxPingTimeout = 3600;
-
-    /**
-     * {@inheritdoc}
-     */
-    public function __construct($connections, SelectorInterface $selector, ConnectionFactoryInterface $factory, $connectionPoolParams)
-    {
-        parent::__construct($connections, $selector, $factory, $connectionPoolParams);
-    }
-
-    /**
-     * @param bool $force
-     *
-     * @return Connection
-     * @throws \Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function nextConnection($force = false)
-    {
-        $total = count($this->connections);
-        while ($total--) {
-            /** @var Connection $connection */
-            $connection = $this->selector->select($this->connections);
-            if ($connection->isAlive() === true) {
-                return $connection;
-            }
-
-            if ($this->readyToRevive($connection) === true) {
-                return $connection;
-            }
-        }
-
-        throw new NoNodesAvailableException("No alive nodes found in your cluster");
-    }
-
-    public function scheduleCheck()
-    {
-    }
-
-    /**
-     * @param \Elasticsearch\Connections\Connection $connection
-     *
-     * @return bool
-     */
-    private function readyToRevive(Connection $connection)
-    {
-        $timeout = min(
-            $this->pingTimeout * pow(2, $connection->getPingFailures()),
-            $this->maxPingTimeout
-        );
-
-        if ($connection->getLastPing() + $timeout < time()) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/Connection.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/Connection.php
deleted file mode 100644
index 2d9e28984ea7d97e5326165e4fbbf384c0f81e5a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/Connection.php
+++ /dev/null
@@ -1,706 +0,0 @@
-<?php
-
-namespace Elasticsearch\Connections;
-
-use Elasticsearch\Common\Exceptions\AlreadyExpiredException;
-use Elasticsearch\Common\Exceptions\BadRequest400Exception;
-use Elasticsearch\Common\Exceptions\Conflict409Exception;
-use Elasticsearch\Common\Exceptions\Curl\CouldNotConnectToHost;
-use Elasticsearch\Common\Exceptions\Curl\CouldNotResolveHostException;
-use Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException;
-use Elasticsearch\Common\Exceptions\Forbidden403Exception;
-use Elasticsearch\Common\Exceptions\MaxRetriesException;
-use Elasticsearch\Common\Exceptions\Missing404Exception;
-use Elasticsearch\Common\Exceptions\NoDocumentsToGetException;
-use Elasticsearch\Common\Exceptions\NoShardAvailableException;
-use Elasticsearch\Common\Exceptions\RequestTimeout408Exception;
-use Elasticsearch\Common\Exceptions\RoutingMissingException;
-use Elasticsearch\Common\Exceptions\ScriptLangNotSupportedException;
-use Elasticsearch\Common\Exceptions\ServerErrorResponseException;
-use Elasticsearch\Common\Exceptions\TransportException;
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Exception\ConnectException;
-use GuzzleHttp\Ring\Exception\RingException;
-use Psr\Log\LoggerInterface;
-
-/**
- * Class AbstractConnection
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Connection implements ConnectionInterface
-{
-    /** @var  callable */
-    protected $handler;
-
-    /** @var SerializerInterface */
-    protected $serializer;
-
-    /**
-     * @var string
-     */
-    protected $transportSchema = 'http';    // TODO depreciate this default
-
-    /**
-     * @var string
-     */
-    protected $host;
-
-    /**
-     * @var string || null
-     */
-    protected $path;
-
-    /**
-     * @var LoggerInterface
-     */
-    protected $log;
-
-    /**
-     * @var LoggerInterface
-     */
-    protected $trace;
-
-    /**
-     * @var array
-     */
-    protected $connectionParams;
-
-    /** @var bool  */
-    protected $isAlive = false;
-
-    /** @var float  */
-    private $pingTimeout = 1;    //TODO expose this
-
-    /** @var int  */
-    private $lastPing = 0;
-
-    /** @var int  */
-    private $failedPings = 0;
-
-    private $lastRequest = array();
-
-    /**
-     * Constructor
-     *
-     * @param $handler
-     * @param array $hostDetails
-     * @param array $connectionParams Array of connection-specific parameters
-     * @param \Elasticsearch\Serializers\SerializerInterface $serializer
-     * @param \Psr\Log\LoggerInterface $log              Logger object
-     * @param \Psr\Log\LoggerInterface $trace
-     */
-    public function __construct($handler, $hostDetails, $connectionParams,
-                                SerializerInterface $serializer, LoggerInterface $log, LoggerInterface $trace)
-    {
-        if (isset($hostDetails['port']) !== true) {
-            $hostDetails['port'] = 9200;
-        }
-
-        if (isset($hostDetails['scheme'])) {
-            $this->transportSchema = $hostDetails['scheme'];
-        }
-
-        if (isset($hostDetails['user']) && isset($hostDetails['pass'])) {
-            $connectionParams['client']['curl'][CURLOPT_HTTPAUTH] = CURLAUTH_BASIC;
-            $connectionParams['client']['curl'][CURLOPT_USERPWD] = $hostDetails['user'].':'.$hostDetails['pass'];
-        }
-
-        $host = $hostDetails['host'].':'.$hostDetails['port'];
-        $path = null;
-        if (isset($hostDetails['path']) === true) {
-            $path = $hostDetails['path'];
-        }
-        $this->host             = $host;
-        $this->path             = $path;
-        $this->log              = $log;
-        $this->trace            = $trace;
-        $this->connectionParams = $connectionParams;
-        $this->serializer       = $serializer;
-
-        $this->handler = $this->wrapHandler($handler, $log, $trace);
-    }
-
-    /**
-     * @param $method
-     * @param $uri
-     * @param null $params
-     * @param null $body
-     * @param array $options
-     * @param \Elasticsearch\Transport $transport
-     * @return mixed
-     */
-    public function performRequest($method, $uri, $params = null, $body = null, $options = [], Transport $transport = null)
-    {
-        if (isset($body) === true) {
-            $body = $this->serializer->serialize($body);
-        }
-
-        $request = [
-            'http_method' => $method,
-            'scheme'      => $this->transportSchema,
-            'uri'         => $this->getURI($uri, $params),
-            'body'        => $body,
-            'headers'     => [
-                'host'  => [$this->host]
-            ]
-
-        ];
-        $request = array_merge_recursive($request, $this->connectionParams, $options);
-
-
-        $handler = $this->handler;
-        $future = $handler($request, $this, $transport, $options);
-
-        return $future;
-    }
-
-    /** @return string */
-    public function getTransportSchema()
-    {
-        return $this->transportSchema;
-    }
-
-    /** @return array */
-    public function getLastRequestInfo()
-    {
-        return $this->lastRequest;
-    }
-
-    private function wrapHandler(callable $handler, LoggerInterface $logger, LoggerInterface $tracer)
-    {
-        return function (array $request, Connection $connection, Transport $transport = null, $options) use ($handler, $logger, $tracer) {
-
-            $this->lastRequest = [];
-            $this->lastRequest['request'] = $request;
-
-            // Send the request using the wrapped handler.
-            $response =  Core::proxy($handler($request), function ($response) use ($connection, $transport, $logger, $tracer, $request, $options) {
-
-                $this->lastRequest['response'] = $response;
-
-                if (isset($response['error']) === true) {
-                    if ($response['error'] instanceof ConnectException || $response['error'] instanceof RingException) {
-                        $this->log->warning("Curl exception encountered.");
-
-                        $exception = $this->getCurlRetryException($request, $response);
-
-                        $this->logRequestFail(
-                            $request['http_method'],
-                            $response['effective_url'],
-                            $request['body'],
-                            $request['headers'],
-                            $response['status'],
-                            $response['body'],
-                            $response['transfer_stats']['total_time'],
-                            $exception
-                        );
-
-                        $node = $connection->getHost();
-                        $this->log->warning("Marking node $node dead.");
-                        $connection->markDead();
-
-                        // If the transport has not been set, we are inside a Ping or Sniff,
-                        // so we don't want to retrigger retries anyway.
-                        //
-                        // TODO this could be handled better, but we are limited because connectionpools do not
-                        // have access to Transport.  Architecturally, all of this needs to be refactored
-                        if (isset($transport) === true) {
-                            $transport->connectionPool->scheduleCheck();
-
-                            $neverRetry = isset($request['client']['never_retry']) ? $request['client']['never_retry'] : false;
-                            $shouldRetry = $transport->shouldRetry($request);
-                            $shouldRetryText = ($shouldRetry) ? 'true' : 'false';
-
-                            $this->log->warning("Retries left? $shouldRetryText");
-                            if ($shouldRetry && !$neverRetry) {
-                                return $transport->performRequest(
-                                    $request['http_method'],
-                                    $request['uri'],
-                                    [],
-                                    $request['body'],
-                                    $options
-                                );
-                            }
-                        }
-
-                        $this->log->warning("Out of retries, throwing exception from $node");
-                        // Only throw if we run out of retries
-                        throw $exception;
-                    } else {
-                        // Something went seriously wrong, bail
-                        $exception = new TransportException($response['error']->getMessage());
-                        $this->logRequestFail(
-                            $request['http_method'],
-                            $response['effective_url'],
-                            $request['body'],
-                            $request['headers'],
-                            $response['status'],
-                            $response['body'],
-                            $response['transfer_stats']['total_time'],
-                            $exception
-                        );
-                        throw $exception;
-                    }
-                } else {
-                    $connection->markAlive();
-
-                    if (isset($response['body']) === true) {
-                        $response['body'] = stream_get_contents($response['body']);
-                        $this->lastRequest['response']['body'] = $response['body'];
-                    }
-
-                    if ($response['status'] >= 400 && $response['status'] < 500) {
-                        $ignore = isset($request['client']['ignore']) ? $request['client']['ignore'] : [];
-                        $this->process4xxError($request, $response, $ignore);
-                    } elseif ($response['status'] >= 500) {
-                        $ignore = isset($request['client']['ignore']) ? $request['client']['ignore'] : [];
-                        $this->process5xxError($request, $response, $ignore);
-                    }
-
-                    // No error, deserialize
-                    $response['body'] = $this->serializer->deserialize($response['body'], $response['transfer_stats']);
-                }
-                $this->logRequestSuccess(
-                    $request['http_method'],
-                    $response['effective_url'],
-                    $request['body'],
-                    $request['headers'],
-                    $response['status'],
-                    $response['body'],
-                    $response['transfer_stats']['total_time']
-                );
-
-                return isset($request['client']['verbose']) && $request['client']['verbose'] === true ? $response : $response['body'];
-
-            });
-
-            return $response;
-        };
-    }
-
-    /**
-     * @param string $uri
-     * @param array $params
-     *
-     * @return string
-     */
-    private function getURI($uri, $params)
-    {
-        if (isset($params) === true && !empty($params)) {
-            array_walk($params, function (&$value, &$key) {
-                if ($value === true) {
-                    $value = 'true';
-                } else if ($value === false) {
-                    $value = 'false';
-                }
-            });
-
-            $uri .= '?' . http_build_query($params);
-        }
-
-        if ($this->path !== null) {
-            $uri = $this->path . $uri;
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Log a successful request
-     *
-     * @param string $method
-     * @param string $fullURI
-     * @param string $body
-     * @param array  $headers
-     * @param string $statusCode
-     * @param string $response
-     * @param string $duration
-     *
-     * @return void
-     */
-    public function logRequestSuccess($method, $fullURI, $body, $headers, $statusCode, $response, $duration)
-    {
-        $this->log->debug('Request Body', array($body));
-        $this->log->info(
-            'Request Success:',
-            array(
-                'method'    => $method,
-                'uri'       => $fullURI,
-                'headers'   => $headers,
-                'HTTP code' => $statusCode,
-                'duration'  => $duration,
-            )
-        );
-        $this->log->debug('Response', array($response));
-
-        // Build the curl command for Trace.
-        $curlCommand = $this->buildCurlCommand($method, $fullURI, $body);
-        $this->trace->info($curlCommand);
-        $this->trace->debug(
-            'Response:',
-            array(
-                'response'  => $response,
-                'method'    => $method,
-                'uri'       => $fullURI,
-                'HTTP code' => $statusCode,
-                'duration'  => $duration,
-            )
-        );
-    }
-
-    /**
-     * Log a a failed request
-     *
-     * @param string $method
-     * @param string $fullURI
-     * @param string $body
-     * @param array $headers
-     * @param null|string $statusCode
-     * @param null|string $response
-     * @param string $duration
-     * @param \Exception|null $exception
-     *
-     * @return void
-     */
-    public function logRequestFail($method, $fullURI, $body, $headers, $statusCode, $response, $duration, \Exception $exception)
-    {
-        $this->log->debug('Request Body', array($body));
-        $this->log->warning(
-            'Request Failure:',
-            array(
-                'method'    => $method,
-                'uri'       => $fullURI,
-                'headers'   => $headers,
-                'HTTP code' => $statusCode,
-                'duration'  => $duration,
-                'error'     => $exception->getMessage(),
-            )
-        );
-        $this->log->warning('Response', array($response));
-
-        // Build the curl command for Trace.
-        $curlCommand = $this->buildCurlCommand($method, $fullURI, $body);
-        $this->trace->info($curlCommand);
-        $this->trace->debug(
-            'Response:',
-            array(
-                'response'  => $response,
-                'method'    => $method,
-                'uri'       => $fullURI,
-                'HTTP code' => $statusCode,
-                'duration'  => $duration,
-            )
-        );
-    }
-
-    /**
-     * @return bool
-     */
-    public function ping()
-    {
-        $options = [
-            'client' => [
-                'timeout' => $this->pingTimeout,
-                'never_retry' => true,
-                'verbose' => true
-            ]
-        ];
-        try {
-            $response = $this->performRequest('HEAD', '/', null, null, $options);
-            $response = $response->wait();
-        } catch (TransportException $exception) {
-            $this->markDead();
-
-            return false;
-        }
-
-        if ($response['status'] === 200) {
-            $this->markAlive();
-
-            return true;
-        } else {
-            $this->markDead();
-
-            return false;
-        }
-    }
-
-    /**
-     * @return array
-     */
-    public function sniff()
-    {
-        $options = [
-            'client' => [
-                'timeout' => $this->pingTimeout,
-                'never_retry' => true
-            ]
-        ];
-
-        return $this->performRequest('GET', '/_nodes/_all/clear', null, null, $options);
-    }
-
-    /**
-     * @return bool
-     */
-    public function isAlive()
-    {
-        return $this->isAlive;
-    }
-
-    public function markAlive()
-    {
-        $this->failedPings = 0;
-        $this->isAlive = true;
-        $this->lastPing = time();
-    }
-
-    public function markDead()
-    {
-        $this->isAlive = false;
-        $this->failedPings += 1;
-        $this->lastPing = time();
-    }
-
-    /**
-     * @return int
-     */
-    public function getLastPing()
-    {
-        return $this->lastPing;
-    }
-
-    /**
-     * @return int
-     */
-    public function getPingFailures()
-    {
-        return $this->failedPings;
-    }
-
-    /**
-     * @return string
-     */
-    public function getHost()
-    {
-        return $this->host;
-    }
-
-    /**
-     * @return null|string
-     */
-    public function getUserPass()
-    {
-        if (isset($this->connectionParams['client']['curl'][CURLOPT_USERPWD]) === true) {
-            return $this->connectionParams['client']['curl'][CURLOPT_USERPWD];
-        }
-        return null;
-    }
-
-    /**
-     * @return null|string
-     */
-    public function getPath()
-    {
-        return $this->path;
-    }
-
-    /**
-     * @param $request
-     * @param $response
-     * @return \Elasticsearch\Common\Exceptions\Curl\CouldNotConnectToHost|\Elasticsearch\Common\Exceptions\Curl\CouldNotResolveHostException|\Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException|\Elasticsearch\Common\Exceptions\MaxRetriesException
-     */
-    protected function getCurlRetryException($request, $response)
-    {
-        $exception = null;
-        $message = $response['error']->getMessage();
-        $exception = new MaxRetriesException($message);
-        switch ($response['curl']['errno']) {
-            case 6:
-                $exception = new CouldNotResolveHostException($message, null, $exception);
-                break;
-            case 7:
-                $exception = new CouldNotConnectToHost($message, null, $exception);
-                break;
-            case 28:
-                $exception = new OperationTimeoutException($message, null, $exception);
-                break;
-        }
-
-        return $exception;
-    }
-
-    /**
-     * Construct a string cURL command
-     *
-     * @param string $method HTTP method
-     * @param string $uri    Full URI of request
-     * @param string $body   Request body
-     *
-     * @return string
-     */
-    private function buildCurlCommand($method, $uri, $body)
-    {
-        if (strpos($uri, '?') === false) {
-            $uri .= '?pretty=true';
-        } else {
-            str_replace('?', '?pretty=true', $uri);
-        }
-
-        $curlCommand = 'curl -X' . strtoupper($method);
-        $curlCommand .= " '" . $uri . "'";
-
-        if (isset($body) === true && $body !== '') {
-            $curlCommand .= " -d '" . $body . "'";
-        }
-
-        return $curlCommand;
-    }
-
-    /**
-     * @param $request
-     * @param $response
-     * @param $ignore
-     * @throws \Elasticsearch\Common\Exceptions\AlreadyExpiredException|\Elasticsearch\Common\Exceptions\BadRequest400Exception|\Elasticsearch\Common\Exceptions\Conflict409Exception|\Elasticsearch\Common\Exceptions\Forbidden403Exception|\Elasticsearch\Common\Exceptions\Missing404Exception|\Elasticsearch\Common\Exceptions\ScriptLangNotSupportedException|null
-     */
-    private function process4xxError($request, $response, $ignore)
-    {
-        $statusCode = $response['status'];
-        $responseBody = $response['body'];
-
-        /** @var \Exception $exception */
-        $exception = $this->tryDeserialize400Error($response);
-
-        if (array_search($response['status'], $ignore) !== false) {
-            return;
-        }
-
-        if ($statusCode === 400 && strpos($responseBody, "AlreadyExpiredException") !== false) {
-            $exception = new AlreadyExpiredException($responseBody, $statusCode);
-        } elseif ($statusCode === 403) {
-            $exception = new Forbidden403Exception($responseBody, $statusCode);
-        } elseif ($statusCode === 404) {
-            $exception = new Missing404Exception($responseBody, $statusCode);
-        } elseif ($statusCode === 409) {
-            $exception = new Conflict409Exception($responseBody, $statusCode);
-        } elseif ($statusCode === 400 && strpos($responseBody, 'script_lang not supported') !== false) {
-            $exception = new ScriptLangNotSupportedException($responseBody. $statusCode);
-        } elseif ($statusCode === 408) {
-            $exception = new RequestTimeout408Exception($responseBody, $statusCode);
-        } else {
-            $exception = new BadRequest400Exception($responseBody, $statusCode);
-        }
-
-        $this->logRequestFail(
-            $request['http_method'],
-            $response['effective_url'],
-            $request['body'],
-            $request['headers'],
-            $response['status'],
-            $response['body'],
-            $response['transfer_stats']['total_time'],
-            $exception
-        );
-
-        throw $exception;
-    }
-
-    /**
-     * @param $request
-     * @param $response
-     * @param $ignore
-     * @throws \Elasticsearch\Common\Exceptions\NoDocumentsToGetException|\Elasticsearch\Common\Exceptions\NoShardAvailableException|\Elasticsearch\Common\Exceptions\RoutingMissingException|\Elasticsearch\Common\Exceptions\ServerErrorResponseException
-     */
-    private function process5xxError($request, $response, $ignore)
-    {
-        $statusCode = $response['status'];
-        $responseBody = $response['body'];
-
-        /** @var \Exception $exception */
-        $exception = $this->tryDeserialize500Error($response);
-
-        $exceptionText = "[$statusCode Server Exception] ".$exception->getMessage();
-        $this->log->error($exceptionText);
-        $this->log->error($exception->getTraceAsString());
-
-        if (array_search($statusCode, $ignore) !== false) {
-            return;
-        }
-
-        if ($statusCode === 500 && strpos($responseBody, "RoutingMissingException") !== false) {
-            $exception = new RoutingMissingException($exception->getMessage(), $statusCode, $exception);
-        } elseif ($statusCode === 500 && preg_match('/ActionRequestValidationException.+ no documents to get/', $responseBody) === 1) {
-            $exception = new NoDocumentsToGetException($exception->getMessage(), $statusCode, $exception);
-        } elseif ($statusCode === 500 && strpos($responseBody, 'NoShardAvailableActionException') !== false) {
-            $exception = new NoShardAvailableException($exception->getMessage(), $statusCode, $exception);
-        } else {
-            $exception = new ServerErrorResponseException($responseBody, $statusCode);
-        }
-
-        $this->logRequestFail(
-            $request['http_method'],
-            $response['effective_url'],
-            $request['body'],
-            $request['headers'],
-            $response['status'],
-            $response['body'],
-            $response['transfer_stats']['total_time'],
-            $exception
-        );
-
-        throw $exception;
-    }
-
-    private function tryDeserialize400Error($response)
-    {
-        return $this->tryDeserializeError($response, 'Elasticsearch\Common\Exceptions\BadRequest400Exception');
-    }
-
-    private function tryDeserialize500Error($response)
-    {
-        return $this->tryDeserializeError($response, 'Elasticsearch\Common\Exceptions\ServerErrorResponseException');
-    }
-
-    private function tryDeserializeError($response, $errorClass)
-    {
-        $error = $this->serializer->deserialize($response['body'], $response['transfer_stats']);
-        if (is_array($error) === true) {
-            // 2.0 structured exceptions
-            if (isset($error['error']['reason']) === true) {
-
-                // Try to use root cause first (only grabs the first root cause)
-                $root = $error['error']['root_cause'];
-                if (isset($root) && isset($root[0])) {
-                    $cause = $root[0]['reason'];
-                    $type = $root[0]['type'];
-                } else {
-                    $cause = $error['error']['reason'];
-                    $type = $error['error']['type'];
-                }
-
-                $original = new $errorClass($response['body'], $response['status']);
-
-                return new $errorClass("$type: $cause", $response['status'], $original);
-            } elseif (isset($error['error']) === true) {
-                // <2.0 semi-structured exceptions
-                $original = new $errorClass($response['body'], $response['status']);
-
-                return new $errorClass($error['error'], $response['status'], $original);
-            }
-
-            // <2.0 "i just blew up" nonstructured exception
-            // $error is an array but we don't know the format, reuse the response body instead
-            return new $errorClass($response['body'], $response['status']);
-        }
-
-        // <2.0 "i just blew up" nonstructured exception
-        return new $errorClass($response['body']);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactory.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactory.php
deleted file mode 100644
index 88d6dc938d7fb415cefa068b8045de59a7090f96..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactory.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace Elasticsearch\Connections;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Psr\Log\LoggerInterface;
-
-/**
- * Class AbstractConnection
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ConnectionFactory implements ConnectionFactoryInterface
-{
-    /** @var  array */
-    private $connectionParams;
-
-    /** @var  SerializerInterface */
-    private $serializer;
-
-    /** @var  LoggerInterface */
-    private $logger;
-
-    /** @var  LoggerInterface */
-    private $tracer;
-
-    /** @var callable */
-    private $handler;
-
-    /**
-     * Constructor
-     *
-     * @param callable            $handler
-     * @param array               $connectionParams
-     * @param SerializerInterface $serializer
-     * @param LoggerInterface     $logger
-     * @param LoggerInterface     $tracer
-     */
-    public function __construct(callable $handler, array $connectionParams, SerializerInterface $serializer, LoggerInterface $logger, LoggerInterface $tracer)
-    {
-        $this->handler          = $handler;
-        $this->connectionParams = $connectionParams;
-        $this->logger           = $logger;
-        $this->tracer           = $tracer;
-        $this->serializer       = $serializer;
-    }
-    /**
-     * @param $hostDetails
-     *
-     * @return ConnectionInterface
-     */
-    public function create($hostDetails)
-    {
-        return new Connection(
-            $this->handler,
-            $hostDetails,
-            $this->connectionParams,
-            $this->serializer,
-            $this->logger,
-            $this->tracer
-        );
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactoryInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactoryInterface.php
deleted file mode 100644
index 242a32105cc81cfe7881432f1bd7c1d7b01deb27..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionFactoryInterface.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-namespace Elasticsearch\Connections;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Psr\Log\LoggerInterface;
-
-/**
- * Class AbstractConnection
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface ConnectionFactoryInterface
-{
-    /**
-     * @param $handler
-     * @param array $connectionParams
-     * @param SerializerInterface $serializer
-     * @param LoggerInterface $logger
-     * @param LoggerInterface $tracer
-     */
-    public function __construct(callable $handler, array $connectionParams,
-                                SerializerInterface $serializer, LoggerInterface $logger, LoggerInterface $tracer);
-
-    /**
-     * @param $hostDetails
-     *
-     * @return ConnectionInterface
-     */
-    public function create($hostDetails);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionInterface.php
deleted file mode 100644
index 3f8806cf7af3f5dc35fa672a5b372707fd02d968..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Connections/ConnectionInterface.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-namespace Elasticsearch\Connections;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-use Psr\Log\LoggerInterface;
-
-/**
- * Interface ConnectionInterface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Connections
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface ConnectionInterface
-{
-    /**
-     * Constructor
-     *
-     * @param $handler
-     * @param array $hostDetails
-     * @param array $connectionParams connection-specific parameters
-     * @param \Elasticsearch\Serializers\SerializerInterface $serializer
-     * @param \Psr\Log\LoggerInterface $log          Logger object
-     * @param \Psr\Log\LoggerInterface $trace        Logger object
-     */
-    public function __construct($handler, $hostDetails, $connectionParams,
-                                SerializerInterface $serializer, LoggerInterface $log, LoggerInterface $trace);
-
-    /**
-     * Get the transport schema for this connection
-     *
-     * @return string
-     */
-    public function getTransportSchema();
-
-    /**
-     * Get the hostname for this connection
-     *
-     * @return string
-     */
-    public function getHost();
-
-    /**
-     * Get the username:password string for this connection, null if not set
-     *
-     * @return null|string
-     */
-    public function getUserPass();
-
-    /**
-     * Get the URL path suffix, null if not set
-     *
-     * @return null or string;
-     */
-    public function getPath();
-
-    /**
-     * Check to see if this instance is marked as 'alive'
-     *
-     * @return bool
-     */
-    public function isAlive();
-
-    /**
-     * Mark this instance as 'alive'
-     *
-     * @return void
-     */
-    public function markAlive();
-
-    /**
-     * Mark this instance as 'dead'
-     *
-     * @return void
-     */
-    public function markDead();
-
-    /**
-     * Return an associative array of information about the last request
-     *
-     * @return array
-     */
-    public function getLastRequestInfo();
-
-    /**
-     * @param $method
-     * @param $uri
-     * @param null $params
-     * @param null $body
-     * @param array $options
-     * @param \Elasticsearch\Transport $transport
-     * @return mixed
-     */
-    public function performRequest($method, $uri, $params = null, $body = null, $options = [], Transport $transport);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/AbstractEndpoint.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/AbstractEndpoint.php
deleted file mode 100644
index 9ede17a8280c6770634be7f154431272360d123b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/AbstractEndpoint.php
+++ /dev/null
@@ -1,287 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions\UnexpectedValueException;
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-use Exception;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-
-/**
- * Class AbstractEndpoint
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractEndpoint
-{
-    /** @var array  */
-    protected $params = array();
-
-    /** @var  string */
-    protected $index = null;
-
-    /** @var  string */
-    protected $type = null;
-
-    /** @var  string|int */
-    protected $id = null;
-
-    /** @var  string */
-    protected $method = null;
-
-    /** @var  array */
-    protected $body = null;
-
-    /** @var array  */
-    private $options = [];
-
-    /** @var  SerializerInterface */
-    protected $serializer;
-
-    /**
-     * @return string[]
-     */
-    abstract public function getParamWhitelist();
-
-    /**
-     * @return string
-     */
-    abstract public function getURI();
-
-    /**
-     * @return string
-     */
-    abstract public function getMethod();
-
-
-    /**
-     * Set the parameters for this endpoint
-     *
-     * @param string[] $params Array of parameters
-     * @return $this
-     */
-    public function setParams($params)
-    {
-        if (is_object($params) === true) {
-            $params = (array) $params;
-        }
-
-        $this->checkUserParams($params);
-        $params = $this->convertCustom($params);
-        $this->extractOptions($params);
-        $this->params = $this->convertArraysToStrings($params);
-
-        return $this;
-    }
-
-    /**
-     * @return array
-     */
-    public function getParams()
-    {
-        return $this->params;
-    }
-
-    /**
-     * @return array
-     */
-    public function getOptions()
-    {
-        return $this->options;
-    }
-
-    /**
-     * @param string $index
-     *
-     * @return $this
-     */
-    public function setIndex($index)
-    {
-        if ($index === null) {
-            return $this;
-        }
-
-        if (is_array($index) === true) {
-            $index = array_map('trim', $index);
-            $index = implode(",", $index);
-        }
-
-        $this->index = urlencode($index);
-
-        return $this;
-    }
-
-    /**
-     * @param string $type
-     *
-     * @return $this
-     */
-    public function setType($type)
-    {
-        if ($type === null) {
-            return $this;
-        }
-
-        if (is_array($type) === true) {
-            $type = array_map('trim', $type);
-            $type = implode(",", $type);
-        }
-
-        $this->type = urlencode($type);
-
-        return $this;
-    }
-
-    /**
-     * @param int|string $docID
-     *
-     * @return $this
-     */
-    public function setID($docID)
-    {
-        if ($docID === null) {
-            return $this;
-        }
-
-        $this->id = urlencode($docID);
-
-        return $this;
-    }
-
-    /**
-     * @return array
-     */
-    public function getBody()
-    {
-        return $this->body;
-    }
-
-    /**
-     * @param string $endpoint
-     *
-     * @return string
-     */
-    protected function getOptionalURI($endpoint)
-    {
-        $uri = array();
-        $uri[] = $this->getOptionalIndex();
-        $uri[] = $this->getOptionalType();
-        $uri[] = $endpoint;
-        $uri =  array_filter($uri);
-
-        return '/' . implode('/', $uri);
-    }
-
-    /**
-     * @return string
-     */
-    private function getOptionalIndex()
-    {
-        if (isset($this->index) === true) {
-            return $this->index;
-        } else {
-            return '_all';
-        }
-    }
-
-    /**
-     * @return string
-     */
-    private function getOptionalType()
-    {
-        if (isset($this->type) === true) {
-            return $this->type;
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * @param array $params
-     *
-     * @throws \Elasticsearch\Common\Exceptions\UnexpectedValueException
-     */
-    private function checkUserParams($params)
-    {
-        if (isset($params) !== true) {
-            return; //no params, just return.
-        }
-
-        $whitelist = array_merge($this->getParamWhitelist(), array('client', 'custom', 'filter_path', 'human'));
-
-        $invalid = array_diff(array_keys($params), $whitelist);
-        if (count($invalid) > 0) {
-            sort($invalid);
-            sort($whitelist);
-            throw new UnexpectedValueException(sprintf(
-                (count($invalid) > 1 ? '"%s" are not valid parameters.' : '"%s" is not a valid parameter.').' Allowed parameters are "%s"',
-                implode('", "', $invalid),
-                implode('", "', $whitelist)
-            ));
-        }
-    }
-
-    /**
-     * @param $params       Note: this is passed by-reference!
-     */
-    private function extractOptions(&$params)
-    {
-        // Extract out client options, then start transforming
-        if (isset($params['client']) === true) {
-            $this->options['client'] = $params['client'];
-            unset($params['client']);
-        }
-
-        $ignore = isset($this->options['client']['ignore']) ? $this->options['client']['ignore'] : null;
-        if (isset($ignore) === true) {
-            if (is_string($ignore)) {
-                $this->options['client']['ignore'] = explode(",", $ignore);
-            } elseif (is_array($ignore)) {
-                $this->options['client']['ignore'] = $ignore;
-            } else {
-                $this->options['client']['ignore'] = [$ignore];
-            }
-        }
-    }
-
-    private function convertCustom($params)
-    {
-        if (isset($params['custom']) === true) {
-            foreach ($params['custom'] as $k => $v) {
-                $params[$k] = $v;
-            }
-            unset($params['custom']);
-        }
-
-        return $params;
-    }
-
-    private function convertArraysToStrings($params)
-    {
-        foreach ($params as $key => &$value) {
-            if (!($key === 'client' || $key == 'custom') && is_array($value) === true) {
-                if ($this->isNestedArray($value) !== true) {
-                    $value = implode(",", $value);
-                }
-            }
-        }
-
-        return $params;
-    }
-
-    private function isNestedArray($a)
-    {
-        foreach ($a as $v) {
-            if (is_array($v)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Bulk.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Bulk.php
deleted file mode 100644
index 3bc15bc4e9337bd8019d549afcc0812b77b4afcf..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Bulk.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-
-/**
- * Class Bulk
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Bulk extends AbstractEndpoint implements BulkEndpointInterface
-{
-    /**
-     * @param SerializerInterface $serializer
-     */
-    public function __construct(SerializerInterface $serializer)
-    {
-        $this->serializer = $serializer;
-    }
-
-    /**
-     * @param string|array|\Traversable $body
-     *
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (empty($body)) {
-            return $this;
-        }
-
-        if (is_array($body) === true || $body instanceof \Traversable) {
-            foreach ($body as $item) {
-                $this->body .= $this->serializer->serialize($item) . "\n";
-            }
-        } else {
-            $this->body = $body;
-        }
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return $this->getOptionalURI('_bulk');
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'consistency',
-            'refresh',
-            'replication',
-            'type',
-            'fields',
-            'pipeline',
-            '_source',
-            '_source_include',
-            '_source_exclude',
-            'pipeline'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/BulkEndpointInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/BulkEndpointInterface.php
deleted file mode 100644
index c7da2545130c7c6ec37283652c11ff08368e3291..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/BulkEndpointInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-
-/**
- * Interface BulkEndpointInterface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface BulkEndpointInterface
-{
-    /**
-     * Constructor
-     *
-     * @param SerializerInterface $serializer A serializer
-     */
-    public function __construct(SerializerInterface $serializer);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Aliases.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Aliases.php
deleted file mode 100644
index 959fbaeafae812bdbed0aaff22798365a86fa8f3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Aliases.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Aliases
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Aliases extends AbstractEndpoint
-{
-    // A comma-separated list of alias names to return
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $name = $this->name;
-        $uri   = "/_cat/aliases";
-
-        if (isset($name) === true) {
-            $uri = "/_cat/aliases/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            'format',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Allocation.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Allocation.php
deleted file mode 100644
index 5322453727143fe0a408ef98676b3d58755f5118..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Allocation.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Allocation
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Allocation extends AbstractEndpoint
-{
-    // A comma-separated list of node IDs or names to limit the returned information
-    private $node_id;
-
-    /**
-     * @param $node_id
-     *
-     * @return $this
-     */
-    public function setNodeId($node_id)
-    {
-        if (isset($node_id) !== true) {
-            return $this;
-        }
-
-        $this->node_id = $node_id;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $node_id = $this->node_id;
-        $uri   = "/_cat/allocation";
-
-        if (isset($node_id) === true) {
-            $uri = "/_cat/allocation/$node_id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'bytes',
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Count.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Count.php
deleted file mode 100644
index 5ec9d6423c1bf13760dc3df7e0d2e55cbfb8d88a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Count.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Count
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Count extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cat/count";
-
-        if (isset($index) === true) {
-            $uri = "/_cat/count/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Fielddata.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Fielddata.php
deleted file mode 100644
index eff659ec7ab8dabe4c9c2d1cab585d9a67818fc0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Fielddata.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Fielddata
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Fielddata extends AbstractEndpoint
-{
-    private $fields;
-
-    /**
-     * @param $fields
-     *
-     * @return $this
-     */
-    public function setFields($fields)
-    {
-        if (isset($fields) !== true) {
-            return $this;
-        }
-
-        $this->fields = $fields;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $fields = $this->fields;
-        $uri   = "/_cat/fielddata";
-
-        if (isset($fields) === true) {
-            $uri = "/_cat/fielddata/$fields";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Health.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Health.php
deleted file mode 100644
index 6a2cf9710c6791fb95979084a3a52d0850105ca5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Health.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Health
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Health extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/health";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'ts',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Help.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Help.php
deleted file mode 100644
index d959ca826d4060c019d35c148beb9b4246ead315..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Help.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Help
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Help extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'help',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Indices.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Indices.php
deleted file mode 100644
index 97d8b17962109f8cebbb42e37d26910ca70ea078..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Indices.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Indices
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Indices extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cat/indices";
-
-        if (isset($index) === true) {
-            $uri = "/_cat/indices/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'bytes',
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'pri',
-            'v',
-            'health',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Master.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Master.php
deleted file mode 100644
index e6dbfe17884439ada831ddf79bdd3f87926c63cd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Master.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Master
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Master extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/master";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/NodeAttrs.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/NodeAttrs.php
deleted file mode 100644
index ff0d8fa5366fcfba196522f77eaba8bea5700cc7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/NodeAttrs.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class NodeAttrs
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class NodeAttrs extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/nodeattrs";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Nodes.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Nodes.php
deleted file mode 100644
index 8d388c592dd9ba6b6378de0e85c2f6362557e63c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Nodes.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Nodes
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Nodes extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/nodes";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's',
-            'full_id'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/PendingTasks.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/PendingTasks.php
deleted file mode 100644
index 435f208fcc1b1e501e0253de3076253e33791f02..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/PendingTasks.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Pendingtasks
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class PendingTasks extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/pending_tasks";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Plugins.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Plugins.php
deleted file mode 100644
index dbdc52a07cb576eec72d1ff4d4da89d9ba797e55..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Plugins.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Health
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Plugins extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/plugins";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Recovery.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Recovery.php
deleted file mode 100644
index 4644e8fa8c6f37a036a38bc2f2d7ed6126880113..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Recovery.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Recovery
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Recovery extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cat/recovery";
-
-        if (isset($index) === true) {
-            $uri = "/_cat/recovery/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'bytes',
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Repositories.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Repositories.php
deleted file mode 100644
index 1857cd548052917dd1cc9528ae6fcbf260c2e7ef..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Repositories.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Repositories
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Repositories extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/repositories";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Segments.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Segments.php
deleted file mode 100644
index c7b728e306ccd0931f0b18129ee962235c957244..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Segments.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * User: zach
- * Date: 01/12/2015
- * Time: 14:34:49 pm
- */
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Segments
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Segments extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cat/segments";
-
-        if (isset($index) === true) {
-            $uri = "/_cat/segments/$index";
-        }
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Shards.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Shards.php
deleted file mode 100644
index 1107037cdefc02d674dc04e1bf3d1eb0eb2af6d1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Shards.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Shards
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Shards extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cat/shards";
-
-        if (isset($index) === true) {
-            $uri = "/_cat/shards/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'bytes',
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Snapshots.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Snapshots.php
deleted file mode 100644
index 72d544f3f2834d14f0ee6ee3d90cf37448b5720a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Snapshots.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Common\Exceptions\RuntimeException;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Snapshots
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Snapshots extends AbstractEndpoint
-{
-    private $repository;
-
-    /**
-     * @param $fields
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $repository = $this->repository;
-        if (isset($this->repository) === true) {
-            return "/_cat/snapshots/$repository/";
-        }
-
-        return "/_cat/snapshots/";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Tasks.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Tasks.php
deleted file mode 100644
index 92cc033536ed1882be986fb450d873b0531c359b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/Tasks.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Tasks
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Tasks extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return "/_cat/tasks";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'format',
-            'node_id',
-            'actions',
-            'detailed',
-            'parent_node',
-            'parent_task',
-            'h',
-            'help',
-            'v',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/ThreadPool.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/ThreadPool.php
deleted file mode 100644
index d2a6e04883b1422c6a379e67b5830cea6fc1b38e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cat/ThreadPool.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cat;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class ThreadPool
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cat
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class ThreadPool extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cat/thread_pool";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'h',
-            'help',
-            'v',
-            'full_id',
-            'size',
-            'thread_pool_patterns',
-            's'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/ClearScroll.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/ClearScroll.php
deleted file mode 100644
index e9600171d41fa9a7d6b2eac5b5f23ff2028413db..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/ClearScroll.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Clearscroll
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ClearScroll extends AbstractEndpoint
-{
-    // A comma-separated list of scroll IDs to clear
-    private $scroll_id;
-
-    /**
-     * @param $scroll_id
-     *
-     * @return $this
-     */
-    public function setScroll_Id($scroll_id)
-    {
-        if (isset($scroll_id) !== true) {
-            return $this;
-        }
-
-        $this->scroll_id = $scroll_id;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->scroll_id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'scroll_id is required for Clearscroll'
-            );
-        }
-        $scroll_id = $this->scroll_id;
-        $uri   = "/_search/scroll/$scroll_id";
-
-        if (isset($scroll_id) === true) {
-            $uri = "/_search/scroll/$scroll_id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/AllocationExplain.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/AllocationExplain.php
deleted file mode 100644
index 25014bf0251fc71a13b95dd63def781a7f47fd50..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/AllocationExplain.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class AllocationExplain
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class AllocationExplain extends AbstractEndpoint
-{
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return "/_cluster/allocation/explain";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'include_yes_decisions',
-            'include_disk_info',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Health.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Health.php
deleted file mode 100644
index 10e8a7c209b3734395e76bbe269ee8ee0dd34205..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Health.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Health
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Health extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cluster/health";
-
-        if (isset($index) === true) {
-            $uri = "/_cluster/health/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'level',
-            'local',
-            'master_timeout',
-            'timeout',
-            'wait_for_active_shards',
-            'wait_for_nodes',
-            'wait_for_relocating_shards',
-            'wait_for_status',
-            'wait_for_events',
-            'wait_for_no_relocating_shards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/AbstractNodesEndpoint.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/AbstractNodesEndpoint.php
deleted file mode 100644
index 3b817b1a3acfc1b1cf74bc170e05c91a4096de04..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/AbstractNodesEndpoint.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Nodes;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class AbstractNodesEndpoint
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Nodes
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractNodesEndpoint extends AbstractEndpoint
-{
-    /** @var  string  A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you&#039;re connecting to, leave empty to get information from all nodes */
-    protected $nodeID;
-
-    /**
-     * @param $nodeID
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     *
-     * @return $this
-     */
-    public function setNodeID($nodeID)
-    {
-        if (isset($nodeID) !== true) {
-            return $this;
-        }
-
-        if (!(is_array($nodeID) === true || is_string($nodeID) === true)) {
-            throw new InvalidArgumentException("invalid node_id");
-        }
-
-        if (is_array($nodeID) === true) {
-            $nodeID = implode(',', $nodeID);
-        }
-
-        $this->nodeID = $nodeID;
-
-        return $this;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/HotThreads.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/HotThreads.php
deleted file mode 100644
index eeb4a96ac3dd8b052386ebf1e47bbd76488fe6cf..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/HotThreads.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Nodes;
-
-/**
- * Class Hotthreads
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Nodes
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class HotThreads extends AbstractNodesEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $node_id = $this->nodeID;
-        $uri   = "/_cluster/nodes/hotthreads";
-
-        if (isset($node_id) === true) {
-            $uri = "/_cluster/nodes/$node_id/hotthreads";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'interval',
-            'snapshots',
-            'threads',
-            'type',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Info.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Info.php
deleted file mode 100644
index bde5305b4af0222adb8a1e0cf413ee88762a3e81..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Info.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Nodes;
-
-/**
- * Class Info
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Nodes
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Info extends AbstractNodesEndpoint
-{
-    // A comma-separated list of metrics you wish returned. Leave empty to return all.
-    private $metric;
-
-    /**
-     * @param $metric
-     *
-     * @return $this
-     */
-    public function setMetric($metric)
-    {
-        if (isset($metric) !== true) {
-            return $this;
-        }
-
-        if (is_array($metric) === true) {
-            $metric = implode(",", $metric);
-        }
-
-        $this->metric = $metric;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $node_id = $this->nodeID;
-        $metric = $this->metric;
-        $uri   = "/_nodes";
-
-        if (isset($node_id) === true && isset($metric) === true) {
-            $uri = "/_nodes/$node_id/$metric";
-        } elseif (isset($metric) === true) {
-            $uri = "/_nodes/$metric";
-        } elseif (isset($node_id) === true) {
-            $uri = "/_nodes/$node_id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flat_settings',
-            'human',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Shutdown.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Shutdown.php
deleted file mode 100644
index 6b7a6f2c85feb5627bf1589f957ea9fb5941d4ba..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Shutdown.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Nodes;
-
-/**
- * Class Shutdown
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Nodes
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Shutdown extends AbstractNodesEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $node_id = $this->nodeID;
-        $uri   = "/_shutdown";
-
-        if (isset($node_id) === true) {
-            $uri = "/_cluster/nodes/$node_id/_shutdown";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'delay',
-            'exit',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Stats.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Stats.php
deleted file mode 100644
index 94dd6cf34af612e5f2e57a0dad58ffc09087fb1e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Nodes/Stats.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Nodes;
-
-/**
- * Class Stats
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Nodes
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Stats extends AbstractNodesEndpoint
-{
-    // Limit the information returned to the specified metrics
-    private $metric;
-
-    // Limit the information returned for `indices` metric to the specific index metrics. Isn&#039;t used if `indices` (or `all`) metric isn&#039;t specified.
-    private $indexMetric;
-
-    /**
-     * @param $metric
-     *
-     * @return $this
-     */
-    public function setMetric($metric)
-    {
-        if (isset($metric) !== true) {
-            return $this;
-        }
-
-        if (is_array($metric) === true) {
-            $metric = implode(",", $metric);
-        }
-
-        $this->metric = $metric;
-
-        return $this;
-    }
-
-    /**
-     * @param $indexMetric
-     *
-     * @return $this
-     */
-    public function setIndexMetric($indexMetric)
-    {
-        if (isset($indexMetric) !== true) {
-            return $this;
-        }
-
-        if (is_array($indexMetric) === true) {
-            $indexMetric = implode(",", $indexMetric);
-        }
-
-        $this->indexMetric = $indexMetric;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $metric = $this->metric;
-        $index_metric = $this->indexMetric;
-        $node_id = $this->nodeID;
-        $uri   = "/_nodes/stats";
-
-        if (isset($node_id) === true && isset($metric) === true && isset($index_metric) === true) {
-            $uri = "/_nodes/$node_id/stats/$metric/$index_metric";
-        } elseif (isset($metric) === true && isset($index_metric) === true) {
-            $uri = "/_nodes/stats/$metric/$index_metric";
-        } elseif (isset($node_id) === true && isset($metric) === true) {
-            $uri = "/_nodes/$node_id/stats/$metric";
-        } elseif (isset($metric) === true) {
-            $uri = "/_nodes/stats/$metric";
-        } elseif (isset($node_id) === true) {
-            $uri = "/_nodes/$node_id/stats";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'completion_fields',
-            'fielddata_fields',
-            'fields',
-            'groups',
-            'human',
-            'level',
-            'types',
-            'include_segment_file_sizes',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/PendingTasks.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/PendingTasks.php
deleted file mode 100644
index 3ceac3a07dd2ad628ad2bac068db98e84cb3fa55..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/PendingTasks.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Pendingtasks
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class PendingTasks extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cluster/pending_tasks";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Reroute.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Reroute.php
deleted file mode 100644
index 4113053999ad15d906132692ce53def404693aaa..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Reroute.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Reroute
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Reroute extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cluster/reroute";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'dry_run',
-            'filter_metadata',
-            'master_timeout',
-            'timeout',
-            'explain',
-            'metric'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Get.php
deleted file mode 100644
index 12a53492fd63434afd0fce1fd15e3e3a3d271c53..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Get.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Settings;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Settings
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Get extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cluster/settings";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flat_settings',
-            'master_timeout',
-            'timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Put.php
deleted file mode 100644
index 522e7b1d94a3ca1e91307dd04934b8bc1735d9cc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Settings/Put.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster\Settings;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster\Settings
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_cluster/settings";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flat_settings',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/State.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/State.php
deleted file mode 100644
index 94af3b19db52d789c0a981d2202b02f223886435..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/State.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class State
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class State extends AbstractEndpoint
-{
-    // Limit the information returned to the specified metrics
-    private $metric;
-
-    /**
-     * @param $metric
-     *
-     * @return $this
-     */
-    public function setMetric($metric)
-    {
-        if (isset($metric) !== true) {
-            return $this;
-        }
-
-        if (is_array($metric) === true) {
-            $metric = implode(",", $metric);
-        }
-
-        $this->metric = $metric;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $metric = $this->metric;
-        $uri   = "/_cluster/state";
-
-        if (isset($metric) === true && isset($index) === true) {
-            $uri = "/_cluster/state/$metric/$index";
-        } elseif (isset($metric) === true) {
-            $uri = "/_cluster/state/$metric";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout',
-            'flat_settings',
-            'index_templates',
-            'expand_wildcards',
-            'ignore_unavailable',
-            'allow_no_indices'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Stats.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Stats.php
deleted file mode 100644
index 729b611f3d9acede49ec16eadacf4191f99b43b7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Cluster/Stats.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Cluster;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Stats
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Cluster
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Stats extends AbstractEndpoint
-{
-    // A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you&#039;re connecting to, leave empty to get information from all nodes
-    private $nodeID;
-
-    /**
-     * @param $node_id
-     *
-     * @return $this
-     */
-    public function setNodeID($node_id)
-    {
-        if (isset($node_id) !== true) {
-            return $this;
-        }
-
-        $this->nodeID = $node_id;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $node_id = $this->nodeID;
-        $uri   = "/_cluster/stats";
-
-        if (isset($node_id) === true) {
-            $uri = "/_cluster/stats/nodes/$node_id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flat_settings',
-            'human',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Count.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Count.php
deleted file mode 100644
index 7bedb4b3312ddca0d7ef212c30db4338874ff869..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Count.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Count
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Count extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_count";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_count";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_count";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_count";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'min_score',
-            'preference',
-            'routing',
-            'source',
-            'q',
-            'df',
-            'default_operator',
-            'analyzer',
-            'lowercase_expanded_terms',
-            'analyze_wildcard',
-            'lenient',
-            'lowercase_expanded_terms'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/CountPercolate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/CountPercolate.php
deleted file mode 100644
index f87d6b5e51983291a5dd3f2fb8dbee8232345cec..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/CountPercolate.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class CountPercolate
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class CountPercolate extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for CountPercolate'
-            );
-        }
-
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for CountPercolate'
-            );
-        }
-
-        $index = $this->index;
-        $type  = $this->type;
-        $id    = $this->id;
-        $uri   = "/$index/$type/_percolate/count";
-
-        if (isset($id) === true) {
-            $uri = "/$index/$type/$id/_percolate/count";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'routing',
-            'preference',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'percolate_index',
-            'percolate_type',
-            'version',
-            'version_type'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Create.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Create.php
deleted file mode 100644
index bbecabeb59127eccebe02956cf390832a055d3ff..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Create.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Create
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Create extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Create'
-            );
-        }
-
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Create'
-            );
-        }
-
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Create'
-            );
-        }
-
-        $id    = $this->id;
-        $index = $this->index;
-        $type  = $this->type;
-        return "/$index/$type/$id/_create";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'consistency',
-            'op_type',
-            'parent',
-            'percolate',
-            'refresh',
-            'replication',
-            'routing',
-            'timeout',
-            'timestamp',
-            'ttl',
-            'version',
-            'version_type',
-            'pipeline'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Document body must be set for create request');
-        } else {
-            return $this->body;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Delete.php
deleted file mode 100644
index 3f51baeadc4b25293bb85d0896a5fab1521e6479..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Delete.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Delete'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Delete'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Delete'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'consistency',
-            'parent',
-            'refresh',
-            'replication',
-            'routing',
-            'timeout',
-            'version',
-            'version_type',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/DeleteByQuery.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/DeleteByQuery.php
deleted file mode 100644
index 1826589519dc4b1915b74112d389a5e20c5df78e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/DeleteByQuery.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Deletebyquery
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class DeleteByQuery extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (!$this->index) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Deletebyquery'
-            );
-        }
-
-        $uri = "/{$this->index}/_delete_by_query";
-        if ($this->type) {
-            $uri = "/{$this->index}/{$this->type}/_delete_by_query";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'allow_no_indices',
-            'analyze_wildcard',
-            'analyzer',
-            'conflicts',
-            'default_operator',
-            'df',
-            'expand_wildcards',
-            'from',
-            'ignore_unavailable',
-            'lenient',
-            'preference',
-            'query',
-            'refresh',
-            'request_cache',
-            'requests_per_second',
-            'routing',
-            'scroll',
-            'scroll_size',
-            'search_timeout',
-            'search_type',
-            'size',
-            'slices',
-            'sort',
-            'stats',
-            'terminate_after',
-            'timeout',
-            'version',
-            'wait_for_active_shards',
-            'wait_for_completion',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Exists.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Exists.php
deleted file mode 100644
index 8ab0bedbc4eec681e609fa49298a60f3191a8f32..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Exists.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Exists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Exists extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Exists'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Exists'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Exists'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'parent',
-            'preference',
-            'realtime',
-            'refresh',
-            'routing',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Explain.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Explain.php
deleted file mode 100644
index 7d1bb2e8167bdbb0ced31c8d75015c92c02cca97..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Explain.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Explain
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Explain extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Explain'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Explain'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Explain'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id/_explain";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id/_explain";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'analyze_wildcard',
-            'analyzer',
-            'default_operator',
-            'df',
-            'fields',
-            'lenient',
-            'lowercase_expanded_terms',
-            'parent',
-            'preference',
-            'q',
-            'routing',
-            'source',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/FieldStats.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/FieldStats.php
deleted file mode 100644
index 1ca80d83e18bcdaccc8d55090ab25ba8ed9d47f0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/FieldStats.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class FieldStats
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class FieldStats extends AbstractEndpoint
-{
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_field_stats";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_field_stats";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'fields',
-            'level',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'fields'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Get.php
deleted file mode 100644
index 34fa6669ee830cd96c84c4eede7402507c88a59a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Get.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /** @var bool  */
-    private $returnOnlySource = false;
-
-    /** @var bool  */
-    private $checkOnlyExistance = false;
-
-    /**
-     * @return $this
-     */
-    public function returnOnlySource()
-    {
-        $this->returnOnlySource = true;
-
-        return $this;
-    }
-
-    /**
-     * @return $this
-     */
-    public function checkOnlyExistance()
-    {
-        $this->checkOnlyExistance = true;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Get'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Get'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Get'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id";
-        }
-
-        if ($this->returnOnlySource === true) {
-            $uri .= '/_source';
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'fields',
-            'parent',
-            'preference',
-            'realtime',
-            'refresh',
-            'routing',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'version',
-            'version_type',
-            'stored_fields'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        if ($this->checkOnlyExistance === true) {
-            return 'HEAD';
-        } else {
-            return 'GET';
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Index.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Index.php
deleted file mode 100644
index ba3c82a0b8b6879ea7aea848944da95cae0a09d0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Index.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Index
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Index extends AbstractEndpoint
-{
-    /** @var bool  */
-    private $createIfAbsent = false;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return $this
-     */
-    public function createIfAbsent()
-    {
-        $this->createIfAbsent = true;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Index'
-            );
-        }
-
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Index'
-            );
-        }
-
-        $id    = $this->id;
-        $index = $this->index;
-        $type  = $this->type;
-        $uri   = "/$index/$type";
-
-        if (isset($id) === true) {
-            $uri = "/$index/$type/$id";
-        }
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'consistency',
-            'op_type',
-            'parent',
-            'percolate',
-            'refresh',
-            'replication',
-            'routing',
-            'timeout',
-            'timestamp',
-            'ttl',
-            'version',
-            'version_type',
-            'pipeline'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        if (isset($this->id) === true) {
-            return 'PUT';
-        } else {
-            return 'POST';
-        }
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Document body must be set for index request');
-        } else {
-            return $this->body;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/AbstractAliasEndpoint.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/AbstractAliasEndpoint.php
deleted file mode 100644
index c3ebf84851e91dc70cbbbaec7db46145e754aebb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/AbstractAliasEndpoint.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Alias;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class AbstractAliasEndpoint
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices\Alias
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractAliasEndpoint extends AbstractEndpoint
-{
-    /** @var null|string */
-    protected $name = null;
-
-    /**
-     * @param $name
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (is_string($name) !== true) {
-            throw new InvalidArgumentException('Name must be a string');
-        }
-        $this->name = urlencode($name);
-
-        return $this;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Delete.php
deleted file mode 100644
index 2ed46816d9e0930e8e856bc89add57739c457db0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Delete.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Alias;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices\Alias
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    // A comma-separated list of aliases to delete (supports wildcards); use `_all` to delete all aliases for the specified indices.
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Delete'
-            );
-        }
-        if (isset($this->name) !== true) {
-            throw new Exceptions\RuntimeException(
-                'name is required for Delete'
-            );
-        }
-        $index = $this->index;
-        $name = $this->name;
-        $uri   = "/$index/_alias/$name";
-
-        if (isset($index) === true && isset($name) === true) {
-            $uri = "/$index/_alias/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Exists.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Exists.php
deleted file mode 100644
index abc978a19f6877969f6ac27ae1380e5f4aa90dd0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Exists.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Alias;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Exists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Alias
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Exists extends AbstractEndpoint
-{
-    // A comma-separated list of alias names to return
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $name = $this->name;
-        $uri   = "/_alias/$name";
-
-        if (isset($index) === true && isset($name) === true) {
-            $uri = "/$index/_alias/$name";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_alias";
-        } elseif (isset($name) === true) {
-            $uri = "/_alias/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Get.php
deleted file mode 100644
index 8b2ae03a70b367f8e0ee3cd9049f2d6229d58769..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Get.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Alias;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Alias
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // A comma-separated list of alias names to return
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $name = $this->name;
-        $uri   = "/_alias";
-
-        if (isset($index) === true && isset($name) === true) {
-            $uri = "/$index/_alias/$name";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_alias";
-        } elseif (isset($name) === true) {
-            $uri = "/_alias/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Put.php
deleted file mode 100644
index a91d6254f1172cbbecf07f93362ed417149a4c8d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Alias/Put.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Alias;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Alias
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    // The name of the alias to be created or updated
-    private $name;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->name) !== true) {
-            throw new Exceptions\RuntimeException(
-                'name is required for Put'
-            );
-        }
-
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Put'
-            );
-        }
-        $index = $this->index;
-        $name = $this->name;
-        $uri = "/$index/_alias/$name";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Get.php
deleted file mode 100644
index 4e9287fdc3843826e123b88ba6bb2b475d53f56c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Get.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Aliases;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Aliases
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // A comma-separated list of alias names to filter
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $name = $this->name;
-        $uri   = "/_aliases";
-
-        if (isset($index) === true && isset($name) === true) {
-            $uri = "/$index/_aliases/$name";
-        } elseif (isset($name) === true) {
-            $uri = "/_aliases/$name";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_aliases";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Update.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Update.php
deleted file mode 100644
index a715b0f98a553f25b5272d0fe2c8da1b625b0aba..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Aliases/Update.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Aliases;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Update
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Aliases
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Update extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_aliases";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Update Aliases');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Analyze.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Analyze.php
deleted file mode 100644
index ac77879487df05eb94ec2648f7896ce561864942..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Analyze.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Analyze
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Analyze extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_analyze";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_analyze";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'analyzer',
-            'field',
-            'filter',
-            'index',
-            'prefer_local',
-            'text',
-            'tokenizer',
-            'format',
-            'char_filter',
-            'explain',
-            'attributes',
-            'format'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Cache/Clear.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Cache/Clear.php
deleted file mode 100644
index 787072d513002cb45bab02992c6bddb9a7a0967a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Cache/Clear.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Cache;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Clear
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Cache
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Clear extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cache/clear";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_cache/clear";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'field_data',
-            'fielddata',
-            'fields',
-            'filter',
-            'filter_cache',
-            'filter_keys',
-            'id',
-            'id_cache',
-            'index',
-            'recycler',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ClearCache.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ClearCache.php
deleted file mode 100644
index 4b502ba5a37e2b1d9f11b6373ed5a7a990322d3b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ClearCache.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class ClearCache
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ClearCache extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_cache/clear";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_cache/clear";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'field_data',
-            'fielddata',
-            'fields',
-            'filter',
-            'filter_cache',
-            'filter_keys',
-            'id',
-            'id_cache',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'index',
-            'recycler',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Close.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Close.php
deleted file mode 100644
index 3d5bf7e6f525d61f25c323523f307ba21859d552..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Close.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Close
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Close extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Close'
-            );
-        }
-        $index = $this->index;
-        $uri   = "/$index/_close";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_close";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Create.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Create.php
deleted file mode 100644
index 505d252d649b5f8123f50d7931044dede2c84769..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Create.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Create
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Create extends AbstractEndpoint
-{
-    /**
-     * @param array|object $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Create'
-            );
-        }
-        $index = $this->index;
-        $uri   = "/$index";
-
-        if (isset($index) === true) {
-            $uri = "/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-            'update_all_types',
-            'wait_for_active_shards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Delete.php
deleted file mode 100644
index b832e7114567a02f655f87a35e4b3ea141b614f7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Delete.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/$index";
-
-        if (isset($index) === true) {
-            $uri = "/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists.php
deleted file mode 100644
index ac45e3f74cfc1e0365fa6b57747fd22e46609ffa..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Exists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Exists extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Exists'
-            );
-        }
-        $index = $this->index;
-        $uri   = "/$index";
-
-        if (isset($index) === true) {
-            $uri = "/$index";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists/Types.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists/Types.php
deleted file mode 100644
index a5b4b67a6e23519fd71c6907af49ac761ab1279d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Exists/Types.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Exists;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Types
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Exists
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Types extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Types Exists'
-            );
-        }
-
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Types Exists'
-            );
-        }
-
-        $index = $this->index;
-        $type  = $this->type;
-        $uri   = "/$index/$type";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Field/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Field/Get.php
deleted file mode 100644
index c991234626acf536a6f48e615568736372dc2b32..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Field/Get.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Field;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Field
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // A comma-separated list of fields
-    private $field;
-
-    /**
-     * @param $field
-     *
-     * @return $this
-     */
-    public function setField($field)
-    {
-        if (isset($field) !== true) {
-            return $this;
-        }
-
-        $this->field = $field;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->field) !== true) {
-            throw new Exceptions\RuntimeException(
-                'field is required for Get'
-            );
-        }
-        $index = $this->index;
-        $type = $this->type;
-        $field = $this->field;
-        $uri   = "/_mapping/field/$field";
-
-        if (isset($index) === true && isset($type) === true && isset($field) === true) {
-            $uri = "/$index/_mapping/$type/field/$field";
-        } elseif (isset($type) === true && isset($field) === true) {
-            $uri = "/_mapping/$type/field/$field";
-        } elseif (isset($index) === true && isset($field) === true) {
-            $uri = "/$index/_mapping/field/$field";
-        } elseif (isset($field) === true) {
-            $uri = "/_mapping/field/$field";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'include_defaults',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Flush.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Flush.php
deleted file mode 100644
index f8d7c4b3448aea0e6cb44e1f7cd8f6b33f5866db..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Flush.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Flush
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Flush extends AbstractEndpoint
-{
-    protected $synced = false;
-
-    public function setSynced($synced)
-    {
-        $this->synced = $synced;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_flush";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_flush";
-        }
-
-        if ($this->synced === true) {
-            $uri .= "/synced";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'force',
-            'full',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'wait_if_ongoing'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ForceMerge.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ForceMerge.php
deleted file mode 100644
index 3e6e0b4653d09084b657967a13d152dc13d8cd8e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ForceMerge.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class ForceMerge
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ForceMerge extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_forcemerge";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_forcemerge";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flush',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'max_num_segments',
-            'only_expunge_deletes',
-            'operation_threading',
-            'wait_for_merge',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Gateway/Snapshot.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Gateway/Snapshot.php
deleted file mode 100644
index b492ceae90c8af302c779335b836bcf4983cca5b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Gateway/Snapshot.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Gateway;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Snapshot
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Gateway
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Snapshot extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_gateway/snapshot";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_gateway/snapshot";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Get.php
deleted file mode 100644
index 58a7de7b0eabe5565f9e973a5cc43d54a78140fb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Get.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Get
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    private $feature;
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Get'
-            );
-        }
-        $index   = $this->index;
-        $feature = $this->feature;
-        $uri     = "/$index";
-
-        if (isset($feature) === true) {
-            $uri = "/$index/$feature";
-        }
-
-        return $uri;
-    }
-
-    public function setFeature($feature)
-    {
-        if (isset($feature) !== true) {
-            return $this;
-        }
-
-        if (is_array($feature) === true) {
-            $feature = implode(",", $feature);
-        }
-
-        $this->feature = $feature;
-
-        return $this;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'human'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Delete.php
deleted file mode 100644
index 87ac13d9844de5347669a7c0678a871a2a711a41..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Delete.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Mapping;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Mapping
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Delete'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Delete'
-            );
-        }
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/_mapping";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_mapping";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Get.php
deleted file mode 100644
index 88568e6dc10216b0d143fbafb9e2ac87b9aa7857..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Get.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Mapping;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Mapping
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_mapping";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/_mapping/$type";
-        } elseif (isset($type) === true) {
-            $uri = "/_mapping/$type";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_mapping";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'wildcard_expansion',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/GetField.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/GetField.php
deleted file mode 100644
index 068be334d5f26bc89141b3755860d28ba9c07ce5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/GetField.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Mapping;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class GetField
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Mapping
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class GetField extends AbstractEndpoint
-{
-    /** @var  string */
-    private $fields;
-
-    /**
-     * @param string|array $fields
-     *
-     * @return $this
-     */
-    public function setFields($fields)
-    {
-        if (isset($fields) !== true) {
-            return $this;
-        }
-
-        if (is_array($fields) === true) {
-            $fields = implode(",", $fields);
-        }
-
-        $this->fields = $fields;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->fields) !== true) {
-            throw new Exceptions\RuntimeException(
-                'fields is required for Get Field Mapping'
-            );
-        }
-        $uri = $this->getOptionalURI('_mapping/field');
-
-        return $uri.'/'.$this->fields;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'include_defaults',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Put.php
deleted file mode 100644
index 1639ca72b71f9a93cae4892422e61875c6291ac9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Mapping/Put.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Mapping;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Mapping
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Put'
-            );
-        }
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_mapping/$type";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_mapping";
-        } elseif (isset($type) === true) {
-            $uri = "/_mapping/$type";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_conflicts',
-            'timeout',
-            'master_timeout',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'update_all_types'
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Put Mapping');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Open.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Open.php
deleted file mode 100644
index 6808659b59420b89437bf61eea9b15aa41c39bf7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Open.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Open
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Open extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Open'
-            );
-        }
-        $index = $this->index;
-        $uri   = "/$index/_open";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_open";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Recovery.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Recovery.php
deleted file mode 100644
index 11e11cf69d2cdb379385fbf278face497d810958..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Recovery.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Recovery
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Recovery extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_recovery";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_recovery";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'detailed',
-            'active_only',
-            'human'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Refresh.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Refresh.php
deleted file mode 100644
index e7938d15176ccb410c5aa7ea59f850fa2554771d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Refresh.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Refresh
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Refresh extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_refresh";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_refresh";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'force',
-            'operation_threading',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Rollover.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Rollover.php
deleted file mode 100644
index bc188eadf89200f2404181ab759d81df569ea959..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Rollover.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Rollover
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Rollover extends AbstractEndpoint
-{
-    private $alias;
-    private $newIndex;
-
-    /**
-     * @param string $alias
-     *
-     * @return $this
-     */
-    public function setAlias($alias)
-    {
-        if ($alias === null) {
-            return $this;
-        }
-
-        $this->alias = urlencode($alias);
-        return $this;
-    }
-
-    /**
-     * @param string $newIndex
-     *
-     * @return $this
-     */
-    public function setNewIndex($newIndex)
-    {
-        if ($newIndex === null) {
-            return $this;
-        }
-
-        $this->newIndex = urlencode($newIndex);
-        return $this;
-    }
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->alias) !== true) {
-            throw new Exceptions\RuntimeException(
-                'alias name is required for Rollover'
-            );
-        }
-
-        $uri = "/{$this->alias}/_rollover";
-
-        if (isset($this->newIndex) === true) {
-            $uri .= "/{$this->newIndex}";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-            'wait_for_active_shards',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Seal.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Seal.php
deleted file mode 100644
index c6f51382907c08be86009180be027487eed35d83..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Seal.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Seal
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Seal extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_seal";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_seal";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array();
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Segments.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Segments.php
deleted file mode 100644
index 8ade2912ef2ceb2edf9d4a940ef69629b2baae07..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Segments.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Segments
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Segments extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_segments";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_segments";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'human',
-            'operation_threading',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Get.php
deleted file mode 100644
index 943bfd98378ba4d71551cf25ea7734ceb693de4b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Get.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Settings;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Settings
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // The name of the settings that should be included
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $name = $this->name;
-        $uri   = "/_settings";
-
-        if (isset($index) === true && isset($name) === true) {
-            $uri = "/$index/_settings/$name";
-        } elseif (isset($name) === true) {
-            $uri = "/_settings/$name";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_settings";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'flat_settings',
-            'local',
-            'include_defaults'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Put.php
deleted file mode 100644
index 57f211a31e49309e4a5742b8c596e670eda7430e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Settings/Put.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Settings;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Settings
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_settings";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_settings";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'flat_settings',
-            'preserve_existing'
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Put Settings');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ShardStores.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ShardStores.php
deleted file mode 100644
index 10dc447260ed152b8f6007aa399fde5c36f4b63f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ShardStores.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class ShardStores
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class ShardStores extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_shard_stores";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_shard_stores";
-        }
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'status',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'operation_threading'
-        );
-    }
-
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Shrink.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Shrink.php
deleted file mode 100644
index b4e7832b7db2249c66ce45a64f27a5f03adf1e0e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Shrink.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Shrink.
- *
- * @category Elasticsearch
- *
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- *
- * @link     http://elastic.co
- */
-class Shrink extends AbstractEndpoint
-{
-    // The name of the target index to shrink into
-    private $target;
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     *
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $target
-     *
-     * @return $this
-     */
-    public function setTarget($target)
-    {
-        if (isset($target) !== true) {
-            return $this;
-        }
-        $this->target = $target;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\BadMethodCallException
-     *
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Shrink'
-            );
-        }
-        if (isset($this->target) !== true) {
-            throw new Exceptions\RuntimeException(
-                'target is required for Shrink'
-            );
-        }
-        $index = $this->index;
-        $target = $this->target;
-        $uri = "/$index/_shrink/$target";
-        if (isset($index) === true && isset($target) === true) {
-            $uri = "/$index/_shrink/$target";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        //TODO Fix Me!
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Snapshotindex.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Snapshotindex.php
deleted file mode 100644
index e30530b1d09fbf3418bdc2694fa6ab4a7c4ee7b7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Snapshotindex.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Snapshotindex
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Snapshotindex extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_gateway/snapshot";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_gateway/snapshot";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Stats.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Stats.php
deleted file mode 100644
index bbdc1d2fcabb0bb2e6cd77bcd9bffb004318bcc1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Stats.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Stats
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Stats extends AbstractEndpoint
-{
-    // Limit the information returned the specific metrics.
-    private $metric;
-
-    /**
-     * @param $metric
-     *
-     * @return $this
-     */
-    public function setMetric($metric)
-    {
-        if (isset($metric) !== true) {
-            return $this;
-        }
-
-        if (is_array($metric)) {
-            $metric = implode(",", $metric);
-        }
-
-        $this->metric = $metric;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $metric = $this->metric;
-        $uri   = "/_stats";
-
-        if (isset($index) === true && isset($metric) === true) {
-            $uri = "/$index/_stats/$metric";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_stats";
-        } elseif (isset($metric) === true) {
-            $uri = "/_stats/$metric";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'completion_fields',
-            'fielddata_fields',
-            'fields',
-            'groups',
-            'human',
-            'level',
-            'types',
-            'metric',
-            'include_segment_file_sizes'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Status.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Status.php
deleted file mode 100644
index fc52f84e5953251fe3b1881be4ab6d20e37101eb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Status.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Status
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Status extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_status";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_status";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'human',
-            'operation_threading',
-            'recovery',
-            'snapshot',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/AbstractTemplateEndpoint.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/AbstractTemplateEndpoint.php
deleted file mode 100644
index cde022581a575d5d6b697b1a469b07d7a25af0b2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/AbstractTemplateEndpoint.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class AbstractTemplateEndpoint
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractTemplateEndpoint extends AbstractEndpoint
-{
-    /** @var  string */
-    protected $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        $this->name = $name;
-
-        return $this;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Delete.php
deleted file mode 100644
index 044dce6f1bb4db6cc15ccfce30e34de99ff96850..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Delete.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Delete extends AbstractEndpoint
-{
-    // The name of the template
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->name) !== true) {
-            throw new Exceptions\RuntimeException(
-                'name is required for Delete'
-            );
-        }
-        $name = $this->name;
-        $uri   = "/_template/$name";
-
-        if (isset($name) === true) {
-            $uri = "/_template/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'timeout',
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Exists.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Exists.php
deleted file mode 100644
index ebf6fdfe3cafa911f159b09a9cc3d3fe8730fe2e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Exists.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Exists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Exists extends AbstractEndpoint
-{
-    // The name of the template
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->name) !== true) {
-            throw new Exceptions\RuntimeException(
-                'name is required for Exists'
-            );
-        }
-        $name = $this->name;
-        $uri   = "/_template/$name";
-
-        if (isset($name) === true) {
-            $uri = "/_template/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'local',
-            'master_timeout'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Get.php
deleted file mode 100644
index 77472063dbd6bc093654b53421f261190803b9f5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Get.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // The name of the template
-    private $name;
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        $name = $this->name;
-        $uri   = "/_template";
-
-        if (isset($name) === true) {
-            $uri = "/_template/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'flat_settings',
-            'local',
-            'master_timeout'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Put.php
deleted file mode 100644
index 3aca04607d06951c206563c0114c5ee1734b853a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Template/Put.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    // The name of the template
-    private $name;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $name
-     *
-     * @return $this
-     */
-    public function setName($name)
-    {
-        if (isset($name) !== true) {
-            return $this;
-        }
-
-        $this->name = $name;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->name) !== true) {
-            throw new Exceptions\RuntimeException(
-                'name is required for Put'
-            );
-        }
-        $name = $this->name;
-        $uri   = "/_template/$name";
-
-        if (isset($name) === true) {
-            $uri = "/_template/$name";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'order',
-            'timeout',
-            'master_timeout',
-            'flat_settings',
-            'create'
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Put Template');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Type/Exists.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Type/Exists.php
deleted file mode 100644
index b2951892997a8222e778127aab9eae536df18a3c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Type/Exists.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Type;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Exists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Type
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Exists extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Exists'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Exists'
-            );
-        }
-        $uri   = "/{$this->index}/_mapping/{$this->type}";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Get.php
deleted file mode 100644
index d9cb7bea29cccd631a09d310bd154047e8582c20..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Get.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * User: zach
- * Date: 01/20/2014
- * Time: 14:34:49 pm
- */
-
-namespace Elasticsearch\Endpoints\Indices\Upgrade;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Post
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Get extends AbstractEndpoint
-{
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_upgrade";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_upgrade";
-        }
-
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'wait_for_completion',
-            'only_ancient_segments',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Post.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Post.php
deleted file mode 100644
index 5b00f68b61f29594e717b1f37ef2027ab3113006..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Upgrade/Post.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * User: zach
- * Date: 01/20/2014
- * Time: 14:34:49 pm
- */
-
-namespace Elasticsearch\Endpoints\Indices\Upgrade;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Post
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class Post extends AbstractEndpoint
-{
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_upgrade";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_upgrade";
-        }
-
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'wait_for_completion',
-            'only_ancient_segments',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Validate/Query.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Validate/Query.php
deleted file mode 100644
index a963038037f0b7e21bcae6755b50e67497d103e7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/Validate/Query.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices\Validate;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Query
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices\Validate
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Query extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return $this->getOptionalURI('_validate/query');
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'explain',
-            'ignore_indices',
-            'operation_threading',
-            'source',
-            'q',
-            'df',
-            'default_operator',
-            'analyzer',
-            'analyze_wildcard',
-            'lenient',
-            'lowercase_expanded_terms'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ValidateQuery.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ValidateQuery.php
deleted file mode 100644
index df94c02a9831b87d420602959d9b9a4752dadc0d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Indices/ValidateQuery.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Indices;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class ValidateQuery
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ValidateQuery extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_validate/query";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_validate/query";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_validate/query";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'explain',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'operation_threading',
-            'source',
-            'q',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Info.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Info.php
deleted file mode 100644
index dc157d7bc86b2f5ca7687aac42e2923048137efc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Info.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-/**
- * Class Info
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Info extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Delete.php
deleted file mode 100644
index b61e9e81387693031b0327c567fc333fae51eaad..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Delete.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Ingest\Pipeline;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Ingest
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for DeletePipeline'
-            );
-        }
-        $id = $this->id;
-        $uri = "/_ingest/pipeline/$id";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'timeout'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Get.php
deleted file mode 100644
index d5cf38fca02da3e3389a8b498bea2e634989fdea..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Get.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Ingest\Pipeline;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Ingest
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            return '/_ingest/pipeline/*';
-        }
-
-        $id = $this->id;
-
-        return "/_ingest/pipeline/$id";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Put.php
deleted file mode 100644
index d8707b3cb94dfa93a5d482aae13fee8441afc6e6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Pipeline/Put.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Ingest\Pipeline;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Ingest
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for PutPipeline'
-            );
-        }
-        $id = $this->id;
-        $uri = "/_ingest/pipeline/$id";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'timeout'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Simulate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Simulate.php
deleted file mode 100644
index f4570bbdf0155e4bfdbeea6df7f621c55c09a81c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ingest/Simulate.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Ingest;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Simulate
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Ingest
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Simulate extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) === true) {
-            return "/_ingest/pipeline/{$this->id}/_simulate";
-        }
-        return "/_ingest/pipeline/_simulate";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'verbose',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MPercolate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MPercolate.php
deleted file mode 100644
index 47d20a88fd1578801ebab77610e0d3829fc674e7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MPercolate.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-
-/**
- * Class MPercolate
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class MPercolate extends AbstractEndpoint implements BulkEndpointInterface
-{
-    /**
-     * @param SerializerInterface $serializer
-     */
-    public function __construct(SerializerInterface $serializer)
-    {
-        $this->serializer = $serializer;
-    }
-
-    /**
-     * @param string|array $body
-     *
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        if (is_array($body) === true) {
-            $bulkBody = "";
-            foreach ($body as $item) {
-                $bulkBody .= $this->serializer->serialize($item)."\n";
-            }
-            $body = $bulkBody;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return $this->getOptionalURI('_mpercolate');
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MTermVectors.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MTermVectors.php
deleted file mode 100644
index e723920d9d85a71c90cb1913aaf1f38ccb2cd2d9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/MTermVectors.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class MTermVectors
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class MTermVectors extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return $this->getOptionalURI('_mtermvectors');
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ids',
-            'term_statistics',
-            'field_statistics',
-            'fields',
-            'offsets',
-            'positions',
-            'payloads',
-            'preference',
-            'routing',
-            'parent',
-            'realtime'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Mget.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Mget.php
deleted file mode 100644
index 2d7dd562c4706566e5354d4133f570464f49e305..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Mget.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Mget
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Mget extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_mget";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_mget";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_mget";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_mget";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'fields',
-            'preference',
-            'realtime',
-            'refresh',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'routing',
-            'stored_fields'
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for MGet');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Msearch.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Msearch.php
deleted file mode 100644
index b4b4d1e82524accd6c533f1cf16b2e74b8944b30..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Msearch.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-
-/**
- * Class Msearch
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Msearch extends AbstractEndpoint
-{
-    /**
-     * @param SerializerInterface $serializer
-     */
-    public function __construct(SerializerInterface $serializer)
-    {
-        $this->serializer = $serializer;
-    }
-
-    /**
-     * @param array|string $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        if (is_array($body) === true) {
-            $bulkBody = "";
-            foreach ($body as $item) {
-                $bulkBody .= $this->serializer->serialize($item)."\n";
-            }
-            $body = $bulkBody;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_msearch";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_msearch";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_msearch";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_msearch";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'search_type',
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for MSearch');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Percolate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Percolate.php
deleted file mode 100644
index 4418d7dc4e86b5af03864cdcd0703e2576aebbc9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Percolate.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Percolate
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Percolate extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Percolate'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Percolate'
-            );
-        }
-        $index = $this->index;
-        $type  = $this->type;
-        $id    = $this->id;
-        $uri   = "/$index/$type/_percolate";
-
-        if (isset($id) === true) {
-            $uri = "/$index/$type/$id/_percolate";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'routing',
-            'preference',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'percolate_index',
-            'percolate_type',
-            'version',
-            'version_type',
-            'percolate_format'
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ping.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ping.php
deleted file mode 100644
index a11d902874402467fb749de5f2c3684f5b6a3068..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Ping.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-/**
- * Class Ping
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Ping extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'HEAD';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Reindex.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Reindex.php
deleted file mode 100644
index 5f8b97c86e59c984f3a7c9b764239ceac40e833c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Reindex.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-/**
- * Class Reindex
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Indices
- * @author   Augustin Husson <husson.augustin@gmail.com>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Reindex extends AbstractEndpoint
-{
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'refresh',
-            'timeout',
-            'consistency',
-            'wait_for_completion',
-            'requests_per_second',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        return '/_reindex';
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/RenderSearchTemplate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/RenderSearchTemplate.php
deleted file mode 100644
index c31eb7238c3e0d14eb73434bf893ac21fda12cc7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/RenderSearchTemplate.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Render
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class RenderSearchTemplate extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        $id = $this->id;
-
-        $uri   = "/_render/template";
-
-        if (isset($id) === true) {
-            $uri = "/_render/template/$id";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array();
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Delete.php
deleted file mode 100644
index 887c9f8b9be66fe44714ab349df60e51fec142a8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Delete.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Script;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Script
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /** @var  String */
-    private $lang;
-
-    /**
-     * @param $lang
-     *
-     * @return $this
-     */
-    public function setLang($lang)
-    {
-        if (isset($lang) !== true) {
-            return $this;
-        }
-
-        $this->lang = $lang;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->lang) !== true) {
-            throw new Exceptions\RuntimeException(
-                'lang is required for Put'
-            );
-        }
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for put'
-            );
-        }
-        $id   = $this->id;
-        $lang = $this->lang;
-        $uri  = "/_scripts/$lang/$id";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'version',
-            'version_type'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Get.php
deleted file mode 100644
index 78c01c8c52285c44abf15badd6d5f4ff10f4b43a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Get.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Script;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Script
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /** @var  String */
-    private $lang;
-
-    /**
-     * @param $lang
-     *
-     * @return $this
-     */
-    public function setLang($lang)
-    {
-        if (isset($lang) !== true) {
-            return $this;
-        }
-
-        $this->lang = $lang;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->lang) !== true) {
-            throw new Exceptions\RuntimeException(
-                'lang is required for Put'
-            );
-        }
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for put'
-            );
-        }
-        $id   = $this->id;
-        $lang = $this->lang;
-        $uri  = "/_scripts/$lang/$id";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'version_type',
-            'version'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Put.php
deleted file mode 100644
index d10603e302b8d7f351c1298a5065fd47ec50ed2c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Script/Put.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Script;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Script
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /** @var  String */
-    private $lang;
-
-    /**
-     * @param $lang
-     *
-     * @return $this
-     */
-    public function setLang($lang)
-    {
-        if (isset($lang) !== true) {
-            return $this;
-        }
-
-        $this->lang = $lang;
-
-        return $this;
-    }
-
-    /**
-     * @param array $body
-     *
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->lang) !== true) {
-            throw new Exceptions\RuntimeException(
-                'lang is required for Put'
-            );
-        }
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for put'
-            );
-        }
-        $id   = $this->id;
-        $lang = $this->lang;
-        $uri  = "/_scripts/$lang/$id";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'version_type',
-            'version',
-            'op_type'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Scroll.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Scroll.php
deleted file mode 100644
index 65aab8ddc249b8fe2ae68fec1232f86c8e006da2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Scroll.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Scroll
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Scroll extends AbstractEndpoint
-{
-    private $clear = false;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return array
-     */
-    public function getBody()
-    {
-        return $this->body;
-    }
-
-    public function setClearScroll($clear)
-    {
-        $this->clear = $clear;
-
-        return $this;
-    }
-
-    /**
-     * @param $scroll_id
-     *
-     * @return $this
-     */
-    public function setScrollId($scroll_id)
-    {
-        if (isset($scroll_id) !== true) {
-            return $this;
-        }
-
-        $this->body = $scroll_id;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $uri   = "/_search/scroll";
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'scroll',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        if ($this->clear == true) {
-            return 'DELETE';
-        }
-
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Search.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Search.php
deleted file mode 100644
index b23e613945bff1c761a0dea1f03b9f96079f00d9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Search.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Search
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Search extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_search";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_search";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_search";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_search";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'analyzer',
-            'analyze_wildcard',
-            'default_operator',
-            'df',
-            'explain',
-            'from',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'indices_boost',
-            'lenient',
-            'lowercase_expanded_terms',
-            'preference',
-            'q',
-            'query_cache',
-            'request_cache',
-            'routing',
-            'scroll',
-            'search_type',
-            'size',
-            'sort',
-            'source',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'stats',
-            'suggest_field',
-            'suggest_mode',
-            'suggest_size',
-            'suggest_text',
-            'timeout',
-            'version',
-            'fielddata_fields',
-            'docvalue_fields',
-            'filter_path',
-            'terminate_after',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchShards.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchShards.php
deleted file mode 100644
index 85c564adbb204f0eb5bc1edf1146997ee26a3681..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchShards.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-/**
- * Class Search
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class SearchShards extends AbstractEndpoint
-{
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_search_shards";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_search_shards";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_search_shards";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_search_shards";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'preference',
-            'routing',
-            'local',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchTemplate.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchTemplate.php
deleted file mode 100644
index 7b5c8304830e7f49320c699f2f1a7ffe6506304b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/SearchTemplate.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions\InvalidArgumentException;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class SearchTemplate
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class SearchTemplate extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/_search/template";
-
-        if (isset($index) === true && isset($type) === true) {
-            $uri = "/$index/$type/_search/template";
-        } elseif (isset($index) === true) {
-            $uri = "/$index/_search/template";
-        } elseif (isset($type) === true) {
-            $uri = "/_all/$type/_search/template";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'preference',
-            'routing',
-            'scroll',
-            'search_type'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Create.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Create.php
deleted file mode 100644
index a00a1cead961ecda1e771e2862375c335cb9b9fc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Create.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Create
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Create extends AbstractEndpoint
-{
-    // A repository name
-    private $repository;
-
-    // A snapshot name
-    private $snapshot;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @param $snapshot
-     *
-     * @return $this
-     */
-    public function setSnapshot($snapshot)
-    {
-        if (isset($snapshot) !== true) {
-            return $this;
-        }
-
-        $this->snapshot = $snapshot;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Create'
-            );
-        }
-        if (isset($this->snapshot) !== true) {
-            throw new Exceptions\RuntimeException(
-                'snapshot is required for Create'
-            );
-        }
-        $repository = $this->repository;
-        $snapshot = $this->snapshot;
-        $uri   = "/_snapshot/$repository/$snapshot";
-
-        if (isset($repository) === true && isset($snapshot) === true) {
-            $uri = "/_snapshot/$repository/$snapshot";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'wait_for_completion',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Delete.php
deleted file mode 100644
index ca28cfc10af59dd1505fa25ebec36a1498234f5f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Delete.php
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    // A repository name
-    private $repository;
-
-    // A snapshot name
-    private $snapshot;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @param $snapshot
-     *
-     * @return $this
-     */
-    public function setSnapshot($snapshot)
-    {
-        if (isset($snapshot) !== true) {
-            return $this;
-        }
-
-        $this->snapshot = $snapshot;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Delete'
-            );
-        }
-        if (isset($this->snapshot) !== true) {
-            throw new Exceptions\RuntimeException(
-                'snapshot is required for Delete'
-            );
-        }
-        $repository = $this->repository;
-        $snapshot = $this->snapshot;
-        $uri   = "/_snapshot/$repository/$snapshot";
-
-        if (isset($repository) === true && isset($snapshot) === true) {
-            $uri = "/_snapshot/$repository/$snapshot";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Get.php
deleted file mode 100644
index 70c6b54dcb2b60b5c49f06567f2107518170e15d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Get.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // A comma-separated list of repository names
-    private $repository;
-
-    // A comma-separated list of snapshot names
-    private $snapshot;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @param $snapshot
-     *
-     * @return $this
-     */
-    public function setSnapshot($snapshot)
-    {
-        if (isset($snapshot) !== true) {
-            return $this;
-        }
-
-        $this->snapshot = $snapshot;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Get'
-            );
-        }
-        if (isset($this->snapshot) !== true) {
-            throw new Exceptions\RuntimeException(
-                'snapshot is required for Get'
-            );
-        }
-        $repository = $this->repository;
-        $snapshot = $this->snapshot;
-        $uri   = "/_snapshot/$repository/$snapshot";
-
-        if (isset($repository) === true && isset($snapshot) === true) {
-            $uri = "/_snapshot/$repository/$snapshot";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'ignore_unavailable'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Create.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Create.php
deleted file mode 100644
index 94275c77bb97425161219ee329a83b056a12fd85..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Create.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot\Repository;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Create
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot\Repository
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Create extends AbstractEndpoint
-{
-    // A repository name
-    private $repository;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Create'
-            );
-        }
-        $repository = $this->repository;
-        $uri   = "/_snapshot/$repository";
-
-        if (isset($repository) === true) {
-            $uri = "/_snapshot/$repository";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'timeout',
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Create Repository');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Delete.php
deleted file mode 100644
index 4e0109f9656d0f736c1fa35cebc3eb6a03d9b9e7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Delete.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot\Repository;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot\Repository
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    // A comma-separated list of repository names
-    private $repository;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Delete'
-            );
-        }
-        $repository = $this->repository;
-        $uri   = "/_snapshot/$repository";
-
-        if (isset($repository) === true) {
-            $uri = "/_snapshot/$repository";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'timeout',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Get.php
deleted file mode 100644
index 57af42b36cb7e5e771c5c8596a7195358da2b18b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Get.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot\Repository;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot\Repository
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    // A comma-separated list of repository names
-    private $repository;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $repository = $this->repository;
-        $uri   = "/_snapshot";
-
-        if (isset($repository) === true) {
-            $uri = "/_snapshot/$repository";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Verify.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Verify.php
deleted file mode 100644
index ebd8fa3ee449eae74ed9882a9ff6d25db2a34615..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Repository/Verify.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot\Repository;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Verify
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot\Repository
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Verify extends AbstractEndpoint
-{
-    // A comma-separated list of repository names
-    private $repository;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        $repository = $this->repository;
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Verify'
-            );
-        }
-
-        $uri   = "/_snapshot/$repository/_verify";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'local',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Restore.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Restore.php
deleted file mode 100644
index 193d2031eef5777eaf99a76d9cbdf19799777dfe..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Restore.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Restore
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Restore extends AbstractEndpoint
-{
-    // A repository name
-    private $repository;
-
-    // A snapshot name
-    private $snapshot;
-
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @param $snapshot
-     *
-     * @return $this
-     */
-    public function setSnapshot($snapshot)
-    {
-        if (isset($snapshot) !== true) {
-            return $this;
-        }
-
-        $this->snapshot = $snapshot;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'repository is required for Restore'
-            );
-        }
-        if (isset($this->snapshot) !== true) {
-            throw new Exceptions\RuntimeException(
-                'snapshot is required for Restore'
-            );
-        }
-        $repository = $this->repository;
-        $snapshot = $this->snapshot;
-        $uri   = "/_snapshot/$repository/$snapshot/_restore";
-
-        if (isset($repository) === true && isset($snapshot) === true) {
-            $uri = "/_snapshot/$repository/$snapshot/_restore";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'wait_for_completion',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Status.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Status.php
deleted file mode 100644
index b8e6aba83ad293b9061e0e3a10ad35b4f790af39..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Snapshot/Status.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Snapshot;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Status
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Snapshot
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Status extends AbstractEndpoint
-{
-    // A comma-separated list of repository names
-    private $repository;
-
-    // A comma-separated list of snapshot names
-    private $snapshot;
-
-    /**
-     * @param $repository
-     *
-     * @return $this
-     */
-    public function setRepository($repository)
-    {
-        if (isset($repository) !== true) {
-            return $this;
-        }
-
-        $this->repository = $repository;
-
-        return $this;
-    }
-
-    /**
-     * @param $snapshot
-     *
-     * @return $this
-     */
-    public function setSnapshot($snapshot)
-    {
-        if (isset($snapshot) !== true) {
-            return $this;
-        }
-
-        $this->snapshot = $snapshot;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->snapshot) === true && isset($this->repository) !== true) {
-            throw new Exceptions\RuntimeException(
-                'Repository param must be provided if snapshot param is set'
-            );
-        }
-
-        $repository = $this->repository;
-        $snapshot   = $this->snapshot;
-        $uri        = "/_snapshot/_status";
-
-        if (isset($repository) === true) {
-            $uri = "/_snapshot/$repository/_status";
-        } elseif (isset($repository) === true && isset($snapshot) === true) {
-            $uri = "/_snapshot/$repository/$snapshot/_status";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'master_timeout',
-            'ignore_unavailable'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Source/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Source/Get.php
deleted file mode 100644
index 0e8ac26b5928bfd11d17deec07fe7333cad6d74d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Source/Get.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Source;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Source
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Get'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Get'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Get'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id/_source";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id/_source";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'parent',
-            'preference',
-            'realtime',
-            'refresh',
-            'routing',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'version',
-            'version_type',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Suggest.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Suggest.php
deleted file mode 100644
index 1afb1f274c750546b458db2428b75a10e51a9f41..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Suggest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Suggest
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Suggest extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getURI()
-    {
-        $index = $this->index;
-        $uri   = "/_suggest";
-
-        if (isset($index) === true) {
-            $uri = "/$index/_suggest";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'ignore_unavailable',
-            'allow_no_indices',
-            'expand_wildcards',
-            'preference',
-            'routing',
-            'source',
-        );
-    }
-
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for Suggest');
-        }
-
-        return $this->body;
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Cancel.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Cancel.php
deleted file mode 100644
index ff2405b2de7c14eac5fa341a64d5a6748cc656d0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Cancel.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Tasks;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Cancel
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Tasks
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Cancel extends AbstractEndpoint
-{
-    private $taskId;
-
-    /**
-     * @param string $taskId
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setTaskId($taskId)
-    {
-        if (isset($taskId) !== true) {
-            return $this;
-        }
-
-        $this->taskId = $taskId;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) === true) {
-            return "/_tasks/{$this->taskId}/_cancel";
-        }
-
-        return "/_tasks/_cancel";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'node_id',
-            'actions',
-            'parent_node',
-            'parent_task',
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Get.php
deleted file mode 100644
index 4e7318d06a2df8369c85a2792e29f6d7a6cc6032..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/Get.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Tasks;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Tasks
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    private $taskId;
-
-    /**
-     * @param string $taskId
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setTaskId($taskId)
-    {
-        if (isset($taskId) !== true) {
-            return $this;
-        }
-
-        $this->taskId = $taskId;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->taskId) === true) {
-            return "/_tasks/{$this->taskId}";
-        }
-
-        return "/_tasks";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'wait_for_completion'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/TasksList.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/TasksList.php
deleted file mode 100644
index b45f20628546f19b1546cd6e617c112a8b6cc82e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Tasks/TasksList.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Tasks;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-/**
- * Class TasksLists
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Tasks
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class TasksList extends AbstractEndpoint
-{
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        return "/_tasks";
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'node_id',
-            'actions',
-            'detailed',
-            'parent_node',
-            'parent_task',
-            'wait_for_completion',
-            'group_by',
-            'task_id'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Delete.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Delete.php
deleted file mode 100644
index b3593ba276662b51f990c50923bd6b9a4f537c20..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Delete.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Delete
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Delete extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Delete'
-            );
-        }
-        $templateId   = $this->id;
-        $uri  = "/_search/template/$templateId";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array();
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'DELETE';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Get.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Get.php
deleted file mode 100644
index 954ecdda1b4250ce8229c148f164435c357a0f17..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Get.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Get
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Get extends AbstractEndpoint
-{
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Get'
-            );
-        }
-        $templateId = $this->id;
-        $uri  = "/_search/template/$templateId";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array();
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'GET';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Put.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Put.php
deleted file mode 100644
index 075f413350b914224a9a4bb04165d7e677ad5abc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Template/Put.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints\Template;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Put
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints\Template
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Put extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Put'
-            );
-        }
-
-        $templateId = $this->id;
-        $uri  = "/_search/template/$templateId";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array();
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'PUT';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/TermVectors.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/TermVectors.php
deleted file mode 100644
index 5ac9569e38c8d16764ce2a9e40b45dcd2a763bbd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/TermVectors.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class TermVectors
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class TermVectors extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for TermVectors'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for TermVectors'
-            );
-        }
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for TermVectors'
-            );
-        }
-
-        $index = $this->index;
-        $type  = $this->type;
-        $id    = $this->id;
-        $uri   = "/$index/$type/$id/_termvectors";
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'term_statistics',
-            'field_statistics',
-            'fields',
-            'offsets',
-            'positions',
-            'payloads',
-            'preference',
-            'routing',
-            'parent',
-            'realtime'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Update.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Update.php
deleted file mode 100644
index 9627feeadaa8cfbcb771443c523a10a05d132fd2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/Update.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class Update
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Endpoints
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Update extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-
-        return $this;
-    }
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (isset($this->id) !== true) {
-            throw new Exceptions\RuntimeException(
-                'id is required for Update'
-            );
-        }
-        if (isset($this->index) !== true) {
-            throw new Exceptions\RuntimeException(
-                'index is required for Update'
-            );
-        }
-        if (isset($this->type) !== true) {
-            throw new Exceptions\RuntimeException(
-                'type is required for Update'
-            );
-        }
-        $id = $this->id;
-        $index = $this->index;
-        $type = $this->type;
-        $uri   = "/$index/$type/$id/_update";
-
-        if (isset($index) === true && isset($type) === true && isset($id) === true) {
-            $uri = "/$index/$type/$id/_update";
-        }
-
-        return $uri;
-    }
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return array(
-            'consistency',
-            'fields',
-            'lang',
-            'parent',
-            'refresh',
-            'replication',
-            'retry_on_conflict',
-            'routing',
-            'script',
-            'timeout',
-            'timestamp',
-            'ttl',
-            'version',
-            'version_type',
-            '_source'
-        );
-    }
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/UpdateByQuery.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/UpdateByQuery.php
deleted file mode 100644
index 79a19e7ee30d9423bbad597301d73ee14c94ffb6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Endpoints/UpdateByQuery.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints;
-
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class UpdateByQuery
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints *
- * @author   Zachary Tong <zachary.tong@elasticsearch.com>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elasticsearch.org
- */
-class UpdateByQuery extends AbstractEndpoint
-{
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        if (is_array($body) !== true) {
-            throw new Exceptions\InvalidArgumentException(
-                'Body must be an array'
-            );
-        }
-        $this->body = $body;
-
-        return $this;
-    }
-
-
-    /**
-     * @throws \Elasticsearch\Common\Exceptions\BadMethodCallException
-     * @return string
-     */
-    public function getURI()
-    {
-        if (!$this->index) {
-            throw new Exceptions\RuntimeException(
-                'index is required for UpdateByQuery'
-            );
-        }
-
-        $uri = "/{$this->index}/_update_by_query";
-        if ($this->type) {
-            $uri = "/{$this->index}/{$this->type}/_update_by_query";
-        }
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    public function getParamWhitelist()
-    {
-        return [
-            'analyzer',
-            'analyze_wildcard',
-            'default_operator',
-            'df',
-            'explain',
-            'fields',
-            'fielddata_fields',
-            'from',
-            'ignore_unavailable',
-            'allow_no_indices',
-            'conflicts',
-            'expand_wildcards',
-            'lenient',
-            'lowercase_expanded_terms',
-            'preference',
-            'q',
-            'routing',
-            'scroll',
-            'search_type',
-            'search_timeout',
-            'size',
-            'sort',
-            '_source',
-            '_source_exclude',
-            '_source_include',
-            'terminate_after',
-            'stats',
-            'suggest_field',
-            'suggest_mode',
-            'suggest_size',
-            'suggest_text',
-            'timeout',
-            'track_scores',
-            'version',
-            'version_type',
-            'request_cache',
-            'refresh',
-            'consistency',
-            'scroll_size',
-            'wait_for_completion',
-        ];
-    }
-
-
-    /**
-     * @return string
-     */
-    public function getMethod()
-    {
-        return 'POST';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchHitIterator.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchHitIterator.php
deleted file mode 100644
index 38695c337bb72bf63310f9c7fab29a8ecddd48c6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchHitIterator.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-
-namespace Elasticsearch\Helper\Iterators;
-
-use Iterator;
-
-/**
- * Class SearchHitIterator
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Helper\Iterators
- * @author   Arturo Mejia <arturo.mejia@kreatetechnology.com>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- * @see      Iterator
- */
-class SearchHitIterator implements Iterator, \Countable
-{
-
-    /**
-     * @var SearchResponseIterator
-     */
-    private $search_responses;
-
-    /**
-     * @var int
-     */
-    protected $current_key;
-
-    /**
-     * @var int
-     */
-    protected $current_hit_index;
-
-    /**
-     * @var array|null
-     */
-    protected $current_hit_data;
-
-    /**
-     * @var int
-     */
-    protected $count;
-
-    /**
-     * Constructor
-     *
-     * @param SearchResponseIterator $search_responses
-     */
-    public function __construct(SearchResponseIterator $search_responses)
-    {
-        $this->search_responses = $search_responses;
-    }
-
-    /**
-     * Rewinds the internal SearchResponseIterator and itself
-     *
-     * @return void
-     * @see    Iterator::rewind()
-     */
-    public function rewind()
-    {
-        $this->current_key = 0;
-        $this->search_responses->rewind();
-
-        // The first page may be empty. In that case, the next page is fetched.
-        $current_page = $this->search_responses->current();
-        if ($this->search_responses->valid() && empty($current_page['hits']['hits'])) {
-            $this->search_responses->next();
-        }
-
-        $this->count = 0;
-        if (isset($current_page['hits']) && isset($current_page['hits']['total'])) {
-            $this->count = $current_page['hits']['total'];
-        }
-
-        $this->readPageData();
-    }
-
-    /**
-     * Advances pointer of the current hit to the next one in the current page. If there
-     * isn't a next hit in the current page, then it advances the current page and moves the
-     * pointer to the first hit in the page.
-     *
-     * @return void
-     * @see    Iterator::next()
-     */
-    public function next()
-    {
-        $this->current_key++;
-        $this->current_hit_index++;
-        $current_page = $this->search_responses->current();
-        if (isset($current_page['hits']['hits'][$this->current_hit_index])) {
-            $this->current_hit_data = $current_page['hits']['hits'][$this->current_hit_index];
-        } else {
-            $this->search_responses->next();
-            $this->readPageData();
-        }
-    }
-
-    /**
-     * Returns a boolean indicating whether or not the current pointer has valid data
-     *
-     * @return bool
-     * @see    Iterator::valid()
-     */
-    public function valid()
-    {
-        return is_array($this->current_hit_data);
-    }
-
-    /**
-     * Returns the current hit
-     *
-     * @return array
-     * @see    Iterator::current()
-     */
-    public function current()
-    {
-        return $this->current_hit_data;
-    }
-
-    /**
-     * Returns the current hit index. The hit index spans all pages.
-     *
-     * @return int
-     * @see    Iterator::key()
-     */
-    public function key()
-    {
-        return $this->current_hit_index;
-    }
-
-    /**
-     * Advances the internal SearchResponseIterator and resets the current_hit_index to 0
-     *
-     * @internal
-     */
-    private function readPageData()
-    {
-        if ($this->search_responses->valid()) {
-            $current_page = $this->search_responses->current();
-            $this->current_hit_index = 0;
-            $this->current_hit_data = $current_page['hits']['hits'][$this->current_hit_index];
-        } else {
-            $this->current_hit_data = null;
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function count()
-    {
-        if ($this->count === null) {
-            $this->rewind();
-        }
-
-        return $this->count;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchResponseIterator.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchResponseIterator.php
deleted file mode 100644
index f8644229d4c50ac0c246d9cf5fc4d350234c6c56..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Helper/Iterators/SearchResponseIterator.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-
-namespace Elasticsearch\Helper\Iterators;
-
-use ElasticSearch\Client;
-use Iterator;
-
-/**
- * Class SearchResponseIterator
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Helper\Iterators
- * @author   Arturo Mejia <arturo.mejia@kreatetechnology.com>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- * @see      Iterator
- */
-class SearchResponseIterator implements Iterator
-{
-
-    /**
-     * @var Client
-     */
-    private $client;
-
-    /**
-     * @var array
-     */
-    private $params;
-
-    /**
-     * @var int
-     */
-    private $current_key;
-
-    /**
-     * @var array
-     */
-    private $current_scrolled_response;
-
-    /**
-     * @var string
-     */
-    private $scroll_id;
-
-    /**
-     * @var duration
-     */
-    private $scroll_ttl;
-
-    /**
-     * Constructor
-     *
-     * @param Client $client
-     * @param array  $params  Associative array of parameters
-     * @see   Client::search()
-     */
-    public function __construct(Client $client, array $search_params)
-    {
-        $this->client = $client;
-        $this->params = $search_params;
-
-        if (isset($search_params['scroll'])) {
-            $this->scroll_ttl = $search_params['scroll'];
-        }
-    }
-
-    /**
-     * Destructor
-     */
-    public function __destruct()
-    {
-        $this->clearScroll();
-    }
-
-    /**
-     * Sets the time to live duration of a scroll window
-     *
-     * @param  string $time_to_live
-     * @return $this
-     */
-    public function setScrollTimeout($time_to_live)
-    {
-        $this->scroll_ttl = $time_to_live;
-        return $this;
-    }
-
-    /**
-     * Clears the current scroll window if there is a scroll_id stored
-     *
-     * @return void
-     */
-    private function clearScroll()
-    {
-        if (!empty($this->scroll_id)) {
-            $this->client->clearScroll(
-                array(
-                    'scroll_id' => $this->scroll_id,
-                    'client' => array(
-                        'ignore' => 404
-                    )
-                )
-            );
-            $this->scroll_id = null;
-        }
-    }
-
-    /**
-     * Rewinds the iterator by performing the initial search.
-     *
-     *
-     * @return void
-     * @see    Iterator::rewind()
-     */
-    public function rewind()
-    {
-        $this->clearScroll();
-        $this->current_key = 0;
-        $this->current_scrolled_response = $this->client->search($this->params);
-        $this->scroll_id = $this->current_scrolled_response['_scroll_id'];
-    }
-
-    /**
-     * Fetches every "page" after the first one using the lastest "scroll_id"
-     *
-     * @return void
-     * @see    Iterator::next()
-     */
-    public function next()
-    {
-        if ($this->current_key !== 0) {
-            $this->current_scrolled_response = $this->client->scroll(
-                array(
-                    'scroll_id' => $this->scroll_id,
-                    'scroll'    => $this->scroll_ttl
-                )
-            );
-            $this->scroll_id = $this->current_scrolled_response['_scroll_id'];
-        }
-        $this->current_key++;
-    }
-
-    /**
-     * Returns a boolean value indicating if the current page is valid or not
-     *
-     * @return bool
-     * @see    Iterator::valid()
-     */
-    public function valid()
-    {
-        return isset($this->current_scrolled_response['hits']['hits'][0]);
-    }
-
-    /**
-     * Returns the current "page"
-     *
-     * @return array
-     * @see    Iterator::current()
-     */
-    public function current()
-    {
-        return $this->current_scrolled_response;
-    }
-
-    /**
-     * Returns the current "page number" of the current "page"
-     *
-     * @return int
-     * @see    Iterator::key()
-     */
-    public function key()
-    {
-        return $this->current_key;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/AbstractNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/AbstractNamespace.php
deleted file mode 100644
index 42a0c7815fd10e369b4ba07532c81565562eaf81..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/AbstractNamespace.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Transport;
-
-/**
- * Class AbstractNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-abstract class AbstractNamespace
-{
-    /** @var \Elasticsearch\Transport  */
-    protected $transport;
-
-    /** @var  callback */
-    protected $endpoints;
-
-    /**
-     * Abstract constructor
-     *
-     * @param Transport $transport Transport object
-     * @param $endpoints
-     */
-    public function __construct($transport, $endpoints)
-    {
-        $this->transport = $transport;
-        $this->endpoints = $endpoints;
-    }
-
-    /**
-     * @param array $params
-     * @param string $arg
-     *
-     * @return null|mixed
-     */
-    public function extractArgument(&$params, $arg)
-    {
-        if (is_object($params) === true) {
-            $params = (array) $params;
-        }
-
-        if (isset($params[$arg]) === true) {
-            $val = $params[$arg];
-            unset($params[$arg]);
-
-            return $val;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * @param $endpoint AbstractEndpoint
-     *
-     * @throws \Exception
-     * @return array
-     */
-    protected function performRequest(AbstractEndpoint $endpoint)
-    {
-        $response = $this->transport->performRequest(
-            $endpoint->getMethod(),
-            $endpoint->getURI(),
-            $endpoint->getParams(),
-            $endpoint->getBody(),
-            $endpoint->getOptions()
-        );
-
-        return $this->transport->resultOrFuture($response, $endpoint->getOptions());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/BooleanRequestWrapper.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/BooleanRequestWrapper.php
deleted file mode 100644
index eb9c4cd57d19644a96c7b6d582b13f8365f2b4ff..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/BooleanRequestWrapper.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-use Elasticsearch\Common\Exceptions\Missing404Exception;
-use Elasticsearch\Common\Exceptions\RoutingMissingException;
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Transport;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-
-/**
- * Trait AbstractNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-trait BooleanRequestWrapper
-{
-    /**
-     * Perform Request
-     *
-     * @param  AbstractEndpoint $endpoint The Endpoint to perform this request against
-     *
-     * @throws Missing404Exception
-     * @throws RoutingMissingException
-     */
-    public static function performRequest(AbstractEndpoint $endpoint, Transport $transport)
-    {
-        try {
-            $response = $transport->performRequest(
-                $endpoint->getMethod(),
-                $endpoint->getURI(),
-                $endpoint->getParams(),
-                $endpoint->getBody(),
-                $endpoint->getOptions()
-            );
-
-            $response = $transport->resultOrFuture($response, $endpoint->getOptions());
-            if (!($response instanceof FutureArrayInterface)) {
-                if ($response['status'] === 200) {
-                    return true;
-                } else {
-                    return false;
-                }
-            } else {
-                // async mode, can't easily resolve this...punt to user
-                return $response;
-            }
-        } catch (Missing404Exception $exception) {
-            return false;
-        } catch (RoutingMissingException $exception) {
-            return false;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/CatNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/CatNamespace.php
deleted file mode 100644
index dac0ff6e10877be21689a834a5018d3909b36a4d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/CatNamespace.php
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-/**
- * Class CatNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\CatNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class CatNamespace extends AbstractNamespace
-{
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function aliases($params = array())
-    {
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Aliases $endpoint */
-        $endpoint = $endpointBuilder('Cat\Aliases');
-        $endpoint->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function allocation($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Allocation $endpoint */
-        $endpoint = $endpointBuilder('Cat\Allocation');
-        $endpoint->setNodeID($nodeID);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function count($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Count $endpoint */
-        $endpoint = $endpointBuilder('Cat\Count');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['ts']             = (bool) Set to false to disable timestamping
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function health($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Health $endpoint */
-        $endpoint = $endpointBuilder('Cat\Health');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['help'] = (bool) Return help information
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function help($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Help $endpoint */
-        $endpoint = $endpointBuilder('Cat\Help');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *        ['pri']            = (bool) Set to true to return stats only for primary shards
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function indices($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Indices $endpoint */
-        $endpoint = $endpointBuilder('Cat\Indices');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function master($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Master $endpoint */
-        $endpoint = $endpointBuilder('Cat\Master');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function nodes($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Nodes $endpoint */
-        $endpoint = $endpointBuilder('Cat\Nodes');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function nodeAttrs($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\NodeAttrs $endpoint */
-        $endpoint = $endpointBuilder('Cat\NodeAttrs');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function pendingTasks($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\PendingTasks $endpoint */
-        $endpoint = $endpointBuilder('Cat\PendingTasks');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function recovery($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Recovery $endpoint */
-        $endpoint = $endpointBuilder('Cat\Recovery');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function repositories($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Repositories $endpoint */
-        $endpoint = $endpointBuilder('Cat\Repositories');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function shards($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Shards $endpoint */
-        $endpoint = $endpointBuilder('Cat\Shards');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *        ['repository']     = (string) Name of repository from which to fetch the snapshot information
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function snapshots($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Snapshots $endpoint */
-        $endpoint = $endpointBuilder('Cat\Snapshots');
-        $endpoint->setRepository($repository);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['full_id']        = (bool) Enables displaying the complete node ids
-     *        ['size']           = (enum) The multiplier in which to display values ([ "", "k", "m", "g", "t", "p" ])
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function threadPool($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\ThreadPool $endpoint */
-        $endpoint = $endpointBuilder('Cat\ThreadPool');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *        ['bytes']          = (enum) The unit in which to display byte values
-     *        ['fields']         = (list) A comma-separated list of fields to return the fielddata size
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function fielddata($params = array())
-    {
-        $fields = $this->extractArgument($params, 'fields');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Fielddata $endpoint */
-        $endpoint = $endpointBuilder('Cat\Fielddata');
-        $endpoint->setFields($fields);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']          = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function plugins($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Plugins $endpoint */
-        $endpoint = $endpointBuilder('Cat\Plugins');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function segments($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Segments $endpoint */
-        $endpoint = $endpointBuilder('Cat\Segments');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['format']         = (string) a short version of the Accept header, e.g. json, yaml
-     *        ['node_id']        = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['format']         = (string) a short version of the Accept header, e.g. json, yaml
-     *        ['actions']        = (list) A comma-separated list of actions that should be returned. Leave empty to return all.
-     *        ['detailed']       = (boolean) Return detailed task information (default: false)
-     *        ['parent_node']    = (string) Return tasks with specified parent node.
-     *        ['parent_task']    = (number) Return tasks with specified parent task id. Set to -1 to return all.
-     *        ['h']              = (list) Comma-separated list of column names to display
-     *        ['help']           = (bool) Return help information
-     *        ['v']              = (bool) Verbose mode. Display column headers
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function tasks($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cat\Tasks $endpoint */
-        $endpoint = $endpointBuilder('Cat\Tasks');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/ClusterNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/ClusterNamespace.php
deleted file mode 100644
index 01a50021495903565dd1fda5b827f3fcefeea1b3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/ClusterNamespace.php
+++ /dev/null
@@ -1,205 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-/**
- * Class ClusterNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\ClusterNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ClusterNamespace extends AbstractNamespace
-{
-    /**
-     * $params['index']                      = (string) Limit the information returned to a specific index
-     *        ['level']                      = (enum) Specify the level of detail for returned information
-     *        ['local']                      = (boolean) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout']             = (time) Explicit operation timeout for connection to master node
-     *        ['timeout']                    = (time) Explicit operation timeout
-     *        ['wait_for_active_shards']     = (number) Wait until the specified number of shards is active
-     *        ['wait_for_nodes']             = (number) Wait until the specified number of nodes is available
-     *        ['wait_for_relocating_shards'] = (number) Wait until the specified number of relocating shards is finished
-     *        ['wait_for_status']            = (enum) Wait until cluster is in a specific state
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function health($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Health $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Health');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['dry_run']         = (boolean) Simulate the operation only and return the resulting state
-     *        ['filter_metadata'] = (boolean) Don't return cluster state metadata (default: false)
-     *        ['body']            = (boolean) Don't return cluster state metadata (default: false)
-     *        ['explain']         = (boolean) Return an explanation of why the commands can or cannot be executed
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function reroute($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Reroute $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Reroute');
-        $endpoint->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['filter_blocks']          = (boolean) Do not return information about blocks
-     *        ['filter_index_templates'] = (boolean) Do not return information about index templates
-     *        ['filter_indices']         = (list) Limit returned metadata information to specific indices
-     *        ['filter_metadata']        = (boolean) Do not return information about indices metadata
-     *        ['filter_nodes']           = (boolean) Do not return information about nodes
-     *        ['filter_routing_table']   = (boolean) Do not return information about shard allocation (`routing_table` and `routing_nodes`)
-     *        ['local']                  = (boolean) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout']         = (time) Specify timeout for connection to master
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function state($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $metric = $this->extractArgument($params, 'metric');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\State $endpoint */
-        $endpoint = $endpointBuilder('Cluster\State');
-        $endpoint->setParams($params)
-                 ->setIndex($index)
-                 ->setMetric($metric);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['flat_settings']          = (boolean) Return settings in flat format (default: false)
-     *        ['human'] = (boolean) Whether to return time and byte values in human-readable format.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function stats($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Stats $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Stats');
-        $endpoint->setNodeID($nodeID)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['body'] = ()
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putSettings($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Settings\Put $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Settings\Put');
-        $endpoint->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * @param array $params
-     *
-     * @return array
-     */
-    public function getSettings($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Settings\Put $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Settings\Get');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']   = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['master_timeout']  = (time) Specify timeout for connection to master
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function pendingTasks($params = array())
-    {
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\PendingTasks $endpoint */
-        $endpoint = $endpointBuilder('Cluster\PendingTasks');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['include_yes_decisions'] = (bool) Return 'YES' decisions in explanation (default: false)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function allocationExplain($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\AllocationExplain $endpoint */
-        $endpoint = $endpointBuilder('Cluster\AllocationExplain');
-        $endpoint->setBody($body)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IndicesNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IndicesNamespace.php
deleted file mode 100644
index 2ad6b158595bbf157c63e10ee2204069ae341ff2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IndicesNamespace.php
+++ /dev/null
@@ -1,1163 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-/**
- * Class IndicesNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\IndicesNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class IndicesNamespace extends AbstractNamespace
-{
-    /**
-     * $params['index'] = (list) A comma-separated list of indices to check (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return boolean
-     */
-    public function exists($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        //manually make this verbose so we can check status code
-        $params['client']['verbose'] = true;
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Exists $endpoint */
-        $endpoint = $endpointBuilder('Indices\Exists');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
-    }
-
-    /**
-     * $params['index'] = (list) A comma-separated list of indices to check (Required)
-     *        ['feature'] = (list) A comma-separated list of features to return
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *        ['local']   = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return bool
-     */
-    public function get($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-        $feature = $this->extractArgument($params, 'feature');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Get');
-        $endpoint->setIndex($index)
-                 ->setFeature($feature)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['operation_threading'] = () TODO: ?
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function segments($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Segments $endpoint */
-        $endpoint = $endpointBuilder('Indices\Segments');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name']    = (string) The name of the template (Required)
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteTemplate($params)
-    {
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Template\Delete $endpoint */
-        $endpoint = $endpointBuilder('Indices\Template\Delete');
-        $endpoint->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (list) A comma-separated list of indices to delete; use `_all` or empty string to delete all indices
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function delete($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Delete $endpoint */
-        $endpoint = $endpointBuilder('Indices\Delete');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['fields']         = (boolean) A comma-separated list of fields for `fielddata` metric (supports wildcards)
-     *        ['index']          = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['indexing_types'] = (list) A comma-separated list of document types to include in the `indexing` statistics
-     *        ['metric_family']  = (enum) Limit the information returned to a specific metric
-     *        ['search_groups']  = (list) A comma-separated list of search groups to include in the `search` statistics
-     *        ['all']            = (boolean) Return all available information
-     *        ['clear']          = (boolean) Reset the default level of detail
-     *        ['docs']           = (boolean) Return information about indexed and deleted documents
-     *        ['fielddata']      = (boolean) Return information about field data
-     *        ['filter_cache']   = (boolean) Return information about filter cache
-     *        ['flush']          = (boolean) Return information about flush operations
-     *        ['get']            = (boolean) Return information about get operations
-     *        ['groups']         = (boolean) A comma-separated list of search groups for `search` statistics
-     *        ['id_cache']       = (boolean) Return information about ID cache
-     *        ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['indexing']       = (boolean) Return information about indexing operations
-     *        ['merge']          = (boolean) Return information about merge operations
-     *        ['refresh']        = (boolean) Return information about refresh operations
-     *        ['search']         = (boolean) Return information about search operations; use the `groups` parameter to include information for specific search groups
-     *        ['store']          = (boolean) Return information about the size of the index
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function stats($params = array())
-    {
-        $metric = $this->extractArgument($params, 'metric');
-
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Stats $endpoint */
-        $endpoint = $endpointBuilder('Indices\Stats');
-        $endpoint->setIndex($index)
-                 ->setMetric($metric);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index'] = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['body']  = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putSettings($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Settings\Put $endpoint */
-        $endpoint = $endpointBuilder('Indices\Settings\Put');
-        $endpoint->setIndex($index)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function snapshotIndex($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Gateway\Snapshot $endpoint */
-        $endpoint = $endpointBuilder('Indices\Gateway\Snapshot');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']          = (string) The name of the source index to shrink
-     *        ['target']         = (string) The name of the target index to shrink into
-     *        ['timeout']        = (time) Explicit operation timeout
-     *        ['master_timeout'] = (time) Specify timeout for connection to master
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function shrink($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $target = $this->extractArgument($params, 'target');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Shrink $endpoint */
-        $endpoint = $endpointBuilder('Indices\Shrink');
-        $endpoint->setIndex($index)
-                 ->setTarget($target);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index'] = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['type']  = (list) A comma-separated list of document types
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getMapping($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Mapping\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Mapping\Get');
-        $endpoint->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']            = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['type']             = (list) A comma-separated list of document types
-     *        ['field']            = (list) A comma-separated list of document fields
-     *        ['include_defaults'] = (bool) specifies default mapping values should be returned
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getFieldMapping($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-        $type = $this->extractArgument($params, 'type');
-        $fields = $this->extractArgument($params, 'fields');
-
-        if (!isset($fields)) {
-            $fields = $this->extractArgument($params, 'field');
-        }
-
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Mapping\GetField $endpoint */
-        $endpoint = $endpointBuilder('Indices\Mapping\GetField');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setFields($fields);
-
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['force']              = (boolean) TODO: ?
-     *        ['full']               = (boolean) TODO: ?
-     *        ['refresh']            = (boolean) Refresh the index after performing the operation
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function flush($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Flush $endpoint */
-        $endpoint = $endpointBuilder('Indices\Flush');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['force']              = (boolean) TODO: ?
-     *        ['full']               = (boolean) TODO: ?
-     *        ['refresh']            = (boolean) Refresh the index after performing the operation
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function flushSynced($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Flush $endpoint */
-        $endpoint = $endpointBuilder('Indices\Flush');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-        $endpoint->setSynced(true);
-
-        return $this->performRequest($endpoint);
-    }
-
-
-    /**
-     * $params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['operation_threading'] = () TODO: ?
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function refresh($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Refresh $endpoint */
-        $endpoint = $endpointBuilder('Indices\Refresh');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']       = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['detailed']    = (bool) Whether to display detailed information about shard recovery
-     *        ['active_only'] = (bool) Display only those recoveries that are currently on-going
-     *        ['human']       = (bool) Whether to return time and byte values in human-readable format.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function recovery($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Flush $endpoint */
-        $endpoint = $endpointBuilder('Indices\Recovery');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` to check the types across all indices (Required)
-     *        ['type']               = (list) A comma-separated list of document types to check (Required)
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return boolean
-     */
-    public function existsType($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        //manually make this verbose so we can check status code
-        $params['client']['verbose'] = true;
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Type\Exists $endpoint */
-        $endpoint = $endpointBuilder('Indices\Type\Exists');
-        $endpoint->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index with an alias
-     *        ['name']    = (string) The name of the alias to be created or updated
-     *        ['timeout'] = (time) Explicit timestamp for the document
-     *        ['body']    = (time) Explicit timestamp for the document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putAlias($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Alias\Put $endpoint */
-        $endpoint = $endpointBuilder('Indices\Alias\Put');
-        $endpoint->setIndex($index)
-                 ->setName($name)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name']    = (string) The name of the template (Required)
-     *        ['order']   = (number) The order for this template when merging multiple matching ones (higher numbers are merged later, overriding the lower numbers)
-     *        ['timeout'] = (time) Explicit operation timeout
-     *        ['body']    = (time) Explicit operation timeout
-     *        ['create']  = (bool) Whether the index template should only be added if new or can also replace an existing one
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putTemplate($params)
-    {
-        $name = $this->extractArgument($params, 'name');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Template\Put $endpoint */
-        $endpoint = $endpointBuilder('Indices\Template\Put');
-        $endpoint->setName($name)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']               = (list) A comma-separated list of index names to restrict the operation; use `_all` or empty string to perform the operation on all indices
-     *        ['type']                = (list) A comma-separated list of document types to restrict the operation; leave empty to perform the operation on all types
-     *        ['explain']             = (boolean) Return detailed information about the error
-     *        ['ignore_indices']      = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['operation_threading'] = () TODO: ?
-     *        ['source']              = (string) The URL-encoded query definition (instead of using the request body)
-     *        ['body']                = (string) The URL-encoded query definition (instead of using the request body)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function validateQuery($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Validate\Query $endpoint */
-        $endpoint = $endpointBuilder('Indices\Validate\Query');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name']           = (list) A comma-separated list of alias names to return (Required)
-     *        ['index']          = (list) A comma-separated list of index names to filter aliases
-     *        ['ignore_indices'] = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['name']           = (list) A comma-separated list of alias names to return
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getAlias($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Alias\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Alias\Get');
-        $endpoint->setIndex($index)
-                 ->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']            = (list) A comma-separated list of index names; use `_all` to perform the operation on all indices (Required)
-     *        ['type']             = (string) The name of the document type
-     *        ['ignore_conflicts'] = (boolean) Specify whether to ignore conflicts while updating the mapping (default: false)
-     *        ['timeout']          = (time) Explicit operation timeout
-     *        ['body']             = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putMapping($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Mapping\Put $endpoint */
-        $endpoint = $endpointBuilder('Indices\Mapping\Put');
-        $endpoint->setIndex($index)
-                 ->setType($type)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index'] = (list) A comma-separated list of index names; use `_all` for all indices (Required)
-     *        ['type']  = (string) The name of the document type to delete (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteMapping($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $type = $this->extractArgument($params, 'type');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Mapping\Delete $endpoint */
-        $endpoint = $endpointBuilder('Indices\Mapping\Delete');
-        $endpoint->setIndex($index)
-                 ->setType($type);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name'] = (string) The name of the template (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getTemplate($params)
-    {
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Template\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Template\Get');
-        $endpoint->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name'] = (string) The name of the template (Required)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return boolean
-     */
-    public function existsTemplate($params)
-    {
-        $name = $this->extractArgument($params, 'name');
-
-        //manually make this verbose so we can check status code
-        $params['client']['verbose'] = true;
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Template\Exists $endpoint */
-        $endpoint = $endpointBuilder('Indices\Template\Exists');
-        $endpoint->setName($name);
-        $endpoint->setParams($params);
-
-        return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index (Required)
-     *        ['timeout'] = (time) Explicit operation timeout
-     *        ['body']    = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function create($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Create $endpoint */
-        $endpoint = $endpointBuilder('Indices\Create');
-        $endpoint->setIndex($index)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']                = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['flush']                = (boolean) Specify whether the index should be flushed after performing the operation (default: true)
-     *        ['max_num_segments']     = (number) The number of segments the index should be merged into (default: dynamic)
-     *        ['only_expunge_deletes'] = (boolean) Specify whether the operation should only expunge deleted documents
-     *        ['operation_threading']  = () TODO: ?
-     *        ['refresh']              = (boolean) Specify whether the index should be refreshed after performing the operation (default: true)
-     *        ['wait_for_merge']       = (boolean) Specify whether the request should block until the merge process is finished (default: true)
-     *        ['ignore_unavailable']   = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']     = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']     = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function forceMerge($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\ForceMerge $endpoint */
-        $endpoint = $endpointBuilder('Indices\ForceMerge');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index with an alias (Required)
-     *        ['name']    = (string) The name of the alias to be deleted (Required)
-     *        ['timeout'] = (time) Explicit timestamp for the document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteAlias($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Alias\Delete $endpoint */
-        $endpoint = $endpointBuilder('Indices\Alias\Delete');
-        $endpoint->setIndex($index)
-                 ->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index (Required)
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function open($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Open $endpoint */
-        $endpoint = $endpointBuilder('Indices\Open');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']        = (string) The name of the index to scope the operation
-     *        ['analyzer']     = (string) The name of the analyzer to use
-     *        ['field']        = (string) Use the analyzer configured for this field (instead of passing the analyzer name)
-     *        ['filter']       = (list) A comma-separated list of filters to use for the analysis
-     *        ['prefer_local'] = (boolean) With `true`, specify that a local shard should be used if available, with `false`, use a random shard (default: true)
-     *        ['text']         = (string) The text on which the analysis should be performed (when request body is not used)
-     *        ['tokenizer']    = (string) The name of the tokenizer to use for the analysis
-     *        ['format']       = (enum) Format of the output
-     *        ['body']         = (enum) Format of the output
-     *        ['char_filter']  = (list) A comma-separated list of character filters to use for the analysis
-     *        ['explain']      = (bool) With `true`, outputs more advanced details. (default: false)
-     *        ['attributes']   = (list) A comma-separated list of token attributes to output, this parameter works only with `explain=true`
-     *        ['format']       = (enum) Format of the output (["detailed", "text"])
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function analyze($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Analyze $endpoint */
-        $endpoint = $endpointBuilder('Indices\Analyze');
-        $endpoint->setIndex($index)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index name to limit the operation
-     *        ['field_data']         = (boolean) Clear field data
-     *        ['fielddata']          = (boolean) Clear field data
-     *        ['fields']             = (list) A comma-separated list of fields to clear when using the `field_data` parameter (default: all)
-     *        ['filter']             = (boolean) Clear filter caches
-     *        ['filter_cache']       = (boolean) Clear filter caches
-     *        ['filter_keys']        = (boolean) A comma-separated list of keys to clear when using the `filter_cache` parameter (default: all)
-     *        ['id']                 = (boolean) Clear ID caches for parent/child
-     *        ['id_cache']           = (boolean) Clear ID caches for parent/child
-     *        ['recycler']           = (boolean) Clear the recycler cache
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function clearCache($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Cache\Clear $endpoint */
-        $endpoint = $endpointBuilder('Indices\Cache\Clear');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (list) A comma-separated list of index names to filter aliases
-     *        ['timeout'] = (time) Explicit timestamp for the document
-     *        ['body']    = (time) Explicit timestamp for the document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function updateAliases($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Aliases\Update $endpoint */
-        $endpoint = $endpointBuilder('Indices\Aliases\Update');
-        $endpoint->setIndex($index)
-                 ->setBody($body);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['local']   = (bool) Return local information, do not retrieve the state from master node (default: false)
-     *        ['timeout'] = (time) Explicit timestamp for the document
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getAliases($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Aliases\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Aliases\Get');
-        $endpoint->setIndex($index)
-                 ->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['name']               = (list) A comma-separated list of alias names to return (Required)
-     *        ['index']              = (list) A comma-separated list of index names to filter aliases
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return boolean
-     */
-    public function existsAlias($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        //manually make this verbose so we can check status code
-        $params['client']['verbose'] = true;
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Alias\Exists $endpoint */
-        $endpoint = $endpointBuilder('Indices\Alias\Exists');
-        $endpoint->setIndex($index)
-                 ->setName($name);
-        $endpoint->setParams($params);
-
-        return BooleanRequestWrapper::performRequest($endpoint, $this->transport);
-    }
-
-    /**
-     * $params['index']               = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['ignore_indices']      = (enum) When performed on multiple indices, allows to ignore `missing` ones
-     *        ['operation_threading'] = () TODO: ?
-     *        ['recovery']            = (boolean) Return information about shard recovery
-     *        ['snapshot']            = (boolean) TODO: ?
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function status($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Status $endpoint */
-        $endpoint = $endpointBuilder('Indices\Status');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index'] = (list) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getSettings($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        $name = $this->extractArgument($params, 'name');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Settings\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Settings\Get');
-        $endpoint->setIndex($index)
-                 ->setName($name);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index (Required)
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function close($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Close $endpoint */
-        $endpoint = $endpointBuilder('Indices\Close');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (string) The name of the index
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function seal($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Seal $endpoint */
-        $endpoint = $endpointBuilder('Indices\Seal');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['wait_for_completion']= (boolean) Specify whether the request should block until the all segments are upgraded (default: false)
-     *        ['only_ancient_segments'] = (boolean) If true, only ancient (an older Lucene major release) segments will be upgraded
-     *        ['refresh']            = (boolean) Refresh the index after performing the operation
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function upgrade($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Upgrade\Post $endpoint */
-        $endpoint = $endpointBuilder('Indices\Upgrade\Post');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']              = (list) A comma-separated list of index names; use `_all` or empty string for all indices
-     *        ['wait_for_completion']= (boolean) Specify whether the request should block until the all segments are upgraded (default: false)
-     *        ['only_ancient_segments'] = (boolean) If true, only ancient (an older Lucene major release) segments will be upgraded
-     *        ['refresh']            = (boolean) Refresh the index after performing the operation
-     *        ['ignore_unavailable'] = (bool) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices']   = (bool) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards']   = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getUpgrade($params = array())
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Upgrade\Get $endpoint */
-        $endpoint = $endpointBuilder('Indices\Upgrade\Get');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['index']   = (string) A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
-     *        ['status']   = (list) A comma-separated list of statuses used to filter on shards to get store information for
-     *        ['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
-     *        ['allow_no_indices'] = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
-     *        ['expand_wildcards'] = (boolean) Whether to expand wildcard expression to concrete indices that are open, closed or both.
-     *        ['operation_threading']
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function shardStores($params)
-    {
-        $index = $this->extractArgument($params, 'index');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\ShardStores $endpoint */
-        $endpoint = $endpointBuilder('Indices\ShardStores');
-        $endpoint->setIndex($index);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['newIndex']       = (string) The name of the rollover index
-     *        ['alias']          = (string) The name of the alias to rollover
-     *        ['timeout']        = (time) Explicit operation timeout
-     *        ['master_timeout'] = (time) Specify timeout for connection to master
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function rollover($params)
-    {
-        $newIndex = $this->extractArgument($params, 'newIndex');
-        $alias = $this->extractArgument($params, 'alias');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Indices\Rollover $endpoint */
-        $endpoint = $endpointBuilder('Indices\Rollover');
-        $endpoint->setNewIndex($newIndex)
-            ->setAlias($alias)
-            ->setParams($params)
-            ->setBody($body);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IngestNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IngestNamespace.php
deleted file mode 100644
index c14313b2f6a38cf4ca801be3d91fb8c015e97552..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/IngestNamespace.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-use Elasticsearch\Endpoints\Ingest\Pipeline\Delete;
-use Elasticsearch\Endpoints\Ingest\Pipeline\Get;
-use Elasticsearch\Endpoints\Ingest\Pipeline\Put;
-use Elasticsearch\Endpoints\Ingest\Simulate;
-
-/**
- * Class IngestNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\IngestNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class IngestNamespace extends AbstractNamespace
-{
-    /**
-     * $params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-     *        ['timeout']                    = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deletePipeline($params = array())
-    {
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Delete $endpoint */
-        $endpoint = $endpointBuilder('Ingest\Pipeline\Delete');
-        $endpoint->setID($id);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getPipeline($params = array())
-    {
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Get $endpoint */
-        $endpoint = $endpointBuilder('Ingest\Pipeline\Get');
-        $endpoint->setID($id);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout']             = (time) Explicit operation timeout for connection to master node
-     *        ['timeout']                    = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function putPipeline($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Put $endpoint */
-        $endpoint = $endpointBuilder('Ingest\Pipeline\Put');
-        $endpoint->setID($id)
-            ->setBody($body)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['verbose'] = (bool) Verbose mode. Display data output for each processor in executed pipeline
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function simulate($params = array())
-    {
-        $body = $this->extractArgument($params, 'body');
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Simulate $endpoint */
-        $endpoint = $endpointBuilder('Ingest\Simulate');
-        $endpoint->setID($id)
-            ->setBody($body)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NamespaceBuilderInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NamespaceBuilderInterface.php
deleted file mode 100644
index 7171dbbcacc57e0b92577437129d01e0ee1818fe..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NamespaceBuilderInterface.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Class RegisteredNamespaceInterface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-namespace Elasticsearch\Namespaces;
-
-
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-
-interface NamespaceBuilderInterface
-{
-    /**
-     * Returns the name of the namespace.  This is what users will call, e.g. the name
-     * "foo" will be invoked by the user as `$client->foo()`
-     * @return string
-     */
-    public function getName();
-
-    /**
-     * Returns the actual namespace object which contains your custom methods. The transport
-     * and serializer objects are provided so that your namespace may do whatever custom
-     * logic is required.
-     *
-     * @param Transport $transport
-     * @param SerializerInterface $serializer
-     * @return Object
-     */
-    public function getObject(Transport $transport, SerializerInterface $serializer);
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NodesNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NodesNamespace.php
deleted file mode 100644
index e8bbaf928b7637c7ab03672c459832473a3176d2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/NodesNamespace.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-/**
- * Class NodesNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\NodesNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class NodesNamespace extends AbstractNamespace
-{
-    /**
-     * $params['fields']        = (list) A comma-separated list of fields for `fielddata` metric (supports wildcards)
-     *        ['metric_family'] = (enum) Limit the information returned to a certain metric family
-     *        ['metric']        = (enum) Limit the information returned for `indices` family to a specific metric
-     *        ['node_id']       = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['all']           = (boolean) Return all available information
-     *        ['clear']         = (boolean) Reset the default level of detail
-     *        ['fs']            = (boolean) Return information about the filesystem
-     *        ['http']          = (boolean) Return information about HTTP
-     *        ['indices']       = (boolean) Return information about indices
-     *        ['jvm']           = (boolean) Return information about the JVM
-     *        ['network']       = (boolean) Return information about network
-     *        ['os']            = (boolean) Return information about the operating system
-     *        ['process']       = (boolean) Return information about the Elasticsearch process
-     *        ['thread_pool']   = (boolean) Return information about the thread pool
-     *        ['transport']     = (boolean) Return information about transport
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function stats($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-
-        $metric = $this->extractArgument($params, 'metric');
-
-        $index_metric = $this->extractArgument($params, 'index_metric');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Nodes\Stats $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Nodes\Stats');
-        $endpoint->setNodeID($nodeID)
-                 ->setMetric($metric)
-                 ->setIndexMetric($index_metric)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['node_id']       = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['metric']        = (list) A comma-separated list of metrics you wish returned. Leave empty to return all.
-     *        ['flat_settings'] = (boolean) Return settings in flat format (default: false)
-     *        ['human']         = (boolean) Whether to return time and byte values in human-readable format.
-
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function info($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-        $metric = $this->extractArgument($params, 'metric');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Nodes\Info $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Nodes\Info');
-        $endpoint->setNodeID($nodeID)->setMetric($metric);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['node_id']   = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['interval']  = (time) The interval for the second sampling of threads
-     *        ['snapshots'] = (number) Number of samples of thread stacktrace (default: 10)
-     *        ['threads']   = (number) Specify the number of threads to provide information for (default: 3)
-     *        ['type']      = (enum) The type to sample (default: cpu)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function hotThreads($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Nodes\HotThreads $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Nodes\HotThreads');
-        $endpoint->setNodeID($nodeID);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['node_id'] = (list) A comma-separated list of node IDs or names to perform the operation on; use `_local` to perform the operation on the node you're connected to, leave empty to perform the operation on all nodes
-     *        ['delay']   = (time) Set the delay for the operation (default: 1s)
-     *        ['exit']    = (boolean) Exit the JVM as well (default: true)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function shutdown($params = array())
-    {
-        $nodeID = $this->extractArgument($params, 'node_id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Cluster\Nodes\Shutdown $endpoint */
-        $endpoint = $endpointBuilder('Cluster\Nodes\Shutdown');
-        $endpoint->setNodeID($nodeID);
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/SnapshotNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/SnapshotNamespace.php
deleted file mode 100644
index 6f22d94251f056103ae2aa68a37c9148c274a57a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/SnapshotNamespace.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-/**
- * Class SnapshotNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\SnapshotNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class SnapshotNamespace extends AbstractNamespace
-{
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['wait_for_completion'] = (bool) Should this request wait until the operation has completed before returning
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function create($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $snapshot = $this->extractArgument($params, 'snapshot');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Create $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Create');
-        $endpoint->setRepository($repository)
-                 ->setSnapshot($snapshot)
-                 ->setParams($params)
-                 ->setBody($body);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function createRepository($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Repository\Create $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Repository\Create');
-        $endpoint->setRepository($repository)
-                 ->setBody($body)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function delete($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $snapshot = $this->extractArgument($params, 'snapshot');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Delete $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Delete');
-        $endpoint->setRepository($repository)
-                 ->setSnapshot($snapshot)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function deleteRepository($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Repository\Delete $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Repository\Delete');
-        $endpoint->setRepository($repository)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function get($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $snapshot = $this->extractArgument($params, 'snapshot');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Get $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Get');
-        $endpoint->setRepository($repository)
-                 ->setSnapshot($snapshot)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function getRepository($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Repository\Get $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Repository\Get');
-        $endpoint->setRepository($repository)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['wait_for_completion'] = (bool) Should this request wait until the operation has completed before returning
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function restore($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $snapshot = $this->extractArgument($params, 'snapshot');
-        $body = $this->extractArgument($params, 'body');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Restore $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Restore');
-        $endpoint->setRepository($repository)
-                 ->setSnapshot($snapshot)
-                 ->setParams($params)
-                 ->setBody($body);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function status($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-        $snapshot = $this->extractArgument($params, 'snapshot');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Status $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Status');
-        $endpoint->setRepository($repository)
-                 ->setSnapshot($snapshot)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['master_timeout'] = (time) Explicit operation timeout for connection to master node
-     *        ['timeout'] = (time) Explicit operation timeout
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function verifyRepository($params = array())
-    {
-        $repository = $this->extractArgument($params, 'repository');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var \Elasticsearch\Endpoints\Snapshot\Repository\Verify $endpoint */
-        $endpoint = $endpointBuilder('Snapshot\Repository\Verify');
-        $endpoint->setRepository($repository)
-                 ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/TasksNamespace.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/TasksNamespace.php
deleted file mode 100644
index 6782292e2a8e42fccea272808f28d16536622af8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Namespaces/TasksNamespace.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace Elasticsearch\Namespaces;
-
-use Elasticsearch\Endpoints\Tasks\Cancel;
-use Elasticsearch\Endpoints\Tasks\Get;
-
-/**
- * Class TasksNamespace
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Namespaces\TasksNamespace
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class TasksNamespace extends AbstractNamespace
-{
-    /**
-     * $params['wait_for_completion'] = (bool) Wait for the matching tasks to complete (default: false)
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function get($params = array())
-    {
-        $id = $this->extractArgument($params, 'task_id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Get $endpoint */
-        $endpoint = $endpointBuilder('Tasks\Get');
-        $endpoint->setTaskId($id)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['node_id'] = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['actions'] = (list) A comma-separated list of actions that should be cancelled. Leave empty to cancel all.
-     *        ['parent_node'] = (string) Cancel tasks with specified parent node
-     *        ['parent_task'] = (string) Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.
-     *        ['detailed'] = (bool) Return detailed task information (default: false)
-     *        ['wait_for_completion'] = (bool) Wait for the matching tasks to complete (default: false)
-     *        ['group_by'] = (enum) Group tasks by nodes or parent/child relationships
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function tasksList($params = array())
-    {
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Get $endpoint */
-        $endpoint = $endpointBuilder('Tasks\TasksList');
-        $endpoint->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-
-    /**
-     * $params['node_id'] = (list) A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
-     *        ['actions'] = (list) A comma-separated list of actions that should be cancelled. Leave empty to cancel all.
-     *        ['parent_node'] = (string) Cancel tasks with specified parent node
-     *        ['parent_task'] = (string) Cancel tasks with specified parent task id (node_id:task_number). Set to -1 to cancel all.
-     *
-     * @param $params array Associative array of parameters
-     *
-     * @return array
-     */
-    public function cancel($params = array())
-    {
-        $id = $this->extractArgument($params, 'id');
-
-        /** @var callback $endpointBuilder */
-        $endpointBuilder = $this->endpoints;
-
-        /** @var Cancel $endpoint */
-        $endpoint = $endpointBuilder('Tasks\Cancel');
-        $endpoint->setTaskId($id)
-            ->setParams($params);
-
-        return $this->performRequest($endpoint);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/ArrayToJSONSerializer.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/ArrayToJSONSerializer.php
deleted file mode 100644
index 1290b6b6365329226bd245c153a210260d16b347..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/ArrayToJSONSerializer.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace Elasticsearch\Serializers;
-
-/**
- * Class JSONSerializer
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Serializers\JSONSerializer
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class ArrayToJSONSerializer implements SerializerInterface
-{
-    /**
-     * Serialize assoc array into JSON string
-     *
-     * @param string|array $data Assoc array to encode into JSON
-     *
-     * @return string
-     */
-    public function serialize($data)
-    {
-        if (is_string($data) === true) {
-            return $data;
-        } else {
-            $data = json_encode($data, JSON_PRESERVE_ZERO_FRACTION);
-            if ($data === '[]') {
-                return '{}';
-            } else {
-                return $data;
-            }
-        }
-    }
-
-    /**
-     * Deserialize JSON into an assoc array
-     *
-     * @param string $data JSON encoded string
-     * @param array  $headers Response Headers
-     *
-     * @return array
-     */
-    public function deserialize($data, $headers)
-    {
-        return json_decode($data, true);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/EverythingToJSONSerializer.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/EverythingToJSONSerializer.php
deleted file mode 100644
index b93b1bbe546a182a46b55f37eaa5b1682b036b0b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/EverythingToJSONSerializer.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-namespace Elasticsearch\Serializers;
-
-/**
- * Class EverythingToJSONSerializer
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Serializers
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class EverythingToJSONSerializer implements SerializerInterface
-{
-    /**
-     * Serialize assoc array into JSON string
-     *
-     * @param string|array $data Assoc array to encode into JSON
-     *
-     * @return string
-     */
-    public function serialize($data)
-    {
-        $data = json_encode($data, JSON_PRESERVE_ZERO_FRACTION);
-        if ($data === '[]') {
-            return '{}';
-        } else {
-            return $data;
-        }
-    }
-
-    /**
-     * Deserialize JSON into an assoc array
-     *
-     * @param string $data JSON encoded string
-     * @param array  $headers Response headers
-     *
-     * @return array
-     */
-    public function deserialize($data, $headers)
-    {
-        return json_decode($data, true);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SerializerInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SerializerInterface.php
deleted file mode 100644
index a23796309300e8feeb0dbad5b577fddd7cbdd6a5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SerializerInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Elasticsearch\Serializers;
-
-/**
- * Interface SerializerInterface
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Serializers
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-interface SerializerInterface
-{
-    /**
-     * Serialize a complex data-structure into a json encoded string
-     *
-     * @param mixed   The data to encode
-     *
-     * @return string
-     */
-    public function serialize($data);
-
-    /**
-     * Deserialize json encoded string into an associative array
-     *
-     * @param string $data    JSON encoded string
-     * @param array  $headers Response Headers
-     *
-     * @return array
-     */
-    public function deserialize($data, $headers);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SmartSerializer.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SmartSerializer.php
deleted file mode 100644
index bdae9f85256d75675719e5ef389cd08b2529b623..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Serializers/SmartSerializer.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-namespace Elasticsearch\Serializers;
-
-use Elasticsearch\Common\Exceptions\Serializer\JsonErrorException;
-
-/**
- * Class SmartSerializer
- *
- * @category Elasticsearch
- * @package  Elasticsearch\Serializers\JSONSerializer
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class SmartSerializer implements SerializerInterface
-{
-    /**
-     * Serialize assoc array into JSON string
-     *
-     * @param string|array $data Assoc array to encode into JSON
-     *
-     * @return string
-     */
-    public function serialize($data)
-    {
-        if (is_string($data) === true) {
-            return $data;
-        } else {
-            $data = json_encode($data, JSON_PRESERVE_ZERO_FRACTION);
-            if ($data === '[]') {
-                return '{}';
-            } else {
-                return $data;
-            }
-        }
-    }
-
-    /**
-     * Deserialize by introspecting content_type. Tries to deserialize JSON,
-     * otherwise returns string
-     *
-     * @param string $data JSON encoded string
-     * @param array  $headers Response Headers
-     *
-     * @throws JsonErrorException
-     * @return array
-     */
-    public function deserialize($data, $headers)
-    {
-        if (isset($headers['content_type']) === true) {
-            if (strpos($headers['content_type'], 'json') !== false) {
-                return $this->decode($data);
-            } else {
-                //Not json, return as string
-                return $data;
-            }
-        } else {
-            //No content headers, assume json
-            return $this->decode($data);
-        }
-    }
-
-    /**
-     * @todo For 2.0, remove the E_NOTICE check before raising the exception.
-     *
-     * @param $data
-     *
-     * @return array
-     * @throws JsonErrorException
-     */
-    private function decode($data)
-    {
-        if ($data === null || strlen($data) === 0) {
-            return "";
-        }
-
-        $result = @json_decode($data, true);
-
-        // Throw exception only if E_NOTICE is on to maintain backwards-compatibility on systems that silently ignore E_NOTICEs.
-        if (json_last_error() !== JSON_ERROR_NONE && (error_reporting() & E_NOTICE) === E_NOTICE) {
-            $e = new JsonErrorException(json_last_error(), $data, $result);
-            throw $e;
-        }
-
-        return $result;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Transport.php b/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Transport.php
deleted file mode 100644
index 07323f7862bc086770e1d1cb82fadcde41193388..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/src/Elasticsearch/Transport.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-
-namespace Elasticsearch;
-
-use Elasticsearch\Common\Exceptions;
-use Elasticsearch\ConnectionPool\AbstractConnectionPool;
-use Elasticsearch\Connections\Connection;
-use Elasticsearch\Connections\ConnectionInterface;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-use Psr\Log\LoggerInterface;
-
-/**
- * Class Transport
- *
- * @category Elasticsearch
- * @package  Elasticsearch
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-class Transport
-{
-    /**
-     * @var AbstractConnectionPool
-     */
-    public $connectionPool;
-
-    /**
-     * @var LoggerInterface
-     */
-    private $log;
-
-    /** @var  int */
-    public $retryAttempts = 0;
-
-    /** @var  Connection */
-    public $lastConnection;
-
-    /** @var int  */
-    public $retries;
-
-    /**
-     * Transport class is responsible for dispatching requests to the
-     * underlying cluster connections
-     *
-     * @param $retries
-     * @param bool $sniffOnStart
-     * @param ConnectionPool\AbstractConnectionPool $connectionPool
-     * @param \Psr\Log\LoggerInterface $log    Monolog logger object
-     */
-    public function __construct($retries, $sniffOnStart = false, AbstractConnectionPool $connectionPool, LoggerInterface $log)
-    {
-        $this->log            = $log;
-        $this->connectionPool = $connectionPool;
-        $this->retries        = $retries;
-
-        if ($sniffOnStart === true) {
-            $this->log->notice('Sniff on Start.');
-            $this->connectionPool->scheduleCheck();
-        }
-    }
-
-    /**
-     * Returns a single connection from the connection pool
-     * Potentially performs a sniffing step before returning
-     *
-     * @return ConnectionInterface Connection
-     */
-
-    public function getConnection()
-    {
-        return $this->connectionPool->nextConnection();
-    }
-
-    /**
-     * Perform a request to the Cluster
-     *
-     * @param string $method     HTTP method to use
-     * @param string $uri        HTTP URI to send request to
-     * @param null $params     Optional query parameters
-     * @param null $body       Optional query body
-     * @param array $options
-     *
-     * @throws Common\Exceptions\NoNodesAvailableException|\Exception
-     * @return FutureArrayInterface
-     */
-    public function performRequest($method, $uri, $params = null, $body = null, $options = [])
-    {
-        try {
-            $connection  = $this->getConnection();
-        } catch (Exceptions\NoNodesAvailableException $exception) {
-            $this->log->critical('No alive nodes found in cluster');
-            throw $exception;
-        }
-
-        $response             = array();
-        $caughtException      = null;
-        $this->lastConnection = $connection;
-
-        $future = $connection->performRequest(
-            $method,
-            $uri,
-            $params,
-            $body,
-            $options,
-            $this
-        );
-
-        $future->promise()->then(
-            //onSuccess
-            function ($response) {
-                $this->retryAttempts = 0;
-                // Note, this could be a 4xx or 5xx error
-            },
-            //onFailure
-            function ($response) {
-                //some kind of real faiure here, like a timeout
-                $this->connectionPool->scheduleCheck();
-                // log stuff
-            });
-
-        return $future;
-    }
-
-    /**
-     * @param FutureArrayInterface $result  Response of a request (promise)
-     * @param array                $options Options for transport
-     *
-     * @return callable|array
-     */
-    public function resultOrFuture($result, $options = [])
-    {
-        $response = null;
-        $async = isset($options['client']['future']) ? $options['client']['future'] : null;
-        if (is_null($async) || $async === false) {
-            do {
-                $result = $result->wait();
-            } while ($result instanceof FutureArrayInterface);
-
-            return $result;
-        } elseif ($async === true || $async === 'lazy') {
-            return $result;
-        }
-    }
-
-    /**
-     * @param $request
-     *
-     * @return bool
-     */
-    public function shouldRetry($request)
-    {
-        if ($this->retryAttempts < $this->retries) {
-            $this->retryAttempts += 1;
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns the last used connection so that it may be inspected.  Mainly
-     * for debugging/testing purposes.
-     *
-     * @return Connection
-     */
-    public function getLastConnection()
-    {
-        return $this->lastConnection;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ClientTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ClientTest.php
deleted file mode 100644
index da4cc8c17c4f8582ed39e0090aacca93144e8e1d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ClientTest.php
+++ /dev/null
@@ -1,420 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests;
-
-use Elasticsearch;
-use Elasticsearch\ClientBuilder;
-use Elasticsearch\Connections\Connection;
-use Mockery as m;
-
-/**
- * Class ClientTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class ClientTest extends \PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    /**
-     * @expectedException \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     */
-    public function testConstructorIllegalPort()
-    {
-        $client = Elasticsearch\ClientBuilder::create()->setHosts(['localhost:abc'])->build();
-    }
-
-    public function testCustomQueryParams()
-    {
-        $params = array();
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([$_SERVER['ES_TEST_HOST']])->build();
-
-        $getParams = array(
-            'index' => 'test',
-            'type' => 'test',
-            'id' => 1,
-            'parent' => 'abc',
-            'custom' => array('customToken' => 'abc', 'otherToken' => 123),
-            'client' => ['ignore' => 400]
-        );
-        $exists = $client->exists($getParams);
-    }
-
-    public function testFromConfig()
-    {
-        $params = [
-            'hosts' => [
-                'localhost:9200'
-            ],
-            'retries' => 2,
-            'handler' => ClientBuilder::multiHandler()
-        ];
-        $client = ClientBuilder::fromConfig($params);
-    }
-
-    /**
-     * @expectedException \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    public function testFromConfigBadParam()
-    {
-        $params = [
-            'hosts' => [
-                'localhost:9200'
-            ],
-            'retries' => 2,
-            'imNotReal' => 5
-        ];
-        $client = ClientBuilder::fromConfig($params);
-    }
-
-    public function testFromConfigBadParamQuiet()
-    {
-        $params = [
-            'hosts' => [
-                'localhost:9200'
-            ],
-            'retries' => 2,
-            'imNotReal' => 5
-        ];
-        $client = ClientBuilder::fromConfig($params, true);
-    }
-
-    public function testNullDelete()
-    {
-        $client = ClientBuilder::create()->build();
-
-        try {
-            $client->delete([
-                'index' => null,
-                'type' => 'test',
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => null,
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => 'test',
-                'id' => null
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-    }
-
-    public function testEmptyStringDelete()
-    {
-        $client = ClientBuilder::create()->build();
-
-        try {
-            $client->delete([
-                'index' => '',
-                'type' => 'test',
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => '',
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => 'test',
-                'id' => ''
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-    }
-
-    public function testArrayOfEmptyStringDelete()
-    {
-        $client = ClientBuilder::create()->build();
-
-        try {
-            $client->delete([
-                'index' => ['', '', ''],
-                'type' => 'test',
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => ['', '', ''],
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-    }
-
-    public function testArrayOfNullDelete()
-    {
-        $client = ClientBuilder::create()->build();
-
-        try {
-            $client->delete([
-                'index' => [null, null, null],
-                'type' => 'test',
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-
-        try {
-            $client->delete([
-                'index' => 'test',
-                'type' => [null, null, null],
-                'id' => 'test'
-            ]);
-            $this->fail("InvalidArgumentException was not thrown");
-        } catch (Elasticsearch\Common\Exceptions\InvalidArgumentException $e) {
-            // all good
-        }
-    }
-
-    public function testMaxRetriesException()
-    {
-        $client = Elasticsearch\ClientBuilder::create()
-            ->setHosts(["localhost:1"])
-            ->setRetries(0)
-            ->build();
-
-        $searchParams = array(
-            'index' => 'test',
-            'type' => 'test',
-            'body' => [
-                'query' => [
-                    'match_all' => []
-                ]
-            ]
-        );
-
-        $client = Elasticsearch\ClientBuilder::create()
-            ->setHosts(["localhost:1"])
-            ->setRetries(0)
-            ->build();
-
-        try {
-            $client->search($searchParams);
-            $this->fail("Should have thrown CouldNotConnectToHost");
-        } catch (Elasticsearch\Common\Exceptions\Curl\CouldNotConnectToHost $e) {
-            // All good
-            $previous = $e->getPrevious();
-            $this->assertInstanceOf('Elasticsearch\Common\Exceptions\MaxRetriesException', $previous);
-        } catch (\Exception $e) {
-            throw $e;
-        }
-
-
-        $client = Elasticsearch\ClientBuilder::create()
-            ->setHosts(["localhost:1"])
-            ->setRetries(0)
-            ->build();
-
-        try {
-            $client->search($searchParams);
-            $this->fail("Should have thrown TransportException");
-        } catch (Elasticsearch\Common\Exceptions\TransportException $e) {
-            // All good
-            $previous = $e->getPrevious();
-            $this->assertInstanceOf('Elasticsearch\Common\Exceptions\MaxRetriesException', $previous);
-        } catch (\Exception $e) {
-            throw $e;
-        }
-    }
-
-    public function testInlineHosts()
-    {
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            'localhost:9200'
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("localhost:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            'http://localhost:9200'
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("localhost:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            'http://foo.com:9200'
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            'https://foo.com:9200'
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("https", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            'https://user:pass@foo.com:9200'
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("https", $host->getTransportSchema());
-        $this->assertEquals("user:pass", $host->getUserPass());
-    }
-
-    public function testExtendedHosts()
-    {
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'localhost',
-                'port' => 9200,
-                'scheme' => 'http'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("localhost:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com',
-                'port' => 9200,
-                'scheme' => 'http'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com',
-                'port' => 9200,
-                'scheme' => 'https'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("https", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com',
-                'scheme' => 'http'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com',
-                'port' => 9500,
-                'scheme' => 'https'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9500", $host->getHost());
-        $this->assertEquals("https", $host->getTransportSchema());
-
-
-        try {
-            $client = Elasticsearch\ClientBuilder::create()->setHosts([
-                [
-                    'port' => 9200,
-                    'scheme' => 'http'
-                ]
-            ])->build();
-            $this->fail("Expected RuntimeException from missing host, none thrown");
-        } catch (Elasticsearch\Common\Exceptions\RuntimeException $e) {
-            // good
-        }
-
-        // Underscore host, questionably legal, but inline method would break
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'the_foo.com'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("the_foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-
-
-        // Special characters in user/pass, would break inline
-        $client = Elasticsearch\ClientBuilder::create()->setHosts([
-            [
-                'host' => 'foo.com',
-                'user' => 'user',
-                'pass' => 'abc#$@?%!abc'
-            ]
-        ])->build();
-        $host = $client->transport->getConnection();
-        $this->assertEquals("foo.com:9200", $host->getHost());
-        $this->assertEquals("http", $host->getTransportSchema());
-        $this->assertEquals("user:abc#$@?%!abc", $host->getUserPass());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/RoundRobinSelectorTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/RoundRobinSelectorTest.php
deleted file mode 100644
index 7e5de4fc528e23496a84dc3b34dd4cb022e11c3b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/RoundRobinSelectorTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\ConnectionPool\Selectors;
-
-use Elasticsearch;
-
-/**
- * Class SnifferTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests\ConnectionPool\RoundRobinSelectorTest
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class RoundRobinSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Add Ten connections, select 15 to verify round robin
-     *
-     * @covers \Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector::select
-     *
-     * @return void
-     */
-    public function testTenConnections()
-    {
-        $roundRobin = new Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector();
-
-        $mockConnections = array();
-        foreach (range(0, 10) as $index) {
-            $mockConnections[$index] = $this->getMockBuilder('\Elasticsearch\Connections\CurlMultiConnection')
-                ->disableOriginalConstructor()
-                ->getMock();
-        }
-
-        foreach (range(0, 15) as $index) {
-            $retConnection = $roundRobin->select($mockConnections);
-
-            $nextIndex = ($index % 10) + 1;
-            $this->assertEquals($mockConnections[$nextIndex], $retConnection);
-        }
-    }
-
-    /**
-     * Add Ten connections, select five, remove thre, test another 10 to check
-     * that the round-robining works after removing connections
-     *
-     * @covers \Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector::select
-     *
-     * @return void
-     */
-    public function testAddTenConnectionsestFiveTRemoveThree()
-    {
-        $roundRobin = new Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector();
-
-        $mockConnections = array();
-        foreach (range(0, 10) as $index) {
-            $mockConnections[$index] = $this->getMockBuilder('\Elasticsearch\Connections\CurlMultiConnection')
-                ->disableOriginalConstructor()
-                ->getMock();
-        }
-
-        foreach (range(0, 4) as $index) {
-            $retConnection = $roundRobin->select($mockConnections);
-
-            $nextIndex = ($index % (count($mockConnections)-1)) + 1;
-            $this->assertEquals($mockConnections[$nextIndex], $retConnection);
-        }
-
-        unset($mockConnections[8]);
-        unset($mockConnections[9]);
-        unset($mockConnections[10]);
-
-        foreach (range(5, 15) as $index) {
-            $retConnection = $roundRobin->select($mockConnections);
-
-            $nextIndex = ($index % (count($mockConnections)-1)) + 1;
-            $this->assertEquals($mockConnections[$nextIndex], $retConnection);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/StickyRoundRobinSelectorTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/StickyRoundRobinSelectorTest.php
deleted file mode 100644
index 3d93ec7908f624aa2c4322767048905b976a2805..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/Selectors/StickyRoundRobinSelectorTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\ConnectionPool\Selectors;
-
-use Elasticsearch;
-use Mockery as m;
-
-/**
- * Class StickyRoundRobinSelectorTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests\ConnectionPool\StickyRoundRobinSelectorTest
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class StickyRoundRobinSelectorTest extends \PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testTenConnections()
-    {
-        $roundRobin = new Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector();
-
-        $mockConnections = array();
-        $mockConnections[] = m::mock('\Elasticsearch\Connections\GuzzleConnection')
-                             ->shouldReceive('isAlive')->times(16)->andReturn(true)->getMock();
-
-        foreach (range(0, 9) as $index) {
-            $mockConnections[] = m::mock('\Elasticsearch\Connections\GuzzleConnection');
-        }
-
-        foreach (range(0, 15) as $index) {
-            $retConnection = $roundRobin->select($mockConnections);
-
-            $this->assertEquals($mockConnections[0], $retConnection);
-        }
-    }
-
-    public function testTenConnectionsFirstDies()
-    {
-        $roundRobin = new Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector();
-
-        $mockConnections = array();
-        $mockConnections[] = m::mock('\Elasticsearch\Connections\GuzzleConnection')
-                             ->shouldReceive('isAlive')->once()->andReturn(false)->getMock();
-
-        $mockConnections[] = m::mock('\Elasticsearch\Connections\GuzzleConnection')
-                             ->shouldReceive('isAlive')->times(15)->andReturn(true)->getMock();
-
-        foreach (range(0, 8) as $index) {
-            $mockConnections[] = m::mock('\Elasticsearch\Connections\GuzzleConnection');
-        }
-
-        foreach (range(0, 15) as $index) {
-            $retConnection = $roundRobin->select($mockConnections);
-
-            $this->assertEquals($mockConnections[1], $retConnection);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolIntegrationTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolIntegrationTest.php
deleted file mode 100644
index e6f3de922e9efb7e60f0c6c968d9a6b580c5e5c3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolIntegrationTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-use Elasticsearch\ClientBuilder;
-
-/**
- * Class SniffingConnectionPoolIntegrationTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests/SniffingConnectionPoolTest
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class SniffingConnectionPoolIntegrationTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSniff()
-    {
-        $client = ClientBuilder::create()
-            ->setHosts([$_SERVER['ES_TEST_HOST']])
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\SniffingConnectionPool', ['sniffingInterval' => -10])
-            ->build();
-
-        $client->ping();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolTest.php
deleted file mode 100644
index 5d38c87a29638f7d039d07877a21330729e4cec6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/SniffingConnectionPoolTest.php
+++ /dev/null
@@ -1,426 +0,0 @@
-<?php
-
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Elasticsearch\ConnectionPool\SniffingConnectionPool;
-use Mockery as m;
-
-/**
- * Class SniffingConnectionPoolTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests/SniffingConnectionPoolTest
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class SniffingConnectionPoolTest extends \PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testAddOneHostThenGetConnection()
-    {
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('isAlive')
-                          ->andReturn(true)
-                          ->getMock();
-
-        $connections = array($mockConnection);
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturn($connections[0])
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $connectionPoolParams = array('randomizeHosts' => false);
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($mockConnection, $retConnection);
-    }
-
-    public function testAddOneHostAndTriggerSniff()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"Bl2ihSr7TcuUHxhu1GA_YQ":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}}}', true);
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('getTransportSchema')->once()->andReturn('http')->getMock()
-                          ->shouldReceive('sniff')->once()->andReturn($clusterState)->getMock();
-
-        $connections = array($mockConnection);
-        $mockNewConnection = m::mock('\Elasticsearch\Connections\Connection')
-                             ->shouldReceive('isAlive')->andReturn(true)->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')->twice()
-                    ->andReturn($mockNewConnection)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                    ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($mockNewConnection)->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false,
-            'sniffingInterval'  => -1
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($mockNewConnection, $retConnection);
-    }
-
-    public function testAddOneHostAndForceNext()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"Bl2ihSr7TcuUHxhu1GA_YQ":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}}}', true);
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('getTransportSchema')->once()->andReturn('http')->getMock()
-                          ->shouldReceive('sniff')->once()->andReturn($clusterState)->getMock();
-
-        $connections = array($mockConnection);
-        $mockNewConnection = m::mock('\Elasticsearch\Connections\Connection')
-                             ->shouldReceive('isAlive')->andReturn(true)->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')->once()->andReturn($mockConnection)->getMock()
-                    ->shouldReceive('select')->once()->andReturn($mockNewConnection)->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($mockNewConnection)->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection(true);
-
-        $this->assertEquals($mockNewConnection, $retConnection);
-    }
-
-    public function testAddTenNodesThenGetConnection()
-    {
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(true)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(true)
-                              ->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturn($connections[0])
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $connectionPoolParams = array('randomizeHosts' => false);
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($connections[0], $retConnection);
-    }
-
-    public function testAddTenNodesTimeoutAllButLast()
-    {
-        $connections = array();
-
-        foreach (range(1, 9) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(false)
-                              ->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('isAlive')
-                          ->andReturn(true)
-                          ->getMock();
-
-        $connections[] = $mockConnection;
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($connections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $connectionPoolParams = array('randomizeHosts' => false);
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($connections[9], $retConnection);
-    }
-
-    /**
-     * @expectedException Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function testAddTenNodesAllTimeout()
-    {
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(false)
-                              ->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($connections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $connectionPoolParams = array('randomizeHosts' => false);
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-    }
-
-    public function testAddOneHostSniffTwo()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"node1":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}, "node2":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9301]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9201]"}}}', true);
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('getTransportSchema')->twice()->andReturn('http')->getMock()
-                          ->shouldReceive('sniff')->twice()->andReturn($clusterState)->getMock();
-
-        $connections = array($mockConnection);
-
-        $newConnections = array();
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                             ->shouldReceive('isAlive')->andReturn(true)->getMock();
-
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                             ->shouldReceive('isAlive')->andReturn(true)->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues(array(        //selects provided node first, then the new cluster list
-                            $mockConnection,
-                            $newConnections[0],
-                            $newConnections[1]
-                    ))
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($newConnections[0])->getMock()
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9201))->andReturn($newConnections[1])->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false,
-            'sniffingInterval'  => -1
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[0], $retConnection);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[1], $retConnection);
-    }
-
-    /**
-     * @expectedException Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function testAddSeed_SniffTwo_TimeoutTwo()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"node1":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}, "node2":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9301]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9201]"}}}', true);
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('getTransportSchema')->once()->andReturn('http')->getMock()
-                          ->shouldReceive('sniff')->once()->andReturn($clusterState)->getMock();
-
-        $connections = array($mockConnection);
-
-        $newConnections = array();
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(false)->getMock()
-                            ->shouldReceive('ping')->andReturn(false)->getMock();
-
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(false)->getMock()
-                            ->shouldReceive('ping')->andReturn(false)->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues(array(        //selects provided node first, then the new cluster list
-                    $mockConnection,
-                    $newConnections[0],
-                    $newConnections[1]
-                ))
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($newConnections[0])->getMock()
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9201))->andReturn($newConnections[1])->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false,
-            'sniffingInterval'  => -1
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($mockConnection, $retConnection);
-    }
-
-    public function testTen_TimeoutNine_SniffTenth_AddTwoAlive()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"node1":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}, "node2":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9301]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9201]"}}}', true);
-
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')->andReturn(false)->getMock()
-                              ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                              ->shouldReceive('sniff')->andThrow('Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException')->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('sniff')->andReturn($clusterState)->getMock()
-                          ->shouldReceive('getTransportSchema')->twice()->andReturn('http')->getMock();
-
-        $connections[] = $mockConnection;
-
-        $newConnections = $connections;
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                            ->shouldReceive('ping')->andReturn(true)->getMock();
-
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                            ->shouldReceive('ping')->andReturn(true)->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($newConnections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($newConnections[10])->getMock()
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9201))->andReturn($newConnections[11])->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false,
-            'sniffingInterval'  => -1
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[11], $retConnection);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[12], $retConnection);
-    }
-
-    /**
-     * @expectedException Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function testTen_TimeoutNine_SniffTenth_AddTwoDead_TimeoutEveryone()
-    {
-        $clusterState = json_decode('{"ok":true,"cluster_name":"elasticsearch_zach","nodes":{"node1":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9300]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9200]"}, "node2":{"name":"Vesta","transport_address":"inet[/192.168.1.119:9301]","hostname":"zach-ThinkPad-W530","version":"0.90.5","http_address":"inet[/192.168.1.119:9201]"}}}', true);
-
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')->andReturn(false)->getMock()
-                              ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                              ->shouldReceive('sniff')->andThrow('Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException')->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->andReturn(true)->getMock()
-                          ->shouldReceive('isAlive')->andReturn(true)->getMock()
-                          ->shouldReceive('sniff')->andReturn($clusterState)->getMock()
-                          ->shouldReceive('getTransportSchema')->once()->andReturn('http')->getMock()
-                          ->shouldReceive('sniff')->andThrow('Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException')->getMock();
-
-        $connections[] = $mockConnection;
-
-        $newConnections = $connections;
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(false)->getMock()
-                            ->shouldReceive('ping')->andReturn(false)->getMock()
-                            ->shouldReceive('sniff')->andThrow('Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException')->getMock();
-
-        $newConnections[] = m::mock('\Elasticsearch\Connections\Connection')
-                            ->shouldReceive('isAlive')->andReturn(false)->getMock()
-                            ->shouldReceive('ping')->andReturn(false)->getMock()
-                            ->shouldReceive('sniff')->andThrow('Elasticsearch\Common\Exceptions\Curl\OperationTimeoutException')->getMock();
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($newConnections)
-                    ->getMock();
-
-        $RRConnections = $newConnections;
-        //array_push($connections);
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory')
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9200))->andReturn($newConnections[10])->getMock()
-                             ->shouldReceive('create')->with(array('host' => '192.168.1.119', 'port' => 9201))->andReturn($newConnections[11])->getMock();
-
-        $connectionPoolParams = array(
-            'randomizeHosts' => false,
-            'sniffingInterval'  => -1
-        );
-        $connectionPool = new SniffingConnectionPool($connections, $selector, $connectionFactory, $connectionPoolParams);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[11], $retConnection);
-
-        $retConnection = $connectionPool->nextConnection();
-        $this->assertEquals($newConnections[12], $retConnection);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/StaticConnectionPoolTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/StaticConnectionPoolTest.php
deleted file mode 100644
index d8466db9b893798dd3da9f757bbe4366b620b97a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/ConnectionPool/StaticConnectionPoolTest.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\ConnectionPool;
-
-use Elasticsearch;
-use Elasticsearch\Common\Exceptions\NoNodesAvailableException;
-use Mockery as m;
-
-/**
- * Class StaticConnectionPoolTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests/StaticConnectionPoolTest
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class StaticConnectionPoolTest extends \PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testAddOneHostThenGetConnection()
-    {
-        $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('isAlive')
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('markDead')->once()->getMock();
-
-        $connections = array($mockConnection);
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturn($connections[0])
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $randomizeHosts = false;
-        $connectionPool = new Elasticsearch\ConnectionPool\StaticConnectionPool($connections, $selector, $connectionFactory, $randomizeHosts);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($mockConnection, $retConnection);
-    }
-
-    public function testAddMultipleHostsThenGetFirst()
-    {
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(true)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(true)
-                              ->getMock()
-                              ->shouldReceive('markDead')->once()->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-            ->shouldReceive('select')
-            ->andReturn($connections[0])
-            ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $randomizeHosts = false;
-        $connectionPool = new Elasticsearch\ConnectionPool\StaticConnectionPool($connections, $selector, $connectionFactory, $randomizeHosts);
-
-        $retConnection = $connectionPool->nextConnection();
-
-        $this->assertEquals($connections[0], $retConnection);
-    }
-
-    /**
-     * @expectedException Elasticsearch\Common\Exceptions\NoNodesAvailableException
-     */
-    public function testAllHostsFailPing()
-    {
-        $connections = array();
-
-        foreach (range(1, 10) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('markDead')->once()->getMock()
-                              ->shouldReceive('getPingFailures')->andReturn(0)->once()->getMock()
-                              ->shouldReceive('getLastPing')->andReturn(time())->once()->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($connections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $randomizeHosts = false;
-        $connectionPool = new Elasticsearch\ConnectionPool\StaticConnectionPool($connections, $selector, $connectionFactory, $randomizeHosts);
-
-        $connectionPool->nextConnection();
-    }
-
-    public function testAllExceptLastHostFailPingRevivesInSkip()
-    {
-        $connections = array();
-
-        foreach (range(1, 9) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('markDead')->once()->getMock()
-                              ->shouldReceive('getPingFailures')->andReturn(0)->once()->getMock()
-                              ->shouldReceive('getLastPing')->andReturn(time())->once()->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $goodConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->once()
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('isAlive')->once()
-                          ->andReturn(false)
-                          ->getMock()
-                          ->shouldReceive('markDead')->once()->getMock()
-                          ->shouldReceive('getPingFailures')->andReturn(0)->once()->getMock()
-                          ->shouldReceive('getLastPing')->andReturn(time())->once()->getMock();
-
-        $connections[] = $goodConnection;
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($connections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $randomizeHosts = false;
-        $connectionPool = new Elasticsearch\ConnectionPool\StaticConnectionPool($connections, $selector, $connectionFactory, $randomizeHosts);
-
-        $ret = $connectionPool->nextConnection();
-        $this->assertEquals($goodConnection, $ret);
-    }
-
-    public function testAllExceptLastHostFailPingRevivesPreSkip()
-    {
-        $connections = array();
-
-        foreach (range(1, 9) as $index) {
-            $mockConnection = m::mock('\Elasticsearch\Connections\Connection')
-                              ->shouldReceive('ping')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('isAlive')
-                              ->andReturn(false)
-                              ->getMock()
-                              ->shouldReceive('markDead')->once()->getMock()
-                              ->shouldReceive('getPingFailures')->andReturn(0)->once()->getMock()
-                              ->shouldReceive('getLastPing')->andReturn(time())->once()->getMock();
-
-            $connections[] = $mockConnection;
-        }
-
-        $goodConnection = m::mock('\Elasticsearch\Connections\Connection')
-                          ->shouldReceive('ping')->once()
-                          ->andReturn(true)
-                          ->getMock()
-                          ->shouldReceive('isAlive')->once()
-                          ->andReturn(false)
-                          ->getMock()
-                          ->shouldReceive('markDead')->once()->getMock()
-                          ->shouldReceive('getPingFailures')->andReturn(0)->once()->getMock()
-                          ->shouldReceive('getLastPing')->andReturn(time()-10000)->once()->getMock();
-
-        $connections[] = $goodConnection;
-
-        $selector = m::mock('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')
-                    ->shouldReceive('select')
-                    ->andReturnValues($connections)
-                    ->getMock();
-
-        $connectionFactory = m::mock('\Elasticsearch\Connections\ConnectionFactory');
-
-        $randomizeHosts = false;
-        $connectionPool = new Elasticsearch\ConnectionPool\StaticConnectionPool($connections, $selector, $connectionFactory, $randomizeHosts);
-
-        $ret = $connectionPool->nextConnection();
-        $this->assertEquals($goodConnection, $ret);
-    }
-
-    public function testCustomConnectionPoolIT()
-    {
-        $clientBuilder = \Elasticsearch\ClientBuilder::create();
-        $clientBuilder->setHosts(['localhost:1']);
-        $client = $clientBuilder
-            ->setRetries(0)
-            ->setConnectionPool('\Elasticsearch\ConnectionPool\StaticConnectionPool', [])
-            ->build();
-
-        try {
-            $client->search([]);
-            $this->fail("Should have thrown NoNodesAvailableException");
-        } catch (Elasticsearch\Common\Exceptions\NoNodesAvailableException $e) {
-            // All good
-        } catch (\Exception $e) {
-            throw $e;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Endpoints/AbstractEndpointTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Endpoints/AbstractEndpointTest.php
deleted file mode 100644
index 51701e37ee135167747db3daa7b5374629a12389..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Endpoints/AbstractEndpointTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\Endpoints;
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-
-class AbstractEndpointTest extends \PHPUnit_Framework_TestCase
-{
-    private $endpoint;
-
-    public static function invalidParameters()
-    {
-        return [
-            [['invalid' => 10]],
-            [['invalid' => 10, 'invalid2' => 'another']],
-        ];
-    }
-
-    /**
-     * @dataProvider invalidParameters
-     * @expectedException Elasticsearch\Common\Exceptions\UnexpectedValueException
-     */
-    public function testInvalidParamsCauseErrorsWhenProvidedToSetParams(array $params)
-    {
-        $this->endpoint->expects($this->once())
-            ->method('getParamWhitelist')
-            ->willReturn(['one', 'two']);
-
-        $this->endpoint->setParams($params);
-    }
-
-    protected function setUp()
-    {
-        $this->endpoint = $this->getMockForAbstractClass(AbstractEndpoint::class);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Helper/Iterators/SearchResponseIteratorTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Helper/Iterators/SearchResponseIteratorTest.php
deleted file mode 100644
index 2570dd8594b65e08bbba0d467e835846880d2f5a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Helper/Iterators/SearchResponseIteratorTest.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\Helper\Iterators;
-
-use Elasticsearch\Helper\Iterators\SearchResponseIterator;
-use Mockery as m;
-
-/**
- * Class SearchResponseIteratorTest
- * @package Elasticsearch\Tests\Helper\Iterators
- * @author  Arturo Mejia <arturo.mejia@kreatetechnology.com>
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link    http://Elasticsearch.org
- */
-class SearchResponseIteratorTest extends \PHPUnit_Framework_TestCase
-{
-
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testWithNoResults()
-    {
-        $search_params = array(
-            'scroll'      => '5m',
-            'index'       => 'twitter',
-            'size'        => 1000,
-            'body'        => array(
-                'query' => array(
-                    'match_all' => new \StdClass
-                )
-            )
-        );
-
-        $mock_client = m::mock('\Elasticsearch\Client');
-
-        $mock_client->shouldReceive('search')
-            ->once()
-            ->ordered()
-            ->with($search_params)
-            ->andReturn(array('_scroll_id' => 'scroll_id_01'));
-
-        $mock_client->shouldReceive('scroll')
-            ->never();
-
-        $mock_client->shouldReceive('clearScroll')
-            ->once()
-            ->ordered()
-            ->withAnyArgs();
-
-
-        $responses = new SearchResponseIterator($mock_client, $search_params);
-
-        $this->assertCount(0, $responses);
-    }
-
-    public function testWithHits()
-    {
-        $search_params = array(
-            'scroll'      => '5m',
-            'index'       => 'twitter',
-            'size'        => 1000,
-            'body'        => array(
-                'query' => array(
-                    'match_all' => new \StdClass
-                )
-            )
-        );
-
-        $mock_client = m::mock('\Elasticsearch\Client');
-
-        $mock_client->shouldReceive('search')
-            ->once()
-            ->ordered()
-            ->with($search_params)
-            ->andReturn([
-                '_scroll_id' => 'scroll_id_01',
-                'hits' => [
-                    'hits' => [
-                        [
-                            'foo' => 'bar'
-                        ]
-                    ]
-                ]
-            ]);
-
-        $mock_client->shouldReceive('scroll')
-            ->once()
-            ->ordered()
-            ->with(
-                [
-                    'scroll_id'  => 'scroll_id_01',
-                    'scroll' => '5m'
-                ]
-            )
-            ->andReturn(
-                [
-                    '_scroll_id' => 'scroll_id_02',
-                    'hits' => [
-                        'hits' => [
-                            [
-                                'foo' => 'bar'
-                            ]
-                        ]
-                    ]
-                ]);
-
-        $mock_client->shouldReceive('scroll')
-            ->once()
-            ->ordered()
-            ->with(
-                [
-                    'scroll_id'  => 'scroll_id_02',
-                    'scroll' => '5m'
-                ]
-            )
-            ->andReturn(
-                [
-                    '_scroll_id' => 'scroll_id_03',
-                    'hits' => [
-                        'hits' => [
-                            [
-                                'foo' => 'bar'
-                            ]
-                        ]
-                    ]
-                ]
-            );
-
-        $mock_client->shouldReceive('scroll')
-            ->once()
-            ->ordered()
-            ->with(
-                [
-                    'scroll_id'  => 'scroll_id_03',
-                    'scroll' => '5m'
-                ]
-            )
-            ->andReturn(
-                [
-                    '_scroll_id' => 'scroll_id_04',
-                    'hits' => [
-                        'hits' => []
-                    ]
-                ]
-            );
-
-        $mock_client->shouldReceive('scroll')
-            ->never()
-            ->with(
-                [
-                    'scroll_id'  => 'scroll_id_04',
-                    'scroll' => '5m'
-                ]
-            );
-
-        $mock_client->shouldReceive('clearScroll')
-            ->once()
-            ->ordered()
-            ->withAnyArgs();
-
-        $responses = new SearchResponseIterator($mock_client, $search_params);
-
-        $this->assertCount(4, $responses);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/RegisteredNamespaceTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/RegisteredNamespaceTest.php
deleted file mode 100644
index f40430f0cd54ae577617a3cdf1b312c9b94dd1c9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/RegisteredNamespaceTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests;
-
-use Elasticsearch;
-use Elasticsearch\ClientBuilder;
-use Elasticsearch\Serializers\SerializerInterface;
-use Elasticsearch\Transport;
-use Mockery as m;
-
-/**
- * Class RegisteredNamespaceTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class RegisteredNamespaceTest extends \PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testRegisteringNamespace()
-    {
-        $builder = new FooNamespaceBuilder();
-        $client = ClientBuilder::create()->registerNamespace($builder)->build();
-        $this->assertEquals("123", $client->foo()->fooMethod());
-    }
-
-    /**
-     * @expectedException \Elasticsearch\Common\Exceptions\BadMethodCallException
-     */
-    public function testNonExistingNamespace()
-    {
-        $builder = new FooNamespaceBuilder();
-        $client = ClientBuilder::create()->registerNamespace($builder)->build();
-        $this->assertEquals("123", $client->bar()->fooMethod());
-    }
-}
-
-class FooNamespaceBuilder implements Elasticsearch\Namespaces\NamespaceBuilderInterface
-{
-    public function getName()
-    {
-        return "foo";
-    }
-
-    public function getObject(Transport $transport, SerializerInterface $serializer)
-    {
-        return new FooNamespace();
-    }
-}
-
-class FooNamespace
-{
-    public function fooMethod()
-    {
-        return "123";
-    }
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/ArrayToJSONSerializerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/ArrayToJSONSerializerTest.php
deleted file mode 100644
index 0010f86aebc5de69e5316a887fdd13f1e14b2211..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/ArrayToJSONSerializerTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\Serializers;
-
-use Elasticsearch\Serializers\ArrayToJSONSerializer;
-use PHPUnit_Framework_TestCase;
-use Mockery as m;
-
-/**
- * Class ArrayToJSONSerializerTest
- * @package Elasticsearch\Tests\Serializers
- */
-class ArrayToJSONSerializerTest extends PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testSerializeArray()
-    {
-        $serializer = new ArrayToJSONSerializer();
-        $body = array('value' => 'field');
-
-        $ret = $serializer->serialize($body);
-
-        $body = json_encode($body, JSON_PRESERVE_ZERO_FRACTION);
-        $this->assertEquals($body, $ret);
-    }
-
-    public function testSerializeString()
-    {
-        $serializer = new ArrayToJSONSerializer();
-        $body = 'abc';
-
-        $ret = $serializer->serialize($body);
-
-        $this->assertEquals($body, $ret);
-    }
-
-    public function testDeserializeJSON()
-    {
-        $serializer = new ArrayToJSONSerializer();
-        $body = '{"field":"value"}';
-
-        $ret = $serializer->deserialize($body, array());
-
-        $body = json_decode($body, true);
-        $this->assertEquals($body, $ret);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/EverythingToJSONSerializerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/EverythingToJSONSerializerTest.php
deleted file mode 100644
index d0c6a913eeb97bcef6aacf838b02997e0884b455..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/Serializers/EverythingToJSONSerializerTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests\Serializers;
-
-use Elasticsearch\Serializers\EverythingToJSONSerializer;
-use PHPUnit_Framework_TestCase;
-use Mockery as m;
-
-/**
- * Class EverythingToJSONSerializerTest
- * @package Elasticsearch\Tests\Serializers
- */
-class EverythingToJSONSerializerTest extends PHPUnit_Framework_TestCase
-{
-    public function tearDown()
-    {
-        m::close();
-    }
-
-    public function testSerializeArray()
-    {
-        $serializer = new EverythingToJSONSerializer();
-        $body = array('value' => 'field');
-
-        $ret = $serializer->serialize($body);
-
-        $body = json_encode($body, JSON_PRESERVE_ZERO_FRACTION);
-        $this->assertEquals($body, $ret);
-    }
-
-    public function testSerializeString()
-    {
-        $serializer = new EverythingToJSONSerializer();
-        $body = 'abc';
-
-        $ret = $serializer->serialize($body);
-
-        $body = '"abc"';
-        $this->assertEquals($body, $ret);
-    }
-
-    public function testDeserializeJSON()
-    {
-        $serializer = new EverythingToJSONSerializer();
-        $body = '{"field":"value"}';
-
-        $ret = $serializer->deserialize($body, array());
-
-        $body = json_decode($body, true);
-        $this->assertEquals($body, $ret);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/YamlRunnerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/YamlRunnerTest.php
deleted file mode 100644
index c22d5e4bf20fdbaf91e121dc6626e0b886ac577d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/Elasticsearch/Tests/YamlRunnerTest.php
+++ /dev/null
@@ -1,959 +0,0 @@
-<?php
-
-namespace Elasticsearch\Tests;
-
-use Doctrine\Common\Inflector\Inflector;
-use Elasticsearch;
-use Elasticsearch\Common\Exceptions\BadRequest400Exception;
-use Elasticsearch\Common\Exceptions\Conflict409Exception;
-use Elasticsearch\Common\Exceptions\Forbidden403Exception;
-use Elasticsearch\Common\Exceptions\Missing404Exception;
-use Elasticsearch\Common\Exceptions\RequestTimeout408Exception;
-use Elasticsearch\Common\Exceptions\ServerErrorResponseException;
-use Elasticsearch\Common\Exceptions\RoutingMissingException;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-use stdClass;
-use Symfony\Component\Finder\Finder;
-use Symfony\Component\Finder\SplFileInfo;
-use Symfony\Component\Yaml\Exception\ParseException;
-use Symfony\Component\Yaml\Parser;
-use Symfony\Component\Yaml\Yaml;
-
-/**
- * Class YamlRunnerTest
- *
- * @category   Tests
- * @package    Elasticsearch
- * @subpackage Tests
- * @author     Zachary Tong <zachary.tong@elasticsearch.com>
- * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link       http://elasticsearch.org
- */
-class YamlRunnerTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var Parser Yaml parser for reading integrations tests */
-    private $yaml;
-
-    /** @var Elasticsearch\Client client used by elasticsearch */
-    private $client;
-
-    /** @var string Es version */
-    private static $esVersion;
-
-    /** @var array A list of supported features */
-    private static $supportedFeatures = [
-        'stash_in_path', 'warnings'
-    ];
-
-    /** @var array A mapping for endpoint when there is a reserved keywords for the method / namespace name */
-    private static $endpointMapping = [
-        'tasks' => [
-            'list' => ['tasksList', 'tasks'],
-        ],
-    ];
-
-    /** @var array A list of skipped test with their reasons */
-    private static $skippedTest = [
-        'cat.nodeattrs/10_basic.yaml' => 'Using java regex fails in PHP',
-        'cat.repositories/10_basic.yaml' => 'Using java regex fails in PHP',
-        'indices.shrink/10_basic.yaml' => 'Shrink tests seem to require multiple nodes',
-        'indices.rollover/10_basic.yaml' => 'Rollover test seems buggy atm'
-    ];
-
-    /** @var array A list of files to skip completely, due to fatal parsing errors */
-    private static $skippedFiles = [
-        'indices.create/10_basic.yaml' => 'Temporary: Yaml parser doesnt support "inline" empty keys',
-        'indices.put_mapping/10_basic.yaml' => 'Temporary: Yaml parser doesnt support "inline" empty keys',
-    ];
-
-    /**
-     * Return the elasticsearch host
-     *
-     * @return string
-     */
-    public static function getHost()
-    {
-        if (isset($_SERVER['ES_TEST_HOST']) === true) {
-            return $_SERVER['ES_TEST_HOST'];
-        }
-
-        echo 'Environment variable for elasticsearch test cluster (ES_TEST_HOST) not defined. Exiting yaml test';
-        exit;
-    }
-
-
-    public static function setUpBeforeClass()
-    {
-        $host = static::getHost();
-        echo "Test Host: $host\n";
-
-        $ch = curl_init($host);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = curl_exec($ch);
-        curl_close($ch);
-
-        $response = json_decode($response, true);
-        static::$esVersion = $response['version']['number'];
-        echo "ES Version: ".static::$esVersion."\n";
-    }
-
-    public function setUp()
-    {
-        $this->clean();
-        $this->client = Elasticsearch\ClientBuilder::create()->setHosts([self::getHost()])->build();
-    }
-
-    /**
-     * @dataProvider yamlProvider
-     * @group sync
-     */
-    public function testIntegration($testProcedure, $skip, $setupProcedure, $fileName)
-    {
-        if ($skip) {
-            static::markTestIncomplete($testProcedure);
-        }
-
-        if (array_key_exists($fileName, static::$skippedTest)) {
-            static::markTestSkipped(static::$skippedTest[$fileName]);
-        }
-
-        if (null !== $setupProcedure) {
-            $this->processProcedure(current($setupProcedure), 'setup');
-            $this->waitForYellow();
-        }
-
-        $this->processProcedure(current($testProcedure), key($testProcedure));
-    }
-
-    /**
-     * @dataProvider yamlProvider
-     * @group async
-     */
-    public function testAsyncIntegration($testProcedure, $skip, $setupProcedure, $fileName)
-    {
-        if ($skip) {
-            static::markTestIncomplete($testProcedure);
-        }
-
-        if (array_key_exists($fileName, static::$skippedTest)) {
-            static::markTestSkipped(static::$skippedTest[$fileName]);
-        }
-
-        if (null !== $setupProcedure) {
-            $this->processProcedure(current($setupProcedure), 'setup');
-            $this->waitForYellow();
-        }
-
-        $this->processProcedure(current($testProcedure), key($testProcedure), true);
-    }
-
-    /**
-     * Process a procedure
-     *
-     * @param $procedure
-     * @param $name
-     * @param bool $async
-     */
-    public function processProcedure($procedure, $name, $async = false)
-    {
-        $lastOperationResult = null;
-        $context = [];
-
-        foreach ($procedure as $operation) {
-            $lastOperationResult = $this->processOperation($operation, $lastOperationResult, $context, $name, $async);
-        }
-    }
-
-    /**
-     * Process an operation
-     *
-     * @param      $operation
-     * @param      $lastOperationResult
-     * @param      $testName
-     * @param array $context 
-     * @param bool $async
-     *
-     * @return mixed
-     */
-    public function processOperation($operation, $lastOperationResult, &$context, $testName, $async = false)
-    {
-        $operationName = array_keys((array)$operation)[0];
-
-        if ('do' === $operationName) {
-            return $this->operationDo($operation->{$operationName}, $lastOperationResult, $context, $testName, $async);
-        }
-
-        if ('is_false' === $operationName) {
-            return $this->operationIsFalse($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('is_true' === $operationName) {
-            return $this->operationIsTrue($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('match' === $operationName) {
-            return $this->operationMatch($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('gte' === $operationName) {
-            return $this->operationGreaterThanOrEqual($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('gt' === $operationName) {
-            return $this->operationGreaterThan($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('length' === $operationName) {
-            return $this->operationLength($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('set' === $operationName) {
-            return $this->operationSet($operation->{$operationName}, $lastOperationResult, $context, $testName);
-        }
-
-        if ('skip' === $operationName) {
-            return $this->operationSkip($operation->{$operationName}, $lastOperationResult, $testName);
-        }
-
-        self::markTestIncomplete(sprintf('Operation %s not supported for test "%s"', $operationName, $testName));
-    }
-
-    /**
-     * Do something on the client
-     *
-     * @param      $operation
-     * @param      $lastOperationResult
-     * @param array $context
-     * @param      $testName
-     * @param bool $async
-     *
-     * @throws \Exception
-     *
-     * @return mixed
-     */
-    public function operationDo($operation, $lastOperationResult, &$context, $testName, $async = false)
-    {
-        $expectedError = null;
-        $expectedWarnings = null;
-
-        // Check if a error must be caught
-        if ('catch' === key($operation)) {
-            $expectedError = current($operation);
-            next($operation);
-        }
-
-        // Check if a warning must be caught
-        if ('warnings' === key($operation)) {
-            $expectedWarnings = current($operation);
-            next($operation);
-        }
-
-        $endpointInfo = explode('.', key($operation));
-        $endpointParams = $this->replaceWithContext(current($operation), $context);
-        $caller = $this->client;
-        $namespace = null;
-        $method = null;
-
-        if (count($endpointInfo) === 1) {
-            $method = Inflector::camelize($endpointInfo[0]);
-        }
-
-        if (count($endpointInfo) === 2) {
-            $namespace = $endpointInfo[0];
-            $method = Inflector::camelize($endpointInfo[1]);
-        }
-
-        if (is_object($endpointParams) === true && property_exists($endpointParams, 'ignore')) {
-            $ignore = $endpointParams->ignore;
-            unset($endpointParams->ignore);
-
-            $endpointParams->client['ignore'] = $ignore;
-        }
-
-        if ($async) {
-            $endpointParams->client['future'] = true;
-        }
-
-        list($method, $namespace) = $this->mapEndpoint($method, $namespace);
-
-        if (null !== $namespace) {
-            $caller = $caller->$namespace();
-        }
-
-        if (null === $method) {
-            self::markTestIncomplete(sprintf('Invalid do operation for test "%s"', $testName));
-        }
-
-        if (!method_exists($caller, $method)) {
-            self::markTestIncomplete(sprintf('Method "%s" not implement in "%s"', $method, get_class($caller)));
-        }
-
-        // Exist* methods have to be manually 'unwrapped' into true/false for async
-        if (strpos($method, "exist") !== false && $async === true) {
-            return $this->executeAsyncExistRequest($caller, $method, $endpointParams, $expectedError, $expectedWarnings, $testName);
-        }
-
-        return $this->executeRequest($caller, $method, $endpointParams, $expectedError, $expectedWarnings, $testName);
-    }
-
-    /**
-     * Obtain the response from the server
-     *
-     * @param $caller
-     * @param $method
-     * @param $endpointParams
-     * @param $expectedError
-     * @param $testName
-     *
-     * @throws \Exception
-     *
-     * @return array|mixed
-     */
-    public function executeRequest($caller, $method, $endpointParams, $expectedError, $expectedWarnings, $testName)
-    {
-        try {
-            $response = $caller->$method($endpointParams);
-
-            while ($response instanceof FutureArrayInterface) {
-                $response = $response->wait();
-            }
-
-            $this->checkForWarnings($expectedWarnings);
-
-            return $response;
-        } catch (\Exception $exception) {
-            if (null !== $expectedError) {
-                return $this->assertException($exception, $expectedError, $testName);
-            }
-
-            $msg = $exception->getMessage()
-                ."\nException in ".get_class($caller)." with [$method].\n Context:\n"
-                .var_export($endpointParams, true);
-            throw new \Exception($msg, 0, $exception);
-        }
-    }
-
-    /**
-     * Obtain the response when it is an Exists* method.  These are converted into
-     * true/false responses
-     *
-     * @param $caller
-     * @param $method
-     * @param $endpointParams
-     * @param $expectedError
-     * @param $testName
-     *
-     * @throws \Exception
-     *
-     * @return bool
-     */
-    public function executeAsyncExistRequest($caller, $method, $endpointParams, $expectedError, $expectedWarnings, $testName)
-    {
-        try {
-
-            $response = $caller->$method($endpointParams);
-
-            while ($response instanceof FutureArrayInterface) {
-                $response = $response->wait();
-            }
-
-            $this->checkForWarnings($expectedWarnings);
-
-            if ($response['status'] === 200) {
-                return true;
-            } else {
-                return false;
-            }
-        } catch (Missing404Exception $exception) {
-            return false;
-        } catch (RoutingMissingException $exception) {
-            return false;
-        } catch (\Exception $exception) {
-            if (null !== $expectedError) {
-                return $this->assertException($exception, $expectedError, $testName);
-            }
-
-            throw $exception;
-        }
-    }
-
-    public function checkForWarnings($expectedWarnings) {
-        $last = $this->client->transport->getLastConnection()->getLastRequestInfo();
-
-
-            // We have some warnings to check
-            if ($expectedWarnings !== null) {
-                if (isset($last['response']['headers']['Warning']) === true) {
-                    foreach ($last['response']['headers']['Warning'] as $warning) {
-                        $position = array_search($warning, $expectedWarnings);
-                        if ($position !== false) {
-                            // found the warning
-                            unset($expectedWarnings[$position]);
-                        } else {
-                            // didn't find, throw error
-                            //throw new \Exception("Expected to find warning [$warning] but did not.");
-                        }
-                    }
-                    if (count($expectedWarnings) > 0) {
-                        throw new \Exception("Expected to find more warnings: ". print_r($expectedWarnings, true));
-                    }
-                }
-            }
-            /* else {
-                // no expected warnings, make sure we have none returned
-                if (isset($last['response']['headers']['Warning']) === true) {
-                    throw new \Exception("Did not expect to find warnings, found some instead: "
-                        . print_r($last['response']['headers']['Warning'], true));
-                }
-            }
-            */
-    }
-
-    /**
-     * Check if a field in the last operation is false
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationIsFalse($operation, $lastOperationResult, &$context, $testName)
-    {
-        $value = (bool)$this->resolveValue($lastOperationResult, $operation, $context);
-        $msg = "Failed to assert that a value is false in test \"$testName\"\n"
-            ."$operation was [".print_r($value, true)."]"
-            .var_export($lastOperationResult, true);
-        static::assertFalse($value, $msg);
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Check if a field in the last operation is true
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationIsTrue($operation, $lastOperationResult, &$context, $testName)
-    {
-        $value = $this->resolveValue($lastOperationResult, $operation, $context);
-
-        $msg = "Failed to assert that a value is true in test \"$testName\"\n"
-            ."$operation was [".print_r($value, true)."]"
-            .var_export($lastOperationResult, true);
-        static::assertNotEquals(0, $value, $msg);
-        static::assertNotFalse($value, $msg);
-        static::assertNotNull($value, $msg);
-        static::assertNotEquals('', $msg);
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Check if a field in the last operation match an expected value
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationMatch($operation, $lastOperationResult, &$context, $testName)
-    {
-        $key = key($operation);
-
-        if ($key === '$body') {
-            $match = $lastOperationResult;
-        } else {
-            $match = $this->resolveValue($lastOperationResult, $key, $context);
-        }
-
-        $expected = $this->replaceWithContext(current($operation), $context);
-        $msg = "Failed to match in test \"$testName\". Expected ["
-            .var_export($expected, true)."] does not match [".var_export($match, true)."]\n".var_export($lastOperationResult, true);
-
-        if ($expected instanceof \stdClass) {
-            // Avoid stdClass / array mismatch
-            $expected = json_decode(json_encode($expected), true);
-            $match = json_decode(json_encode($match), true);
-
-            static::assertEquals($expected, $match, $msg);
-        } elseif (is_string($expected) && preg_match('#^/.+?/$#s', $expected)) {
-            static::assertRegExp($this->formatRegex($expected), $match, $msg);
-        } else {
-            static::assertEquals($expected, $match, $msg);
-        }
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Check if a field in the last operation is greater than or equal a value
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationGreaterThanOrEqual($operation, $lastOperationResult, &$context, $testName)
-    {
-        $value = $this->resolveValue($lastOperationResult, key($operation), $context);
-        $expected = current($operation);
-
-        static::assertGreaterThanOrEqual($expected, $value, 'Failed to gte in test ' . $testName);
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Check if a field in the last operation is greater than a value
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationGreaterThan($operation, $lastOperationResult, &$context, $testName)
-    {
-        $value = $this->resolveValue($lastOperationResult, key($operation), $context);
-        $expected = current($operation);
-
-        static::assertGreaterThan($expected, $value, 'Failed to gt in test ' . $testName);
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Check if a field in the last operation has length of a value
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationLength($operation, $lastOperationResult, &$context, $testName)
-    {
-        $value = $this->resolveValue($lastOperationResult, key($operation), $context);
-        $expected = current($operation);
-
-        static::assertCount($expected, $value, 'Failed to gte in test ' . $testName);
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Set a variable into context from last operation
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $context
-     * @param $testName
-     */
-    public function operationSet($operation, $lastOperationResult, &$context, $testName)
-    {
-        $key = key($operation);
-        $value = $this->resolveValue($lastOperationResult, $key, $context);
-        $variable = current($operation);
-
-        $context['$' . $variable] = $value;
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Skip an operation depending on Elasticsearch Version
-     *
-     * @param $operation
-     * @param $lastOperationResult
-     * @param $testName
-     */
-    public function operationSkip($operation, $lastOperationResult, $testName)
-    {
-        if (is_object($operation) !== true ) {
-            return $lastOperationResult;
-        }
-
-        if (property_exists($operation, 'features') && !in_array($operation->features, static::$supportedFeatures, true)) {
-            static::markTestSkipped(sprintf('Feature(s) %s not supported in test "%s"', json_encode($operation->features), $testName));
-        }
-
-        if (property_exists($operation, 'version')) {
-            $version = $operation->version;
-            $version = str_replace(" ", "", $version);
-            $version = explode("-", $version);
-
-            if (isset($version[0]) && $version[0] == 'all') {
-                static::markTestSkipped(sprintf('Skip test "%s", as all versions should be skipped (%s)', $testName, $operation->reason));
-            }
-
-            if (!isset($version[0]) || $version[0] === "") {
-                $version[0] = ~PHP_INT_MAX;
-            }
-
-            if (!isset($version[1]) || $version[1] === "" ) {
-                $version[1] = PHP_INT_MAX;
-            }
-
-            if (version_compare(static::$esVersion, $version[0], '>=')  && version_compare(static::$esVersion, $version[1], '<=')) {
-                static::markTestSkipped(sprintf('Skip test "%s", as version %s should be skipped (%s)', $testName, static::$esVersion, $operation->reason));
-            }
-        }
-
-        return $lastOperationResult;
-    }
-
-    /**
-     * Assert an expected error
-     *
-     * @param \Exception $exception
-     * @param            $expectedError
-     * @param            $testName
-     *
-     * @return array
-     */
-    private function assertException(\Exception $exception, $expectedError, $testName)
-    {
-        if (is_string($expectedError) && preg_match('#^/.+?/$#', $expectedError)) {
-            static::assertRegExp($expectedError, $exception->getMessage(), 'Failed to catch error in test ' . $testName);
-        } elseif ($exception instanceof Missing404Exception && $expectedError === 'missing') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof Conflict409Exception && $expectedError === 'conflict') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof Forbidden403Exception && $expectedError === 'forbidden') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof RequestTimeout408Exception && $expectedError === 'request_timeout') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof BadRequest400Exception && $expectedError === 'request') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof ServerErrorResponseException && $expectedError === 'request') {
-            static::assertTrue(true);
-        } elseif ($exception instanceof \RuntimeException && $expectedError === 'param') {
-            static::assertTrue(true);
-        } else {
-            static::assertContains($expectedError, $exception->getMessage());
-        }
-
-        if ($exception->getPrevious() !== null) {
-            return json_decode($exception->getPrevious()->getMessage(), true);
-        }
-
-        return json_decode($exception->getMessage(), true);
-    }
-
-    /**
-     * Provider list of document to test
-     *
-     * @return array
-     */
-    public function yamlProvider()
-    {
-        $this->yaml = new Yaml();
-        $path = __DIR__ . '/../../../util/elasticsearch/rest-api-spec/src/main/resources/rest-api-spec/test';
-        $files = [];
-
-        $finder = new Finder();
-        $finder->in($path);
-        $finder->files();
-        $finder->name('*.yaml');
-
-        $filter = isset($_SERVER['TEST_CASE']) ? $_SERVER['TEST_CASE'] : null;
-
-        /** @var SplFileInfo $file */
-        foreach ($finder as $file) {
-            $files = array_merge($files, $this->splitDocument($file, $path, $filter));
-        }
-
-        return $files;
-    }
-
-    /**
-     * Return the real namespace / method couple for elasticsearch php
-     *
-     * @param string      $method
-     * @param string|null $namespace
-     *
-     * @return array
-     */
-    private function mapEndpoint($method, $namespace = null)
-    {
-        if (null === $namespace && array_key_exists($method, static::$endpointMapping)) {
-            return static::$endpointMapping[$method];
-        }
-
-        if (null !== $namespace && array_key_exists($namespace, static::$endpointMapping) && array_key_exists($method, static::$endpointMapping[$namespace])) {
-            return static::$endpointMapping[$namespace][$method];
-        }
-
-        return [$method, $namespace];
-    }
-
-    /**
-     * Replace contextual variable into a bunch of data
-     *
-     * @param $data
-     * @param $context
-     *
-     * @return mixed
-     */
-    private function replaceWithContext($data, $context)
-    {
-        if (empty($context)) {
-            return $data;
-        }
-
-        if (is_string($data)) {
-            if (array_key_exists($data, $context)) {
-                return $context[$data];
-            }
-        }
-
-        if (!is_array($data) && !$data instanceof \stdClass) {
-            return $data;
-        }
-
-        foreach ($data as $key => &$value) {
-            $value = $this->replaceWithContext($value, $context);
-        }
-
-        return $data;
-    }
-
-    /**
-     * Resolve a value into an array given a specific field
-     *
-     * @param $result
-     * @param $field
-     *
-     * @return mixed
-     */
-    private function resolveValue($result, $field, &$context)
-    {
-        if (empty($field)) {
-            return $result;
-        }
-
-        foreach ($context as $key => $value) {
-            $field = preg_replace('/('.preg_quote($key, '/').')/', $value, $field);
-        }
-
-        $operationSplit = explode('.', $field);
-        $value = $result;
-
-        do {
-            $key = array_shift($operationSplit);
-
-            if (substr($key, -1) === '\\') {
-                $key = substr($key, 0, -1) . '.' . array_shift($operationSplit);
-            }
-
-            if (!is_array($value)) {
-                return $value;
-            }
-
-            if (!array_key_exists($key, $value)) {
-                return false;
-            }
-
-            $value = $value[$key];
-        } while (count($operationSplit) > 0);
-
-        return $value;
-    }
-
-    /**
-     * Format a regex for PHP
-     *
-     * @param $regex
-     *
-     * @return string
-     */
-    private function formatRegex($regex)
-    {
-        $regex = trim($regex);
-        $regex = substr($regex, 1, -1);
-        $regex = str_replace('/', '\\/', $regex);
-        $regex = '/' . $regex . '/mx';
-
-        return $regex;
-    }
-
-    /**
-     * Split file content into multiple document
-     *
-     * @param SplFileInfo $file
-     * @param string      $path;
-     *
-     * @return array
-     */
-    private function splitDocument($file, $path, $filter = null)
-    {
-        $fileContent = file_get_contents($file);
-        $documents = explode("---\n", $fileContent);
-        $documents = array_filter($documents, function ($item) {
-            return trim($item) !== '';
-        });
-
-        $documentsParsed = [];
-        $setup = null;
-        $setupSkip = false;
-        $fileName = str_replace($path . '/', '', $file);
-
-        if (array_key_exists($fileName, static::$skippedFiles)) {
-            echo "Skipping: $fileName.  ".static::$skippedFiles[$fileName]."\n";
-            return [];
-        }
-
-        if (null !== $filter && !preg_match('/'.preg_quote($filter, '/').'/', $fileName)) {
-            return [];
-        }
-        $skip = false;
-        $documentParsed = null;
-        foreach ($documents as $documentString) {
-            try {
-                if (!$setupSkip) {
-                    $documentParsed = $this->yaml->parse($documentString, false, false, true);
-                    $skip = false;
-                }
-            } catch (ParseException $exception) {
-                $documentParsed = sprintf(
-                    "[ParseException]Cannot run this test as it cannot be parsed (%s) in file %s",
-                    $exception->getMessage(),
-                    $fileName
-                );
-
-                if (preg_match("#\nsetup:#mx", $documentString)) {
-                    $setupSkip = true;
-                }
-
-                $skip = true;
-            } catch (\Exception $exception) {
-                $documentParsed = sprintf(
-                    "[Exception] Cannot run this test as it generated an exception (%s) in file %s",
-                    $exception->getMessage(),
-                    $fileName
-                );
-
-                if (preg_match("#\nsetup:#mx", $documentString)) {
-                    $setupSkip = true;
-                }
-
-                $skip = true;
-            }
-
-            if (!$skip && key($documentParsed) === 'setup') {
-                $setup = $documentParsed;
-                $setupSkip = $skip;
-            } else {
-                $documentsParsed[] = [$documentParsed, $skip || $setupSkip, $setup, $fileName];
-            }
-        }
-
-        return $documentsParsed;
-    }
-
-    /**
-     * Clean the cluster
-     */
-    private function clean()
-    {
-        $host = static::getHost();
-        $ch = curl_init($host."/*");
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = curl_exec($ch);
-        curl_close($ch);
-
-        $ch = curl_init($host."/_template/*");
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = curl_exec($ch);
-        curl_close($ch);
-
-        $ch = curl_init($host."/_analyzer/*");
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = curl_exec($ch);
-        curl_close($ch);
-
-        $ch = curl_init($host."/_snapshot/_all");
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = curl_exec($ch);
-        curl_close($ch);
-        if ($response != "{}") {
-            $response = json_decode($response, true);
-            foreach ($response as $repo => $settings) {
-                if ($settings['type'] == 'fs') {
-                    $ch = curl_init($host."/_snapshot/$repo/_all?ignore_unavailable");
-                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-                    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
-                    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-                    $snapshots = json_decode(curl_exec($ch), true);
-                    curl_close($ch);
-                    foreach ($snapshots['snapshots'] as $snapshot) {
-                        $snapshotName = $snapshot['snapshot'];
-                        $ch = curl_init($host."/_snapshot/$repo/$snapshotName");
-                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-                        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
-                        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-                        $response = curl_exec($ch);
-                        curl_close($ch);
-                    }
-                    $ch = curl_init($host."/_snapshot/$repo");
-                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-                    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
-                    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-                    $response = curl_exec($ch);
-                    curl_close($ch);
-
-                }
-            }
-        }
-
-        // TODO ewwww...
-        shell_exec('rm -rf /tmp/test_repo_create_1_loc');
-        shell_exec('rm -rf /tmp/test_repo_restore_1_loc');
-        shell_exec('rm -rf /tmp/test_cat_repo_1_loc');
-        shell_exec('rm -rf /tmp/test_cat_repo_2_loc');
-        shell_exec('rm -rf /tmp/test_cat_snapshots_1_loc');
-
-        $this->waitForYellow();
-    }
-
-    /**
-     * Wait for cluster to be in a "YELLOW" state
-     */
-    private function waitForYellow()
-    {
-        $host = static::getHost();
-        $ch = curl_init("$host/_cluster/health?wait_for_status=yellow&timeout=50s");
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
-        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
-
-        $response = json_decode(curl_exec($ch), true);
-
-        $counter = 0;
-        while ($response['status'] === 'red') {
-            sleep(0.5);
-            $response = json_decode(curl_exec($ch), true);
-            ++$counter;
-
-            if ($counter > 10) {
-                $this->log("Aborting test due to failure in clearing cluster.\n");
-                $this->log(print_r($response, true));
-                exit;
-            }
-        }
-        curl_close($ch);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/tests/bootstrap.php b/apps/maarch_entreprise/tools/elasticsearch-php/tests/bootstrap.php
deleted file mode 100644
index dca8a29d0204fa93e24b1a943494333ab9a83dea..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/tests/bootstrap.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-error_reporting(E_ALL | E_STRICT);
-
-// Set the default timezone. While this doesn't cause any tests to fail, PHP
-// complains if it is not set in 'date.timezone' of php.ini.
-date_default_timezone_set('UTC');
-
-// Ensure that composer has installed all dependencies
-if (!file_exists(dirname(__DIR__) . '/composer.lock')) {
-    die("Dependencies must be installed using composer:\n\nphp composer.phar install --dev\n\n"
-        . "See http://getcomposer.org for help with installing composer\n");
-}
-
-// Include the composer autoloader
-$autoloader = require_once dirname(__DIR__) . '/vendor/autoload.php';
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/travis/download_and_run_es.sh b/apps/maarch_entreprise/tools/elasticsearch-php/travis/download_and_run_es.sh
deleted file mode 100644
index 1ca4c9d295b223ad644b13ff16d6d9ad1930877d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/travis/download_and_run_es.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-if [ -z $ES_VERSION ]; then
-    echo "No ES_VERSION specified";
-    exit 1;
-fi;
-
-
-killall java 2>/dev/null
-
-which java
-java -version
-
-
-echo "Downloading Elasticsearch v${ES_VERSION}-SNAPSHOT..."
-
-ES_URL=$(curl -sS "https://esvm-props.kibana.rocks/builds" | jq -r ".branches[\"$ES_VERSION\"].zip")
-
-curl -L -o elasticsearch-latest-SNAPSHOT.zip $ES_URL
-unzip "elasticsearch-latest-SNAPSHOT.zip"
-
-echo "Adding repo to config..."
-find . -name "elasticsearch.yml" | while read TXT ; do echo 'repositories.url.allowed_urls: ["http://*"]' >> $TXT ; done
-find . -name "elasticsearch.yml" | while read TXT ; do echo 'path.repo: ["/tmp"]' >> $TXT ; done
-
-echo "Starting Elasticsearch v${ES_VERSION}"
-
-./elasticsearch-*/bin/elasticsearch -d
-
-
-sleep 3
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/travis/generate_docs.sh b/apps/maarch_entreprise/tools/elasticsearch-php/travis/generate_docs.sh
deleted file mode 100644
index 90f39e9dbde52b28795b5bdbe0abcbebf05119da..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/travis/generate_docs.sh
+++ /dev/null
@@ -1 +0,0 @@
-php vendor/sami/sami/sami.php update util/DocsConfig.php
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/EnsureClusterAlive.php b/apps/maarch_entreprise/tools/elasticsearch-php/util/EnsureClusterAlive.php
deleted file mode 100644
index e3a4b3a9132be0abdb51a2ac3d592182e638163f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/EnsureClusterAlive.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-error_reporting(E_ALL | E_STRICT);
-
-// Set the default timezone. While this doesn't cause any tests to fail, PHP
-// complains if it is not set in 'date.timezone' of php.ini.
-date_default_timezone_set('UTC');
-
-// Ensure that composer has installed all dependencies
-if (!file_exists(dirname(__DIR__) . '/composer.lock')) {
-    die("Dependencies must be installed using composer:\n\nphp composer.phar install --dev\n\n"
-        . "See http://getcomposer.org for help with installing composer\n");
-}
-
-// Include the composer autoloader
-$autoloader = require_once dirname(__DIR__) . '/vendor/autoload.php';
-
-$client = \Elasticsearch\ClientBuilder::fromConfig([
-    'hosts' => [$_SERVER['ES_TEST_HOST']]
-]);
-
-$count = 0;
-while (!$client->ping()) {
-    $count += 1;
-
-    if ($count > 15) {
-        throw new \Exception("Live cluster could not be found in 15s!");
-    }
-    sleep(1);
-}
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/RestSpecRunner.php b/apps/maarch_entreprise/tools/elasticsearch-php/util/RestSpecRunner.php
deleted file mode 100644
index e8f4f2331703bfce5633e936b6996321b88f771a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/RestSpecRunner.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-error_reporting(E_ALL | E_STRICT);
-
-// Set the default timezone. While this doesn't cause any tests to fail, PHP
-// complains if it is not set in 'date.timezone' of php.ini.
-date_default_timezone_set('UTC');
-
-// Ensure that composer has installed all dependencies
-if (!file_exists(dirname(__DIR__) . '/composer.lock')) {
-    die("Dependencies must be installed using composer:\n\nphp composer.phar install --dev\n\n"
-        . "See http://getcomposer.org for help with installing composer\n");
-}
-
-echo "Base directory: ". dirname(__DIR__)."\n";
-
-// Include the composer autoloader
-$autoloader = require_once(dirname(__DIR__) . '/vendor/autoload.php');
-
-$gitWrapper = new \GitWrapper\GitWrapper();
-echo "Git cwd: ".dirname(__DIR__) . "/util/elasticsearch\n";
-$git = $gitWrapper->workingCopy(dirname(__DIR__) . '/util/elasticsearch');
-
-echo "Update elasticsearch submodule\n";
-$git->fetchAll(array('verbose' => true));
-
-$hash = $_SERVER['TEST_BUILD_REF'];
-echo "Checkout yaml tests (hash: $hash)\n";
-$git->checkout($hash, array('force' => true, 'quiet' => true));
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/SpecParser.php b/apps/maarch_entreprise/tools/elasticsearch-php/util/SpecParser.php
deleted file mode 100644
index 19dfd93216cd9d2743d1075f60a2e92962e1d7c0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/SpecParser.php
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/env php
-<?php
-
-require_once '../vendor/autoload.php';
-
-$loader = new Twig_Loader_Filesystem('templates');
-$twig = new Twig_Environment($loader);
-$template = $twig->loadTemplate('endpoint.twig');
-
-$counter = 0;
-
-
-function getApiPath()
-{
-    $path = dirname(__FILE__).'/elasticsearch/rest-api-spec/api';
-    if (file_exists($path) !== true) {
-        $path = dirname(__FILE__).'/elasticsearch/rest-api-spec/src/main/resources/rest-api-spec/api';
-    }
-    return $path;
-}
-
-
-if ($handle = opendir(getApiPath())) {
-    while (false !== ($entry = readdir($handle))) {
-        if ($entry != "." && $entry != "..") {
-            generateTemplate($entry, $template);
-        }
-    }
-    closedir($handle);
-}
-
-function processURLPaths($data)
-{
-    $final = array();
-
-    $containsType = false;
-    $containsIndex = false;
-    foreach ($data['url']['paths'] as $path) {
-        $params = array();
-        preg_match_all('/{(.*?)}/', $path, $params);
-        $params = $params[1];
-        $count = count($params);
-        $parsedPath = str_replace('}', '', $path);
-        $parsedPath = str_replace('{', '$', $parsedPath);
-
-        if (array_search('index', $params) !== false) {
-            $containsIndex = true;
-        }
-
-        if (array_search('type', $params) !== false) {
-            $containsType = true;
-        }
-
-        $duplicate = false;
-        foreach ($final as $existing) {
-            if ($existing['params'] === $params) {
-                $duplicate = true;
-            }
-        }
-
-        if ($duplicate !== true) {
-            $final[] = array(
-                'path'   => $path,
-                'parsedPath' => $parsedPath,
-                'params' => $params,
-                'count'  => $count
-            );
-        }
-    }
-
-    /*
-    foreach ($final as &$existing) {
-        if ($containsIndex === true && array_search('index', $existing['params']) === false && array_search('type', $existing['params']) !== false) {
-            $existing['parsedPath'] = '/_all'.$existing['parsedPath'];
-        }
-    }
-    */
-
-    usort($final, function ($a, $b) {
-            if ($a['count'] == $b['count']) {
-                return 0;
-            }
-
-            return ($a['count'] > $b['count']) ? -1 : 1;
-        });
-
-    return $final;
-}
-
-function getDefaultPath($path)
-{
-    if ($path['count'] === 0) {
-        return $path['path'];
-    } else {
-        $final = str_replace('}', '', $path['path']);
-        $final = str_replace('{', '$', $final);
-
-        return $final;
-    }
-}
-
-function forbid($key, $value)
-{
-    $forbid = array(
-        'GET' => array(
-            '/_nodes/hotthreads',
-            '/_nodes/{node_id}/hotthreads',
-            '/_nodes/{metric}'
-        ),
-        'HEAD' => array(),
-        'PUT' => array(
-            '/{index}/{type}/_mapping'
-        ),
-        'POST' => array(
-            '/_all/{type}/_bulk',
-            '/_all/{type}/_mget'
-        ),
-        'DELETE' => array(
-            '/{index}/{type}',
-            '/{index}/{type}/_mapping'
-        ),
-        'QS' => array(
-            'operation_threading',
-            'field_data'
-        )
-    );
-
-    if (isset($forbid['key']) && $forbid['key'] === $value) {
-        return true;
-    } else {
-        return false;
-    }
-}
-
-function generateTemplate($path, $template)
-{
-    $ignoreList = array(
-        'index.json', 'bulk.json'
-    );
-
-    if (array_search($path, $ignoreList) !== false) {
-        return;
-    }
-
-    $path = getApiPath().DIRECTORY_SEPARATOR.$path;
-    $json = file_get_contents($path);
-    $data = json_decode($json, true);
-
-    reset($data);
-    $namespace = key($data);
-    $data = $data[$namespace];
-    $namespace = explode('.', $namespace);
-
-    $underscoreNamespace = array(
-        'get',
-        'put',
-        'post',
-        'delete',
-        'exists',
-        'update',
-        'create'
-    );
-
-    $exceptions = array(
-        'delete_by_query',
-        'update_by_query',
-    );
-
-    if (strpos($namespace[count($namespace)-1], '_')) {
-        $temp = explode('_', $namespace[count($namespace)-1]);
-
-        if (array_search($temp[0], $underscoreNamespace) !== false && array_search($namespace[count($namespace)-1], $exceptions) === false) {
-            $namespace[count($namespace)-1] = $temp[1];
-            $namespace[] = $temp[0];
-        } else {
-            $namespace[count($namespace)-1] = str_replace('_', '', $namespace[count($namespace)-1]);
-        }
-    }
-
-    $data['url']['processed'] = processURLPaths($data);
-    $data['url']['default'] = getDefaultPath($data['url']['processed'][count($data['url']['processed'])-1]);
-    if (count($data['methods']) > 1) {
-        if (in_array("GET", $data['methods'])) {
-            $data['methods'] = "GET";
-        } else {
-            $data['methods'] = $data['methods'][0];
-        }
-    }
-    $renderVars = array(
-        'json'      => $json,
-        'data'      => $data,
-        'namespace' => $namespace,
-        'className' => ucfirst($namespace[count($namespace)-1]),
-    );
-
-    $ret = $template->render($renderVars);
-
-    $dir = __DIR__.'/output/'.implode('/', array_map('ucfirst', array_splice($namespace, 0, count($namespace)-1)));
-
-    if (substr($dir, -1) !== '/') {
-        $dir .= '/';
-    }
-    if (!file_exists($dir)) {
-        echo 'making dir: '.$dir."\n\n";
-        $oldumask = umask(0);
-        mkdir($dir, 0777, true);
-        umask($oldumask);
-    }
-
-    echo $dir."\n\n";
-    $path = $dir.$renderVars['className'].'.php';
-    echo $path."\n\n";
-
-    file_put_contents($path, $ret);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docsConfig.php b/apps/maarch_entreprise/tools/elasticsearch-php/util/docsConfig.php
deleted file mode 100644
index c0e05c335f5169fde8fd5d1a7718144167c276af..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docsConfig.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-// Ensure that composer has installed all dependencies
-if (!file_exists(dirname(__DIR__) . '/composer.lock')) {
-    die("Dependencies must be installed using composer:\n\nphp composer.phar install --dev\n\n"
-        . "See http://getcomposer.org for help with installing composer\n");
-}
-
-// Include the composer autoloader
-$autoloader = require_once dirname(__DIR__) . '/vendor/autoload.php';
-
-
-use Sami\Sami;
-use Symfony\Component\Finder\Finder;
-
-$iterator = Finder::create()
-    ->files()
-    ->name('*Namespace.php')
-    ->name("Client.php")
-    ->name("ClientBuilder.php")
-    ->notName("AbstractNamespace.php")
-    ->in(__DIR__.'/../src/');
-
-return new Sami($iterator, array(
-    'theme'                => 'asciidoc',
-    'template_dirs'        => array(__DIR__.'/docstheme/'),
-    'title'                => 'Elasticsearch-php',
-    'build_dir'            => __DIR__.'/../docs/build',
-    'cache_dir'            => __DIR__.'/cache/',
-));
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/layout/base.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/layout/base.twig
deleted file mode 100644
index 70610e193887a33db797c3221407a1207dc5fdcc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/layout/base.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-{% from "macros.twig" import replace_backslash, sanitize %}
-
-{% block title %}
-{% set parts = title|split("\\") %}
-{% set path = parts|slice(0, -1)|join("\\") %}
-{% set name = parts|slice(-1, 1)|join("\\") %}
-
-[[{{ sanitize(replace_backslash(title)) }}]]
-=== {{ title }}
-
-{% endblock %}
-{% block content %}
-{% endblock %}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/macros.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/macros.twig
deleted file mode 100644
index 9ea1834e8778ef67033d1fe2184b4620cc755bb3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/macros.twig
+++ /dev/null
@@ -1,138 +0,0 @@
-{% macro class_item(class, short = false, indent = "") -%}
-{{ indent }}{{ _self.class_name(class, short) }}{% if class.shortdesc %} -- {{ class.shortdesc }}{% endif %}
-{%- endmacro -%}
-
-{% macro class_name(class, short = false, suffix = "") -%}
-{% spaceless -%}
-{% if class.projectclass or class.phpclass %}
-{% if class.projectclass %}
-<<{{_self.replace_backslash( (short ? class.shortname : class)~suffix) }},{{ class }}>>
-{% else %}
-http://php.net/class.{{ class }}[{{ short ? class.shortname : class }}{{ suffix }}]
-{% endif %})
-{% else %}
-`{{ class }}`
-{% endif %}
-{%- endspaceless %}
-{%- endmacro -%}
-
-{% macro class_type(class, sentence = false) -%}
-{% spaceless %}
-{% if class.interface %}
-{% if sentence %}an {% endif %}
-interface
-{%- else -%}
-{% if sentence %}{% if class.abstract %}an{% else %}a{% endif %} {% endif %}
-{% if class.abstract %}abstract {% endif %}
-class
-{%- endif -%}
-{% endspaceless %}
-{%- endmacro -%}
-
-{% macro hint(hint) -%}
-{% spaceless %}
-{% if hint.class -%}
-{{ _self.class_name(hint.name) }}
-{%- elseif hint.name -%}
-{{ hint.name }}
-{%- endif %}
-{% endspaceless %}
-{%- endmacro -%}
-
-{% macro markdown_path(path) -%}
-{% spaceless %}
-{{- path|replace({".html": ".md"}) -}}
-{% endspaceless %}
-{%- endmacro -%}
-
-{% macro replace_backslash(path) -%}
-    {% spaceless %}
-        {{- path|replace({"\\": "_"}) -}}
-    {% endspaceless %}
-{%- endmacro -%}
-
-{% macro back_to_forward(path) -%}
-    {% spaceless %}
-        {{- path|replace({"\\": "/"}) -}}
-    {% endspaceless %}
-{%- endmacro -%}
-
-{% macro sanitize(path) -%}
-    {% spaceless %}
-        {{- path|replace({"$": "", "::": "", "__": "-"}) -}}
-    {% endspaceless %}
-{%- endmacro -%}
-
-{% macro get_namespace(class) -%}
-    {% spaceless %}
-        {% if class.shortname == 'Client' %}
-            $client
-        {% else %}
-            $client->{{ class.shortname|lower|replace({"namespace": ""}) }}()
-        {% endif %}
-    {% endspaceless %}
-{%- endmacro -%}
-
-
-
-{% macro param_list(member) -%}
-    {% spaceless %}
-        {% for parameter in member.parameters %}${{ parameter.name }},{% endfor %}
-    {% endspaceless %}
-{%- endmacro -%}
-
-{% macro member_signature(type, member) -%}
-* It is a **{{ _self.member_visibility(member) }}{% if member.abstract is defined and member.abstract %} abstract{% endif %}** {{ type }}.
-{% if member.final %}
-* It is a **finalized** {{ type }}.
-{% endif %}
-{% if "property" == type %}
-{% if member.hint|length > 1 %}
-* It can be one of the following types:
-{%- for hint in member.hint %}
-
-    * {{ _self.hint(hint) }}
-{%- endfor -%}
-{%- elseif member.hint|length > 0 %}
-* It is a(n) {{ _self.hint(member.hint[0]) }} value.
-{%- else %}
-* Its type is not specified.
-{% endif %}
-{% elseif "method" == type %}
-{% if member.parameters %}
-* It accepts the following parameter(s):
-{% for parameter in member.parameters %}
-    * `${{ parameter.name }}`{% if parameter.hint %} ({% for hint in parameter.hint %}{{ _self.hint(hint) }}{% if not loop.last %}|{% endif %}{% endfor %}){% endif %}{% if parameter.shortdesc %} -- {{ parameter.shortdesc }}{% endif %}
-
-{% endfor %}
-{% endif %}
-{% if (member.hint|length > 1) or member.hintDesc %}
-{% if member.hintDesc %}
-* _Returns:_ {{ member.hintDesc }}
-{% else %}
-* It can return one of the following values:
-{% endif %}
-{% for hint in member.hint %}
-    * {{ _self.hint(hint) }}
-{% endfor -%}
-{% elseif member.hint|length > 0 %}
-* It returns a(n) {{ _self.hint(member.hint[0]) }} value.
-{% else %}
-* It does not return anything.
-{% endif %}
-{% if member.exceptions %}
-* It throws one of the following exceptions:
-{% for exception in member.exceptions %}
-    * {{ _self.class_name(exception[0]) }}{% if exception[1] is defined and exception[1] is not empty %} -- {{ exception[1] }}{% endif %}
-
-{% endfor %}
-{% endif %}
-{% endif %}
-{%- endmacro -%}
-
-{% macro member_visibility(member) -%}
-{% spaceless %}
-{% if member.private %}private{% elseif member.protected %}protected{% else %}public{% endif %}
-{% if member.static %} static{% endif %}
-{% endspaceless %}
-{%- endmacro -%}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/manifest.yml b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/manifest.yml
deleted file mode 100644
index c1b212dc90c963951d137d7d157dc0ca99cc1ace..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/manifest.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: asciidoc
-
-global:
-    "pages/namespaces.twig": "namespaces.asciidoc"
-    "pages/interfaces.twig": "interfaces.asciidoc"
-    "pages/classes.twig": "classes.asciidoc"
-
-class:
-    "pages/class.twig": "%s.asciidoc"
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/class.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/class.twig
deleted file mode 100644
index 633ca12667a7f9d49023fe1b21aa3dafffab74d2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/class.twig
+++ /dev/null
@@ -1,82 +0,0 @@
-{% extends "layout/base.twig" %}
-
-{% from "macros.twig" import class_item, class_name, class_type, member_signature, replace_backslash, sanitize, param_list, get_namespace %}
-
-{% block title %}
-{% set title = class %}
-{{ parent() }}
-{% endblock %}
-
-{% block content %}
-{% if class.shortdesc %}
-
-{{ class.shortdesc|raw }}
-{% endif %}
-{% if class.longdesc %}
-
-*Description*
-
-
-{{ class.longdesc|raw }}
-{% endif %}
-
-{% if class.methods %}
-
-*Methods*
-
-The {{ class_type(class) }} defines the following methods:
-
-{% for method in class.methods %}
-{% if method.name != "__construct" %}
-* <<{{ sanitize(replace_backslash(method)~"_"~method.name) }},`{{ method.name }}()`>>
-{% endif %}
-{% endfor %}
-
-{% for method in class.methods %}
-{% if method.name != "__construct" %}
-
-
-{% if class.shortname != "ClientBuilder" %}
-[[{{ sanitize(replace_backslash(method)~"_"~method.name) }}]]
-.`{{ method.name }}()`
-****
-[source,php]
-----
-/*
-{% if method.shortdesc %}
-{{ method.shortdesc|raw }}
-       ['body']  = (array) Request body
-{% endif %}
-*/
-
-$params = [
-    // ...
-];
-
-$client = ClientBuilder::create()->build();
-$response = {{ get_namespace(class) }}->{{ method.name }}({{ param_list(method)|trim(',') }});
-----
-****
-{% else %}
-[[{{ sanitize(replace_backslash(method)~"_"~method.name) }}]]
-.`{{ method.name }}()`
-****
-[source,php]
-----
-/*
-{% if method.shortdesc %}
-    {{ method.shortdesc|raw }}
-    ['body']  = (array) Request body
-{% endif %}
-*/
-
-----
-****
-{% endif %}
-{% endif %}
-
-{% endfor %}
-{% endif %}
-
-{% endblock %}
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/classes.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/classes.twig
deleted file mode 100644
index f8c65217915cbb7eb9bebdbedb67a4c786144700..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/classes.twig
+++ /dev/null
@@ -1,27 +0,0 @@
-{% extends "layout/base.twig" %}
-
-{% from "macros.twig" import class_item, replace_backslash, back_to_forward, sanitize %}
-
-{% block title %}
-[[{{ sanitize(replace_backslash("ElasticsearchPHP_Endpoints")) }}]]
-== {{ "Reference - Endpoints" }}
-{% endblock %}
-
-{% block content %}
-
-This is a complete list of namespaces and their associated endpoints.
-
-NOTE: This is auto-generated documentation
-
-{% for class in classes if not class.interface %}
-* <<{{ replace_backslash(class) }}, {{ class }}>>
-{% else %}
-* There are no endpoints available.
-{% endfor %}
-{% for class in classes if not class.interface %}
-include::{{ back_to_forward(class) }}.asciidoc[]
-{% else %}
-{% endfor %}
-{% endblock %}
-
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/interfaces.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/interfaces.twig
deleted file mode 100644
index dfa5a9458319aea610086d02b40c70ec0f9c3fa9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/interfaces.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% extends "layout/base.twig" %}
-
-{% from "macros.twig" import class_item, replace_backslash, back_to_forward, sanitize %}
-
-{% block title %}
-[[{{ sanitize(replace_backslash("ElasticsearchPHP_Interfaces")) }}]]
-== {{ "Reference - Interfaces" }}
-{% endblock %}
-
-{% block content %}
-
-This is a complete list of available interfaces:
-
-{% for interface in classes if interface.interface %}
-* <<{{ replace_backslash(interface) }}, {{ interface }}>>
-{% else %}
-* There are no interfaces available.
-{% endfor %}
-{% for interface in classes if interface.interface %}
-include::{{ back_to_forward(interface) }}.asciidoc[]
-{% else %}
-{% endfor %}
-{% endblock %}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/namespaces.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/namespaces.twig
deleted file mode 100644
index 8b82c2f65f04a9383cb892fd6f34dab1ab7febdb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/docstheme/pages/namespaces.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% extends "layout/base.twig" %}
-
-{% from "macros.twig" import markdown_path, replace_backslash, back_to_forward, sanitize %}
-
-{% block title %}
-[[{{ sanitize(replace_backslash("ElasticsearchPHP_Namespaces")) }}]]
-== {{ "Reference - Namespaces" }}
-{% endblock %}
-
-{% block content %}
-
-This is a complete list of available namespaces:
-
-{% for namespace in namespaces %}
-* <<{{ replace_backslash(namespace) }}, {{ namespace }}>>
-{% else %}
-* There are no namespaces available.
-{% endfor %}
-{% for namespace in namespaces %}
-include::{{ back_to_forward(namespace) }}.asciidoc[]
-{% else %}
-{% endfor %}
-{% endblock %}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/util/templates/endpoint.twig b/apps/maarch_entreprise/tools/elasticsearch-php/util/templates/endpoint.twig
deleted file mode 100644
index 5a704af8e911d5937b4ed4976dd5eb08f1d2f236..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/util/templates/endpoint.twig
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-
-namespace Elasticsearch\Endpoints{% for class in namespace %}{{ loop.last ? ';' : '\\' ~ class|title  }}{%  endfor %}
-
-use Elasticsearch\Endpoints\AbstractEndpoint;
-use Elasticsearch\Common\Exceptions;
-
-/**
- * Class {{ className|title|replace({'.': ""}) }}
- *
- * @category Elasticsearch
- * @package Elasticsearch\Endpoints{% for class in namespace %}{{ loop.last ? '' : '\\' ~ class|title  }}{%  endfor %}
-
- *
- * @author   Zachary Tong <zach@elastic.co>
- * @license  http://www.apache.org/licenses/LICENSE-2.0 Apache2
- * @link     http://elastic.co
- */
-
-class {{ className|title }} extends AbstractEndpoint
-{
-{% for part, info in data.url.parts %}
-{% if part != 'index' and part != 'type' and part != 'id' %}
-    // {{info.description }}
-    private ${{part}};
-{% endif %}
-{% endfor %}
-{% if data.body is not null %}
-    /**
-     * @param array $body
-     *
-     * @throws \Elasticsearch\Common\Exceptions\InvalidArgumentException
-     * @return $this
-     */
-    public function setBody($body)
-    {
-        if (isset($body) !== true) {
-            return $this;
-        }
-
-        $this->body = $body;
-        return $this;
-    }
-
-
-
-{% endif %}
-{% for part, info in data.url.parts %}
-{% if part != 'index' and part != 'type' and part != 'id' %}
-    /**
-     * @param ${{part}}
-     *
-     * @return $this
-     */
-    public function set{{part|title|replace({'_': ""})}}(${{part}})
-    {
-        if (isset(${{part}}) !== true) {
-            return $this;
-        }
-{% if info.type == 'list' %}
-        if (is_array(${{part}}) === true) {
-            ${{part}} = implode(",", ${{part}});
-        }
-{% endif %}
-        $this->{{part}} = ${{part}};
-        return $this;
-    }
-
-{% endif %}
-{% endfor %}
-{% set exception = '' %}
-    /**
-{% for part, info in data.url.parts %}{% if info.required is not null %}{% set exception = ' * @throws \\Elasticsearch\\Common\\Exceptions\\BadMethodCallException
-    ' %}{% endif %}{% endfor %}
-    {% autoescape false %}{{ exception }}{% endautoescape %}
- * @return string
-     */
-    protected function getURI()
-    {
-{% for part, info in data.url.parts %}
-{% if info.required == true %}
-        if (isset($this->{{ part }}) !== true) {
-            throw new Exceptions\RuntimeException(
-                '{{ part }} is required for {{ className }}'
-            );
-        }
-{% endif %}
-{% endfor %}
-{% for part, info in data.url.parts %}
-        ${{ part }} = $this->{{ part }};
-{% endfor %}
-        $uri   = "{{ data.url.default }}";
-{% set loopCounter = 0 %}
-{% for part, info in data.url.processed %}
-{% if info.count > 0 %}
-{% set counter = 0 %}
-{% if loopCounter != 0 %}
-    else{% endif %}if ({% for param in info.params %}{% if counter == 0 %}isset(${{ param }}) === true{% else %} && isset(${{ param }}) === true{% endif %}{% set counter = counter + 1 %}{% endfor %})
-        {
-            $uri = "{{ info.parsedPath }}";
-        }
-{% set loopCounter = 1 %}
-{% endif %}
-{% endfor %}
-
-        return $uri;
-    }
-
-
-    /**
-     * @return string[]
-     */
-    protected function getParamWhitelist()
-    {
-        return array(
-{% for param, options in data.url.params %}
-            '{{ param }}',
-{% endfor %}
-        );
-    }
-
-
-{% if data.body.required == true %}
-    /**
-     * @return array
-     * @throws \Elasticsearch\Common\Exceptions\RuntimeException
-     */
-    protected function getBody()
-    {
-        if (isset($this->body) !== true) {
-            throw new Exceptions\RuntimeException('Body is required for {{ className|title }}');
-        }
-        return $this->body;
-    }
-
-
-{% endif %}
-    /**
-     * @return string
-     */
-    protected function getMethod()
-    {
-{% if data.methods|length > 1 %}
-        //TODO Fix Me!
-        return '{{ data.methods|join(',') }}';
-{% else %}
-        return '{{ data.methods[0] }}';
-{% endif %}
-    }
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/autoload.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/autoload.php
deleted file mode 100644
index 4fcbe30ca7f5fb0dbe544e76dd5d1f90abfd4af8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/autoload.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-// autoload.php @generated by Composer
-
-require_once __DIR__ . '/composer/autoload_real.php';
-
-return ComposerAutoloaderInit427c9f26014378f0692da90741c3855a::getLoader();
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/ClassLoader.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/ClassLoader.php
deleted file mode 100644
index 4626994fd4d8ac4c5489670d85b09af1b6d8aab0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/ClassLoader.php
+++ /dev/null
@@ -1,441 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
- *
- *     $loader = new \Composer\Autoload\ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (eg. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @see    http://www.php-fig.org/psr/psr-0/
- * @see    http://www.php-fig.org/psr/psr-4/
- */
-class ClassLoader
-{
-    // PSR-4
-    private $prefixLengthsPsr4 = array();
-    private $prefixDirsPsr4 = array();
-    private $fallbackDirsPsr4 = array();
-
-    // PSR-0
-    private $prefixesPsr0 = array();
-    private $fallbackDirsPsr0 = array();
-
-    private $useIncludePath = false;
-    private $classMap = array();
-    private $classMapAuthoritative = false;
-    private $missingClasses = array();
-    private $apcuPrefix;
-
-    public function getPrefixes()
-    {
-        if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', $this->prefixesPsr0);
-        }
-
-        return array();
-    }
-
-    public function getPrefixesPsr4()
-    {
-        return $this->prefixDirsPsr4;
-    }
-
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirsPsr0;
-    }
-
-    public function getFallbackDirsPsr4()
-    {
-        return $this->fallbackDirsPsr4;
-    }
-
-    public function getClassMap()
-    {
-        return $this->classMap;
-    }
-
-    /**
-     * @param array $classMap Class to filename map
-     */
-    public function addClassMap(array $classMap)
-    {
-        if ($this->classMap) {
-            $this->classMap = array_merge($this->classMap, $classMap);
-        } else {
-            $this->classMap = $classMap;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix, either
-     * appending or prepending to the ones previously set for this prefix.
-     *
-     * @param string       $prefix  The prefix
-     * @param array|string $paths   The PSR-0 root directories
-     * @param bool         $prepend Whether to prepend the directories
-     */
-    public function add($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            if ($prepend) {
-                $this->fallbackDirsPsr0 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr0
-                );
-            } else {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $this->fallbackDirsPsr0,
-                    (array) $paths
-                );
-            }
-
-            return;
-        }
-
-        $first = $prefix[0];
-        if (!isset($this->prefixesPsr0[$first][$prefix])) {
-            $this->prefixesPsr0[$first][$prefix] = (array) $paths;
-
-            return;
-        }
-        if ($prepend) {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixesPsr0[$first][$prefix]
-            );
-        } else {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $this->prefixesPsr0[$first][$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace, either
-     * appending or prepending to the ones previously set for this namespace.
-     *
-     * @param string       $prefix  The prefix/namespace, with trailing '\\'
-     * @param array|string $paths   The PSR-4 base directories
-     * @param bool         $prepend Whether to prepend the directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function addPsr4($prefix, $paths, $prepend = false)
-    {
-        if (!$prefix) {
-            // Register directories for the root namespace.
-            if ($prepend) {
-                $this->fallbackDirsPsr4 = array_merge(
-                    (array) $paths,
-                    $this->fallbackDirsPsr4
-                );
-            } else {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $this->fallbackDirsPsr4,
-                    (array) $paths
-                );
-            }
-        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
-            // Register directories for a new namespace.
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        } elseif ($prepend) {
-            // Prepend directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                (array) $paths,
-                $this->prefixDirsPsr4[$prefix]
-            );
-        } else {
-            // Append directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $this->prefixDirsPsr4[$prefix],
-                (array) $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix,
-     * replacing any others previously set for this prefix.
-     *
-     * @param string       $prefix The prefix
-     * @param array|string $paths  The PSR-0 base directories
-     */
-    public function set($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr0 = (array) $paths;
-        } else {
-            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace,
-     * replacing any others previously set for this namespace.
-     *
-     * @param string       $prefix The prefix/namespace, with trailing '\\'
-     * @param array|string $paths  The PSR-4 base directories
-     *
-     * @throws \InvalidArgumentException
-     */
-    public function setPsr4($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr4 = (array) $paths;
-        } else {
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include path for class files.
-     *
-     * @param bool $useIncludePath
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Turns off searching the prefix and fallback directories for classes
-     * that have not been registered with the class map.
-     *
-     * @param bool $classMapAuthoritative
-     */
-    public function setClassMapAuthoritative($classMapAuthoritative)
-    {
-        $this->classMapAuthoritative = $classMapAuthoritative;
-    }
-
-    /**
-     * Should class lookup fail if not found in the current class map?
-     *
-     * @return bool
-     */
-    public function isClassMapAuthoritative()
-    {
-        return $this->classMapAuthoritative;
-    }
-
-    /**
-     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
-     *
-     * @param string|null $apcuPrefix
-     */
-    public function setApcuPrefix($apcuPrefix)
-    {
-        $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
-    }
-
-    /**
-     * The APCu prefix in use, or null if APCu caching is not enabled.
-     *
-     * @return string|null
-     */
-    public function getApcuPrefix()
-    {
-        return $this->apcuPrefix;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param  string    $class The name of the class
-     * @return bool|null True if loaded, null otherwise
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            includeFile($file);
-
-            return true;
-        }
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|false The path if found, false otherwise
-     */
-    public function findFile($class)
-    {
-        // class map lookup
-        if (isset($this->classMap[$class])) {
-            return $this->classMap[$class];
-        }
-        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
-            return false;
-        }
-        if (null !== $this->apcuPrefix) {
-            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
-            if ($hit) {
-                return $file;
-            }
-        }
-
-        $file = $this->findFileWithExtension($class, '.php');
-
-        // Search for Hack files if we are running on HHVM
-        if (false === $file && defined('HHVM_VERSION')) {
-            $file = $this->findFileWithExtension($class, '.hh');
-        }
-
-        if (null !== $this->apcuPrefix) {
-            apcu_add($this->apcuPrefix.$class, $file);
-        }
-
-        if (false === $file) {
-            // Remember that this class does not exist.
-            $this->missingClasses[$class] = true;
-        }
-
-        return $file;
-    }
-
-    private function findFileWithExtension($class, $ext)
-    {
-        // PSR-4 lookup
-        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
-        $first = $class[0];
-        if (isset($this->prefixLengthsPsr4[$first])) {
-            foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-4 fallback dirs
-        foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 lookup
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
-                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
-        } else {
-            // PEAR-like class name
-            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
-        }
-
-        if (isset($this->prefixesPsr0[$first])) {
-            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($dirs as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-0 fallback dirs
-        foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 include paths.
-        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
-            return $file;
-        }
-
-        return false;
-    }
-}
-
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
-    include $file;
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/LICENSE
deleted file mode 100644
index 1a28124886db89f1ca3e4fa674cb69a9a17585b3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Copyright (c) 2016 Nils Adermann, Jordi Boggiano
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_classmap.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_classmap.php
deleted file mode 100644
index 7a91153b0d8ea10bc693176a81d8a9eb96883a76..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_classmap.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-// autoload_classmap.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_files.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_files.php
deleted file mode 100644
index 80babd7e9cc305a56a5414e5db015a7cf71c78f6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_files.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-// autoload_files.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
-);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_namespaces.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_namespaces.php
deleted file mode 100644
index b7fc0125dbca56fd7565ad62097672a59473e64e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_namespaces.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-// autoload_namespaces.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_psr4.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_psr4.php
deleted file mode 100644
index e50c8266b708115c1ee2d448bf034e2c828bb3aa..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_psr4.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-// autoload_psr4.php @generated by Composer
-
-$vendorDir = dirname(dirname(__FILE__));
-$baseDir = dirname($vendorDir);
-
-return array(
-    'React\\Promise\\' => array($vendorDir . '/react/promise/src'),
-    'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
-    'GuzzleHttp\\Stream\\' => array($vendorDir . '/guzzlehttp/streams/src'),
-    'GuzzleHttp\\Ring\\' => array($vendorDir . '/guzzlehttp/ringphp/src'),
-    'Elasticsearch\\' => array($baseDir . '/src/Elasticsearch'),
-);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_real.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_real.php
deleted file mode 100644
index d7e5d2b21fd7055730f9b5c8b772a28cc2f6b41b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_real.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-// autoload_real.php @generated by Composer
-
-class ComposerAutoloaderInit427c9f26014378f0692da90741c3855a
-{
-    private static $loader;
-
-    public static function loadClassLoader($class)
-    {
-        if ('Composer\Autoload\ClassLoader' === $class) {
-            require __DIR__ . '/ClassLoader.php';
-        }
-    }
-
-    public static function getLoader()
-    {
-        if (null !== self::$loader) {
-            return self::$loader;
-        }
-
-        spl_autoload_register(array('ComposerAutoloaderInit427c9f26014378f0692da90741c3855a', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit427c9f26014378f0692da90741c3855a', 'loadClassLoader'));
-
-        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
-        if ($useStaticLoader) {
-            require_once __DIR__ . '/autoload_static.php';
-
-            call_user_func(\Composer\Autoload\ComposerStaticInit427c9f26014378f0692da90741c3855a::getInitializer($loader));
-        } else {
-            $map = require __DIR__ . '/autoload_namespaces.php';
-            foreach ($map as $namespace => $path) {
-                $loader->set($namespace, $path);
-            }
-
-            $map = require __DIR__ . '/autoload_psr4.php';
-            foreach ($map as $namespace => $path) {
-                $loader->setPsr4($namespace, $path);
-            }
-
-            $classMap = require __DIR__ . '/autoload_classmap.php';
-            if ($classMap) {
-                $loader->addClassMap($classMap);
-            }
-        }
-
-        $loader->register(true);
-
-        if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInit427c9f26014378f0692da90741c3855a::$files;
-        } else {
-            $includeFiles = require __DIR__ . '/autoload_files.php';
-        }
-        foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire427c9f26014378f0692da90741c3855a($fileIdentifier, $file);
-        }
-
-        return $loader;
-    }
-}
-
-function composerRequire427c9f26014378f0692da90741c3855a($fileIdentifier, $file)
-{
-    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
-        require $file;
-
-        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_static.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_static.php
deleted file mode 100644
index df9a8b3a082eb039c69f6809ba00193920b3c576..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/autoload_static.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-// autoload_static.php @generated by Composer
-
-namespace Composer\Autoload;
-
-class ComposerStaticInit427c9f26014378f0692da90741c3855a
-{
-    public static $files = array (
-        'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
-    );
-
-    public static $prefixLengthsPsr4 = array (
-        'R' => 
-        array (
-            'React\\Promise\\' => 14,
-        ),
-        'P' => 
-        array (
-            'Psr\\Log\\' => 8,
-        ),
-        'G' => 
-        array (
-            'GuzzleHttp\\Stream\\' => 18,
-            'GuzzleHttp\\Ring\\' => 16,
-        ),
-        'E' => 
-        array (
-            'Elasticsearch\\' => 14,
-        ),
-    );
-
-    public static $prefixDirsPsr4 = array (
-        'React\\Promise\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/react/promise/src',
-        ),
-        'Psr\\Log\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
-        ),
-        'GuzzleHttp\\Stream\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/guzzlehttp/streams/src',
-        ),
-        'GuzzleHttp\\Ring\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/guzzlehttp/ringphp/src',
-        ),
-        'Elasticsearch\\' => 
-        array (
-            0 => __DIR__ . '/../..' . '/src/Elasticsearch',
-        ),
-    );
-
-    public static function getInitializer(ClassLoader $loader)
-    {
-        return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInit427c9f26014378f0692da90741c3855a::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInit427c9f26014378f0692da90741c3855a::$prefixDirsPsr4;
-
-        }, null, ClassLoader::class);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/installed.json b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/installed.json
deleted file mode 100644
index 007880ef7498abddfe8a21843eafb843bccc9eca..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/composer/installed.json
+++ /dev/null
@@ -1,201 +0,0 @@
-[
-    {
-        "name": "react/promise",
-        "version": "v2.5.0",
-        "version_normalized": "2.5.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/reactphp/promise.git",
-            "reference": "2760f3898b7e931aa71153852dcd48a75c9b95db"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/reactphp/promise/zipball/2760f3898b7e931aa71153852dcd48a75c9b95db",
-            "reference": "2760f3898b7e931aa71153852dcd48a75c9b95db",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.4.0"
-        },
-        "time": "2016-12-22T14:09:01+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "React\\Promise\\": "src/"
-            },
-            "files": [
-                "src/functions_include.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Jan Sorgalla",
-                "email": "jsorgalla@gmail.com"
-            }
-        ],
-        "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-        "keywords": [
-            "promise",
-            "promises"
-        ]
-    },
-    {
-        "name": "guzzlehttp/streams",
-        "version": "3.0.0",
-        "version_normalized": "3.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/streams.git",
-            "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
-            "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.4.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.0"
-        },
-        "time": "2014-10-12T19:18:40+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "3.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\Stream\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Provides a simple abstraction over streams of data",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "Guzzle",
-            "stream"
-        ]
-    },
-    {
-        "name": "guzzlehttp/ringphp",
-        "version": "1.1.0",
-        "version_normalized": "1.1.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/RingPHP.git",
-            "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
-            "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
-            "shasum": ""
-        },
-        "require": {
-            "guzzlehttp/streams": "~3.0",
-            "php": ">=5.4.0",
-            "react/promise": "~2.0"
-        },
-        "require-dev": {
-            "ext-curl": "*",
-            "phpunit/phpunit": "~4.0"
-        },
-        "suggest": {
-            "ext-curl": "Guzzle will use specific adapters if cURL is present"
-        },
-        "time": "2015-05-20T03:37:09+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.1-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\Ring\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function."
-    },
-    {
-        "name": "psr/log",
-        "version": "1.0.2",
-        "version_normalized": "1.0.2.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/php-fig/log.git",
-            "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
-            "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "time": "2016-10-10T12:19:37+00:00",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0.x-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "Psr\\Log\\": "Psr/Log/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "PHP-FIG",
-                "homepage": "http://www.php-fig.org/"
-            }
-        ],
-        "description": "Common interface for logging libraries",
-        "homepage": "https://github.com/php-fig/log",
-        "keywords": [
-            "log",
-            "psr",
-            "psr-3"
-        ]
-    }
-]
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/.travis.yml b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/.travis.yml
deleted file mode 100644
index e43fbdd9cda3e0c4a84593ffafa2462c19a22fc3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: php
-
-php:
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-  - ~/.nvm/nvm.sh install v0.6.14
-  - ~/.nvm/nvm.sh run v0.6.14
-
-script:
-  - make test
-
-matrix:
-  allow_failures:
-    - php: hhvm
-  fast_finish: true
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/CHANGELOG.md b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/CHANGELOG.md
deleted file mode 100644
index d399d826247c5cf0c65bb0d35f8b8f6133fc035c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/CHANGELOG.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# CHANGELOG
-
-## 1.1.0 - 2015-05-19
-
-* Added `CURL_HTTP_VERSION_2_0`
-* The PHP stream wrapper handler now sets `allow_self_signed` to `false` to
-  match the cURL handler when `verify` is set to `true` or a certificate file.
-* Ensuring that a directory exists before using the `save_to` option.
-* Response protocol version is now correctly extracted from a response.
-* Fixed a bug in which the result of `CurlFactory::retryFailedRewind` did not
-  return an array.
-
-## 1.0.7 - 2015-03-29
-
-* PHP 7 fixes.
-
-## 1.0.6 - 2015-02-26
-
-* Bug fix: futures now extend from React's PromiseInterface to ensure that they
-  are properly forwarded down the promise chain.
-* The multi handle of the CurlMultiHandler is now created lazily.
-
-## 1.0.5 - 2014-12-10
-
-* Adding more error information to PHP stream wrapper exceptions.
-* Added digest auth integration test support to test server.
-
-## 1.0.4 - 2014-12-01
-
-* Added support for older versions of cURL that do not have CURLOPT_TIMEOUT_MS.
-* Setting debug to `false` does not enable debug output.
-* Added a fix to the StreamHandler to return a `FutureArrayInterface` when an
-  error occurs.
-
-## 1.0.3 - 2014-11-03
-
-* Setting the `header` stream option as a string to be compatible with GAE.
-* Header parsing now ensures that header order is maintained in the parsed
-  message.
-
-## 1.0.2 - 2014-10-28
-
-* Now correctly honoring a `version` option is supplied in a request.
-  See https://github.com/guzzle/RingPHP/pull/8
-
-## 1.0.1 - 2014-10-26
-
-* Fixed a header parsing issue with the `CurlHandler` and `CurlMultiHandler`
-  that caused cURL requests with multiple responses to merge repsonses together
-  (e.g., requests with digest authentication).
-
-## 1.0.0 - 2014-10-12
-
-* Initial release.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/LICENSE
deleted file mode 100644
index 71d3b783cb5b82e732f4555c5b7839036334607b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/Makefile b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/Makefile
deleted file mode 100644
index 21c812e381309d1db478db1e505b6a84ddbbbdeb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-all: clean coverage docs
-
-docs:
-	cd docs && make html
-
-view-docs:
-	open docs/_build/html/index.html
-
-start-server: stop-server
-	node tests/Client/server.js &> /dev/null &
-
-stop-server:
-	@PID=$(shell ps axo pid,command \
-	  | grep 'tests/Client/server.js' \
-	  | grep -v grep \
-	  | cut -f 1 -d " "\
-	) && [ -n "$$PID" ] && kill $$PID || true
-
-test: start-server
-	vendor/bin/phpunit $(TEST)
-	$(MAKE) stop-server
-
-coverage: start-server
-	vendor/bin/phpunit --coverage-html=build/artifacts/coverage $(TEST)
-	$(MAKE) stop-server
-
-view-coverage:
-	open build/artifacts/coverage/index.html
-
-clean:
-	rm -rf build/artifacts/*
-	cd docs && make clean
-
-tag:
-	$(if $(TAG),,$(error TAG is not defined. Pass via "make tag TAG=4.2.1"))
-	@echo Tagging $(TAG)
-	chag update -m '$(TAG) ()'
-	git add -A
-	git commit -m '$(TAG) release'
-	chag tag
-
-perf: start-server
-	php tests/perf.php
-	$(MAKE) stop-server
-
-.PHONY: docs
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/README.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/README.rst
deleted file mode 100644
index 10374e813b1f31b2657a9d12e392b8ccd1d2e84c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/README.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-=======
-RingPHP
-=======
-
-Provides a simple API and specification that abstracts away the details of HTTP
-into a single PHP function. RingPHP be used to power HTTP clients and servers
-through a PHP function that accepts a request hash and returns a response hash
-that is fulfilled using a `promise <https://github.com/reactphp/promise>`_,
-allowing RingPHP to support both synchronous and asynchronous workflows.
-
-By abstracting the implementation details of different HTTP clients and
-servers, RingPHP allows you to utilize pluggable HTTP clients and servers
-without tying your application to a specific implementation.
-
-.. code-block:: php
-
-    <?php
-    require 'vendor/autoload.php';
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-
-    $handler = new CurlHandler();
-    $response = $handler([
-        'http_method' => 'GET',
-        'uri'         => '/',
-        'headers'     => [
-            'host'  => ['www.google.com'],
-            'x-foo' => ['baz']
-        ]
-    ]);
-
-    $response->then(function (array $response) {
-        echo $response['status'];
-    });
-
-    $response->wait();
-
-RingPHP is inspired by Clojure's `Ring <https://github.com/ring-clojure/ring>`_,
-which, in turn, was inspired by Python's WSGI and Ruby's Rack. RingPHP is
-utilized as the handler layer in `Guzzle <http://guzzlephp.org>`_ 5.0+ to send
-HTTP requests.
-
-Documentation
--------------
-
-See http://ringphp.readthedocs.org/ for the full online documentation.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/composer.json b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/composer.json
deleted file mode 100644
index 22002efca7ab7e9e94e93cac3b5006d48ee353c7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/composer.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "name": "guzzlehttp/ringphp",
-    "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Michael Dowling",
-            "email": "mtdowling@gmail.com",
-            "homepage": "https://github.com/mtdowling"
-        }
-    ],
-    "require": {
-        "php": ">=5.4.0",
-        "guzzlehttp/streams": "~3.0",
-        "react/promise": "~2.0"
-    },
-    "require-dev": {
-        "ext-curl": "*",
-        "phpunit/phpunit": "~4.0"
-    },
-    "suggest": {
-        "ext-curl": "Guzzle will use specific adapters if cURL is present"
-    },
-    "autoload": {
-        "psr-4": {
-            "GuzzleHttp\\Ring\\": "src/"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "GuzzleHttp\\Tests\\Ring\\": "tests/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.1-dev"
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/Makefile b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/Makefile
deleted file mode 100644
index 51270aa5d39fb03f562a2acb09df88f082741b01..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/Makefile
+++ /dev/null
@@ -1,153 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-BUILDDIR      = _build
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html       to make standalone HTML files"
-	@echo "  dirhtml    to make HTML files named index.html in directories"
-	@echo "  singlehtml to make a single large HTML file"
-	@echo "  pickle     to make pickle files"
-	@echo "  json       to make JSON files"
-	@echo "  htmlhelp   to make HTML files and a HTML help project"
-	@echo "  qthelp     to make HTML files and a qthelp project"
-	@echo "  devhelp    to make HTML files and a Devhelp project"
-	@echo "  epub       to make an epub"
-	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
-	@echo "  text       to make text files"
-	@echo "  man        to make manual pages"
-	@echo "  texinfo    to make Texinfo files"
-	@echo "  info       to make Texinfo files and run them through makeinfo"
-	@echo "  gettext    to make PO message catalogs"
-	@echo "  changes    to make an overview of all changed/added/deprecated items"
-	@echo "  linkcheck  to check all external links for integrity"
-	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
-
-clean:
-	-rm -rf $(BUILDDIR)/*
-
-html:
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
-	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
-	@echo
-	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
-	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
-	@echo
-	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-json:
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
-	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
-	@echo
-	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
-	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
-	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GuzzleRing.qhcp"
-	@echo "To view the help file:"
-	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GuzzleRing.qhc"
-
-devhelp:
-	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
-	@echo
-	@echo "Build finished."
-	@echo "To view the help file:"
-	@echo "# mkdir -p $$HOME/.local/share/devhelp/GuzzleRing"
-	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GuzzleRing"
-	@echo "# devhelp"
-
-epub:
-	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
-	@echo
-	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
-	@echo "Run \`make' in that directory to run these through (pdf)latex" \
-	      "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
-	@echo "Running LaTeX files through pdflatex..."
-	$(MAKE) -C $(BUILDDIR)/latex all-pdf
-	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
-	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
-	@echo
-	@echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
-	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
-	@echo
-	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo
-	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
-	@echo "Run \`make' in that directory to run these through makeinfo" \
-	      "(use \`make info' here to do that automatically)."
-
-info:
-	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
-	@echo "Running Texinfo files through makeinfo..."
-	make -C $(BUILDDIR)/texinfo info
-	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
-	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
-	@echo
-	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
-	@echo
-	@echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
-	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
-	@echo "Testing of doctests in the sources finished, look at the " \
-	      "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_handlers.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_handlers.rst
deleted file mode 100644
index 3151f00216ce0afdd31d2fb0a936c07f61b045de..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_handlers.rst
+++ /dev/null
@@ -1,173 +0,0 @@
-===============
-Client Handlers
-===============
-
-Client handlers accept a request array and return a future response array that
-can be used synchronously as an array or asynchronously using a promise.
-
-Built-In Handlers
------------------
-
-RingPHP comes with three built-in client handlers.
-
-Stream Handler
-~~~~~~~~~~~~~~
-
-The ``GuzzleHttp\Ring\Client\StreamHandler`` uses PHP's
-`http stream wrapper <http://php.net/manual/en/wrappers.http.php>`_ to send
-requests.
-
-.. note::
-
-    This handler cannot send requests concurrently.
-
-You can provide an associative array of custom stream context options to the
-StreamHandler using the ``stream_context`` key of the ``client`` request
-option.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\StreamHandler;
-
-    $response = $handler([
-        'http_method' => 'GET',
-        'uri' => '/',
-        'headers' => ['host' => ['httpbin.org']],
-        'client' => [
-            'stream_context' => [
-                'http' => [
-                    'request_fulluri' => true,
-                    'method' => 'HEAD'
-                ],
-                'socket' => [
-                    'bindto' => '127.0.0.1:0'
-                ],
-                'ssl' => [
-                    'verify_peer' => false
-                ]
-            ]
-        ]
-    ]);
-
-    // Even though it's already completed, you can still use a promise
-    $response->then(function ($response) {
-        echo $response['status']; // 200
-    });
-
-    // Or access the response using the future interface
-    echo $response['status']; // 200
-
-cURL Handler
-~~~~~~~~~~~~
-
-The ``GuzzleHttp\Ring\Client\CurlHandler`` can be used with PHP 5.5+ to send
-requests using cURL easy handles. This handler is great for sending requests
-one at a time because the execute and select loop is implemented in C code
-which executes faster and consumes less memory than using PHP's
-``curl_multi_*`` interface.
-
-.. note::
-
-    This handler cannot send requests concurrently.
-
-When using the CurlHandler, custom curl options can be specified as an
-associative array of `cURL option constants <http://php.net/manual/en/curl.constants.php>`_
-mapping to values in the ``client`` option of a requst using the **curl** key.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-
-    $handler = new CurlHandler();
-
-    $request = [
-        'http_method' => 'GET',
-        'headers'     => ['host' => [Server::$host]],
-        'client'      => ['curl' => [CURLOPT_LOW_SPEED_LIMIT => 10]]
-    ];
-
-    $response = $handler($request);
-
-    // The response can be used directly as an array.
-    echo $response['status']; // 200
-
-    // Or, it can be used as a promise (that has already fulfilled).
-    $response->then(function ($response) {
-        echo $response['status']; // 200
-    });
-
-cURL Multi Handler
-~~~~~~~~~~~~~~~~~~
-
-The ``GuzzleHttp\Ring\Client\CurlMultiHandler`` transfers requests using
-cURL's `multi API <http://curl.haxx.se/libcurl/c/libcurl-multi.html>`_. The
-``CurlMultiHandler`` is great for sending requests concurrently.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlMultiHandler;
-
-    $handler = new CurlMultiHandler();
-
-    $request = [
-        'http_method' => 'GET',
-        'headers'     => ['host' => [Server::$host]]
-    ];
-
-    // this call returns a future array immediately.
-    $response = $handler($request);
-
-    // Ideally, you should use the promise API to not block.
-    $response
-        ->then(function ($response) {
-            // Got the response at some point in the future
-            echo $response['status']; // 200
-            // Don't break the chain
-            return $response;
-        })->then(function ($response) {
-            // ...
-        });
-
-    // If you really need to block, then you can use the response as an
-    // associative array. This will block until it has completed.
-    echo $response['status']; // 200
-
-Just like the ``CurlHandler``, the ``CurlMultiHandler`` accepts custom curl
-option in the ``curl`` key of the ``client`` request option.
-
-Mock Handler
-~~~~~~~~~~~~
-
-The ``GuzzleHttp\Ring\Client\MockHandler`` is used to return mock responses.
-When constructed, the handler can be configured to return the same response
-array over and over, a future response, or a the evaluation of a callback
-function.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\MockHandler;
-
-    // Return a canned response.
-    $mock = new MockHandler(['status' => 200]);
-    $response = $mock([]);
-    assert(200 == $response['status']);
-    assert([] == $response['headers']);
-
-Implementing Handlers
----------------------
-
-Client handlers are just PHP callables (functions or classes that have the
-``__invoke`` magic method). The callable accepts a request array and MUST
-return an instance of ``GuzzleHttp\Ring\Future\FutureArrayInterface`` so that
-the response can be used by both blocking and non-blocking consumers.
-
-Handlers need to follow a few simple rules:
-
-1. Do not throw exceptions. If an error is encountered, return an array that
-   contains the ``error`` key that maps to an ``\Exception`` value.
-2. If the request has a ``delay`` client option, then the handler should only
-   send the request after the specified delay time in seconds. Blocking
-   handlers may find it convenient to just let the
-   ``GuzzleHttp\Ring\Core::doSleep($request)`` function handle this for them.
-3. Always return an instance of ``GuzzleHttp\Ring\Future\FutureArrayInterface``.
-4. Complete any outstanding requests when the handler is destructed.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_middleware.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_middleware.rst
deleted file mode 100644
index 5a2c1a8abd054b46d804ba4f6bbe62e1c7593205..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/client_middleware.rst
+++ /dev/null
@@ -1,165 +0,0 @@
-=================
-Client Middleware
-=================
-
-Middleware intercepts requests before they are sent over the wire and can be
-used to add functionality to handlers.
-
-Modifying Requests
-------------------
-
-Let's say you wanted to modify requests before they are sent over the wire
-so that they always add specific headers. This can be accomplished by creating
-a function that accepts a handler and returns a new function that adds the
-composed behavior.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-
-    $handler = new CurlHandler();
-
-    $addHeaderHandler = function (callable $handler, array $headers = []) {
-        return function (array $request) use ($handler, $headers) {
-            // Add our custom headers
-            foreach ($headers as $key => $value) {
-                $request['headers'][$key] = $value;
-            }
-
-            // Send the request using the handler and return the response.
-            return $handler($request);
-        }
-    };
-
-    // Create a new handler that adds headers to each request.
-    $handler = $addHeaderHandler($handler, [
-        'X-AddMe'       => 'hello',
-        'Authorization' => 'Basic xyz'
-    ]);
-
-    $response = $handler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['httpbin.org']]
-    ]);
-
-Modifying Responses
--------------------
-
-You can change a response as it's returned from a middleware. Remember that
-responses returned from an handler (including middleware) must implement
-``GuzzleHttp\Ring\Future\FutureArrayInterface``. In order to be a good citizen,
-you should not expect that the responses returned through your middleware will
-be completed synchronously. Instead, you should use the
-``GuzzleHttp\Ring\Core::proxy()`` function to modify the response when the
-underlying promise is resolved. This function is a helper function that makes it
-easy to create a new instance of ``FutureArrayInterface`` that wraps an existing
-``FutureArrayInterface`` object.
-
-Let's say you wanted to add headers to a response as they are returned from
-your middleware, but you want to make sure you aren't causing future
-responses to be dereferenced right away. You can achieve this by modifying the
-incoming request and using the ``Core::proxy`` function.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Core;
-    use GuzzleHttp\Ring\Client\CurlHandler;
-
-    $handler = new CurlHandler();
-
-    $responseHeaderHandler = function (callable $handler, array $headers) {
-        return function (array $request) use ($handler, $headers) {
-            // Send the request using the wrapped handler.
-            return Core::proxy($handler($request), function ($response) use ($headers) {
-                // Add the headers to the response when it is available.
-                foreach ($headers as $key => $value) {
-                    $response['headers'][$key] = (array) $value;
-                }
-                // Note that you can return a regular response array when using
-                // the proxy method.
-                return $response;
-            });
-        }
-    };
-
-    // Create a new handler that adds headers to each response.
-    $handler = $responseHeaderHandler($handler, ['X-Header' => 'hello!']);
-
-    $response = $handler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['httpbin.org']]
-    ]);
-
-    assert($response['headers']['X-Header'] == 'hello!');
-
-Built-In Middleware
--------------------
-
-RingPHP comes with a few basic client middlewares that modify requests
-and responses.
-
-Streaming Middleware
-~~~~~~~~~~~~~~~~~~~~
-
-If you want to send all requests with the ``streaming`` option to a specific
-handler but other requests to a different handler, then use the streaming
-middleware.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-    use GuzzleHttp\Ring\Client\StreamHandler;
-    use GuzzleHttp\Ring\Client\Middleware;
-
-    $defaultHandler = new CurlHandler();
-    $streamingHandler = new StreamHandler();
-    $streamingHandler = Middleware::wrapStreaming(
-        $defaultHandler,
-        $streamingHandler
-    );
-
-    // Send the request using the streaming handler.
-    $response = $streamingHandler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']],
-        'stream'      => true
-    ]);
-
-    // Send the request using the default handler.
-    $response = $streamingHandler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']]
-    ]);
-
-Future Middleware
-~~~~~~~~~~~~~~~~~
-
-If you want to send all requests with the ``future`` option to a specific
-handler but other requests to a different handler, then use the future
-middleware.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-    use GuzzleHttp\Ring\Client\CurlMultiHandler;
-    use GuzzleHttp\Ring\Client\Middleware;
-
-    $defaultHandler = new CurlHandler();
-    $futureHandler = new CurlMultiHandler();
-    $futureHandler = Middleware::wrapFuture(
-        $defaultHandler,
-        $futureHandler
-    );
-
-    // Send the request using the blocking CurlHandler.
-    $response = $futureHandler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']]
-    ]);
-
-    // Send the request using the non-blocking CurlMultiHandler.
-    $response = $futureHandler([
-        'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']],
-        'future'      => true
-    ]);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/conf.py b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/conf.py
deleted file mode 100644
index c6404aa1e1453a433bb4667500aa2cb7edff4d79..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/conf.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import sys, os
-import sphinx_rtd_theme
-from sphinx.highlighting import lexers
-from pygments.lexers.web import PhpLexer
-
-
-lexers['php'] = PhpLexer(startinline=True, linenos=1)
-lexers['php-annotations'] = PhpLexer(startinline=True, linenos=1)
-primary_domain = 'php'
-
-extensions = []
-templates_path = ['_templates']
-source_suffix = '.rst'
-master_doc = 'index'
-project = u'RingPHP'
-copyright = u'2014, Michael Dowling'
-version = '1.0.0-alpha'
-exclude_patterns = ['_build']
-
-html_title = "RingPHP"
-html_short_title = "RingPHP"
-html_theme = "sphinx_rtd_theme"
-html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/futures.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/futures.rst
deleted file mode 100644
index af29cb3780cddffef0534c9c53cbf47d2472e178..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/futures.rst
+++ /dev/null
@@ -1,164 +0,0 @@
-=======
-Futures
-=======
-
-Futures represent a computation that may have not yet completed. RingPHP
-uses hybrid of futures and promises to provide a consistent API that can be
-used for both blocking and non-blocking consumers.
-
-Promises
---------
-
-You can get the result of a future when it is ready using the promise interface
-of a future. Futures expose a promise API via a ``then()`` method that utilizes
-`React's promise library <https://github.com/reactphp/promise>`_. You should
-use this API when you do not wish to block.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlMultiHandler;
-
-    $request = [
-        'http_method' => 'GET',
-        'uri'         => '/',
-        'headers'     => ['host' => ['httpbin.org']]
-    ];
-
-    $response = $handler($request);
-
-    // Use the then() method to use the promise API of the future.
-    $response->then(function ($response) {
-        echo $response['status'];
-    });
-
-You can get the promise used by a future, an instance of
-``React\Promise\PromiseInterface``, by calling the ``promise()`` method.
-
-.. code-block:: php
-
-    $response = $handler($request);
-    $promise = $response->promise();
-    $promise->then(function ($response) {
-        echo $response['status'];
-    });
-
-This promise value can be used with React's
-`aggregate promise functions <https://github.com/reactphp/promise#functions>`_.
-
-Waiting
--------
-
-You can wait on a future to complete and retrieve the value, or *dereference*
-the future, using the ``wait()`` method. Calling the ``wait()`` method of a
-future will block until the result is available. The result is then returned or
-an exception is thrown if and exception was encountered while waiting on the
-the result. Subsequent calls to dereference a future will return the previously
-completed result or throw the previously encountered exception. Futures can be
-cancelled, which stops the computation if possible.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlMultiHandler;
-
-    $response = $handler([
-        'http_method' => 'GET',
-        'uri'         => '/',
-        'headers'     => ['host' => ['httpbin.org']]
-    ]);
-
-    // You can explicitly call block to wait on a result.
-    $realizedResponse = $response->wait();
-
-    // Future responses can be used like a regular PHP array.
-    echo $response['status'];
-
-In addition to explicitly calling the ``wait()`` function, using a future like
-a normal value will implicitly trigger the ``wait()`` function.
-
-Future Responses
-----------------
-
-RingPHP uses futures to return asynchronous responses immediately. Client
-handlers always return future responses that implement
-``GuzzleHttp\Ring\Future\ArrayFutureInterface``. These future responses act
-just like normal PHP associative arrays for blocking access and provide a
-promise interface for non-blocking access.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlMultiHandler;
-
-    $handler = new CurlMultiHandler();
-
-    $request = [
-        'http_method'  => 'GET',
-        'uri'          => '/',
-        'headers'      => ['Host' => ['www.google.com']]
-    ];
-
-    $response = $handler($request);
-
-    // Use the promise API for non-blocking access to the response. The actual
-    // response value will be delivered to the promise.
-    $response->then(function ($response) {
-        echo $response['status'];
-    });
-
-    // You can wait (block) until the future is completed.
-    $response->wait();
-
-    // This will implicitly call wait(), and will block too!
-    $response['status'];
-
-.. important::
-
-    Futures that are not completed by the time the underlying handler is
-    destructed will be completed when the handler is shutting down.
-
-Cancelling
-----------
-
-Futures can be cancelled if they have not already been dereferenced.
-
-RingPHP futures are typically implemented with the
-``GuzzleHttp\Ring\Future\BaseFutureTrait``. This trait provides the cancellation
-functionality that should be common to most implementations. Cancelling a
-future response will try to prevent the request from sending over the wire.
-
-When a future is cancelled, the cancellation function is invoked and performs
-the actual work needed to cancel the request from sending if possible
-(e.g., telling an event loop to stop sending a request or to close a socket).
-If no cancellation function is provided, then a request cannot be cancelled. If
-a cancel function is provided, then it should accept the future as an argument
-and return true if the future was successfully cancelled or false if it could
-not be cancelled.
-
-Wrapping an existing Promise
-----------------------------
-
-You can easily create a future from any existing promise using the
-``GuzzleHttp\Ring\Future\FutureValue`` class. This class's constructor
-accepts a promise as the first argument, a wait function as the second
-argument, and a cancellation function as the third argument. The dereference
-function is used to force the promise to resolve (for example, manually ticking
-an event loop). The cancel function is optional and is used to tell the thing
-that created the promise that it can stop computing the result (for example,
-telling an event loop to stop transferring a request).
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Future\FutureValue;
-    use React\Promise\Deferred;
-
-    $deferred = new Deferred();
-    $promise = $deferred->promise();
-
-    $f = new FutureValue(
-        $promise,
-        function () use ($deferred) {
-            // This function is responsible for blocking and resolving the
-            // promise. Here we pass in a reference to the deferred so that
-            // it can be resolved or rejected.
-            $deferred->resolve('foo');
-        }
-    );
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/index.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/index.rst
deleted file mode 100644
index 4bbce631c7089a011133baae5571ccba1a44296a..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/index.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-=======
-RingPHP
-=======
-
-Provides a simple API and specification that abstracts away the details of HTTP
-into a single PHP function. RingPHP be used to power HTTP clients and servers
-through a PHP function that accepts a request hash and returns a response hash
-that is fulfilled using a `promise <https://github.com/reactphp/promise>`_,
-allowing RingPHP to support both synchronous and asynchronous workflows.
-
-By abstracting the implementation details of different HTTP clients and
-servers, RingPHP allows you to utilize pluggable HTTP clients and servers
-without tying your application to a specific implementation.
-
-.. toctree::
-   :maxdepth: 2
-
-   spec
-   futures
-   client_middleware
-   client_handlers
-   testing
-
-.. code-block:: php
-
-    <?php
-    require 'vendor/autoload.php';
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-
-    $handler = new CurlHandler();
-    $response = $handler([
-        'http_method' => 'GET',
-        'uri'         => '/',
-        'headers'     => [
-            'host'  => ['www.google.com'],
-            'x-foo' => ['baz']
-        ]
-    ]);
-
-    $response->then(function (array $response) {
-        echo $response['status'];
-    });
-
-    $response->wait();
-
-RingPHP is inspired by Clojure's `Ring <https://github.com/ring-clojure/ring>`_,
-which, in turn, was inspired by Python's WSGI and Ruby's Rack. RingPHP is
-utilized as the handler layer in `Guzzle <http://guzzlephp.org>`_ 5.0+ to send
-HTTP requests.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/requirements.txt b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/requirements.txt
deleted file mode 100644
index 483a4e9600bd7a794750dd52ca24503fdf220133..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-sphinx_rtd_theme
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/spec.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/spec.rst
deleted file mode 100644
index bc9107898f4a19e53a760c74259a95960218ebcf..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/spec.rst
+++ /dev/null
@@ -1,311 +0,0 @@
-=============
-Specification
-=============
-
-RingPHP applications consist of handlers, requests, responses, and
-middleware.
-
-Handlers
---------
-
-Handlers are implemented as a PHP ``callable`` that accept a request array 
-and return a response array (``GuzzleHttp\Ring\Future\FutureArrayInterface``).
-
-For example:
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Future\CompletedFutureArray;
-
-    $mockHandler = function (array $request) {
-        return new CompletedFutureArray([
-            'status'  => 200,
-            'headers' => ['X-Foo' => ['Bar']],
-            'body'    => 'Hello!'
-         ]);
-    };
-
-This handler returns the same response each time it is invoked. All RingPHP
-handlers must return a ``GuzzleHttp\Ring\Future\FutureArrayInterface``. Use
-``GuzzleHttp\Ring\Future\CompletedFutureArray`` when returning a response that
-has already completed.
-
-Requests
---------
-
-A request array is a PHP associative array that contains the configuration
-settings need to send a request.
-
-.. code-block:: php
-
-    $request = [
-        'http_method' => 'GET',
-        'scheme'      => 'http',
-        'uri'         => '/',
-        'body'        => 'hello!',
-        'client'      => ['timeout' => 1.0],
-        'headers'     => [
-            'host'  => ['httpbin.org'],
-            'X-Foo' => ['baz', 'bar']
-        ]
-    ];
-
-The request array contains the following key value pairs:
-
-request_method
-    (string, required) The HTTP request method, must be all caps corresponding
-    to a HTTP request method, such as ``GET`` or ``POST``.
-
-scheme
-    (string) The transport protocol, must be one of ``http`` or ``https``.
-    Defaults to ``http``.
-
-uri
-    (string, required) The request URI excluding the query string. Must
-    start with "/".
-
-query_string
-    (string) The query string, if present (e.g., ``foo=bar``).
-
-version
-    (string) HTTP protocol version. Defaults to ``1.1``.
-
-headers
-    (required, array) Associative array of headers. Each key represents the
-    header name. Each value contains an array of strings where each entry of
-    the array SHOULD be sent over the wire on a separate header line.
-
-body
-    (string, fopen resource, ``Iterator``, ``GuzzleHttp\Stream\StreamInterface``)
-    The body of the request, if present. Can be a string, resource returned
-    from fopen, an ``Iterator`` that yields chunks of data, an object that
-    implemented ``__toString``, or a ``GuzzleHttp\Stream\StreamInterface``.
-
-future
-    (bool, string) Controls the asynchronous behavior of a response.
-
-    Set to ``true`` or omit the ``future`` option to *request* that a request
-    will be completed asynchronously. Keep in mind that your request might not
-    necessarily be completed asynchronously based on the handler you are using.
-    Set the ``future`` option to ``false`` to request that a synchronous
-    response be provided.
-
-    You can provide a string value to specify fine-tuned future behaviors that
-    may be specific to the underlying handlers you are using. There are,
-    however, some common future options that handlers should implement if
-    possible.
-
-    lazy
-        Requests that the handler does not open and send the request
-        immediately, but rather only opens and sends the request once the
-        future is dereferenced. This option is often useful for sending a large
-        number of requests concurrently to allow handlers to take better
-        advantage of non-blocking transfers by first building up a pool of
-        requests.
-
-    If an handler does not implement or understand a provided string value,
-    then the request MUST be treated as if the user provided ``true`` rather
-    than the string value.
-
-    Future responses created by asynchronous handlers MUST attempt to complete
-    any outstanding future responses when they are destructed. Asynchronous
-    handlers MAY choose to automatically complete responses when the number
-    of outstanding requests reaches an handler-specific threshold.
-
-Client Specific Options
-~~~~~~~~~~~~~~~~~~~~~~~
-
-The following options are only used in ring client handlers.
-
-.. _client-options:
-
-client
-    (array) Associative array of client specific transfer options. The
-    ``client`` request key value pair can contain the following keys:
-
-    cert
-        (string, array) Set to a string to specify the path to a file
-        containing a PEM formatted SSL client side certificate. If a password
-        is required, then set ``cert`` to an array containing the path to the
-        PEM file in the first array element followed by the certificate
-        password in the second array element.
-
-    connect_timeout
-        (float) Float describing the number of seconds to wait while trying to
-        connect to a server. Use ``0`` to wait indefinitely (the default
-        behavior).
-
-    debug
-        (bool, fopen() resource) Set to true or set to a PHP stream returned by
-        fopen() to enable debug output with the handler used to send a request.
-        If set to ``true``, the output is written to PHP's STDOUT. If a PHP
-        ``fopen`` resource handle is provided, the output is written to the
-        stream.
-
-        "Debug output" is handler specific: different handlers will yield
-        different output and various various level of detail. For example, when
-        using cURL to transfer requests, cURL's `CURLOPT_VERBOSE <http://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html>`_
-        will be used. When using the PHP stream wrapper, `stream notifications <http://php.net/manual/en/function.stream-notification-callback.php>`_
-        will be emitted.
-
-    decode_content
-        (bool) Specify whether or not ``Content-Encoding`` responses
-        (gzip, deflate, etc.) are automatically decoded. Set to ``true`` to
-        automatically decode encoded responses. Set to ``false`` to not decode
-        responses. By default, content is *not* decoded automatically.
-
-    delay
-        (int) The number of milliseconds to delay before sending the request.
-        This is often used for delaying before retrying a request. Handlers
-        SHOULD implement this if possible, but it is not a strict requirement.
-
-    progress
-        (function) Defines a function to invoke when transfer progress is made.
-        The function accepts the following arguments:
-
-        1. The total number of bytes expected to be downloaded
-        2. The number of bytes downloaded so far
-        3. The number of bytes expected to be uploaded
-        4. The number of bytes uploaded so far
-
-    proxy
-        (string, array) Pass a string to specify an HTTP proxy, or an
-        associative array to specify different proxies for different protocols
-        where the scheme is the key and the value is the proxy address.
-
-        .. code-block:: php
-
-            $request = [
-                'http_method' => 'GET',
-                'headers'     => ['host' => ['httpbin.org']],
-                'client'      => [
-                    // Use different proxies for different URI schemes.
-                    'proxy' => [
-                        'http'  => 'http://proxy.example.com:5100',
-                        'https' => 'https://proxy.example.com:6100'
-                    ]
-                ]
-            ];
-
-    ssl_key
-        (string, array) Specify the path to a file containing a private SSL key
-        in PEM format. If a password is required, then set to an array
-        containing the path to the SSL key in the first array element followed
-        by the password required for the certificate in the second element.
-
-    save_to
-        (string, fopen resource, ``GuzzleHttp\Stream\StreamInterface``)
-        Specifies where the body of the response is downloaded. Pass a string to
-        open a local file on disk and save the output to the file. Pass an fopen
-        resource to save the output to a PHP stream resource. Pass a
-        ``GuzzleHttp\Stream\StreamInterface`` to save the output to a Guzzle
-        StreamInterface. Omitting this option will typically save the body of a
-        response to a PHP temp stream.
-
-    stream
-        (bool) Set to true to stream a response rather than download it all
-        up-front. This option will only be utilized when the corresponding
-        handler supports it.
-
-    timeout
-        (float) Float describing the timeout of the request in seconds. Use 0 to
-        wait indefinitely (the default behavior).
-
-    verify
-        (bool, string) Describes the SSL certificate verification behavior of a
-        request. Set to true to enable SSL certificate verification using the
-        system CA bundle when available (the default). Set to false to disable
-        certificate verification (this is insecure!). Set to a string to provide
-        the path to a CA bundle on disk to enable verification using a custom
-        certificate.
-
-    version
-        (string) HTTP protocol version to use with the request.
-
-Server Specific Options
-~~~~~~~~~~~~~~~~~~~~~~~
-
-The following options are only used in ring server handlers.
-
-server_port
-    (integer) The port on which the request is being handled. This is only
-    used with ring servers, and is required.
-
-server_name
-    (string) The resolved server name, or the server IP address. Required when
-    using a Ring server.
-
-remote_addr
-    (string) The IP address of the client or the last proxy that sent the
-    request. Required when using a Ring server.
-
-Responses
----------
-
-A response is an array-like object that implements
-``GuzzleHttp\Ring\Future\FutureArrayInterface``. Responses contain the
-following key value pairs:
-
-body
-    (string, fopen resource, ``Iterator``, ``GuzzleHttp\Stream\StreamInterface``)
-    The body of the response, if present. Can be a string, resource returned
-    from fopen, an ``Iterator`` that yields chunks of data, an object that
-    implemented ``__toString``, or a ``GuzzleHttp\Stream\StreamInterface``.
-
-effective_url
-    (string) The URL that returned the resulting response.
-
-error
-    (``\Exception``) Contains an exception describing any errors that were
-    encountered during the transfer.
-
-headers
-    (Required, array) Associative array of headers. Each key represents the
-    header name. Each value contains an array of strings where each entry of
-    the array is a header line. The headers array MAY be an empty array in the
-    event an error occurred before a response was received.
-
-reason
-    (string) Optional reason phrase. This option should be provided when the
-    reason phrase does not match the typical reason phrase associated with the
-    ``status`` code. See `RFC 7231 <http://tools.ietf.org/html/rfc7231#section-6.1>`_
-    for a list of HTTP reason phrases mapped to status codes.
-
-status
-    (Required, integer) The HTTP status code. The status code MAY be set to
-    ``null`` in the event an error occurred before a response was received
-    (e.g., a networking error).
-
-transfer_stats
-    (array) Provides an associative array of arbitrary transfer statistics if
-    provided by the underlying handler.
-
-version
-    (string) HTTP protocol version. Defaults to ``1.1``.
-
-Middleware
-----------
-
-Ring middleware augments the functionality of handlers by invoking them in the
-process of generating responses. Middleware is typically implemented as a
-higher-order function that takes one or more handlers as arguments followed by
-an optional associative array of options as the last argument, returning a new
-handler with the desired compound behavior.
-
-Here's an example of a middleware that adds a Content-Type header to each
-request.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\CurlHandler;
-    use GuzzleHttp\Ring\Core;
-
-    $contentTypeHandler = function(callable $handler, $contentType) {
-        return function (array $request) use ($handler, $contentType) {
-            return $handler(Core::setHeader('Content-Type', $contentType));
-        };
-    };
-
-    $baseHandler = new CurlHandler();
-    $wrappedHandler = $contentTypeHandler($baseHandler, 'text/html');
-    $response = $wrappedHandler([/** request hash **/]);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/testing.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/testing.rst
deleted file mode 100644
index 9df2562ed42817f4972d6ae57ba2dd86f27587e5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/docs/testing.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-=======
-Testing
-=======
-
-RingPHP tests client handlers using `PHPUnit <https://phpunit.de/>`_ and a
-built-in node.js web server.
-
-Running Tests
--------------
-
-First, install the dependencies using `Composer <https://getcomposer.org>`_.
-
-    composer.phar install
-
-Next, run the unit tests using ``Make``.
-
-    make test
-
-The tests are also run on Travis-CI on each commit: https://travis-ci.org/guzzle/guzzle-ring
-
-Test Server
------------
-
-Testing client handlers usually involves actually sending HTTP requests.
-RingPHP provides a node.js web server that returns canned responses and
-keep a list of the requests that have been received. The server can then
-be queried to get a list of the requests that were sent by the client so that
-you can ensure that the client serialized and transferred requests as intended.
-
-The server keeps a list of queued responses and returns responses that are
-popped off of the queue as HTTP requests are received. When there are not
-more responses to serve, the server returns a 500 error response.
-
-The test server uses the ``GuzzleHttp\Tests\Ring\Client\Server`` class to
-control the server.
-
-.. code-block:: php
-
-    use GuzzleHttp\Ring\Client\StreamHandler;
-    use GuzzleHttp\Tests\Ring\Client\Server;
-
-    // First return a 200 followed by a 404 response.
-    Server::enqueue([
-        ['status' => 200],
-        ['status' => 404]
-    ]);
-
-    $handler = new StreamHandler();
-
-    $response = $handler([
-        'http_method' => 'GET',
-        'headers'     => ['host' => [Server::$host]],
-        'uri'         => '/'
-    ]);
-
-    assert(200 == $response['status']);
-
-    $response = $handler([
-        'http_method' => 'HEAD',
-        'headers'     => ['host' => [Server::$host]],
-        'uri'         => '/'
-    ]);
-
-    assert(404 == $response['status']);
-
-After requests have been sent, you can get a list of the requests as they
-were sent over the wire to ensure they were sent correctly.
-
-.. code-block:: php
-
-    $received = Server::received();
-
-    assert('GET' == $received[0]['http_method']);
-    assert('HEAD' == $received[1]['http_method']);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/phpunit.xml.dist b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/phpunit.xml.dist
deleted file mode 100644
index 1d192902507b9f1c21f28fbdebdf3ddcbea0167c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/phpunit.xml.dist
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit bootstrap="./tests/bootstrap.php"
-         colors="true">
-    <testsuites>
-        <testsuite>
-            <directory>tests</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">src</directory>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/ClientUtils.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/ClientUtils.php
deleted file mode 100644
index 2acf92eba0d04ecb9c7a1021513039931f47d9b6..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/ClientUtils.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-/**
- * Client specific utility functions.
- */
-class ClientUtils
-{
-    /**
-     * Returns the default cacert bundle for the current system.
-     *
-     * First, the openssl.cafile and curl.cainfo php.ini settings are checked.
-     * If those settings are not configured, then the common locations for
-     * bundles found on Red Hat, CentOS, Fedora, Ubuntu, Debian, FreeBSD, OS X
-     * and Windows are checked. If any of these file locations are found on
-     * disk, they will be utilized.
-     *
-     * Note: the result of this function is cached for subsequent calls.
-     *
-     * @return string
-     * @throws \RuntimeException if no bundle can be found.
-     */
-    public static function getDefaultCaBundle()
-    {
-        static $cached = null;
-        static $cafiles = [
-            // Red Hat, CentOS, Fedora (provided by the ca-certificates package)
-            '/etc/pki/tls/certs/ca-bundle.crt',
-            // Ubuntu, Debian (provided by the ca-certificates package)
-            '/etc/ssl/certs/ca-certificates.crt',
-            // FreeBSD (provided by the ca_root_nss package)
-            '/usr/local/share/certs/ca-root-nss.crt',
-            // OS X provided by homebrew (using the default path)
-            '/usr/local/etc/openssl/cert.pem',
-            // Windows?
-            'C:\\windows\\system32\\curl-ca-bundle.crt',
-            'C:\\windows\\curl-ca-bundle.crt',
-        ];
-
-        if ($cached) {
-            return $cached;
-        }
-
-        if ($ca = ini_get('openssl.cafile')) {
-            return $cached = $ca;
-        }
-
-        if ($ca = ini_get('curl.cainfo')) {
-            return $cached = $ca;
-        }
-
-        foreach ($cafiles as $filename) {
-            if (file_exists($filename)) {
-                return $cached = $filename;
-            }
-        }
-
-        throw new \RuntimeException(self::CA_ERR);
-    }
-
-    const CA_ERR = "
-No system CA bundle could be found in any of the the common system locations.
-PHP versions earlier than 5.6 are not properly configured to use the system's
-CA bundle by default. In order to verify peer certificates, you will need to
-supply the path on disk to a certificate bundle to the 'verify' request
-option: http://docs.guzzlephp.org/en/latest/clients.html#verify. If you do not
-need a specific certificate bundle, then Mozilla provides a commonly used CA
-bundle which can be downloaded here (provided by the maintainer of cURL):
-https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt. Once
-you have a CA bundle available on disk, you can set the 'openssl.cafile' PHP
-ini setting to point to the path to the file, allowing you to omit the 'verify'
-request option. See http://curl.haxx.se/docs/sslcerts.html for more
-information.";
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php
deleted file mode 100644
index efe4659bf4058376796b58bf7de32a8bc8c4faac..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php
+++ /dev/null
@@ -1,560 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Exception\ConnectException;
-use GuzzleHttp\Ring\Exception\RingException;
-use GuzzleHttp\Stream\LazyOpenStream;
-use GuzzleHttp\Stream\StreamInterface;
-
-/**
- * Creates curl resources from a request
- */
-class CurlFactory
-{
-    /**
-     * Creates a cURL handle, header resource, and body resource based on a
-     * transaction.
-     *
-     * @param array         $request Request hash
-     * @param null|resource $handle  Optionally provide a curl handle to modify
-     *
-     * @return array Returns an array of the curl handle, headers array, and
-     *               response body handle.
-     * @throws \RuntimeException when an option cannot be applied
-     */
-    public function __invoke(array $request, $handle = null)
-    {
-        $headers = [];
-        $options = $this->getDefaultOptions($request, $headers);
-        $this->applyMethod($request, $options);
-
-        if (isset($request['client'])) {
-            $this->applyHandlerOptions($request, $options);
-        }
-
-        $this->applyHeaders($request, $options);
-        unset($options['_headers']);
-
-        // Add handler options from the request's configuration options
-        if (isset($request['client']['curl'])) {
-            $options = $this->applyCustomCurlOptions(
-                $request['client']['curl'],
-                $options
-            );
-        }
-
-        if (!$handle) {
-            $handle = curl_init();
-        }
-
-        $body = $this->getOutputBody($request, $options);
-        curl_setopt_array($handle, $options);
-
-        return [$handle, &$headers, $body];
-    }
-
-    /**
-     * Creates a response hash from a cURL result.
-     *
-     * @param callable $handler  Handler that was used.
-     * @param array    $request  Request that sent.
-     * @param array    $response Response hash to update.
-     * @param array    $headers  Headers received during transfer.
-     * @param resource $body     Body fopen response.
-     *
-     * @return array
-     */
-    public static function createResponse(
-        callable $handler,
-        array $request,
-        array $response,
-        array $headers,
-        $body
-    ) {
-        if (isset($response['transfer_stats']['url'])) {
-            $response['effective_url'] = $response['transfer_stats']['url'];
-        }
-
-        if (!empty($headers)) {
-            $startLine = explode(' ', array_shift($headers), 3);
-            $headerList = Core::headersFromLines($headers);
-            $response['headers'] = $headerList;
-            $response['version'] = isset($startLine[0]) ? substr($startLine[0], 5) : null;
-            $response['status'] = isset($startLine[1]) ? (int) $startLine[1] : null;
-            $response['reason'] = isset($startLine[2]) ? $startLine[2] : null;
-            $response['body'] = $body;
-            Core::rewindBody($response);
-        }
-
-        return !empty($response['curl']['errno']) || !isset($response['status'])
-            ? self::createErrorResponse($handler, $request, $response)
-            : $response;
-    }
-
-    private static function createErrorResponse(
-        callable $handler,
-        array $request,
-        array $response
-    ) {
-        static $connectionErrors = [
-            CURLE_OPERATION_TIMEOUTED  => true,
-            CURLE_COULDNT_RESOLVE_HOST => true,
-            CURLE_COULDNT_CONNECT      => true,
-            CURLE_SSL_CONNECT_ERROR    => true,
-            CURLE_GOT_NOTHING          => true,
-        ];
-
-        // Retry when nothing is present or when curl failed to rewind.
-        if (!isset($response['err_message'])
-            && (empty($response['curl']['errno'])
-                || $response['curl']['errno'] == 65)
-        ) {
-            return self::retryFailedRewind($handler, $request, $response);
-        }
-
-        $message = isset($response['err_message'])
-            ? $response['err_message']
-            : sprintf('cURL error %s: %s',
-                $response['curl']['errno'],
-                isset($response['curl']['error'])
-                    ? $response['curl']['error']
-                    : 'See http://curl.haxx.se/libcurl/c/libcurl-errors.html');
-
-        $error = isset($response['curl']['errno'])
-            && isset($connectionErrors[$response['curl']['errno']])
-            ? new ConnectException($message)
-            : new RingException($message);
-
-        return $response + [
-            'status'  => null,
-            'reason'  => null,
-            'body'    => null,
-            'headers' => [],
-            'error'   => $error,
-        ];
-    }
-
-    private function getOutputBody(array $request, array &$options)
-    {
-        // Determine where the body of the response (if any) will be streamed.
-        if (isset($options[CURLOPT_WRITEFUNCTION])) {
-            return $request['client']['save_to'];
-        }
-
-        if (isset($options[CURLOPT_FILE])) {
-            return $options[CURLOPT_FILE];
-        }
-
-        if ($request['http_method'] != 'HEAD') {
-            // Create a default body if one was not provided
-            return $options[CURLOPT_FILE] = fopen('php://temp', 'w+');
-        }
-
-        return null;
-    }
-
-    private function getDefaultOptions(array $request, array &$headers)
-    {
-        $url = Core::url($request);
-        $startingResponse = false;
-
-        $options = [
-            '_headers'             => $request['headers'],
-            CURLOPT_CUSTOMREQUEST  => $request['http_method'],
-            CURLOPT_URL            => $url,
-            CURLOPT_RETURNTRANSFER => false,
-            CURLOPT_HEADER         => false,
-            CURLOPT_CONNECTTIMEOUT => 150,
-            CURLOPT_HEADERFUNCTION => function ($ch, $h) use (&$headers, &$startingResponse) {
-                $value = trim($h);
-                if ($value === '') {
-                    $startingResponse = true;
-                } elseif ($startingResponse) {
-                    $startingResponse = false;
-                    $headers = [$value];
-                } else {
-                    $headers[] = $value;
-                }
-                return strlen($h);
-            },
-        ];
-
-        if (isset($request['version'])) {
-            if ($request['version'] == 2.0) {
-                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0;
-            } else if ($request['version'] == 1.1) {
-                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1;
-            } else {
-                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
-            }
-        }
-
-        if (defined('CURLOPT_PROTOCOLS')) {
-            $options[CURLOPT_PROTOCOLS] = CURLPROTO_HTTP | CURLPROTO_HTTPS;
-        }
-
-        return $options;
-    }
-
-    private function applyMethod(array $request, array &$options)
-    {
-        if (isset($request['body'])) {
-            $this->applyBody($request, $options);
-            return;
-        }
-
-        switch ($request['http_method']) {
-            case 'PUT':
-            case 'POST':
-                // See http://tools.ietf.org/html/rfc7230#section-3.3.2
-                if (!Core::hasHeader($request, 'Content-Length')) {
-                    $options[CURLOPT_HTTPHEADER][] = 'Content-Length: 0';
-                }
-                break;
-            case 'HEAD':
-                $options[CURLOPT_NOBODY] = true;
-                unset(
-                    $options[CURLOPT_WRITEFUNCTION],
-                    $options[CURLOPT_READFUNCTION],
-                    $options[CURLOPT_FILE],
-                    $options[CURLOPT_INFILE]
-                );
-        }
-    }
-
-    private function applyBody(array $request, array &$options)
-    {
-        $contentLength = Core::firstHeader($request, 'Content-Length');
-        $size = $contentLength !== null ? (int) $contentLength : null;
-
-        // Send the body as a string if the size is less than 1MB OR if the
-        // [client][curl][body_as_string] request value is set.
-        if (($size !== null && $size < 1000000) ||
-            isset($request['client']['curl']['body_as_string']) ||
-            is_string($request['body'])
-        ) {
-            $options[CURLOPT_POSTFIELDS] = Core::body($request);
-            // Don't duplicate the Content-Length header
-            $this->removeHeader('Content-Length', $options);
-            $this->removeHeader('Transfer-Encoding', $options);
-        } else {
-            $options[CURLOPT_UPLOAD] = true;
-            if ($size !== null) {
-                // Let cURL handle setting the Content-Length header
-                $options[CURLOPT_INFILESIZE] = $size;
-                $this->removeHeader('Content-Length', $options);
-            }
-            $this->addStreamingBody($request, $options);
-        }
-
-        // If the Expect header is not present, prevent curl from adding it
-        if (!Core::hasHeader($request, 'Expect')) {
-            $options[CURLOPT_HTTPHEADER][] = 'Expect:';
-        }
-
-        // cURL sometimes adds a content-type by default. Prevent this.
-        if (!Core::hasHeader($request, 'Content-Type')) {
-            $options[CURLOPT_HTTPHEADER][] = 'Content-Type:';
-        }
-    }
-
-    private function addStreamingBody(array $request, array &$options)
-    {
-        $body = $request['body'];
-
-        if ($body instanceof StreamInterface) {
-            $options[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body) {
-                return (string) $body->read($length);
-            };
-            if (!isset($options[CURLOPT_INFILESIZE])) {
-                if ($size = $body->getSize()) {
-                    $options[CURLOPT_INFILESIZE] = $size;
-                }
-            }
-        } elseif (is_resource($body)) {
-            $options[CURLOPT_INFILE] = $body;
-        } elseif ($body instanceof \Iterator) {
-            $buf = '';
-            $options[CURLOPT_READFUNCTION] = function ($ch, $fd, $length) use ($body, &$buf) {
-                if ($body->valid()) {
-                    $buf .= $body->current();
-                    $body->next();
-                }
-                $result = (string) substr($buf, 0, $length);
-                $buf = substr($buf, $length);
-                return $result;
-            };
-        } else {
-            throw new \InvalidArgumentException('Invalid request body provided');
-        }
-    }
-
-    private function applyHeaders(array $request, array &$options)
-    {
-        foreach ($options['_headers'] as $name => $values) {
-            foreach ($values as $value) {
-                $options[CURLOPT_HTTPHEADER][] = "$name: $value";
-            }
-        }
-
-        // Remove the Accept header if one was not set
-        if (!Core::hasHeader($request, 'Accept')) {
-            $options[CURLOPT_HTTPHEADER][] = 'Accept:';
-        }
-    }
-
-    /**
-     * Takes an array of curl options specified in the 'curl' option of a
-     * request's configuration array and maps them to CURLOPT_* options.
-     *
-     * This method is only called when a  request has a 'curl' config setting.
-     *
-     * @param array $config  Configuration array of custom curl option
-     * @param array $options Array of existing curl options
-     *
-     * @return array Returns a new array of curl options
-     */
-    private function applyCustomCurlOptions(array $config, array $options)
-    {
-        $curlOptions = [];
-        foreach ($config as $key => $value) {
-            if (is_int($key)) {
-                $curlOptions[$key] = $value;
-            }
-        }
-
-        return $curlOptions + $options;
-    }
-
-    /**
-     * Remove a header from the options array.
-     *
-     * @param string $name    Case-insensitive header to remove
-     * @param array  $options Array of options to modify
-     */
-    private function removeHeader($name, array &$options)
-    {
-        foreach (array_keys($options['_headers']) as $key) {
-            if (!strcasecmp($key, $name)) {
-                unset($options['_headers'][$key]);
-                return;
-            }
-        }
-    }
-
-    /**
-     * Applies an array of request client options to a the options array.
-     *
-     * This method uses a large switch rather than double-dispatch to save on
-     * high overhead of calling functions in PHP.
-     */
-    private function applyHandlerOptions(array $request, array &$options)
-    {
-        foreach ($request['client'] as $key => $value) {
-            switch ($key) {
-            // Violating PSR-4 to provide more room.
-            case 'verify':
-
-                if ($value === false) {
-                    unset($options[CURLOPT_CAINFO]);
-                    $options[CURLOPT_SSL_VERIFYHOST] = 0;
-                    $options[CURLOPT_SSL_VERIFYPEER] = false;
-                    continue;
-                }
-
-                $options[CURLOPT_SSL_VERIFYHOST] = 2;
-                $options[CURLOPT_SSL_VERIFYPEER] = true;
-
-                if (is_string($value)) {
-                    $options[CURLOPT_CAINFO] = $value;
-                    if (!file_exists($value)) {
-                        throw new \InvalidArgumentException(
-                            "SSL CA bundle not found: $value"
-                        );
-                    }
-                }
-                break;
-
-            case 'decode_content':
-
-                if ($value === false) {
-                    continue;
-                }
-
-                $accept = Core::firstHeader($request, 'Accept-Encoding');
-                if ($accept) {
-                    $options[CURLOPT_ENCODING] = $accept;
-                } else {
-                    $options[CURLOPT_ENCODING] = '';
-                    // Don't let curl send the header over the wire
-                    $options[CURLOPT_HTTPHEADER][] = 'Accept-Encoding:';
-                }
-                break;
-
-            case 'save_to':
-
-                if (is_string($value)) {
-                    if (!is_dir(dirname($value))) {
-                        throw new \RuntimeException(sprintf(
-                            'Directory %s does not exist for save_to value of %s',
-                            dirname($value),
-                            $value
-                        ));
-                    }
-                    $value = new LazyOpenStream($value, 'w+');
-                }
-
-                if ($value instanceof StreamInterface) {
-                    $options[CURLOPT_WRITEFUNCTION] =
-                        function ($ch, $write) use ($value) {
-                            return $value->write($write);
-                        };
-                } elseif (is_resource($value)) {
-                    $options[CURLOPT_FILE] = $value;
-                } else {
-                    throw new \InvalidArgumentException('save_to must be a '
-                        . 'GuzzleHttp\Stream\StreamInterface or resource');
-                }
-                break;
-
-            case 'timeout':
-
-                if (defined('CURLOPT_TIMEOUT_MS')) {
-                    $options[CURLOPT_TIMEOUT_MS] = $value * 1000;
-                } else {
-                    $options[CURLOPT_TIMEOUT] = $value;
-                }
-                break;
-
-            case 'connect_timeout':
-
-                if (defined('CURLOPT_CONNECTTIMEOUT_MS')) {
-                    $options[CURLOPT_CONNECTTIMEOUT_MS] = $value * 1000;
-                } else {
-                    $options[CURLOPT_CONNECTTIMEOUT] = $value;
-                }
-                break;
-
-            case 'proxy':
-
-                if (!is_array($value)) {
-                    $options[CURLOPT_PROXY] = $value;
-                } elseif (isset($request['scheme'])) {
-                    $scheme = $request['scheme'];
-                    if (isset($value[$scheme])) {
-                        $options[CURLOPT_PROXY] = $value[$scheme];
-                    }
-                }
-                break;
-
-            case 'cert':
-
-                if (is_array($value)) {
-                    $options[CURLOPT_SSLCERTPASSWD] = $value[1];
-                    $value = $value[0];
-                }
-
-                if (!file_exists($value)) {
-                    throw new \InvalidArgumentException(
-                        "SSL certificate not found: {$value}"
-                    );
-                }
-
-                $options[CURLOPT_SSLCERT] = $value;
-                break;
-
-            case 'ssl_key':
-
-                if (is_array($value)) {
-                    $options[CURLOPT_SSLKEYPASSWD] = $value[1];
-                    $value = $value[0];
-                }
-
-                if (!file_exists($value)) {
-                    throw new \InvalidArgumentException(
-                        "SSL private key not found: {$value}"
-                    );
-                }
-
-                $options[CURLOPT_SSLKEY] = $value;
-                break;
-
-            case 'progress':
-
-                if (!is_callable($value)) {
-                    throw new \InvalidArgumentException(
-                        'progress client option must be callable'
-                    );
-                }
-
-                $options[CURLOPT_NOPROGRESS] = false;
-                $options[CURLOPT_PROGRESSFUNCTION] =
-                    function () use ($value) {
-                        $args = func_get_args();
-                        // PHP 5.5 pushed the handle onto the start of the args
-                        if (is_resource($args[0])) {
-                            array_shift($args);
-                        }
-                        call_user_func_array($value, $args);
-                    };
-                break;
-
-            case 'debug':
-
-                if ($value) {
-                    $options[CURLOPT_STDERR] = Core::getDebugResource($value);
-                    $options[CURLOPT_VERBOSE] = true;
-                }
-                break;
-            }
-        }
-    }
-
-    /**
-     * This function ensures that a response was set on a transaction. If one
-     * was not set, then the request is retried if possible. This error
-     * typically means you are sending a payload, curl encountered a
-     * "Connection died, retrying a fresh connect" error, tried to rewind the
-     * stream, and then encountered a "necessary data rewind wasn't possible"
-     * error, causing the request to be sent through curl_multi_info_read()
-     * without an error status.
-     */
-    private static function retryFailedRewind(
-        callable $handler,
-        array $request,
-        array $response
-    ) {
-        // If there is no body, then there is some other kind of issue. This
-        // is weird and should probably never happen.
-        if (!isset($request['body'])) {
-            $response['err_message'] = 'No response was received for a request '
-                . 'with no body. This could mean that you are saturating your '
-                . 'network.';
-            return self::createErrorResponse($handler, $request, $response);
-        }
-
-        if (!Core::rewindBody($request)) {
-            $response['err_message'] = 'The connection unexpectedly failed '
-                . 'without providing an error. The request would have been '
-                . 'retried, but attempting to rewind the request body failed.';
-            return self::createErrorResponse($handler, $request, $response);
-        }
-
-        // Retry no more than 3 times before giving up.
-        if (!isset($request['curl']['retries'])) {
-            $request['curl']['retries'] = 1;
-        } elseif ($request['curl']['retries'] == 2) {
-            $response['err_message'] = 'The cURL request was retried 3 times '
-                . 'and did no succeed. cURL was unable to rewind the body of '
-                . 'the request and subsequent retries resulted in the same '
-                . 'error. Turn on the debug option to see what went wrong. '
-                . 'See https://bugs.php.net/bug.php?id=47204 for more information.';
-            return self::createErrorResponse($handler, $request, $response);
-        } else {
-            $request['curl']['retries']++;
-        }
-
-        return $handler($request);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php
deleted file mode 100644
index e00aa4eaca31e6290985a1a788009758360fe999..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-use GuzzleHttp\Ring\Core;
-
-/**
- * HTTP handler that uses cURL easy handles as a transport layer.
- *
- * Requires PHP 5.5+
- *
- * When using the CurlHandler, custom curl options can be specified as an
- * associative array of curl option constants mapping to values in the
- * **curl** key of the "client" key of the request.
- */
-class CurlHandler
-{
-    /** @var callable */
-    private $factory;
-
-    /** @var array Array of curl easy handles */
-    private $handles = [];
-
-    /** @var array Array of owned curl easy handles */
-    private $ownedHandles = [];
-
-    /** @var int Total number of idle handles to keep in cache */
-    private $maxHandles;
-
-    /**
-     * Accepts an associative array of options:
-     *
-     * - factory: Optional callable factory used to create cURL handles.
-     *   The callable is passed a request hash when invoked, and returns an
-     *   array of the curl handle, headers resource, and body resource.
-     * - max_handles: Maximum number of idle handles (defaults to 5).
-     *
-     * @param array $options Array of options to use with the handler
-     */
-    public function __construct(array $options = [])
-    {
-        $this->handles = $this->ownedHandles = [];
-        $this->factory = isset($options['handle_factory'])
-            ? $options['handle_factory']
-            : new CurlFactory();
-        $this->maxHandles = isset($options['max_handles'])
-            ? $options['max_handles']
-            : 5;
-    }
-
-    public function __destruct()
-    {
-        foreach ($this->handles as $handle) {
-            if (is_resource($handle)) {
-                curl_close($handle);
-            }
-        }
-    }
-
-    /**
-     * @param array $request
-     *
-     * @return CompletedFutureArray
-     */
-    public function __invoke(array $request)
-    {
-        return new CompletedFutureArray(
-            $this->_invokeAsArray($request)
-        );
-    }
-
-    /**
-     * @internal
-     *
-     * @param array $request
-     *
-     * @return array
-     */
-    public function _invokeAsArray(array $request)
-    {
-        $factory = $this->factory;
-
-        // Ensure headers are by reference. They're updated elsewhere.
-        $result = $factory($request, $this->checkoutEasyHandle());
-        $h = $result[0];
-        $hd =& $result[1];
-        $bd = $result[2];
-        Core::doSleep($request);
-        curl_exec($h);
-        $response = ['transfer_stats' => curl_getinfo($h)];
-        $response['curl']['error'] = curl_error($h);
-        $response['curl']['errno'] = curl_errno($h);
-        $response['transfer_stats'] = array_merge($response['transfer_stats'], $response['curl']);
-        $this->releaseEasyHandle($h);
-
-        return CurlFactory::createResponse([$this, '_invokeAsArray'], $request, $response, $hd, $bd);
-    }
-
-    private function checkoutEasyHandle()
-    {
-        // Find an unused handle in the cache
-        if (false !== ($key = array_search(false, $this->ownedHandles, true))) {
-            $this->ownedHandles[$key] = true;
-            return $this->handles[$key];
-        }
-
-        // Add a new handle
-        $handle = curl_init();
-        $id = (int) $handle;
-        $this->handles[$id] = $handle;
-        $this->ownedHandles[$id] = true;
-
-        return $handle;
-    }
-
-    private function releaseEasyHandle($handle)
-    {
-        $id = (int) $handle;
-        if (count($this->ownedHandles) > $this->maxHandles) {
-            curl_close($this->handles[$id]);
-            unset($this->handles[$id], $this->ownedHandles[$id]);
-        } else {
-            // curl_reset doesn't clear these out for some reason
-            static $unsetValues = [
-                CURLOPT_HEADERFUNCTION   => null,
-                CURLOPT_WRITEFUNCTION    => null,
-                CURLOPT_READFUNCTION     => null,
-                CURLOPT_PROGRESSFUNCTION => null,
-            ];
-            curl_setopt_array($handle, $unsetValues);
-            curl_reset($handle);
-            $this->ownedHandles[$id] = false;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlMultiHandler.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlMultiHandler.php
deleted file mode 100644
index b45f6c3979a9db53e2aeb153ed3df1388c74b676..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/CurlMultiHandler.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-use GuzzleHttp\Ring\Future\FutureArray;
-use React\Promise\Deferred;
-
-/**
- * Returns an asynchronous response using curl_multi_* functions.
- *
- * This handler supports future responses and the "delay" request client
- * option that can be used to delay before sending a request.
- *
- * When using the CurlMultiHandler, custom curl options can be specified as an
- * associative array of curl option constants mapping to values in the
- * **curl** key of the "client" key of the request.
- *
- * @property resource $_mh Internal use only. Lazy loaded multi-handle.
- */
-class CurlMultiHandler
-{
-    /** @var callable */
-    private $factory;
-    private $selectTimeout;
-    private $active;
-    private $handles = [];
-    private $delays = [];
-    private $maxHandles;
-
-    /**
-     * This handler accepts the following options:
-     *
-     * - mh: An optional curl_multi resource
-     * - handle_factory: An optional callable used to generate curl handle
-     *   resources. the callable accepts a request hash and returns an array
-     *   of the handle, headers file resource, and the body resource.
-     * - select_timeout: Optional timeout (in seconds) to block before timing
-     *   out while selecting curl handles. Defaults to 1 second.
-     * - max_handles: Optional integer representing the maximum number of
-     *   open requests. When this number is reached, the queued futures are
-     *   flushed.
-     *
-     * @param array $options
-     */
-    public function __construct(array $options = [])
-    {
-        if (isset($options['mh'])) {
-            $this->_mh = $options['mh'];
-        }
-        $this->factory = isset($options['handle_factory'])
-            ? $options['handle_factory'] : new CurlFactory();
-        $this->selectTimeout = isset($options['select_timeout'])
-            ? $options['select_timeout'] : 1;
-        $this->maxHandles = isset($options['max_handles'])
-            ? $options['max_handles'] : 100;
-    }
-
-    public function __get($name)
-    {
-        if ($name === '_mh') {
-            return $this->_mh = curl_multi_init();
-        }
-
-        throw new \BadMethodCallException();
-    }
-
-    public function __destruct()
-    {
-        // Finish any open connections before terminating the script.
-        if ($this->handles) {
-            $this->execute();
-        }
-
-        if (isset($this->_mh)) {
-            curl_multi_close($this->_mh);
-            unset($this->_mh);
-        }
-    }
-
-    public function __invoke(array $request)
-    {
-        $factory = $this->factory;
-        $result = $factory($request);
-        $entry = [
-            'request'  => $request,
-            'response' => [],
-            'handle'   => $result[0],
-            'headers'  => &$result[1],
-            'body'     => $result[2],
-            'deferred' => new Deferred(),
-        ];
-
-        $id = (int) $result[0];
-
-        $future = new FutureArray(
-            $entry['deferred']->promise(),
-            [$this, 'execute'],
-            function () use ($id) {
-                return $this->cancel($id);
-            }
-        );
-
-        $this->addRequest($entry);
-
-        // Transfer outstanding requests if there are too many open handles.
-        if (count($this->handles) >= $this->maxHandles) {
-            $this->execute();
-        }
-
-        return $future;
-    }
-
-    /**
-     * Runs until all outstanding connections have completed.
-     */
-    public function execute()
-    {
-        do {
-
-            if ($this->active &&
-                curl_multi_select($this->_mh, $this->selectTimeout) === -1
-            ) {
-                // Perform a usleep if a select returns -1.
-                // See: https://bugs.php.net/bug.php?id=61141
-                usleep(250);
-            }
-
-            // Add any delayed futures if needed.
-            if ($this->delays) {
-                $this->addDelays();
-            }
-
-            do {
-                $mrc = curl_multi_exec($this->_mh, $this->active);
-            } while ($mrc === CURLM_CALL_MULTI_PERFORM);
-
-            $this->processMessages();
-
-            // If there are delays but no transfers, then sleep for a bit.
-            if (!$this->active && $this->delays) {
-                usleep(500);
-            }
-
-        } while ($this->active || $this->handles);
-    }
-
-    private function addRequest(array &$entry)
-    {
-        $id = (int) $entry['handle'];
-        $this->handles[$id] = $entry;
-
-        // If the request is a delay, then add the reques to the curl multi
-        // pool only after the specified delay.
-        if (isset($entry['request']['client']['delay'])) {
-            $this->delays[$id] = microtime(true) + ($entry['request']['client']['delay'] / 1000);
-        } elseif (empty($entry['request']['future'])) {
-            curl_multi_add_handle($this->_mh, $entry['handle']);
-        } else {
-            curl_multi_add_handle($this->_mh, $entry['handle']);
-            // "lazy" futures are only sent once the pool has many requests.
-            if ($entry['request']['future'] !== 'lazy') {
-                do {
-                    $mrc = curl_multi_exec($this->_mh, $this->active);
-                } while ($mrc === CURLM_CALL_MULTI_PERFORM);
-                $this->processMessages();
-            }
-        }
-    }
-
-    private function removeProcessed($id)
-    {
-        if (isset($this->handles[$id])) {
-            curl_multi_remove_handle(
-                $this->_mh,
-                $this->handles[$id]['handle']
-            );
-            curl_close($this->handles[$id]['handle']);
-            unset($this->handles[$id], $this->delays[$id]);
-        }
-    }
-
-    /**
-     * Cancels a handle from sending and removes references to it.
-     *
-     * @param int $id Handle ID to cancel and remove.
-     *
-     * @return bool True on success, false on failure.
-     */
-    private function cancel($id)
-    {
-        // Cannot cancel if it has been processed.
-        if (!isset($this->handles[$id])) {
-            return false;
-        }
-
-        $handle = $this->handles[$id]['handle'];
-        unset($this->delays[$id], $this->handles[$id]);
-        curl_multi_remove_handle($this->_mh, $handle);
-        curl_close($handle);
-
-        return true;
-    }
-
-    private function addDelays()
-    {
-        $currentTime = microtime(true);
-
-        foreach ($this->delays as $id => $delay) {
-            if ($currentTime >= $delay) {
-                unset($this->delays[$id]);
-                curl_multi_add_handle(
-                    $this->_mh,
-                    $this->handles[$id]['handle']
-                );
-            }
-        }
-    }
-
-    private function processMessages()
-    {
-        while ($done = curl_multi_info_read($this->_mh)) {
-            $id = (int) $done['handle'];
-
-            if (!isset($this->handles[$id])) {
-                // Probably was cancelled.
-                continue;
-            }
-
-            $entry = $this->handles[$id];
-            $entry['response']['transfer_stats'] = curl_getinfo($done['handle']);
-
-            if ($done['result'] !== CURLM_OK) {
-                $entry['response']['curl']['errno'] = $done['result'];
-                if (function_exists('curl_strerror')) {
-                    $entry['response']['curl']['error'] = curl_strerror($done['result']);
-                }
-            }
-
-            $result = CurlFactory::createResponse(
-                $this,
-                $entry['request'],
-                $entry['response'],
-                $entry['headers'],
-                $entry['body']
-            );
-
-            $this->removeProcessed($id);
-            $entry['deferred']->resolve($result);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/Middleware.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/Middleware.php
deleted file mode 100644
index 6fa7318abae26d673d91626243f9ff0e43c443b7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/Middleware.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-/**
- * Provides basic middleware wrappers.
- *
- * If a middleware is more complex than a few lines of code, then it should
- * be implemented in a class rather than a static method.
- */
-class Middleware
-{
-    /**
-     * Sends future requests to a future compatible handler while sending all
-     * other requests to a default handler.
-     *
-     * When the "future" option is not provided on a request, any future responses
-     * are automatically converted to synchronous responses and block.
-     *
-     * @param callable $default Handler used for non-streaming responses
-     * @param callable $future  Handler used for future responses
-     *
-     * @return callable Returns the composed handler.
-     */
-    public static function wrapFuture(
-        callable $default,
-        callable $future
-    ) {
-        return function (array $request) use ($default, $future) {
-            return empty($request['client']['future'])
-                ? $default($request)
-                : $future($request);
-        };
-    }
-
-    /**
-     * Sends streaming requests to a streaming compatible handler while sendin
-     * all other requests to a default handler.
-     *
-     * This, for example, could be useful for taking advantage of the
-     * performance benefits of curl while still supporting true streaming
-     * through the StreamHandler.
-     *
-     * @param callable $default   Handler used for non-streaming responses
-     * @param callable $streaming Handler used for streaming responses
-     *
-     * @return callable Returns the composed handler.
-     */
-    public static function wrapStreaming(
-        callable $default,
-        callable $streaming
-    ) {
-        return function (array $request) use ($default, $streaming) {
-            return empty($request['client']['stream'])
-                ? $default($request)
-                : $streaming($request);
-        };
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/MockHandler.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/MockHandler.php
deleted file mode 100644
index 56cc32da77f4b7fca6dc433709355b3d112aa38e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/MockHandler.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-
-/**
- * Ring handler that returns a canned response or evaluated function result.
- */
-class MockHandler
-{
-    /** @var callable|array|FutureArrayInterface */
-    private $result;
-
-    /**
-     * Provide an array or future to always return the same value. Provide a
-     * callable that accepts a request object and returns an array or future
-     * to dynamically create a response.
-     *
-     * @param array|FutureArrayInterface|callable $result Mock return value.
-     */
-    public function __construct($result)
-    {
-        $this->result = $result;
-    }
-
-    public function __invoke(array $request)
-    {
-        Core::doSleep($request);
-        $response = is_callable($this->result)
-            ? call_user_func($this->result, $request)
-            : $this->result;
-
-        if (is_array($response)) {
-            $response = new CompletedFutureArray($response + [
-                'status'        => null,
-                'body'          => null,
-                'headers'       => [],
-                'reason'        => null,
-                'effective_url' => null,
-            ]);
-        } elseif (!$response instanceof FutureArrayInterface) {
-            throw new \InvalidArgumentException(
-                'Response must be an array or FutureArrayInterface. Found '
-                . Core::describeType($request)
-            );
-        }
-
-        return $response;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
deleted file mode 100644
index 4bacec133714a94debc940e9a74591964bfe46b7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
+++ /dev/null
@@ -1,414 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Client;
-
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Exception\ConnectException;
-use GuzzleHttp\Ring\Exception\RingException;
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-use GuzzleHttp\Stream\InflateStream;
-use GuzzleHttp\Stream\StreamInterface;
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\Utils;
-
-/**
- * RingPHP client handler that uses PHP's HTTP stream wrapper.
- */
-class StreamHandler
-{
-    private $options;
-    private $lastHeaders;
-
-    public function __construct(array $options = [])
-    {
-        $this->options = $options;
-    }
-
-    public function __invoke(array $request)
-    {
-        $url = Core::url($request);
-        Core::doSleep($request);
-
-        try {
-            // Does not support the expect header.
-            $request = Core::removeHeader($request, 'Expect');
-            $stream = $this->createStream($url, $request);
-            return $this->createResponse($request, $url, $stream);
-        } catch (RingException $e) {
-            return $this->createErrorResponse($url, $e);
-        }
-    }
-
-    private function createResponse(array $request, $url, $stream)
-    {
-        $hdrs = $this->lastHeaders;
-        $this->lastHeaders = null;
-        $parts = explode(' ', array_shift($hdrs), 3);
-        $response = [
-            'version'        => substr($parts[0], 5),
-            'status'         => $parts[1],
-            'reason'         => isset($parts[2]) ? $parts[2] : null,
-            'headers'        => Core::headersFromLines($hdrs),
-            'effective_url'  => $url,
-        ];
-
-        $stream = $this->checkDecode($request, $response, $stream);
-
-        // If not streaming, then drain the response into a stream.
-        if (empty($request['client']['stream'])) {
-            $dest = isset($request['client']['save_to'])
-                ? $request['client']['save_to']
-                : fopen('php://temp', 'r+');
-            $stream = $this->drain($stream, $dest);
-        }
-
-        $response['body'] = $stream;
-
-        return new CompletedFutureArray($response);
-    }
-
-    private function checkDecode(array $request, array $response, $stream)
-    {
-        // Automatically decode responses when instructed.
-        if (!empty($request['client']['decode_content'])) {
-            switch (Core::firstHeader($response, 'Content-Encoding', true)) {
-                case 'gzip':
-                case 'deflate':
-                    $stream = new InflateStream(Stream::factory($stream));
-                    break;
-            }
-        }
-
-        return $stream;
-    }
-
-    /**
-     * Drains the stream into the "save_to" client option.
-     *
-     * @param resource                        $stream
-     * @param string|resource|StreamInterface $dest
-     *
-     * @return Stream
-     * @throws \RuntimeException when the save_to option is invalid.
-     */
-    private function drain($stream, $dest)
-    {
-        if (is_resource($stream)) {
-            if (!is_resource($dest)) {
-                $stream = Stream::factory($stream);
-            } else {
-                stream_copy_to_stream($stream, $dest);
-                fclose($stream);
-                rewind($dest);
-                return $dest;
-            }
-        }
-
-        // Stream the response into the destination stream
-        $dest = is_string($dest)
-            ? new Stream(Utils::open($dest, 'r+'))
-            : Stream::factory($dest);
-
-        Utils::copyToStream($stream, $dest);
-        $dest->seek(0);
-        $stream->close();
-
-        return $dest;
-    }
-
-    /**
-     * Creates an error response for the given stream.
-     *
-     * @param string        $url
-     * @param RingException $e
-     *
-     * @return array
-     */
-    private function createErrorResponse($url, RingException $e)
-    {
-        // Determine if the error was a networking error.
-        $message = $e->getMessage();
-
-        // This list can probably get more comprehensive.
-        if (strpos($message, 'getaddrinfo') // DNS lookup failed
-            || strpos($message, 'Connection refused')
-        ) {
-            $e = new ConnectException($e->getMessage(), 0, $e);
-        }
-
-        return new CompletedFutureArray([
-            'status'        => null,
-            'body'          => null,
-            'headers'       => [],
-            'effective_url' => $url,
-            'error'         => $e
-        ]);
-    }
-
-    /**
-     * Create a resource and check to ensure it was created successfully
-     *
-     * @param callable $callback Callable that returns stream resource
-     *
-     * @return resource
-     * @throws \RuntimeException on error
-     */
-    private function createResource(callable $callback)
-    {
-        $errors = null;
-        set_error_handler(function ($_, $msg, $file, $line) use (&$errors) {
-            $errors[] = [
-                'message' => $msg,
-                'file'    => $file,
-                'line'    => $line
-            ];
-            return true;
-        });
-
-        $resource = $callback();
-        restore_error_handler();
-
-        if (!$resource) {
-            $message = 'Error creating resource: ';
-            foreach ($errors as $err) {
-                foreach ($err as $key => $value) {
-                    $message .= "[$key] $value" . PHP_EOL;
-                }
-            }
-            throw new RingException(trim($message));
-        }
-
-        return $resource;
-    }
-
-    private function createStream($url, array $request)
-    {
-        static $methods;
-        if (!$methods) {
-            $methods = array_flip(get_class_methods(__CLASS__));
-        }
-
-        // HTTP/1.1 streams using the PHP stream wrapper require a
-        // Connection: close header
-        if ((!isset($request['version']) || $request['version'] == '1.1')
-            && !Core::hasHeader($request, 'Connection')
-        ) {
-            $request['headers']['Connection'] = ['close'];
-        }
-
-        // Ensure SSL is verified by default
-        if (!isset($request['client']['verify'])) {
-            $request['client']['verify'] = true;
-        }
-
-        $params = [];
-        $options = $this->getDefaultOptions($request);
-
-        if (isset($request['client'])) {
-            foreach ($request['client'] as $key => $value) {
-                $method = "add_{$key}";
-                if (isset($methods[$method])) {
-                    $this->{$method}($request, $options, $value, $params);
-                }
-            }
-        }
-
-        return $this->createStreamResource(
-            $url,
-            $request,
-            $options,
-            $this->createContext($request, $options, $params)
-        );
-    }
-
-    private function getDefaultOptions(array $request)
-    {
-        $headers = "";
-        foreach ($request['headers'] as $name => $value) {
-            foreach ((array) $value as $val) {
-                $headers .= "$name: $val\r\n";
-            }
-        }
-
-        $context = [
-            'http' => [
-                'method'           => $request['http_method'],
-                'header'           => $headers,
-                'protocol_version' => isset($request['version']) ? $request['version'] : 1.1,
-                'ignore_errors'    => true,
-                'follow_location'  => 0,
-            ],
-        ];
-
-        $body = Core::body($request);
-        if (isset($body)) {
-            $context['http']['content'] = $body;
-            // Prevent the HTTP handler from adding a Content-Type header.
-            if (!Core::hasHeader($request, 'Content-Type')) {
-                $context['http']['header'] .= "Content-Type:\r\n";
-            }
-        }
-
-        $context['http']['header'] = rtrim($context['http']['header']);
-
-        return $context;
-    }
-
-    private function add_proxy(array $request, &$options, $value, &$params)
-    {
-        if (!is_array($value)) {
-            $options['http']['proxy'] = $value;
-        } else {
-            $scheme = isset($request['scheme']) ? $request['scheme'] : 'http';
-            if (isset($value[$scheme])) {
-                $options['http']['proxy'] = $value[$scheme];
-            }
-        }
-    }
-
-    private function add_timeout(array $request, &$options, $value, &$params)
-    {
-        $options['http']['timeout'] = $value;
-    }
-
-    private function add_verify(array $request, &$options, $value, &$params)
-    {
-        if ($value === true) {
-            // PHP 5.6 or greater will find the system cert by default. When
-            // < 5.6, use the Guzzle bundled cacert.
-            if (PHP_VERSION_ID < 50600) {
-                $options['ssl']['cafile'] = ClientUtils::getDefaultCaBundle();
-            }
-        } elseif (is_string($value)) {
-            $options['ssl']['cafile'] = $value;
-            if (!file_exists($value)) {
-                throw new RingException("SSL CA bundle not found: $value");
-            }
-        } elseif ($value === false) {
-            $options['ssl']['verify_peer'] = false;
-            $options['ssl']['allow_self_signed'] = true;
-            return;
-        } else {
-            throw new RingException('Invalid verify request option');
-        }
-
-        $options['ssl']['verify_peer'] = true;
-        $options['ssl']['allow_self_signed'] = false;
-    }
-
-    private function add_cert(array $request, &$options, $value, &$params)
-    {
-        if (is_array($value)) {
-            $options['ssl']['passphrase'] = $value[1];
-            $value = $value[0];
-        }
-
-        if (!file_exists($value)) {
-            throw new RingException("SSL certificate not found: {$value}");
-        }
-
-        $options['ssl']['local_cert'] = $value;
-    }
-
-    private function add_progress(array $request, &$options, $value, &$params)
-    {
-        $fn = function ($code, $_1, $_2, $_3, $transferred, $total) use ($value) {
-            if ($code == STREAM_NOTIFY_PROGRESS) {
-                $value($total, $transferred, null, null);
-            }
-        };
-
-        // Wrap the existing function if needed.
-        $params['notification'] = isset($params['notification'])
-            ? Core::callArray([$params['notification'], $fn])
-            : $fn;
-    }
-
-    private function add_debug(array $request, &$options, $value, &$params)
-    {
-        if ($value === false) {
-            return;
-        }
-
-        static $map = [
-            STREAM_NOTIFY_CONNECT       => 'CONNECT',
-            STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED',
-            STREAM_NOTIFY_AUTH_RESULT   => 'AUTH_RESULT',
-            STREAM_NOTIFY_MIME_TYPE_IS  => 'MIME_TYPE_IS',
-            STREAM_NOTIFY_FILE_SIZE_IS  => 'FILE_SIZE_IS',
-            STREAM_NOTIFY_REDIRECTED    => 'REDIRECTED',
-            STREAM_NOTIFY_PROGRESS      => 'PROGRESS',
-            STREAM_NOTIFY_FAILURE       => 'FAILURE',
-            STREAM_NOTIFY_COMPLETED     => 'COMPLETED',
-            STREAM_NOTIFY_RESOLVE       => 'RESOLVE',
-        ];
-
-        static $args = ['severity', 'message', 'message_code',
-            'bytes_transferred', 'bytes_max'];
-
-        $value = Core::getDebugResource($value);
-        $ident = $request['http_method'] . ' ' . Core::url($request);
-        $fn = function () use ($ident, $value, $map, $args) {
-            $passed = func_get_args();
-            $code = array_shift($passed);
-            fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
-            foreach (array_filter($passed) as $i => $v) {
-                fwrite($value, $args[$i] . ': "' . $v . '" ');
-            }
-            fwrite($value, "\n");
-        };
-
-        // Wrap the existing function if needed.
-        $params['notification'] = isset($params['notification'])
-            ? Core::callArray([$params['notification'], $fn])
-            : $fn;
-    }
-
-    private function applyCustomOptions(array $request, array &$options)
-    {
-        if (!isset($request['client']['stream_context'])) {
-            return;
-        }
-
-        if (!is_array($request['client']['stream_context'])) {
-            throw new RingException('stream_context must be an array');
-        }
-
-        $options = array_replace_recursive(
-            $options,
-            $request['client']['stream_context']
-        );
-    }
-
-    private function createContext(array $request, array $options, array $params)
-    {
-        $this->applyCustomOptions($request, $options);
-        return $this->createResource(
-            function () use ($request, $options, $params) {
-                return stream_context_create($options, $params);
-            },
-            $request,
-            $options
-        );
-    }
-
-    private function createStreamResource(
-        $url,
-        array $request,
-        array $options,
-        $context
-    ) {
-        return $this->createResource(
-            function () use ($url, $context) {
-                if (false === strpos($url, 'http')) {
-                    trigger_error("URL is invalid: {$url}", E_USER_WARNING);
-                    return null;
-                }
-                $resource = fopen($url, 'r', null, $context);
-                $this->lastHeaders = $http_response_header;
-                return $resource;
-            },
-            $request,
-            $options
-        );
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Core.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Core.php
deleted file mode 100644
index dd7d1a0c5a7f6ccab0e496e8774358aed785556f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Core.php
+++ /dev/null
@@ -1,364 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring;
-
-use GuzzleHttp\Stream\StreamInterface;
-use GuzzleHttp\Ring\Future\FutureArrayInterface;
-use GuzzleHttp\Ring\Future\FutureArray;
-
-/**
- * Provides core functionality of Ring handlers and middleware.
- */
-class Core
-{
-    /**
-     * Returns a function that calls all of the provided functions, in order,
-     * passing the arguments provided to the composed function to each function.
-     *
-     * @param callable[] $functions Array of functions to proxy to.
-     *
-     * @return callable
-     */
-    public static function callArray(array $functions)
-    {
-        return function () use ($functions) {
-            $args = func_get_args();
-            foreach ($functions as $fn) {
-                call_user_func_array($fn, $args);
-            }
-        };
-    }
-
-    /**
-     * Gets an array of header line values from a message for a specific header
-     *
-     * This method searches through the "headers" key of a message for a header
-     * using a case-insensitive search.
-     *
-     * @param array  $message Request or response hash.
-     * @param string $header  Header to retrieve
-     *
-     * @return array
-     */
-    public static function headerLines($message, $header)
-    {
-        $result = [];
-
-        if (!empty($message['headers'])) {
-            foreach ($message['headers'] as $name => $value) {
-                if (!strcasecmp($name, $header)) {
-                    $result = array_merge($result, $value);
-                }
-            }
-        }
-
-        return $result;
-    }
-
-    /**
-     * Gets a header value from a message as a string or null
-     *
-     * This method searches through the "headers" key of a message for a header
-     * using a case-insensitive search. The lines of the header are imploded
-     * using commas into a single string return value.
-     *
-     * @param array  $message Request or response hash.
-     * @param string $header  Header to retrieve
-     *
-     * @return string|null Returns the header string if found, or null if not.
-     */
-    public static function header($message, $header)
-    {
-        $match = self::headerLines($message, $header);
-        return $match ? implode(', ', $match) : null;
-    }
-
-    /**
-     * Returns the first header value from a message as a string or null. If
-     * a header line contains multiple values separated by a comma, then this
-     * function will return the first value in the list.
-     *
-     * @param array  $message Request or response hash.
-     * @param string $header  Header to retrieve
-     *
-     * @return string|null Returns the value as a string if found.
-     */
-    public static function firstHeader($message, $header)
-    {
-        if (!empty($message['headers'])) {
-            foreach ($message['headers'] as $name => $value) {
-                if (!strcasecmp($name, $header)) {
-                    // Return the match itself if it is a single value.
-                    $pos = strpos($value[0], ',');
-                    return $pos ? substr($value[0], 0, $pos) : $value[0];
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Returns true if a message has the provided case-insensitive header.
-     *
-     * @param array  $message Request or response hash.
-     * @param string $header  Header to check
-     *
-     * @return bool
-     */
-    public static function hasHeader($message, $header)
-    {
-        if (!empty($message['headers'])) {
-            foreach ($message['headers'] as $name => $value) {
-                if (!strcasecmp($name, $header)) {
-                    return true;
-                }
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Parses an array of header lines into an associative array of headers.
-     *
-     * @param array $lines Header lines array of strings in the following
-     *                     format: "Name: Value"
-     * @return array
-     */
-    public static function headersFromLines($lines)
-    {
-        $headers = [];
-
-        foreach ($lines as $line) {
-            $parts = explode(':', $line, 2);
-            $headers[trim($parts[0])][] = isset($parts[1])
-                ? trim($parts[1])
-                : null;
-        }
-
-        return $headers;
-    }
-
-    /**
-     * Removes a header from a message using a case-insensitive comparison.
-     *
-     * @param array  $message Message that contains 'headers'
-     * @param string $header  Header to remove
-     *
-     * @return array
-     */
-    public static function removeHeader(array $message, $header)
-    {
-        if (isset($message['headers'])) {
-            foreach (array_keys($message['headers']) as $key) {
-                if (!strcasecmp($header, $key)) {
-                    unset($message['headers'][$key]);
-                }
-            }
-        }
-
-        return $message;
-    }
-
-    /**
-     * Replaces any existing case insensitive headers with the given value.
-     *
-     * @param array  $message Message that contains 'headers'
-     * @param string $header  Header to set.
-     * @param array  $value   Value to set.
-     *
-     * @return array
-     */
-    public static function setHeader(array $message, $header, array $value)
-    {
-        $message = self::removeHeader($message, $header);
-        $message['headers'][$header] = $value;
-
-        return $message;
-    }
-
-    /**
-     * Creates a URL string from a request.
-     *
-     * If the "url" key is present on the request, it is returned, otherwise
-     * the url is built up based on the scheme, host, uri, and query_string
-     * request values.
-     *
-     * @param array $request Request to get the URL from
-     *
-     * @return string Returns the request URL as a string.
-     * @throws \InvalidArgumentException if no Host header is present.
-     */
-    public static function url(array $request)
-    {
-        if (isset($request['url'])) {
-            return $request['url'];
-        }
-
-        $uri = (isset($request['scheme'])
-                ? $request['scheme'] : 'http') . '://';
-
-        if ($host = self::header($request, 'host')) {
-            $uri .= $host;
-        } else {
-            throw new \InvalidArgumentException('No Host header was provided');
-        }
-
-        if (isset($request['uri'])) {
-            $uri .= $request['uri'];
-        }
-
-        if (isset($request['query_string'])) {
-            $uri .= '?' . $request['query_string'];
-        }
-
-        return $uri;
-    }
-
-    /**
-     * Reads the body of a message into a string.
-     *
-     * @param array|FutureArrayInterface $message Array containing a "body" key
-     *
-     * @return null|string Returns the body as a string or null if not set.
-     * @throws \InvalidArgumentException if a request body is invalid.
-     */
-    public static function body($message)
-    {
-        if (!isset($message['body'])) {
-            return null;
-        }
-
-        if ($message['body'] instanceof StreamInterface) {
-            return (string) $message['body'];
-        }
-
-        switch (gettype($message['body'])) {
-            case 'string':
-                return $message['body'];
-            case 'resource':
-                return stream_get_contents($message['body']);
-            case 'object':
-                if ($message['body'] instanceof \Iterator) {
-                    return implode('', iterator_to_array($message['body']));
-                } elseif (method_exists($message['body'], '__toString')) {
-                    return (string) $message['body'];
-                }
-            default:
-                throw new \InvalidArgumentException('Invalid request body: '
-                    . self::describeType($message['body']));
-        }
-    }
-
-    /**
-     * Rewind the body of the provided message if possible.
-     *
-     * @param array $message Message that contains a 'body' field.
-     *
-     * @return bool Returns true on success, false on failure
-     */
-    public static function rewindBody($message)
-    {
-        if ($message['body'] instanceof StreamInterface) {
-            return $message['body']->seek(0);
-        }
-
-        if ($message['body'] instanceof \Generator) {
-            return false;
-        }
-
-        if ($message['body'] instanceof \Iterator) {
-            $message['body']->rewind();
-            return true;
-        }
-
-        if (is_resource($message['body'])) {
-            return rewind($message['body']);
-        }
-
-        return is_string($message['body'])
-            || (is_object($message['body'])
-                && method_exists($message['body'], '__toString'));
-    }
-
-    /**
-     * Debug function used to describe the provided value type and class.
-     *
-     * @param mixed $input
-     *
-     * @return string Returns a string containing the type of the variable and
-     *                if a class is provided, the class name.
-     */
-    public static function describeType($input)
-    {
-        switch (gettype($input)) {
-            case 'object':
-                return 'object(' . get_class($input) . ')';
-            case 'array':
-                return 'array(' . count($input) . ')';
-            default:
-                ob_start();
-                var_dump($input);
-                // normalize float vs double
-                return str_replace('double(', 'float(', rtrim(ob_get_clean()));
-        }
-    }
-
-    /**
-     * Sleep for the specified amount of time specified in the request's
-     * ['client']['delay'] option if present.
-     *
-     * This function should only be used when a non-blocking sleep is not
-     * possible.
-     *
-     * @param array $request Request to sleep
-     */
-    public static function doSleep(array $request)
-    {
-        if (isset($request['client']['delay'])) {
-            usleep($request['client']['delay'] * 1000);
-        }
-    }
-
-    /**
-     * Returns a proxied future that modifies the dereferenced value of another
-     * future using a promise.
-     *
-     * @param FutureArrayInterface $future      Future to wrap with a new future
-     * @param callable    $onFulfilled Invoked when the future fulfilled
-     * @param callable    $onRejected  Invoked when the future rejected
-     * @param callable    $onProgress  Invoked when the future progresses
-     *
-     * @return FutureArray
-     */
-    public static function proxy(
-        FutureArrayInterface $future,
-        callable $onFulfilled = null,
-        callable $onRejected = null,
-        callable $onProgress = null
-    ) {
-        return new FutureArray(
-            $future->then($onFulfilled, $onRejected, $onProgress),
-            [$future, 'wait'],
-            [$future, 'cancel']
-        );
-    }
-
-    /**
-     * Returns a debug stream based on the provided variable.
-     *
-     * @param mixed $value Optional value
-     *
-     * @return resource
-     */
-    public static function getDebugResource($value = null)
-    {
-        if (is_resource($value)) {
-            return $value;
-        } elseif (defined('STDOUT')) {
-            return STDOUT;
-        } else {
-            return fopen('php://output', 'w');
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledException.php
deleted file mode 100644
index 95b353acfde5f628daeb4ad3c50e48ebecc14a66..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Exception;
-
-/**
- * Marker interface for cancelled exceptions.
- */
-interface CancelledException {}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledFutureAccessException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledFutureAccessException.php
deleted file mode 100644
index 4a14574df886c8937beb046709ae62f33e41542e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/CancelledFutureAccessException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Exception;
-
-class CancelledFutureAccessException extends RingException implements CancelledException {}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/ConnectException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/ConnectException.php
deleted file mode 100644
index 925cd133c83936dda16351881afebafd03ba6ae3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/ConnectException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Exception;
-
-/**
- * Occurs when the connection failed.
- */
-class ConnectException extends RingException {}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/RingException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/RingException.php
deleted file mode 100644
index eed0daf7dd097bc3c5c7b517194fc08fbc2a1c50..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Exception/RingException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Exception;
-
-class RingException extends \RuntimeException {};
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/BaseFutureTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/BaseFutureTrait.php
deleted file mode 100644
index e6a7ca77c3d9f406006ff2bbbc7849aeb78fde48..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/BaseFutureTrait.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-use GuzzleHttp\Ring\Exception\CancelledFutureAccessException;
-use GuzzleHttp\Ring\Exception\RingException;
-use React\Promise\PromiseInterface;
-
-/**
- * Implements common future functionality built on top of promises.
- */
-trait BaseFutureTrait
-{
-    /** @var callable */
-    private $waitfn;
-
-    /** @var callable */
-    private $cancelfn;
-
-    /** @var PromiseInterface */
-    private $wrappedPromise;
-
-    /** @var \Exception Error encountered. */
-    private $error;
-
-    /** @var mixed Result of the future */
-    private $result;
-
-    private $isRealized = false;
-
-    /**
-     * @param PromiseInterface $promise Promise to shadow with the future.
-     * @param callable         $wait    Function that blocks until the deferred
-     *                                  computation has been resolved. This
-     *                                  function MUST resolve the deferred value
-     *                                  associated with the supplied promise.
-     * @param callable         $cancel  If possible and reasonable, provide a
-     *                                  function that can be used to cancel the
-     *                                  future from completing.
-     */
-    public function __construct(
-        PromiseInterface $promise,
-        callable $wait = null,
-        callable $cancel = null
-    ) {
-        $this->wrappedPromise = $promise;
-        $this->waitfn = $wait;
-        $this->cancelfn = $cancel;
-    }
-
-    public function wait()
-    {
-        if (!$this->isRealized) {
-            $this->addShadow();
-            if (!$this->isRealized && $this->waitfn) {
-                $this->invokeWait();
-            }
-            if (!$this->isRealized) {
-                $this->error = new RingException('Waiting did not resolve future');
-            }
-        }
-
-        if ($this->error) {
-            throw $this->error;
-        }
-
-        return $this->result;
-    }
-
-    public function promise()
-    {
-        return $this->wrappedPromise;
-    }
-
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null,
-        callable $onProgress = null
-    ) {
-        return $this->wrappedPromise->then($onFulfilled, $onRejected, $onProgress);
-    }
-
-    public function cancel()
-    {
-        if (!$this->isRealized) {
-            $cancelfn = $this->cancelfn;
-            $this->waitfn = $this->cancelfn = null;
-            $this->isRealized = true;
-            $this->error = new CancelledFutureAccessException();
-            if ($cancelfn) {
-                $cancelfn($this);
-            }
-        }
-    }
-
-    private function addShadow()
-    {
-        // Get the result and error when the promise is resolved. Note that
-        // calling this function might trigger the resolution immediately.
-        $this->wrappedPromise->then(
-            function ($value) {
-                $this->isRealized = true;
-                $this->result = $value;
-                $this->waitfn = $this->cancelfn = null;
-            },
-            function ($error) {
-                $this->isRealized = true;
-                $this->error = $error;
-                $this->waitfn = $this->cancelfn = null;
-            }
-        );
-    }
-
-    private function invokeWait()
-    {
-        try {
-            $wait = $this->waitfn;
-            $this->waitfn = null;
-            $wait();
-        } catch (\Exception $e) {
-            // Defer can throw to reject.
-            $this->error = $e;
-            $this->isRealized = true;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureArray.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureArray.php
deleted file mode 100644
index 0a90c939f7b981155089dbc4e7fa437310ba5efd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureArray.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-/**
- * Represents a future array that has been completed successfully.
- */
-class CompletedFutureArray extends CompletedFutureValue implements FutureArrayInterface
-{
-    public function __construct(array $result)
-    {
-        parent::__construct($result);
-    }
-
-    public function offsetExists($offset)
-    {
-        return isset($this->result[$offset]);
-    }
-
-    public function offsetGet($offset)
-    {
-        return $this->result[$offset];
-    }
-
-    public function offsetSet($offset, $value)
-    {
-        $this->result[$offset] = $value;
-    }
-
-    public function offsetUnset($offset)
-    {
-        unset($this->result[$offset]);
-    }
-
-    public function count()
-    {
-        return count($this->result);
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->result);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php
deleted file mode 100644
index 0d25af72d4d8d37e119065a1da30b0d8132a5a91..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-use React\Promise\FulfilledPromise;
-use React\Promise\RejectedPromise;
-
-/**
- * Represents a future value that has been resolved or rejected.
- */
-class CompletedFutureValue implements FutureInterface
-{
-    protected $result;
-    protected $error;
-
-    private $cachedPromise;
-
-    /**
-     * @param mixed      $result Resolved result
-     * @param \Exception $e      Error. Pass a GuzzleHttp\Ring\Exception\CancelledFutureAccessException
-     *                           to mark the future as cancelled.
-     */
-    public function __construct($result, \Exception $e = null)
-    {
-        $this->result = $result;
-        $this->error = $e;
-    }
-
-    public function wait()
-    {
-        if ($this->error) {
-            throw $this->error;
-        }
-
-        return $this->result;
-    }
-
-    public function cancel() {}
-
-    public function promise()
-    {
-        if (!$this->cachedPromise) {
-            $this->cachedPromise = $this->error
-                ? new RejectedPromise($this->error)
-                : new FulfilledPromise($this->result);
-        }
-
-        return $this->cachedPromise;
-    }
-
-    public function then(
-        callable $onFulfilled = null,
-        callable $onRejected = null,
-        callable $onProgress = null
-    ) {
-        return $this->promise()->then($onFulfilled, $onRejected, $onProgress);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArray.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArray.php
deleted file mode 100644
index 3d64c9643ac154e25c0fedfac241f54e2e9148c2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArray.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-/**
- * Represents a future array value that when dereferenced returns an array.
- */
-class FutureArray implements FutureArrayInterface
-{
-    use MagicFutureTrait;
-
-    public function offsetExists($offset)
-    {
-        return isset($this->_value[$offset]);
-    }
-
-    public function offsetGet($offset)
-    {
-        return $this->_value[$offset];
-    }
-
-    public function offsetSet($offset, $value)
-    {
-        $this->_value[$offset] = $value;
-    }
-
-    public function offsetUnset($offset)
-    {
-        unset($this->_value[$offset]);
-    }
-
-    public function count()
-    {
-        return count($this->_value);
-    }
-
-    public function getIterator()
-    {
-        return new \ArrayIterator($this->_value);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArrayInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArrayInterface.php
deleted file mode 100644
index 58f5f7367069b10043a7e3661025ab788673b172..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureArrayInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-/**
- * Future that provides array-like access.
- */
-interface FutureArrayInterface extends
-    FutureInterface,
-    \ArrayAccess,
-    \Countable,
-    \IteratorAggregate {};
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureInterface.php
deleted file mode 100644
index 43d18117b1656a4643ce029ce6ebfee077052df8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureInterface.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-use React\Promise\PromiseInterface;
-use React\Promise\PromisorInterface;
-
-/**
- * Represents the result of a computation that may not have completed yet.
- *
- * You can use the future in a blocking manner using the wait() function, or
- * you can use a promise from the future to receive the result when the future
- * has been resolved.
- *
- * When the future is dereferenced using wait(), the result of the computation
- * is cached and returned for subsequent calls to wait(). If the result of the
- * computation has not yet completed when wait() is called, the call to wait()
- * will block until the future has completed.
- */
-interface FutureInterface extends PromiseInterface, PromisorInterface
-{
-    /**
-     * Returns the result of the future either from cache or by blocking until
-     * it is complete.
-     *
-     * This method must block until the future has a result or is cancelled.
-     * Throwing an exception in the wait() method will mark the future as
-     * realized and will throw the exception each time wait() is called.
-     * Throwing an instance of GuzzleHttp\Ring\CancelledException will mark
-     * the future as realized, will not throw immediately, but will throw the
-     * exception if the future's wait() method is called again.
-     *
-     * @return mixed
-     */
-    public function wait();
-
-    /**
-     * Cancels the future, if possible.
-     */
-    public function cancel();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureValue.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureValue.php
deleted file mode 100644
index 4cac9281b94cb3109f61d2ff045dd8a3dcb6fce1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/FutureValue.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-/**
- * Represents a future value that responds to wait() to retrieve the promised
- * value, but can also return promises that are delivered the value when it is
- * available.
- */
-class FutureValue implements FutureInterface
-{
-    use BaseFutureTrait;
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/MagicFutureTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/MagicFutureTrait.php
deleted file mode 100644
index 58d779db49bf475fe06fc49ad831714f11054663..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/src/Future/MagicFutureTrait.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-namespace GuzzleHttp\Ring\Future;
-
-/**
- * Implements common future functionality that is triggered when the result
- * property is accessed via a magic __get method.
- *
- * @property mixed $_value Actual data used by the future. Accessing this
- *     property will cause the future to block if needed.
- */
-trait MagicFutureTrait
-{
-    use BaseFutureTrait;
-
-    /**
-     * This function handles retrieving the dereferenced result when requested.
-     *
-     * @param string $name Should always be "data" or an exception is thrown.
-     *
-     * @return mixed Returns the dereferenced data.
-     * @throws \RuntimeException
-     * @throws \GuzzleHttp\Ring\Exception\CancelledException
-     */
-    public function __get($name)
-    {
-        if ($name !== '_value') {
-            throw new \RuntimeException("Class has no {$name} property");
-        }
-
-        return $this->_value = $this->wait();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php
deleted file mode 100644
index ebde187cfa84bddacea320eb57c76776070d5f07..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php
+++ /dev/null
@@ -1,821 +0,0 @@
-<?php
-// Override curl_setopt_array() to get the last set curl options
-namespace GuzzleHttp\Ring\Client {
-    function curl_setopt_array($handle, array $options) {
-        if (!empty($_SERVER['curl_test'])) {
-            $_SERVER['_curl'] = $options;
-        } else {
-            unset($_SERVER['_curl']);
-        }
-        \curl_setopt_array($handle, $options);
-    }
-}
-
-namespace GuzzleHttp\Tests\Ring\Client {
-
-use GuzzleHttp\Ring\Client\CurlFactory;
-use GuzzleHttp\Ring\Client\CurlMultiHandler;
-use GuzzleHttp\Ring\Client\MockHandler;
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Stream\FnStream;
-use GuzzleHttp\Stream\NoSeekStream;
-use GuzzleHttp\Stream\Stream;
-
-class CurlFactoryTest extends \PHPUnit_Framework_TestCase
-{
-    public static function setUpBeforeClass()
-    {
-        $_SERVER['curl_test'] = true;
-        unset($_SERVER['_curl']);
-    }
-
-    public static function tearDownAfterClass()
-    {
-        unset($_SERVER['_curl'], $_SERVER['curl_test']);
-    }
-
-    public function testCreatesCurlHandle()
-    {
-        Server::flush();
-        Server::enqueue([[
-            'status' => 200,
-            'headers' => [
-                'Foo' => ['Bar'],
-                'Baz' => ['bam'],
-                'Content-Length' => [2],
-            ],
-            'body' => 'hi',
-        ]]);
-
-        $stream = Stream::factory();
-
-        $request = [
-            'http_method' => 'PUT',
-            'headers' => [
-                'host' => [Server::$url],
-                'Hi'   => [' 123'],
-            ],
-            'body' => 'testing',
-            'client' => ['save_to' => $stream],
-        ];
-
-        $f = new CurlFactory();
-        $result = $f($request);
-        $this->assertInternalType('array', $result);
-        $this->assertCount(3, $result);
-        $this->assertInternalType('resource', $result[0]);
-        $this->assertInternalType('array', $result[1]);
-        $this->assertSame($stream, $result[2]);
-        curl_close($result[0]);
-
-        $this->assertEquals('PUT', $_SERVER['_curl'][CURLOPT_CUSTOMREQUEST]);
-        $this->assertEquals(
-            'http://http://127.0.0.1:8125/',
-            $_SERVER['_curl'][CURLOPT_URL]
-        );
-        // Sends via post fields when the request is small enough
-        $this->assertEquals('testing', $_SERVER['_curl'][CURLOPT_POSTFIELDS]);
-        $this->assertEquals(0, $_SERVER['_curl'][CURLOPT_RETURNTRANSFER]);
-        $this->assertEquals(0, $_SERVER['_curl'][CURLOPT_HEADER]);
-        $this->assertEquals(150, $_SERVER['_curl'][CURLOPT_CONNECTTIMEOUT]);
-        $this->assertInstanceOf('Closure', $_SERVER['_curl'][CURLOPT_HEADERFUNCTION]);
-
-        if (defined('CURLOPT_PROTOCOLS')) {
-            $this->assertEquals(
-                CURLPROTO_HTTP | CURLPROTO_HTTPS,
-                $_SERVER['_curl'][CURLOPT_PROTOCOLS]
-            );
-        }
-
-        $this->assertContains('Expect:', $_SERVER['_curl'][CURLOPT_HTTPHEADER]);
-        $this->assertContains('Accept:', $_SERVER['_curl'][CURLOPT_HTTPHEADER]);
-        $this->assertContains('Content-Type:', $_SERVER['_curl'][CURLOPT_HTTPHEADER]);
-        $this->assertContains('Hi:  123', $_SERVER['_curl'][CURLOPT_HTTPHEADER]);
-        $this->assertContains('host: http://127.0.0.1:8125/', $_SERVER['_curl'][CURLOPT_HTTPHEADER]);
-    }
-
-    public function testSendsHeadRequests()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'HEAD',
-            'headers' => ['host' => [Server::$host]],
-        ]);
-        $response->wait();
-        $this->assertEquals(true, $_SERVER['_curl'][CURLOPT_NOBODY]);
-        $checks = [CURLOPT_WRITEFUNCTION, CURLOPT_READFUNCTION, CURLOPT_FILE, CURLOPT_INFILE];
-        foreach ($checks as $check) {
-            $this->assertArrayNotHasKey($check, $_SERVER['_curl']);
-        }
-        $this->assertEquals('HEAD', Server::received()[0]['http_method']);
-    }
-
-    public function testCanAddCustomCurlOptions()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['curl' => [CURLOPT_LOW_SPEED_LIMIT => 10]],
-        ]);
-        $this->assertEquals(10, $_SERVER['_curl'][CURLOPT_LOW_SPEED_LIMIT]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage SSL CA bundle not found: /does/not/exist
-     */
-    public function testValidatesVerify()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['verify' => '/does/not/exist'],
-        ]);
-    }
-
-    public function testCanSetVerifyToFile()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['verify' => __FILE__],
-        ]);
-        $this->assertEquals(__FILE__, $_SERVER['_curl'][CURLOPT_CAINFO]);
-        $this->assertEquals(2, $_SERVER['_curl'][CURLOPT_SSL_VERIFYHOST]);
-        $this->assertEquals(true, $_SERVER['_curl'][CURLOPT_SSL_VERIFYPEER]);
-    }
-
-    public function testAddsVerifyAsTrue()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['verify' => true],
-        ]);
-        $this->assertEquals(2, $_SERVER['_curl'][CURLOPT_SSL_VERIFYHOST]);
-        $this->assertEquals(true, $_SERVER['_curl'][CURLOPT_SSL_VERIFYPEER]);
-        $this->assertArrayNotHasKey(CURLOPT_CAINFO, $_SERVER['_curl']);
-    }
-
-    public function testCanDisableVerify()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['verify' => false],
-        ]);
-        $this->assertEquals(0, $_SERVER['_curl'][CURLOPT_SSL_VERIFYHOST]);
-        $this->assertEquals(false, $_SERVER['_curl'][CURLOPT_SSL_VERIFYPEER]);
-    }
-
-    public function testAddsProxy()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['proxy' => 'http://bar.com'],
-        ]);
-        $this->assertEquals('http://bar.com', $_SERVER['_curl'][CURLOPT_PROXY]);
-    }
-
-    public function testAddsViaScheme()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'scheme' => 'http',
-            'headers' => ['host' => ['foo.com']],
-            'client' => [
-                'proxy' => ['http' => 'http://bar.com', 'https' => 'https://t'],
-            ],
-        ]);
-        $this->assertEquals('http://bar.com', $_SERVER['_curl'][CURLOPT_PROXY]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage SSL private key not found: /does/not/exist
-     */
-    public function testValidatesSslKey()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['ssl_key' => '/does/not/exist'],
-        ]);
-    }
-
-    public function testAddsSslKey()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['ssl_key' => __FILE__],
-        ]);
-        $this->assertEquals(__FILE__, $_SERVER['_curl'][CURLOPT_SSLKEY]);
-    }
-
-    public function testAddsSslKeyWithPassword()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['ssl_key' => [__FILE__, 'test']],
-        ]);
-        $this->assertEquals(__FILE__, $_SERVER['_curl'][CURLOPT_SSLKEY]);
-        $this->assertEquals('test', $_SERVER['_curl'][CURLOPT_SSLKEYPASSWD]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage SSL certificate not found: /does/not/exist
-     */
-    public function testValidatesCert()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['cert' => '/does/not/exist'],
-        ]);
-    }
-
-    public function testAddsCert()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['cert' => __FILE__],
-        ]);
-        $this->assertEquals(__FILE__, $_SERVER['_curl'][CURLOPT_SSLCERT]);
-    }
-
-    public function testAddsCertWithPassword()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['cert' => [__FILE__, 'test']],
-        ]);
-        $this->assertEquals(__FILE__, $_SERVER['_curl'][CURLOPT_SSLCERT]);
-        $this->assertEquals('test', $_SERVER['_curl'][CURLOPT_SSLCERTPASSWD]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage progress client option must be callable
-     */
-    public function testValidatesProgress()
-    {
-        $f = new CurlFactory();
-        $f([
-            'http_method' => 'GET',
-            'headers' => ['host' => ['foo.com']],
-            'client' => ['progress' => 'foo'],
-        ]);
-    }
-
-    public function testEmitsDebugInfoToStream()
-    {
-        $res = fopen('php://memory', 'r+');
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'HEAD',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['debug' => $res],
-        ]);
-        $response->wait();
-        rewind($res);
-        $output = str_replace("\r", '', stream_get_contents($res));
-        $this->assertContains(
-            "> HEAD / HTTP/1.1\nhost: 127.0.0.1:8125\n\n",
-            $output
-        );
-        $this->assertContains("< HTTP/1.1 200", $output);
-        fclose($res);
-    }
-
-    public function testEmitsProgressToFunction()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $called = [];
-        $response = $a([
-            'http_method' => 'HEAD',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => [
-                'progress' => function () use (&$called) {
-                    $called[] = func_get_args();
-                },
-            ],
-        ]);
-        $response->wait();
-        $this->assertNotEmpty($called);
-        foreach ($called as $call) {
-            $this->assertCount(4, $call);
-        }
-    }
-
-    private function addDecodeResponse($withEncoding = true)
-    {
-        $content = gzencode('test');
-        $response  = [
-            'status'  => 200,
-            'reason'  => 'OK',
-            'headers' => ['Content-Length' => [strlen($content)]],
-            'body'    => $content,
-        ];
-
-        if ($withEncoding) {
-            $response['headers']['Content-Encoding'] = ['gzip'];
-        }
-
-        Server::flush();
-        Server::enqueue([$response]);
-
-        return $content;
-    }
-
-    public function testDecodesGzippedResponses()
-    {
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['decode_content' => true],
-        ]);
-        $response->wait();
-        $this->assertEquals('test', Core::body($response));
-        $this->assertEquals('', $_SERVER['_curl'][CURLOPT_ENCODING]);
-        $sent = Server::received()[0];
-        $this->assertNull(Core::header($sent, 'Accept-Encoding'));
-    }
-
-    public function testDecodesGzippedResponsesWithHeader()
-    {
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => [
-                'host'            => [Server::$host],
-                'Accept-Encoding' => ['gzip'],
-            ],
-            'client' => ['decode_content' => true],
-        ]);
-        $response->wait();
-        $this->assertEquals('gzip', $_SERVER['_curl'][CURLOPT_ENCODING]);
-        $sent = Server::received()[0];
-        $this->assertEquals('gzip', Core::header($sent, 'Accept-Encoding'));
-        $this->assertEquals('test', Core::body($response));
-    }
-
-    public function testDoesNotForceDecode()
-    {
-        $content = $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['decode_content' => false],
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertNull(Core::header($sent, 'Accept-Encoding'));
-        $this->assertEquals($content, Core::body($response));
-    }
-
-    public function testProtocolVersion()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'version'     => 1.0,
-        ]);
-        $this->assertEquals(CURL_HTTP_VERSION_1_0, $_SERVER['_curl'][CURLOPT_HTTP_VERSION]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesSaveTo()
-    {
-        $handler = new CurlMultiHandler();
-        $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['save_to' => true],
-        ]);
-    }
-
-    public function testSavesToStream()
-    {
-        $stream = fopen('php://memory', 'r+');
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client' => [
-                'decode_content' => true,
-                'save_to' => $stream,
-            ],
-        ]);
-        $response->wait();
-        rewind($stream);
-        $this->assertEquals('test', stream_get_contents($stream));
-    }
-
-    public function testSavesToGuzzleStream()
-    {
-        $stream = Stream::factory();
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client' => [
-                'decode_content' => true,
-                'save_to'        => $stream,
-            ],
-        ]);
-        $response->wait();
-        $this->assertEquals('test', (string) $stream);
-    }
-
-    public function testSavesToFileOnDisk()
-    {
-        $tmpfile = tempnam(sys_get_temp_dir(), 'testfile');
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client' => [
-                'decode_content' => true,
-                'save_to'        => $tmpfile,
-            ],
-        ]);
-        $response->wait();
-        $this->assertEquals('test', file_get_contents($tmpfile));
-        unlink($tmpfile);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesBody()
-    {
-        $handler = new CurlMultiHandler();
-        $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'body'        => false,
-        ]);
-    }
-
-    public function testAddsLargePayloadFromStreamWithNoSizeUsingChunked()
-    {
-        $stream = Stream::factory('foo');
-        $stream = FnStream::decorate($stream, [
-            'getSize' => function () {
-                return null;
-            }
-        ]);
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'body'        => $stream,
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertEquals('chunked', Core::header($sent, 'Transfer-Encoding'));
-        $this->assertNull(Core::header($sent, 'Content-Length'));
-        $this->assertEquals('foo', $sent['body']);
-    }
-
-    public function testAddsPayloadFromIterator()
-    {
-        $iter = new \ArrayIterator(['f', 'o', 'o']);
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'body'        => $iter,
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertEquals('chunked', Core::header($sent, 'Transfer-Encoding'));
-        $this->assertNull(Core::header($sent, 'Content-Length'));
-        $this->assertEquals('foo', $sent['body']);
-    }
-
-    public function testAddsPayloadFromResource()
-    {
-        $res = fopen('php://memory', 'r+');
-        $data = str_repeat('.', 1000000);
-        fwrite($res, $data);
-        rewind($res);
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => [
-                'host'           => [Server::$host],
-                'content-length' => [1000000],
-            ],
-            'body'        => $res,
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertNull(Core::header($sent, 'Transfer-Encoding'));
-        $this->assertEquals(1000000, Core::header($sent, 'Content-Length'));
-        $this->assertEquals($data, $sent['body']);
-    }
-
-    public function testAddsContentLengthFromStream()
-    {
-        $stream = Stream::factory('foo');
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'body'        => $stream,
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertEquals(3, Core::header($sent, 'Content-Length'));
-        $this->assertNull(Core::header($sent, 'Transfer-Encoding'));
-        $this->assertEquals('foo', $sent['body']);
-    }
-
-    public function testDoesNotAddMultipleContentLengthHeaders()
-    {
-        $this->addDecodeResponse();
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => [
-                'host'           => [Server::$host],
-                'content-length' => [3],
-            ],
-            'body' => 'foo',
-        ]);
-        $response->wait();
-        $sent = Server::received()[0];
-        $this->assertEquals(3, Core::header($sent, 'Content-Length'));
-        $this->assertNull(Core::header($sent, 'Transfer-Encoding'));
-        $this->assertEquals('foo', $sent['body']);
-    }
-
-    public function testSendsPostWithNoBodyOrDefaultContentType()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $handler = new CurlMultiHandler();
-        $response = $handler([
-            'http_method' => 'POST',
-            'uri'         => '/',
-            'headers'     => ['host' => [Server::$host]],
-        ]);
-        $response->wait();
-        $received = Server::received()[0];
-        $this->assertEquals('POST', $received['http_method']);
-        $this->assertNull(Core::header($received, 'content-type'));
-        $this->assertSame('0', Core::firstHeader($received, 'content-length'));
-    }
-
-    public function testParseProtocolVersion()
-    {
-        $res = CurlFactory::createResponse(
-            function () {},
-            [],
-            ['curl' => ['errno' => null]],
-            ['HTTP/1.1 200 Ok'],
-            null
-        );
-
-        $this->assertSame('1.1', $res['version']);
-    }
-
-    public function testFailsWhenNoResponseAndNoBody()
-    {
-        $res = CurlFactory::createResponse(function () {}, [], [], [], null);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Exception\RingException', $res['error']);
-        $this->assertContains(
-            'No response was received for a request with no body',
-            $res['error']->getMessage()
-        );
-    }
-
-    public function testFailsWhenCannotRewindRetry()
-    {
-        $res = CurlFactory::createResponse(function () {}, [
-            'body' => new NoSeekStream(Stream::factory('foo'))
-        ], [], [], null);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Exception\RingException', $res['error']);
-        $this->assertContains(
-            'rewind the request body failed',
-            $res['error']->getMessage()
-        );
-    }
-
-    public function testRetriesWhenBodyCanBeRewound()
-    {
-        $callHandler = $called = false;
-        $res = CurlFactory::createResponse(function () use (&$callHandler) {
-            $callHandler = true;
-            return ['status' => 200];
-        }, [
-            'body' => FnStream::decorate(Stream::factory('test'), [
-                'seek' => function () use (&$called) {
-                    $called = true;
-                    return true;
-                }
-            ])
-        ], [], [], null);
-
-        $this->assertTrue($callHandler);
-        $this->assertTrue($called);
-        $this->assertEquals('200', $res['status']);
-    }
-
-    public function testFailsWhenRetryMoreThanThreeTimes()
-    {
-        $call = 0;
-        $mock = new MockHandler(function (array $request) use (&$mock, &$call) {
-            $call++;
-            return CurlFactory::createResponse($mock, $request, [], [], null);
-        });
-        $response = $mock([
-            'http_method' => 'GET',
-            'body'        => 'test',
-        ]);
-        $this->assertEquals(3, $call);
-        $this->assertArrayHasKey('error', $response);
-        $this->assertContains(
-            'The cURL request was retried 3 times',
-            $response['error']->getMessage()
-        );
-    }
-
-    public function testHandles100Continue()
-    {
-        Server::flush();
-        Server::enqueue([
-            [
-                'status' => '200',
-                'reason' => 'OK',
-                'headers' => [
-                    'Test' => ['Hello'],
-                    'Content-Length' => ['4'],
-                ],
-                'body' => 'test',
-            ],
-        ]);
-
-        $request = [
-            'http_method' => 'PUT',
-            'headers'     => [
-                'Host'   => [Server::$host],
-                'Expect' => ['100-Continue'],
-            ],
-            'body'        => 'test',
-        ];
-
-        $handler = new CurlMultiHandler();
-        $response = $handler($request)->wait();
-        $this->assertEquals(200, $response['status']);
-        $this->assertEquals('OK', $response['reason']);
-        $this->assertEquals(['Hello'], $response['headers']['Test']);
-        $this->assertEquals(['4'], $response['headers']['Content-Length']);
-        $this->assertEquals('test', Core::body($response));
-    }
-
-    public function testCreatesConnectException()
-    {
-        $m = new \ReflectionMethod('GuzzleHttp\Ring\Client\CurlFactory', 'createErrorResponse');
-        $m->setAccessible(true);
-        $response = $m->invoke(
-            null,
-            function () {},
-            [],
-            [
-                'err_message' => 'foo',
-                'curl' => [
-                    'errno' => CURLE_COULDNT_CONNECT,
-                ]
-            ]
-        );
-        $this->assertInstanceOf('GuzzleHttp\Ring\Exception\ConnectException', $response['error']);
-    }
-
-    public function testParsesLastResponseOnly()
-    {
-        $response1  = [
-            'status'  => 301,
-            'headers' => [
-                'Content-Length' => ['0'],
-                'Location' => ['/foo']
-            ]
-        ];
-
-        $response2 = [
-            'status'  => 200,
-            'headers' => [
-                'Content-Length' => ['0'],
-                'Foo' => ['bar']
-            ]
-        ];
-
-        Server::flush();
-        Server::enqueue([$response1, $response2]);
-
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['Host'   => [Server::$host]],
-            'client' => [
-                'curl' => [
-                    CURLOPT_FOLLOWLOCATION => true
-                ]
-            ]
-        ])->wait();
-
-        $this->assertEquals(1, $response['transfer_stats']['redirect_count']);
-        $this->assertEquals('http://127.0.0.1:8125/foo', $response['effective_url']);
-        $this->assertEquals(['bar'], $response['headers']['Foo']);
-        $this->assertEquals(200, $response['status']);
-        $this->assertFalse(Core::hasHeader($response, 'Location'));
-    }
-
-    public function testMaintainsMultiHeaderOrder()
-    {
-        Server::flush();
-        Server::enqueue([
-            [
-                'status'  => 200,
-                'headers' => [
-                    'Content-Length' => ['0'],
-                    'Foo' => ['a', 'b'],
-                    'foo' => ['c', 'd'],
-                ]
-            ]
-        ]);
-
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['Host'   => [Server::$host]]
-        ])->wait();
-
-        $this->assertEquals(
-            ['a', 'b', 'c', 'd'],
-            Core::headerLines($response, 'Foo')
-        );
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Directory /path/to/does/not does not exist for save_to value of /path/to/does/not/exist.txt
-     */
-    public function testThrowsWhenDirNotFound()
-    {
-        $request = [
-            'http_method' => 'GET',
-            'headers' => ['host' => [Server::$url]],
-            'client' => ['save_to' => '/path/to/does/not/exist.txt'],
-        ];
-
-        $f = new CurlFactory();
-        $f($request);
-    }
-}
-
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlHandlerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlHandlerTest.php
deleted file mode 100644
index ba03b8cd37b66e34be473072b1a862e9f2cca58e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlHandlerTest.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\CurlHandler;
-
-class CurlHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    protected function setUp()
-    {
-        if (!function_exists('curl_reset')) {
-            $this->markTestSkipped('curl_reset() is not available');
-        }
-    }
-
-    protected function getHandler($factory = null, $options = [])
-    {
-        return new CurlHandler($options);
-    }
-
-    public function testCanSetMaxHandles()
-    {
-        $a = new CurlHandler(['max_handles' => 10]);
-        $this->assertEquals(10, $this->readAttribute($a, 'maxHandles'));
-    }
-
-    public function testCreatesCurlErrors()
-    {
-        $handler = new CurlHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'uri' => '/',
-            'headers' => ['host' => ['localhost:123']],
-            'client' => ['timeout' => 0.001, 'connect_timeout' => 0.001],
-        ]);
-        $this->assertNull($response['status']);
-        $this->assertNull($response['reason']);
-        $this->assertEquals([], $response['headers']);
-        $this->assertInstanceOf(
-            'GuzzleHttp\Ring\Exception\RingException',
-            $response['error']
-        );
-
-        $this->assertEquals(
-            1,
-            preg_match('/^cURL error \d+: .*$/', $response['error']->getMessage())
-        );
-    }
-
-    public function testReleasesAdditionalEasyHandles()
-    {
-        Server::flush();
-        $response = [
-            'status'  => 200,
-            'headers' => ['Content-Length' => [4]],
-            'body'    => 'test',
-        ];
-
-        Server::enqueue([$response, $response, $response, $response]);
-        $a = new CurlHandler(['max_handles' => 2]);
-
-        $fn = function () use (&$calls, $a, &$fn) {
-            if (++$calls < 4) {
-                $a([
-                    'http_method' => 'GET',
-                    'headers'     => ['host' => [Server::$host]],
-                    'client'      => ['progress' => $fn],
-                ]);
-            }
-        };
-
-        $request = [
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => [
-                'progress' => $fn,
-            ],
-        ];
-
-        $a($request);
-        $this->assertCount(2, $this->readAttribute($a, 'handles'));
-    }
-
-    public function testReusesHandles()
-    {
-        Server::flush();
-        $response = ['status' => 200];
-        Server::enqueue([$response, $response]);
-        $a = new CurlHandler();
-        $request = [
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-        ];
-        $a($request);
-        $a($request);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlMultiHandlerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlMultiHandlerTest.php
deleted file mode 100644
index 9228f1ceac6ac273e68af635217213cb5146239c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/CurlMultiHandlerTest.php
+++ /dev/null
@@ -1,165 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\CurlMultiHandler;
-
-class CurlMultiHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testSendsRequest()
-    {
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-        ]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $this->assertEquals(200, $response['status']);
-        $this->assertArrayHasKey('transfer_stats', $response);
-        $realUrl = trim($response['transfer_stats']['url'], '/');
-        $this->assertEquals(trim(Server::$url, '/'), $realUrl);
-        $this->assertArrayHasKey('effective_url', $response);
-        $this->assertEquals(
-            trim(Server::$url, '/'),
-            trim($response['effective_url'], '/')
-        );
-    }
-
-    public function testCreatesErrorResponses()
-    {
-        $url = 'http://localhost:123/';
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => ['localhost:123']],
-        ]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $this->assertNull($response['status']);
-        $this->assertNull($response['reason']);
-        $this->assertEquals([], $response['headers']);
-        $this->assertArrayHasKey('error', $response);
-        $this->assertContains('cURL error ', $response['error']->getMessage());
-        $this->assertArrayHasKey('transfer_stats', $response);
-        $this->assertEquals(
-            trim($url, '/'),
-            trim($response['transfer_stats']['url'], '/')
-        );
-        $this->assertArrayHasKey('effective_url', $response);
-        $this->assertEquals(
-            trim($url, '/'),
-            trim($response['effective_url'], '/')
-        );
-    }
-
-    public function testSendsFuturesWhenDestructed()
-    {
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-        ]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $a->__destruct();
-        $this->assertEquals(200, $response['status']);
-    }
-
-    public function testCanSetMaxHandles()
-    {
-        $a = new CurlMultiHandler(['max_handles' => 2]);
-        $this->assertEquals(2, $this->readAttribute($a, 'maxHandles'));
-    }
-
-    public function testCanSetSelectTimeout()
-    {
-        $a = new CurlMultiHandler(['select_timeout' => 2]);
-        $this->assertEquals(2, $this->readAttribute($a, 'selectTimeout'));
-    }
-
-    public function testSendsFuturesWhenMaxHandlesIsReached()
-    {
-        $request = [
-            'http_method' => 'PUT',
-            'headers'     => ['host' => [Server::$host]],
-            'future'      => 'lazy', // passing this to control the test
-        ];
-        $response = ['status' => 200];
-        Server::flush();
-        Server::enqueue([$response, $response, $response]);
-        $a = new CurlMultiHandler(['max_handles' => 3]);
-        for ($i = 0; $i < 5; $i++) {
-            $responses[] = $a($request);
-        }
-        $this->assertCount(3, Server::received());
-        $responses[3]->cancel();
-        $responses[4]->cancel();
-    }
-
-    public function testCanCancel()
-    {
-        Server::flush();
-        $response = ['status' => 200];
-        Server::enqueue(array_fill_keys(range(0, 10), $response));
-        $a = new CurlMultiHandler();
-        $responses = [];
-
-        for ($i = 0; $i < 10; $i++) {
-            $response = $a([
-                'http_method' => 'GET',
-                'headers'     => ['host' => [Server::$host]],
-                'future'      => 'lazy',
-            ]);
-            $response->cancel();
-            $responses[] = $response;
-        }
-
-        $this->assertCount(0, Server::received());
-
-        foreach ($responses as $response) {
-            $this->assertTrue($this->readAttribute($response, 'isRealized'));
-        }
-    }
-
-    public function testCannotCancelFinished()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-        ]);
-        $response->wait();
-        $response->cancel();
-    }
-
-    public function testDelaysInParallel()
-    {
-        Server::flush();
-        Server::enqueue([['status' => 200]]);
-        $a = new CurlMultiHandler();
-        $expected = microtime(true) + (100 / 1000);
-        $response = $a([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => ['delay' => 100],
-        ]);
-        $response->wait();
-        $this->assertGreaterThanOrEqual($expected, microtime(true));
-    }
-
-    public function testSendsNonLazyFutures()
-    {
-        $request = [
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'future'      => true,
-        ];
-        Server::flush();
-        Server::enqueue([['status' => 202]]);
-        $a = new CurlMultiHandler();
-        $response = $a($request);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $this->assertEquals(202, $response['status']);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MiddlewareTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MiddlewareTest.php
deleted file mode 100644
index a47bb30bab4e9b3f88b3da1ebfa0e3f200bb431c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MiddlewareTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\Middleware;
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-
-class MiddlewareTest extends \PHPUnit_Framework_TestCase
-{
-    public function testFutureCallsDefaultHandler()
-    {
-        $future = new CompletedFutureArray(['status' => 200]);
-        $calledA = false;
-        $a = function (array $req) use (&$calledA, $future) {
-            $calledA = true;
-            return $future;
-        };
-        $calledB = false;
-        $b = function (array $req) use (&$calledB) { $calledB = true; };
-        $s = Middleware::wrapFuture($a, $b);
-        $s([]);
-        $this->assertTrue($calledA);
-        $this->assertFalse($calledB);
-    }
-
-    public function testFutureCallsStreamingHandler()
-    {
-        $future = new CompletedFutureArray(['status' => 200]);
-        $calledA = false;
-        $a = function (array $req) use (&$calledA) { $calledA = true; };
-        $calledB = false;
-        $b = function (array $req) use (&$calledB, $future) {
-            $calledB = true;
-            return $future;
-        };
-        $s = Middleware::wrapFuture($a, $b);
-        $result = $s(['client' => ['future' => true]]);
-        $this->assertFalse($calledA);
-        $this->assertTrue($calledB);
-        $this->assertSame($future, $result);
-    }
-
-    public function testStreamingCallsDefaultHandler()
-    {
-        $calledA = false;
-        $a = function (array $req) use (&$calledA) { $calledA = true; };
-        $calledB = false;
-        $b = function (array $req) use (&$calledB) { $calledB = true; };
-        $s = Middleware::wrapStreaming($a, $b);
-        $s([]);
-        $this->assertTrue($calledA);
-        $this->assertFalse($calledB);
-    }
-
-    public function testStreamingCallsStreamingHandler()
-    {
-        $calledA = false;
-        $a = function (array $req) use (&$calledA) { $calledA = true; };
-        $calledB = false;
-        $b = function (array $req) use (&$calledB) { $calledB = true; };
-        $s = Middleware::wrapStreaming($a, $b);
-        $s(['client' => ['stream' => true]]);
-        $this->assertFalse($calledA);
-        $this->assertTrue($calledB);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MockHandlerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MockHandlerTest.php
deleted file mode 100644
index 26bcd6cdc7ea86445f81f5389e963f4f9ab88f2d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/MockHandlerTest.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\MockHandler;
-use GuzzleHttp\Ring\Future\FutureArray;
-use React\Promise\Deferred;
-
-class MockHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsArray()
-    {
-        $mock = new MockHandler(['status' => 200]);
-        $response = $mock([]);
-        $this->assertEquals(200, $response['status']);
-        $this->assertEquals([], $response['headers']);
-        $this->assertNull($response['body']);
-        $this->assertNull($response['reason']);
-        $this->assertNull($response['effective_url']);
-    }
-
-    public function testReturnsFutures()
-    {
-        $deferred = new Deferred();
-        $future = new FutureArray(
-            $deferred->promise(),
-            function () use ($deferred) {
-                $deferred->resolve(['status' => 200]);
-            }
-        );
-        $mock = new MockHandler($future);
-        $response = $mock([]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $this->assertEquals(200, $response['status']);
-    }
-
-    public function testReturnsFuturesWithThenCall()
-    {
-        $deferred = new Deferred();
-        $future = new FutureArray(
-            $deferred->promise(),
-            function () use ($deferred) {
-                $deferred->resolve(['status' => 200]);
-            }
-        );
-        $mock = new MockHandler($future);
-        $response = $mock([]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $this->assertEquals(200, $response['status']);
-        $req = null;
-        $promise = $response->then(function ($value) use (&$req) {
-            $req = $value;
-            $this->assertEquals(200, $req['status']);
-        });
-        $this->assertInstanceOf('React\Promise\PromiseInterface', $promise);
-        $this->assertEquals(200, $req['status']);
-    }
-
-    public function testReturnsFuturesAndProxiesCancel()
-    {
-        $c = null;
-        $deferred = new Deferred();
-        $future = new FutureArray(
-            $deferred->promise(),
-            function () {},
-            function () use (&$c) {
-                $c = true;
-                return true;
-            }
-        );
-        $mock = new MockHandler($future);
-        $response = $mock([]);
-        $this->assertInstanceOf('GuzzleHttp\Ring\Future\FutureArray', $response);
-        $response->cancel();
-        $this->assertTrue($c);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Response must be an array or FutureArrayInterface. Found
-     */
-    public function testEnsuresMockIsValid()
-    {
-        $mock = new MockHandler('foo');
-        $mock([]);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/Server.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/Server.php
deleted file mode 100644
index 14665a5565dfdadd93a146ea67bcfb14a31ea8c7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/Server.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\StreamHandler;
-use GuzzleHttp\Ring\Core;
-
-/**
- * Class uses to control the test webserver.
- *
- * Queued responses will be served to requests using a FIFO order.  All requests
- * received by the server are stored on the node.js server and can be retrieved
- * by calling {@see Server::received()}.
- *
- * Mock responses that don't require data to be transmitted over HTTP a great
- * for testing.  Mock response, however, cannot test the actual sending of an
- * HTTP request using cURL.  This test server allows the simulation of any
- * number of HTTP request response transactions to test the actual sending of
- * requests over the wire without having to leave an internal network.
- */
-class Server
-{
-    public static $started;
-    public static $url = 'http://127.0.0.1:8125/';
-    public static $host = '127.0.0.1:8125';
-    public static $port = 8125;
-
-    /**
-     * Flush the received requests from the server
-     * @throws \RuntimeException
-     */
-    public static function flush()
-    {
-        self::send('DELETE', '/guzzle-server/requests');
-    }
-
-    /**
-     * Queue an array of responses or a single response on the server.
-     *
-     * Any currently queued responses will be overwritten. Subsequent requests
-     * on the server will return queued responses in FIFO order.
-     *
-     * @param array $responses An array of responses. The shape of a response
-     *                         is the shape described in the RingPHP spec.
-     * @throws \Exception
-     */
-    public static function enqueue(array $responses)
-    {
-        $data = [];
-
-        foreach ($responses as $response) {
-            if (!is_array($response)) {
-                throw new \Exception('Each response must be an array');
-            }
-
-            if (isset($response['body'])) {
-                $response['body'] = base64_encode($response['body']);
-            }
-
-            $response += ['headers' => [], 'reason' => '', 'body' => ''];
-            $data[] = $response;
-        }
-
-        self::send('PUT', '/guzzle-server/responses', json_encode($data));
-    }
-
-    /**
-     * Get all of the received requests as a RingPHP request structure.
-     *
-     * @return array
-     * @throws \RuntimeException
-     */
-    public static function received()
-    {
-        if (!self::$started) {
-            return [];
-        }
-
-        $response = self::send('GET', '/guzzle-server/requests');
-        $body = Core::body($response);
-        $result = json_decode($body, true);
-        if ($result === false) {
-            throw new \RuntimeException('Error decoding response: '
-                . json_last_error());
-        }
-
-        foreach ($result as &$res) {
-            if (isset($res['uri'])) {
-                $res['resource'] = $res['uri'];
-            }
-            if (isset($res['query_string'])) {
-                $res['resource'] .= '?' . $res['query_string'];
-            }
-            if (!isset($res['resource'])) {
-                $res['resource'] = '';
-            }
-            // Ensure that headers are all arrays
-            if (isset($res['headers'])) {
-                foreach ($res['headers'] as &$h) {
-                    $h = (array) $h;
-                }
-                unset($h);
-            }
-        }
-
-        unset($res);
-        return $result;
-    }
-
-    /**
-     * Stop running the node.js server
-     */
-    public static function stop()
-    {
-        if (self::$started) {
-            self::send('DELETE', '/guzzle-server');
-        }
-
-        self::$started = false;
-    }
-
-    public static function wait($maxTries = 20)
-    {
-        $tries = 0;
-        while (!self::isListening() && ++$tries < $maxTries) {
-            usleep(100000);
-        }
-
-        if (!self::isListening()) {
-            throw new \RuntimeException('Unable to contact node.js server');
-        }
-    }
-
-    public static function start()
-    {
-        if (self::$started) {
-            return;
-        }
-
-        try {
-            self::wait();
-        } catch (\Exception $e) {
-            exec('node ' . __DIR__ . \DIRECTORY_SEPARATOR . 'server.js '
-                . self::$port . ' >> /tmp/server.log 2>&1 &');
-            self::wait();
-        }
-
-        self::$started = true;
-    }
-
-    private static function isListening()
-    {
-        $response = self::send('GET', '/guzzle-server/perf', null, [
-            'connect_timeout' => 1,
-            'timeout'         => 1
-        ]);
-
-        return !isset($response['error']);
-    }
-
-    private static function send(
-        $method,
-        $path,
-        $body = null,
-        array $client = []
-    ) {
-        $handler = new StreamHandler();
-
-        $request = [
-            'http_method'  => $method,
-            'uri'          => $path,
-            'request_port' => 8125,
-            'headers'      => ['host' => ['127.0.0.1:8125']],
-            'body'         => $body,
-            'client'       => $client,
-        ];
-
-        if ($body) {
-            $request['headers']['content-length'] = [strlen($body)];
-        }
-
-        return $handler($request);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php
deleted file mode 100644
index 3cb9a8e1e63ba0b6b056f49aca19e7d562884518..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php
+++ /dev/null
@@ -1,480 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Client;
-
-use GuzzleHttp\Ring\Client\ClientUtils;
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Client\StreamHandler;
-
-class StreamHandlerTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsResponseForSuccessfulRequest()
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'uri'         => '/',
-            'headers'     => [
-                'host' => [Server::$host],
-                'Foo' => ['Bar'],
-            ],
-        ]);
-
-        $this->assertEquals('1.1', $response['version']);
-        $this->assertEquals(200, $response['status']);
-        $this->assertEquals('OK', $response['reason']);
-        $this->assertEquals(['Bar'], $response['headers']['Foo']);
-        $this->assertEquals(['8'], $response['headers']['Content-Length']);
-        $this->assertEquals('hi there', Core::body($response));
-
-        $sent = Server::received()[0];
-        $this->assertEquals('GET', $sent['http_method']);
-        $this->assertEquals('/', $sent['resource']);
-        $this->assertEquals(['127.0.0.1:8125'], $sent['headers']['host']);
-        $this->assertEquals('Bar', Core::header($sent, 'foo'));
-    }
-
-    public function testAddsErrorToResponse()
-    {
-        $handler = new StreamHandler();
-        $result = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => ['localhost:123']],
-            'client'      => ['timeout' => 0.01],
-        ]);
-        $this->assertInstanceOf(
-            'GuzzleHttp\Ring\Future\CompletedFutureArray',
-            $result
-        );
-        $this->assertNull($result['status']);
-        $this->assertNull($result['body']);
-        $this->assertEquals([], $result['headers']);
-        $this->assertInstanceOf(
-            'GuzzleHttp\Ring\Exception\RingException',
-            $result['error']
-        );
-    }
-
-    public function testEnsuresTheHttpProtocol()
-    {
-        $handler = new StreamHandler();
-        $result = $handler([
-            'http_method' => 'GET',
-            'url'         => 'ftp://localhost:123',
-        ]);
-        $this->assertArrayHasKey('error', $result);
-        $this->assertContains(
-            'URL is invalid: ftp://localhost:123',
-            $result['error']->getMessage()
-        );
-    }
-
-    public function testStreamAttributeKeepsStreamOpen()
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method'  => 'PUT',
-            'uri'          => '/foo',
-            'query_string' => 'baz=bar',
-            'headers'      => [
-                'host' => [Server::$host],
-                'Foo'  => ['Bar'],
-            ],
-            'body'         => 'test',
-            'client'       => ['stream' => true],
-        ]);
-
-        $this->assertEquals(200, $response['status']);
-        $this->assertEquals('OK', $response['reason']);
-        $this->assertEquals('8', Core::header($response, 'Content-Length'));
-        $body = $response['body'];
-        $this->assertTrue(is_resource($body));
-        $this->assertEquals('http', stream_get_meta_data($body)['wrapper_type']);
-        $this->assertEquals('hi there', stream_get_contents($body));
-        fclose($body);
-        $sent = Server::received()[0];
-        $this->assertEquals('PUT', $sent['http_method']);
-        $this->assertEquals('/foo', $sent['uri']);
-        $this->assertEquals('baz=bar', $sent['query_string']);
-        $this->assertEquals('/foo?baz=bar', $sent['resource']);
-        $this->assertEquals('127.0.0.1:8125', Core::header($sent, 'host'));
-        $this->assertEquals('Bar', Core::header($sent, 'foo'));
-    }
-
-    public function testDrainsResponseIntoTempStream()
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'uri'         => '/',
-            'headers'     => ['host' => [Server::$host]],
-        ]);
-        $body = $response['body'];
-        $this->assertEquals('php://temp', stream_get_meta_data($body)['uri']);
-        $this->assertEquals('hi', fread($body, 2));
-        fclose($body);
-    }
-
-    public function testDrainsResponseIntoSaveToBody()
-    {
-        $r = fopen('php://temp', 'r+');
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'uri' => '/',
-            'headers' => ['host' => [Server::$host]],
-            'client' => ['save_to' => $r],
-        ]);
-        $body = $response['body'];
-        $this->assertEquals('php://temp', stream_get_meta_data($body)['uri']);
-        $this->assertEquals('hi', fread($body, 2));
-        $this->assertEquals(' there', stream_get_contents($r));
-        fclose($r);
-    }
-
-    public function testDrainsResponseIntoSaveToBodyAtPath()
-    {
-        $tmpfname = tempnam('/tmp', 'save_to_path');
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'uri' => '/',
-            'headers' => ['host' => [Server::$host]],
-            'client' => ['save_to' => $tmpfname],
-        ]);
-        $body = $response['body'];
-        $this->assertInstanceOf('GuzzleHttp\Stream\StreamInterface', $body);
-        $this->assertEquals($tmpfname, $body->getMetadata('uri'));
-        $this->assertEquals('hi', $body->read(2));
-        $body->close();
-        unlink($tmpfname);
-    }
-
-    public function testAutomaticallyDecompressGzip()
-    {
-        Server::flush();
-        $content = gzencode('test');
-        Server::enqueue([
-            [
-                'status' => 200,
-                'reason' => 'OK',
-                'headers' => [
-                    'Content-Encoding' => ['gzip'],
-                    'Content-Length' => [strlen($content)],
-                ],
-                'body' => $content,
-            ],
-        ]);
-
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'uri'         => '/',
-            'client'      => ['decode_content' => true],
-        ]);
-        $this->assertEquals('test', Core::body($response));
-    }
-
-    public function testDoesNotForceGzipDecode()
-    {
-        Server::flush();
-        $content = gzencode('test');
-        Server::enqueue([
-            [
-                'status' => 200,
-                'reason' => 'OK',
-                'headers' => [
-                    'Content-Encoding' => ['gzip'],
-                    'Content-Length'   => [strlen($content)],
-                ],
-                'body' => $content,
-            ],
-        ]);
-
-        $handler = new StreamHandler();
-        $response = $handler([
-            'http_method' => 'GET',
-            'headers'     => ['host' => [Server::$host]],
-            'uri'         => '/',
-            'client'      => ['stream' => true, 'decode_content' => false],
-        ]);
-        $this->assertSame($content, Core::body($response));
-    }
-
-    public function testProtocolVersion()
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $handler([
-            'http_method' => 'GET',
-            'uri'         => '/',
-            'headers'     => ['host' => [Server::$host]],
-            'version'     => 1.0,
-        ]);
-
-        $this->assertEquals(1.0, Server::received()[0]['version']);
-    }
-
-    protected function getSendResult(array $opts)
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $opts['stream'] = true;
-        return $handler([
-            'http_method' => 'GET',
-            'uri'         => '/',
-            'headers'     => ['host' => [Server::$host]],
-            'client'      => $opts,
-        ]);
-    }
-
-    public function testAddsProxy()
-    {
-        $res = $this->getSendResult(['stream' => true, 'proxy' => '127.0.0.1:8125']);
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals('127.0.0.1:8125', $opts['http']['proxy']);
-    }
-
-    public function testAddsTimeout()
-    {
-        $res = $this->getSendResult(['stream' => true, 'timeout' => 200]);
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals(200, $opts['http']['timeout']);
-    }
-
-    public function testVerifiesVerifyIsValidIfPath()
-    {
-        $res = $this->getSendResult(['verify' => '/does/not/exist']);
-        $this->assertContains(
-            'SSL CA bundle not found: /does/not/exist',
-            (string) $res['error']
-        );
-    }
-
-    public function testVerifyCanBeDisabled()
-    {
-        $res = $this->getSendResult(['verify' => false]);
-        $this->assertArrayNotHasKey('error', $res);
-    }
-
-    public function testVerifiesCertIfValidPath()
-    {
-        $res = $this->getSendResult(['cert' => '/does/not/exist']);
-        $this->assertContains(
-            'SSL certificate not found: /does/not/exist',
-            (string) $res['error']
-        );
-    }
-
-    public function testVerifyCanBeSetToPath()
-    {
-        $path = $path = ClientUtils::getDefaultCaBundle();
-        $res = $this->getSendResult(['verify' => $path]);
-        $this->assertArrayNotHasKey('error', $res);
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals(true, $opts['ssl']['verify_peer']);
-        $this->assertEquals($path, $opts['ssl']['cafile']);
-        $this->assertTrue(file_exists($opts['ssl']['cafile']));
-    }
-
-    public function testUsesSystemDefaultBundle()
-    {
-        $path = $path = ClientUtils::getDefaultCaBundle();
-        $res = $this->getSendResult(['verify' => true]);
-        $this->assertArrayNotHasKey('error', $res);
-        $opts = stream_context_get_options($res['body']);
-        if (PHP_VERSION_ID < 50600) {
-            $this->assertEquals($path, $opts['ssl']['cafile']);
-        }
-    }
-
-    public function testEnsuresVerifyOptionIsValid()
-    {
-        $res = $this->getSendResult(['verify' => 10]);
-        $this->assertContains(
-            'Invalid verify request option',
-            (string) $res['error']
-        );
-    }
-
-    public function testCanSetPasswordWhenSettingCert()
-    {
-        $path = __FILE__;
-        $res = $this->getSendResult(['cert' => [$path, 'foo']]);
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals($path, $opts['ssl']['local_cert']);
-        $this->assertEquals('foo', $opts['ssl']['passphrase']);
-    }
-
-    public function testDebugAttributeWritesToStream()
-    {
-        $this->queueRes();
-        $f = fopen('php://temp', 'w+');
-        $this->getSendResult(['debug' => $f]);
-        fseek($f, 0);
-        $contents = stream_get_contents($f);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [CONNECT]', $contents);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [FILE_SIZE_IS]', $contents);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [PROGRESS]', $contents);
-    }
-
-    public function testDebugAttributeWritesStreamInfoToBuffer()
-    {
-        $called = false;
-        $this->queueRes();
-        $buffer = fopen('php://temp', 'r+');
-        $this->getSendResult([
-            'progress' => function () use (&$called) { $called = true; },
-            'debug' => $buffer,
-        ]);
-        fseek($buffer, 0);
-        $contents = stream_get_contents($buffer);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [CONNECT]', $contents);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [FILE_SIZE_IS] message: "Content-Length: 8"', $contents);
-        $this->assertContains('<GET http://127.0.0.1:8125/> [PROGRESS] bytes_max: "8"', $contents);
-        $this->assertTrue($called);
-    }
-
-    public function testEmitsProgressInformation()
-    {
-        $called = [];
-        $this->queueRes();
-        $this->getSendResult([
-            'progress' => function () use (&$called) {
-                $called[] = func_get_args();
-            },
-        ]);
-        $this->assertNotEmpty($called);
-        $this->assertEquals(8, $called[0][0]);
-        $this->assertEquals(0, $called[0][1]);
-    }
-
-    public function testEmitsProgressInformationAndDebugInformation()
-    {
-        $called = [];
-        $this->queueRes();
-        $buffer = fopen('php://memory', 'w+');
-        $this->getSendResult([
-            'debug'    => $buffer,
-            'progress' => function () use (&$called) {
-                $called[] = func_get_args();
-            },
-        ]);
-        $this->assertNotEmpty($called);
-        $this->assertEquals(8, $called[0][0]);
-        $this->assertEquals(0, $called[0][1]);
-        rewind($buffer);
-        $this->assertNotEmpty(stream_get_contents($buffer));
-        fclose($buffer);
-    }
-
-    public function testAddsProxyByProtocol()
-    {
-        $url = str_replace('http', 'tcp', Server::$url);
-        $res = $this->getSendResult(['proxy' => ['http' => $url]]);
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals($url, $opts['http']['proxy']);
-    }
-
-    public function testPerformsShallowMergeOfCustomContextOptions()
-    {
-        $res = $this->getSendResult([
-            'stream_context' => [
-                'http' => [
-                    'request_fulluri' => true,
-                    'method' => 'HEAD',
-                ],
-                'socket' => [
-                    'bindto' => '127.0.0.1:0',
-                ],
-                'ssl' => [
-                    'verify_peer' => false,
-                ],
-            ],
-        ]);
-
-        $opts = stream_context_get_options($res['body']);
-        $this->assertEquals('HEAD', $opts['http']['method']);
-        $this->assertTrue($opts['http']['request_fulluri']);
-        $this->assertFalse($opts['ssl']['verify_peer']);
-        $this->assertEquals('127.0.0.1:0', $opts['socket']['bindto']);
-    }
-
-    public function testEnsuresThatStreamContextIsAnArray()
-    {
-        $res = $this->getSendResult(['stream_context' => 'foo']);
-        $this->assertContains(
-            'stream_context must be an array',
-            (string) $res['error']
-        );
-    }
-
-    public function testDoesNotAddContentTypeByDefault()
-    {
-        $this->queueRes();
-        $handler = new StreamHandler();
-        $handler([
-            'http_method' => 'PUT',
-            'uri' => '/',
-            'headers' => ['host' => [Server::$host], 'content-length' => [3]],
-            'body' => 'foo',
-        ]);
-        $req = Server::received()[0];
-        $this->assertEquals('', Core::header($req, 'Content-Type'));
-        $this->assertEquals(3, Core::header($req, 'Content-Length'));
-    }
-
-    private function queueRes()
-    {
-        Server::flush();
-        Server::enqueue([
-            [
-                'status' => 200,
-                'reason' => 'OK',
-                'headers' => [
-                    'Foo' => ['Bar'],
-                    'Content-Length' => [8],
-                ],
-                'body' => 'hi there',
-            ],
-        ]);
-    }
-
-    public function testSupports100Continue()
-    {
-        Server::flush();
-        Server::enqueue([
-            [
-                'status' => '200',
-                'reason' => 'OK',
-                'headers' => [
-                    'Test' => ['Hello'],
-                    'Content-Length' => ['4'],
-                ],
-                'body' => 'test',
-            ],
-        ]);
-
-        $request = [
-            'http_method' => 'PUT',
-            'headers'     => [
-                'Host'   => [Server::$host],
-                'Expect' => ['100-Continue'],
-            ],
-            'body'        => 'test',
-        ];
-
-        $handler = new StreamHandler();
-        $response = $handler($request);
-        $this->assertEquals(200, $response['status']);
-        $this->assertEquals('OK', $response['reason']);
-        $this->assertEquals(['Hello'], $response['headers']['Test']);
-        $this->assertEquals(['4'], $response['headers']['Content-Length']);
-        $this->assertEquals('test', Core::body($response));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/server.js b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/server.js
deleted file mode 100644
index 6a03e33ab222ab499d81c0f50df3c5678ac51a3b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Client/server.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * Guzzle node.js test server to return queued responses to HTTP requests and
- * expose a RESTful API for enqueueing responses and retrieving the requests
- * that have been received.
- *
- * - Delete all requests that have been received:
- *      > DELETE /guzzle-server/requests
- *      > Host: 127.0.0.1:8125
- *
- *  - Enqueue responses
- *      > PUT /guzzle-server/responses
- *      > Host: 127.0.0.1:8125
- *      >
- *      > [{'status': 200, 'reason': 'OK', 'headers': {}, 'body': '' }]
- *
- *  - Get the received requests
- *      > GET /guzzle-server/requests
- *      > Host: 127.0.0.1:8125
- *
- *      < HTTP/1.1 200 OK
- *      <
- *      < [{'http_method': 'GET', 'uri': '/', 'headers': {}, 'body': 'string'}]
- *
- *  - Attempt access to the secure area
- *      > GET /secure/by-digest/qop-auth/guzzle-server/requests
- *      > Host: 127.0.0.1:8125
- *
- *      < HTTP/1.1 401 Unauthorized
- *      < WWW-Authenticate: Digest realm="Digest Test", qop="auth", nonce="0796e98e1aeef43141fab2a66bf4521a", algorithm="MD5", stale="false"
- *      <
- *      < 401 Unauthorized
- *
- *  - Shutdown the server
- *      > DELETE /guzzle-server
- *      > Host: 127.0.0.1:8125
- *
- * @package Guzzle PHP <http://www.guzzlephp.org>
- * @license See the LICENSE file that was distributed with this source code.
- */
-
-var http = require('http');
-var url = require('url');
-
-/**
- * Guzzle node.js server
- * @class
- */
-var GuzzleServer = function(port, log) {
-
-    this.port = port;
-    this.log = log;
-    this.responses = [];
-    this.requests = [];
-    var that = this;
-
-    var md5 = function(input) {
-        var crypto = require('crypto');
-        var hasher = crypto.createHash('md5');
-        hasher.update(input);
-        return hasher.digest('hex');
-    }
-
-    /**
-     * Node.js HTTP server authentication module.
-     *
-     * It is only initialized on demand (by loadAuthentifier). This avoids
-     * requiring the dependency to http-auth on standard operations, and the
-     * performance hit at startup.
-     */
-    var auth;
-
-    /**
-     * Provides authentication handlers (Basic, Digest).
-     */
-    var loadAuthentifier = function(type, options) {
-        var typeId = type;
-        if (type == 'digest') {
-            typeId += '.'+(options && options.qop ? options.qop : 'none');
-        }
-        if (!loadAuthentifier[typeId]) {
-            if (!auth) {
-                try {
-                    auth = require('http-auth');
-                } catch (e) {
-                    if (e.code == 'MODULE_NOT_FOUND') {
-                        return;
-                    }
-                }
-            }
-            switch (type) {
-                case 'digest':
-                    var digestParams = {
-                        realm: 'Digest Test',
-                        login: 'me',
-                        password: 'test'
-                    };
-                    if (options && options.qop) {
-                        digestParams.qop = options.qop;
-                    }
-                    loadAuthentifier[typeId] = auth.digest(digestParams, function(username, callback) {
-                        callback(md5(digestParams.login + ':' + digestParams.realm + ':' + digestParams.password));
-                    });
-                    break
-            }
-        }
-        return loadAuthentifier[typeId];
-    };
-
-    var firewallRequest = function(request, req, res, requestHandlerCallback) {
-        var securedAreaUriParts = request.uri.match(/^\/secure\/by-(digest)(\/qop-([^\/]*))?(\/.*)$/);
-        if (securedAreaUriParts) {
-            var authentifier = loadAuthentifier(securedAreaUriParts[1], { qop: securedAreaUriParts[2] });
-            if (!authentifier) {
-                res.writeHead(501, 'HTTP authentication not implemented', { 'Content-Length': 0 });
-                res.end();
-                return;
-            }
-            authentifier.check(req, res, function(req, res) {
-                req.url = securedAreaUriParts[4];
-                requestHandlerCallback(request, req, res);
-            });
-        } else {
-            requestHandlerCallback(request, req, res);
-        }
-    };
-
-    var controlRequest = function(request, req, res) {
-        if (req.url == '/guzzle-server/perf') {
-            res.writeHead(200, 'OK', {'Content-Length': 16});
-            res.end('Body of response');
-        } else if (req.method == 'DELETE') {
-            if (req.url == '/guzzle-server/requests') {
-                // Clear the received requests
-                that.requests = [];
-                res.writeHead(200, 'OK', { 'Content-Length': 0 });
-                res.end();
-                if (that.log) {
-                    console.log('Flushing requests');
-                }
-            } else if (req.url == '/guzzle-server') {
-                // Shutdown the server
-                res.writeHead(200, 'OK', { 'Content-Length': 0, 'Connection': 'close' });
-                res.end();
-                if (that.log) {
-                    console.log('Shutting down');
-                }
-                that.server.close();
-            }
-        } else if (req.method == 'GET') {
-            if (req.url === '/guzzle-server/requests') {
-                if (that.log) {
-                    console.log('Sending received requests');
-                }
-                // Get received requests
-                var body = JSON.stringify(that.requests);
-                res.writeHead(200, 'OK', { 'Content-Length': body.length });
-                res.end(body);
-            }
-        } else if (req.method == 'PUT' && req.url == '/guzzle-server/responses') {
-            if (that.log) {
-                console.log('Adding responses...');
-            }
-            if (!request.body) {
-                if (that.log) {
-                    console.log('No response data was provided');
-                }
-                res.writeHead(400, 'NO RESPONSES IN REQUEST', { 'Content-Length': 0 });
-            } else {
-                that.responses = eval('(' + request.body + ')');
-                for (var i = 0; i < that.responses.length; i++) {
-                    if (that.responses[i].body) {
-                        that.responses[i].body = new Buffer(that.responses[i].body, 'base64');
-                    }
-                }
-                if (that.log) {
-                    console.log(that.responses);
-                }
-                res.writeHead(200, 'OK', { 'Content-Length': 0 });
-            }
-            res.end();
-        }
-    };
-
-    var receivedRequest = function(request, req, res) {
-        if (req.url.indexOf('/guzzle-server') === 0) {
-            controlRequest(request, req, res);
-        } else if (req.url.indexOf('/guzzle-server') == -1 && !that.responses.length) {
-            res.writeHead(500);
-            res.end('No responses in queue');
-        } else {
-            if (that.log) {
-                console.log('Returning response from queue and adding request');
-            }
-            that.requests.push(request);
-            var response = that.responses.shift();
-            res.writeHead(response.status, response.reason, response.headers);
-            res.end(response.body);
-        }
-    };
-
-    this.start = function() {
-
-        that.server = http.createServer(function(req, res) {
-
-            var parts = url.parse(req.url, false);
-            var request = {
-                http_method: req.method,
-                scheme: parts.scheme,
-                uri: parts.pathname,
-                query_string: parts.query,
-                headers: req.headers,
-                version: req.httpVersion,
-                body: ''
-            };
-
-            // Receive each chunk of the request body
-            req.addListener('data', function(chunk) {
-                request.body += chunk;
-            });
-
-            // Called when the request completes
-            req.addListener('end', function() {
-                firewallRequest(request, req, res, receivedRequest);
-            });
-        });
-
-        that.server.listen(this.port, '127.0.0.1');
-
-        if (this.log) {
-            console.log('Server running at http://127.0.0.1:8125/');
-        }
-    };
-};
-
-// Get the port from the arguments
-port = process.argv.length >= 3 ? process.argv[2] : 8125;
-log = process.argv.length >= 4 ? process.argv[3] : false;
-
-// Start the server
-server = new GuzzleServer(port, log);
-server.start();
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/CoreTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/CoreTest.php
deleted file mode 100644
index 49522f26b7e851c393d98878db9d4b5bfcd33023..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/CoreTest.php
+++ /dev/null
@@ -1,336 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring;
-
-use GuzzleHttp\Ring\Core;
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-use GuzzleHttp\Ring\Future\FutureArray;
-use GuzzleHttp\Stream\Stream;
-use React\Promise\Deferred;
-
-class CoreTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsNullNoHeadersAreSet()
-    {
-        $this->assertNull(Core::header([], 'Foo'));
-        $this->assertNull(Core::firstHeader([], 'Foo'));
-    }
-
-    public function testChecksIfHasHeader()
-    {
-        $message = [
-            'headers' => [
-                'Foo' => ['Bar', 'Baz'],
-                'foo' => ['hello'],
-                'bar' => ['1']
-            ]
-        ];
-        $this->assertTrue(Core::hasHeader($message, 'Foo'));
-        $this->assertTrue(Core::hasHeader($message, 'foo'));
-        $this->assertTrue(Core::hasHeader($message, 'FoO'));
-        $this->assertTrue(Core::hasHeader($message, 'bar'));
-        $this->assertFalse(Core::hasHeader($message, 'barr'));
-    }
-
-    public function testReturnsFirstHeaderWhenSimple()
-    {
-        $this->assertEquals('Bar', Core::firstHeader([
-            'headers' => ['Foo' => ['Bar', 'Baz']],
-        ], 'Foo'));
-    }
-
-    public function testReturnsFirstHeaderWhenMultiplePerLine()
-    {
-        $this->assertEquals('Bar', Core::firstHeader([
-            'headers' => ['Foo' => ['Bar, Baz']],
-        ], 'Foo'));
-    }
-
-    public function testExtractsCaseInsensitiveHeader()
-    {
-        $this->assertEquals(
-            'hello',
-            Core::header(['headers' => ['foo' => ['hello']]], 'FoO')
-        );
-    }
-
-    public function testExtractsCaseInsensitiveHeaderLines()
-    {
-        $this->assertEquals(
-            ['a', 'b', 'c', 'd'],
-            Core::headerLines([
-                'headers' => [
-                    'foo' => ['a', 'b'],
-                    'Foo' => ['c', 'd']
-                ]
-            ], 'foo')
-        );
-    }
-
-    public function testExtractsHeaderLines()
-    {
-        $this->assertEquals(
-            ['bar', 'baz'],
-            Core::headerLines([
-                'headers' => [
-                    'Foo' => ['bar', 'baz'],
-                ],
-            ], 'Foo')
-        );
-    }
-
-    public function testExtractsHeaderAsString()
-    {
-        $this->assertEquals(
-            'bar, baz',
-            Core::header([
-                'headers' => [
-                    'Foo' => ['bar', 'baz'],
-                ],
-            ], 'Foo', true)
-        );
-    }
-
-    public function testReturnsNullWhenHeaderNotFound()
-    {
-        $this->assertNull(Core::header(['headers' => []], 'Foo'));
-    }
-
-    public function testRemovesHeaders()
-    {
-        $message = [
-            'headers' => [
-                'foo' => ['bar'],
-                'Foo' => ['bam'],
-                'baz' => ['123'],
-            ],
-        ];
-
-        $this->assertSame($message, Core::removeHeader($message, 'bam'));
-        $this->assertEquals([
-            'headers' => ['baz' => ['123']],
-        ], Core::removeHeader($message, 'foo'));
-    }
-
-    public function testCreatesUrl()
-    {
-        $req = [
-            'scheme'  => 'http',
-            'headers' => ['host' => ['foo.com']],
-            'uri'     => '/',
-        ];
-
-        $this->assertEquals('http://foo.com/', Core::url($req));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage No Host header was provided
-     */
-    public function testEnsuresHostIsAvailableWhenCreatingUrls()
-    {
-        Core::url([]);
-    }
-
-    public function testCreatesUrlWithQueryString()
-    {
-        $req = [
-            'scheme'       => 'http',
-            'headers'      => ['host' => ['foo.com']],
-            'uri'          => '/',
-            'query_string' => 'foo=baz',
-        ];
-
-        $this->assertEquals('http://foo.com/?foo=baz', Core::url($req));
-    }
-
-    public function testUsesUrlIfSet()
-    {
-        $req = ['url' => 'http://foo.com'];
-        $this->assertEquals('http://foo.com', Core::url($req));
-    }
-
-    public function testReturnsNullWhenNoBody()
-    {
-        $this->assertNull(Core::body([]));
-    }
-
-    public function testReturnsStreamAsString()
-    {
-        $this->assertEquals(
-            'foo',
-            Core::body(['body' => Stream::factory('foo')])
-        );
-    }
-
-    public function testReturnsString()
-    {
-        $this->assertEquals('foo', Core::body(['body' => 'foo']));
-    }
-
-    public function testReturnsResourceContent()
-    {
-        $r = fopen('php://memory', 'w+');
-        fwrite($r, 'foo');
-        rewind($r);
-        $this->assertEquals('foo', Core::body(['body' => $r]));
-        fclose($r);
-    }
-
-    public function testReturnsIteratorContent()
-    {
-        $a = new \ArrayIterator(['a', 'b', 'cd', '']);
-        $this->assertEquals('abcd', Core::body(['body' => $a]));
-    }
-
-    public function testReturnsObjectToString()
-    {
-        $this->assertEquals('foo', Core::body(['body' => new StrClass]));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testEnsuresBodyIsValid()
-    {
-        Core::body(['body' => false]);
-    }
-
-    public function testParsesHeadersFromLines()
-    {
-        $lines = ['Foo: bar', 'Foo: baz', 'Abc: 123', 'Def: a, b'];
-        $this->assertEquals([
-            'Foo' => ['bar', 'baz'],
-            'Abc' => ['123'],
-            'Def' => ['a, b'],
-        ], Core::headersFromLines($lines));
-    }
-
-    public function testParsesHeadersFromLinesWithMultipleLines()
-    {
-        $lines = ['Foo: bar', 'Foo: baz', 'Foo: 123'];
-        $this->assertEquals([
-            'Foo' => ['bar', 'baz', '123'],
-        ], Core::headersFromLines($lines));
-    }
-
-    public function testCreatesArrayCallFunctions()
-    {
-        $called = [];
-        $a = function ($a, $b) use (&$called) {
-            $called['a'] = func_get_args();
-        };
-        $b = function ($a, $b) use (&$called) {
-            $called['b'] = func_get_args();
-        };
-        $c = Core::callArray([$a, $b]);
-        $c(1, 2);
-        $this->assertEquals([1, 2], $called['a']);
-        $this->assertEquals([1, 2], $called['b']);
-    }
-
-    public function testRewindsGuzzleStreams()
-    {
-        $str = Stream::factory('foo');
-        $this->assertTrue(Core::rewindBody(['body' => $str]));
-    }
-
-    public function testRewindsStreams()
-    {
-        $str = Stream::factory('foo')->detach();
-        $this->assertTrue(Core::rewindBody(['body' => $str]));
-    }
-
-    public function testRewindsIterators()
-    {
-        $iter = new \ArrayIterator(['foo']);
-        $this->assertTrue(Core::rewindBody(['body' => $iter]));
-    }
-
-    public function testRewindsStrings()
-    {
-        $this->assertTrue(Core::rewindBody(['body' => 'hi']));
-    }
-
-    public function testRewindsToStrings()
-    {
-        $this->assertTrue(Core::rewindBody(['body' => new StrClass()]));
-    }
-
-    public function typeProvider()
-    {
-        return [
-            ['foo', 'string(3) "foo"'],
-            [true, 'bool(true)'],
-            [false, 'bool(false)'],
-            [10, 'int(10)'],
-            [1.0, 'float(1)'],
-            [new StrClass(), 'object(GuzzleHttp\Tests\Ring\StrClass)'],
-            [['foo'], 'array(1)']
-        ];
-    }
-
-    /**
-     * @dataProvider typeProvider
-     */
-    public function testDescribesType($input, $output)
-    {
-        $this->assertEquals($output, Core::describeType($input));
-    }
-
-    public function testDoesSleep()
-    {
-        $t = microtime(true);
-        $expected = $t + (100 / 1000);
-        Core::doSleep(['client' => ['delay' => 100]]);
-        $this->assertGreaterThanOrEqual($expected, microtime(true));
-    }
-
-    public function testProxiesFuture()
-    {
-        $f = new CompletedFutureArray(['status' => 200]);
-        $res = null;
-        $proxied = Core::proxy($f, function ($value) use (&$res) {
-            $value['foo'] = 'bar';
-            $res = $value;
-            return $value;
-        });
-        $this->assertNotSame($f, $proxied);
-        $this->assertEquals(200, $f->wait()['status']);
-        $this->assertArrayNotHasKey('foo', $f->wait());
-        $this->assertEquals('bar', $proxied->wait()['foo']);
-        $this->assertEquals(200, $proxied->wait()['status']);
-    }
-
-    public function testProxiesDeferredFuture()
-    {
-        $d = new Deferred();
-        $f = new FutureArray($d->promise());
-        $f2 = Core::proxy($f);
-        $d->resolve(['foo' => 'bar']);
-        $this->assertEquals('bar', $f['foo']);
-        $this->assertEquals('bar', $f2['foo']);
-    }
-
-    public function testProxiesDeferredFutureFailure()
-    {
-        $d = new Deferred();
-        $f = new FutureArray($d->promise());
-        $f2 = Core::proxy($f);
-        $d->reject(new \Exception('foo'));
-        try {
-            $f2['hello?'];
-            $this->fail('did not throw');
-        } catch (\Exception $e) {
-            $this->assertEquals('foo', $e->getMessage());
-        }
-
-    }
-}
-
-final class StrClass
-{
-    public function __toString()
-    {
-        return 'foo';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureArrayTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureArrayTest.php
deleted file mode 100644
index 82d7efbf5caa958a54c786efc9a0fa572e4b3f21..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureArrayTest.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Future;
-
-use GuzzleHttp\Ring\Future\CompletedFutureArray;
-
-class CompletedFutureArrayTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsAsArray()
-    {
-        $f = new CompletedFutureArray(['foo' => 'bar']);
-        $this->assertEquals('bar', $f['foo']);
-        $this->assertFalse(isset($f['baz']));
-        $f['abc'] = '123';
-        $this->assertTrue(isset($f['abc']));
-        $this->assertEquals(['foo' => 'bar', 'abc' => '123'], iterator_to_array($f));
-        $this->assertEquals(2, count($f));
-        unset($f['abc']);
-        $this->assertEquals(1, count($f));
-        $this->assertEquals(['foo' => 'bar'], iterator_to_array($f));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureValueTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureValueTest.php
deleted file mode 100644
index 6ded40dfba63f90c7cfb08f70b32c991a64db9ac..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/CompletedFutureValueTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Future;
-
-use GuzzleHttp\Ring\Exception\CancelledFutureAccessException;
-use GuzzleHttp\Ring\Future\CompletedFutureValue;
-
-class CompletedFutureValueTest extends \PHPUnit_Framework_TestCase
-{
-    public function testReturnsValue()
-    {
-        $f = new CompletedFutureValue('hi');
-        $this->assertEquals('hi', $f->wait());
-        $f->cancel();
-
-        $a = null;
-        $f->then(function ($v) use (&$a) {
-            $a = $v;
-        });
-        $this->assertSame('hi', $a);
-    }
-
-    public function testThrows()
-    {
-        $ex = new \Exception('foo');
-        $f = new CompletedFutureValue(null, $ex);
-        $f->cancel();
-        try {
-            $f->wait();
-            $this->fail('did not throw');
-        } catch (\Exception $e) {
-            $this->assertSame($e, $ex);
-        }
-    }
-
-    public function testMarksAsCancelled()
-    {
-        $ex = new CancelledFutureAccessException();
-        $f = new CompletedFutureValue(null, $ex);
-        try {
-            $f->wait();
-            $this->fail('did not throw');
-        } catch (\Exception $e) {
-            $this->assertSame($e, $ex);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureArrayTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureArrayTest.php
deleted file mode 100644
index 0e09f5afa837c54815ca3931a3bd7aa9bf737fa8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureArrayTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Future;
-
-use GuzzleHttp\Ring\Future\FutureArray;
-use React\Promise\Deferred;
-
-class FutureArrayTest extends \PHPUnit_Framework_TestCase
-{
-    public function testLazilyCallsDeref()
-    {
-        $c = false;
-        $deferred = new Deferred();
-        $f = new FutureArray(
-            $deferred->promise(),
-            function () use (&$c, $deferred) {
-                $c = true;
-                $deferred->resolve(['status' => 200]);
-            }
-        );
-        $this->assertFalse($c);
-        $this->assertFalse($this->readAttribute($f, 'isRealized'));
-        $this->assertEquals(200, $f['status']);
-        $this->assertTrue($c);
-    }
-
-    public function testActsLikeArray()
-    {
-        $deferred = new Deferred();
-        $f = new FutureArray(
-            $deferred->promise(),
-            function () use (&$c, $deferred) {
-                $deferred->resolve(['status' => 200]);
-            }
-        );
-
-        $this->assertTrue(isset($f['status']));
-        $this->assertEquals(200, $f['status']);
-        $this->assertEquals(['status' => 200], $f->wait());
-        $this->assertEquals(1, count($f));
-        $f['baz'] = 10;
-        $this->assertEquals(10, $f['baz']);
-        unset($f['baz']);
-        $this->assertFalse(isset($f['baz']));
-        $this->assertEquals(['status' => 200], iterator_to_array($f));
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     */
-    public function testThrowsWhenAccessingInvalidProperty()
-    {
-        $deferred = new Deferred();
-        $f = new FutureArray($deferred->promise(), function () {});
-        $f->foo;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureValueTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureValueTest.php
deleted file mode 100644
index d59c543d0ff28af2ede0c720c059f96e87409704..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/Future/FutureValueTest.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Ring\Future;
-
-use GuzzleHttp\Ring\Exception\CancelledFutureAccessException;
-use GuzzleHttp\Ring\Future\FutureValue;
-use React\Promise\Deferred;
-
-class FutureValueTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDerefReturnsValue()
-    {
-        $called = 0;
-        $deferred = new Deferred();
-
-        $f = new FutureValue(
-            $deferred->promise(),
-            function () use ($deferred, &$called) {
-                $called++;
-                $deferred->resolve('foo');
-            }
-        );
-
-        $this->assertEquals('foo', $f->wait());
-        $this->assertEquals(1, $called);
-        $this->assertEquals('foo', $f->wait());
-        $this->assertEquals(1, $called);
-        $f->cancel();
-        $this->assertTrue($this->readAttribute($f, 'isRealized'));
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Ring\Exception\CancelledFutureAccessException
-     */
-    public function testThrowsWhenAccessingCancelled()
-    {
-        $f = new FutureValue(
-            (new Deferred())->promise(),
-            function () {},
-            function () { return true; }
-        );
-        $f->cancel();
-        $f->wait();
-    }
-
-    /**
-     * @expectedException \OutOfBoundsException
-     */
-    public function testThrowsWhenDerefFailure()
-    {
-        $called = false;
-        $deferred = new Deferred();
-        $f = new FutureValue(
-            $deferred->promise(),
-            function () use(&$called) {
-                $called = true;
-            }
-        );
-        $deferred->reject(new \OutOfBoundsException());
-        $f->wait();
-        $this->assertFalse($called);
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Ring\Exception\RingException
-     * @expectedExceptionMessage Waiting did not resolve future
-     */
-    public function testThrowsWhenDerefDoesNotResolve()
-    {
-        $deferred = new Deferred();
-        $f = new FutureValue(
-            $deferred->promise(),
-            function () use(&$called) {
-                $called = true;
-            }
-        );
-        $f->wait();
-    }
-
-    public function testThrowingCancelledFutureAccessExceptionCancels()
-    {
-        $deferred = new Deferred();
-        $f = new FutureValue(
-            $deferred->promise(),
-            function () use ($deferred) {
-                throw new CancelledFutureAccessException();
-            }
-        );
-        try {
-            $f->wait();
-            $this->fail('did not throw');
-        } catch (CancelledFutureAccessException $e) {}
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage foo
-     */
-    public function testThrowingExceptionInDerefMarksAsFailed()
-    {
-        $deferred = new Deferred();
-        $f = new FutureValue(
-            $deferred->promise(),
-            function () {
-                throw new \Exception('foo');
-            }
-        );
-        $f->wait();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/bootstrap.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/bootstrap.php
deleted file mode 100644
index 017610fe0d86c2258a5baacd5b889ebfc002fb28..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/ringphp/tests/bootstrap.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-require __DIR__ . '/../vendor/autoload.php';
-require __DIR__ . '/Client/Server.php';
-
-use GuzzleHttp\Tests\Ring\Client\Server;
-
-Server::start();
-
-register_shutdown_function(function () {
-    Server::stop();
-});
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/.travis.yml b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/.travis.yml
deleted file mode 100644
index a6f8a87b7dc46e42a2ca74885674dfab0ebb7c2b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: php
-
-php:
-  - 5.4
-  - 5.5
-  - 5.6
-  - hhvm
-
-before_script:
-  - composer self-update
-  - composer install --no-interaction --prefer-source --dev
-
-script: vendor/bin/phpunit
-
-matrix:
-  allow_failures:
-    - php: hhvm
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/CHANGELOG.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/CHANGELOG.rst
deleted file mode 100644
index 0018ffe353f1ebb94097d811755289cfba1a4b5b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/CHANGELOG.rst
+++ /dev/null
@@ -1,94 +0,0 @@
-=========
-Changelog
-=========
-
-3.0.0 (2014-10-12)
-------------------
-
-* Now supports creating streams from functions and iterators.
-* Supports creating buffered streams and asynchronous streams.
-* Removed ``functions.php``. Use the corresponding functions provided by
-  ``GuzzleHttp\Streams\Utils`` instead.
-* Moved ``GuzzleHttp\Stream\MetadataStreamInterface::getMetadata`` to
-  ``GuzzleHttp\Stream\StreamInterface``. MetadataStreamInterface is no longer
-  used and is marked as deprecated.
-* Added ``attach()`` to ``GuzzleHttp\Stream\StreamInterface`` for PSR-7
-  compatibility.
-* Removed ``flush()`` from StreamInterface.
-* Removed the ``$maxLength`` parameter from
-  ``GuzzleHttp\Stream\StreamInterface::getContents()``. This function now
-  returns the entire remainder of the stream. If you want to limit the maximum
-  amount of data read from the stream, use the
-  ``GuzzleHttp\Stream\Utils::copyToString()`` function.
-* Streams that return an empty string, ``''``, are no longer considered a
-  failure. You MUST return ``false`` to mark the read as a failure, and ensure
-  that any decorators you create properly return ``true`` in response to the
-  ``eof()`` method when the stream is consumed.
-* ``GuzzleHttp\Stream\Stream::__construct``,
-  ``GuzzleHttp\Stream\Stream::factory``, and
-  ``GuzzleHttp\Stream\Utils::create`` no longer accept a size in the second
-  argument. They now accept an associative array of options, including the
-  "size" key and "metadata" key which can be used to provide custom metadata.
-* Added ``GuzzleHttp\Stream\BufferStream`` to add support for buffering data,
-  and when read, shifting data off of the buffer.
-* Added ``GuzzleHttp\Stream\NullBuffer`` which can be used as a buffer that
-  does not actually store any data.
-* Added ``GuzzleHttp\Stream\AsyncStream`` to provide support for non-blocking
-  streams that can be filled by a remote source (e.g., an event-loop). If a
-  ``drain`` option is provided, the stream can also act as if it is a blocking
-  stream.
-
-2.1.0 (2014-08-17)
-------------------
-
-* Added an InflateStream to inflate gzipped or deflated content.
-* Added ``flush`` to stream wrapper.
-* Added the ability to easily register the GuzzleStreamWrapper if needed.
-
-2.0.0 (2014-08-16)
-------------------
-
-* Deprecated functions.php and moved all of those methods to
-  ``GuzzleHttp\Streams\Utils``. Use ``GuzzleHttp\Stream\Stream::factory()``
-  instead of ``GuzzleHttp\Stream\create()`` to create new streams.
-* Added ``flush()`` to ``StreamInterface``. This method is used to flush any
-  underlying stream write buffers.
-* Added ``FnStream`` to easily decorate stream behavior with callables.
-* ``Utils::hash`` now throws an exception when the stream cannot seek to 0.
-
-1.5.1 (2014-09-10)
-------------------
-
-* Stream metadata is grabbed from the underlying stream each time
-  ``getMetadata`` is called rather than returning a value from a cache.
-* Properly closing all underlying streams when AppendStream is closed.
-* Seek functions no longer throw exceptions.
-* LazyOpenStream now correctly returns the underlying stream resource when
-  detached.
-
-1.5.0 (2014-08-07)
-------------------
-
-* Added ``Stream\safe_open`` to open stream resources and throw exceptions
-  instead of raising errors.
-
-1.4.0 (2014-07-19)
-------------------
-
-* Added a LazyOpenStream
-
-1.3.0 (2014-07-15)
-------------------
-
-* Added an AppendStream to stream over multiple stream one after the other.
-
-1.2.0 (2014-07-15)
-------------------
-
-* Updated the ``detach()`` method to return the underlying stream resource or
-  ``null`` if it does not wrap a resource.
-* Multiple fixes for how streams behave when the underlying resource is
-  detached
-* Do not clear statcache when a stream does not have a 'uri'
-* Added a fix to LimitStream
-* Added a condition to ensure that functions.php can be required multiple times
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/LICENSE
deleted file mode 100644
index 71d3b783cb5b82e732f4555c5b7839036334607b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/Makefile b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/Makefile
deleted file mode 100644
index f4d42849e528e185aaaa1b2d478c541b629601b7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-all: clean coverage
-
-release: tag
-	git push origin --tags
-
-tag:
-	chag tag --sign --debug CHANGELOG.rst
-
-test:
-	vendor/bin/phpunit
-
-coverage:
-	vendor/bin/phpunit --coverage-html=artifacts/coverage
-
-view-coverage:
-	open artifacts/coverage/index.html
-
-clean:
-	rm -rf artifacts/*
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/README.rst b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/README.rst
deleted file mode 100644
index baff63b37d59ac356f00f0b32b2f5c5ef22ebc9f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/README.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-==============
-Guzzle Streams
-==============
-
-Provides a simple abstraction over streams of data.
-
-This library is used in `Guzzle 5 <https://github.com/guzzle/guzzle>`_, and is
-(currently) compatible with the WIP PSR-7.
-
-Installation
-============
-
-This package can be installed easily using `Composer <http://getcomposer.org>`_.
-Simply add the following to the composer.json file at the root of your project:
-
-.. code-block:: javascript
-
-    {
-      "require": {
-        "guzzlehttp/streams": "~3.0"
-      }
-    }
-
-Then install your dependencies using ``composer.phar install``.
-
-Documentation
-=============
-
-The documentation for this package can be found on the main Guzzle website at
-http://docs.guzzlephp.org/en/guzzle4/streams.html.
-
-Testing
-=======
-
-This library is tested using PHPUnit. You'll need to install the dependencies
-using `Composer <http://getcomposer.org>`_ then run ``make test``.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/composer.json b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/composer.json
deleted file mode 100644
index 6d7034370bda463f985656ea07b08e78661a141d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/composer.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "name": "guzzlehttp/streams",
-    "description": "Provides a simple abstraction over streams of data",
-    "homepage": "http://guzzlephp.org/",
-    "keywords": ["stream", "guzzle"],
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Michael Dowling",
-            "email": "mtdowling@gmail.com",
-            "homepage": "https://github.com/mtdowling"
-        }
-    ],
-    "require": {
-        "php": ">=5.4.0"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "~4.0"
-    },
-    "autoload": {
-        "psr-4": { "GuzzleHttp\\Stream\\": "src/" }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "3.0-dev"
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/phpunit.xml.dist b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/phpunit.xml.dist
deleted file mode 100644
index 6e758c1927bf71d8c865ea8cd6bfc6bb928a0fbf..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/phpunit.xml.dist
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit bootstrap="./vendor/autoload.php"
-         colors="true">
-    <testsuites>
-        <testsuite>
-            <directory>tests</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">src</directory>
-            <exclude>
-                <file>src/functions.php</file>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AppendStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AppendStream.php
deleted file mode 100644
index 94bda7173f7e2ee02a676ed3764258c056d1a4c3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AppendStream.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\CannotAttachException;
-
-/**
- * Reads from multiple streams, one after the other.
- *
- * This is a read-only stream decorator.
- */
-class AppendStream implements StreamInterface
-{
-    /** @var StreamInterface[] Streams being decorated */
-    private $streams = [];
-
-    private $seekable = true;
-    private $current = 0;
-    private $pos = 0;
-    private $detached = false;
-
-    /**
-     * @param StreamInterface[] $streams Streams to decorate. Each stream must
-     *                                   be readable.
-     */
-    public function __construct(array $streams = [])
-    {
-        foreach ($streams as $stream) {
-            $this->addStream($stream);
-        }
-    }
-
-    public function __toString()
-    {
-        try {
-            $this->seek(0);
-            return $this->getContents();
-        } catch (\Exception $e) {
-            return '';
-        }
-    }
-
-    /**
-     * Add a stream to the AppendStream
-     *
-     * @param StreamInterface $stream Stream to append. Must be readable.
-     *
-     * @throws \InvalidArgumentException if the stream is not readable
-     */
-    public function addStream(StreamInterface $stream)
-    {
-        if (!$stream->isReadable()) {
-            throw new \InvalidArgumentException('Each stream must be readable');
-        }
-
-        // The stream is only seekable if all streams are seekable
-        if (!$stream->isSeekable()) {
-            $this->seekable = false;
-        }
-
-        $this->streams[] = $stream;
-    }
-
-    public function getContents()
-    {
-        return Utils::copyToString($this);
-    }
-
-    /**
-     * Closes each attached stream.
-     *
-     * {@inheritdoc}
-     */
-    public function close()
-    {
-        $this->pos = $this->current = 0;
-
-        foreach ($this->streams as $stream) {
-            $stream->close();
-        }
-
-        $this->streams = [];
-    }
-
-    /**
-     * Detaches each attached stream
-     *
-     * {@inheritdoc}
-     */
-    public function detach()
-    {
-        $this->close();
-        $this->detached = true;
-    }
-
-    public function attach($stream)
-    {
-        throw new CannotAttachException();
-    }
-
-    public function tell()
-    {
-        return $this->pos;
-    }
-
-    /**
-     * Tries to calculate the size by adding the size of each stream.
-     *
-     * If any of the streams do not return a valid number, then the size of the
-     * append stream cannot be determined and null is returned.
-     *
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        $size = 0;
-
-        foreach ($this->streams as $stream) {
-            $s = $stream->getSize();
-            if ($s === null) {
-                return null;
-            }
-            $size += $s;
-        }
-
-        return $size;
-    }
-
-    public function eof()
-    {
-        return !$this->streams ||
-            ($this->current >= count($this->streams) - 1 &&
-             $this->streams[$this->current]->eof());
-    }
-
-    /**
-     * Attempts to seek to the given position. Only supports SEEK_SET.
-     *
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if (!$this->seekable || $whence !== SEEK_SET) {
-            return false;
-        }
-
-        $success = true;
-        $this->pos = $this->current = 0;
-
-        // Rewind each stream
-        foreach ($this->streams as $stream) {
-            if (!$stream->seek(0)) {
-                $success = false;
-            }
-        }
-
-        if (!$success) {
-            return false;
-        }
-
-        // Seek to the actual position by reading from each stream
-        while ($this->pos < $offset && !$this->eof()) {
-            $this->read(min(8096, $offset - $this->pos));
-        }
-
-        return $this->pos == $offset;
-    }
-
-    /**
-     * Reads from all of the appended streams until the length is met or EOF.
-     *
-     * {@inheritdoc}
-     */
-    public function read($length)
-    {
-        $buffer = '';
-        $total = count($this->streams) - 1;
-        $remaining = $length;
-
-        while ($remaining > 0) {
-            // Progress to the next stream if needed.
-            if ($this->streams[$this->current]->eof()) {
-                if ($this->current == $total) {
-                    break;
-                }
-                $this->current++;
-            }
-            $buffer .= $this->streams[$this->current]->read($remaining);
-            $remaining = $length - strlen($buffer);
-        }
-
-        $this->pos += strlen($buffer);
-
-        return $buffer;
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function isSeekable()
-    {
-        return $this->seekable;
-    }
-
-    public function write($string)
-    {
-        return false;
-    }
-
-    public function getMetadata($key = null)
-    {
-        return $key ? null : [];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AsyncReadStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AsyncReadStream.php
deleted file mode 100644
index 25ad96021a760538351632eea7cdb6dae32cdb71..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/AsyncReadStream.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Represents an asynchronous read-only stream that supports a drain event and
- * pumping data from a source stream.
- *
- * The AsyncReadStream can be used as a completely asynchronous stream, meaning
- * the data you can read from the stream will immediately return only
- * the data that is currently buffered.
- *
- * AsyncReadStream can also be used in a "blocking" manner if a "pump" function
- * is provided. When a caller requests more bytes than are available in the
- * buffer, then the pump function is used to block until the requested number
- * of bytes are available or the remote source stream has errored, closed, or
- * timed-out. This behavior isn't strictly "blocking" because the pump function
- * can send other transfers while waiting on the desired buffer size to be
- * ready for reading (e.g., continue to tick an event loop).
- *
- * @unstable This class is subject to change.
- */
-class AsyncReadStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var callable|null Fn used to notify writers the buffer has drained */
-    private $drain;
-
-    /** @var callable|null Fn used to block for more data */
-    private $pump;
-
-    /** @var int|null Highwater mark of the underlying buffer */
-    private $hwm;
-
-    /** @var bool Whether or not drain needs to be called at some point */
-    private $needsDrain;
-
-    /** @var int The expected size of the remote source */
-    private $size;
-
-    /**
-     * In order to utilize high water marks to tell writers to slow down, the
-     * provided stream must answer to the "hwm" stream metadata variable,
-     * providing the high water mark. If no "hwm" metadata value is available,
-     * then the "drain" functionality is not utilized.
-     *
-     * This class accepts an associative array of configuration options.
-     *
-     * - drain: (callable) Function to invoke when the stream has drained,
-     *   meaning the buffer is now writable again because the size of the
-     *   buffer is at an acceptable level (e.g., below the high water mark).
-     *   The function accepts a single argument, the buffer stream object that
-     *   has drained.
-     * - pump: (callable) A function that accepts the number of bytes to read
-     *   from the source stream. This function will block until all of the data
-     *   that was requested has been read, EOF of the source stream, or the
-     *   source stream is closed.
-     * - size: (int) The expected size in bytes of the data that will be read
-     *   (if known up-front).
-     *
-     * @param StreamInterface $buffer   Buffer that contains the data that has
-     *                                  been read by the event loop.
-     * @param array           $config   Associative array of options.
-     *
-     * @throws \InvalidArgumentException if the buffer is not readable and
-     *                                   writable.
-     */
-    public function __construct(
-        StreamInterface $buffer,
-        array $config = []
-    ) {
-        if (!$buffer->isReadable() || !$buffer->isWritable()) {
-            throw new \InvalidArgumentException(
-                'Buffer must be readable and writable'
-            );
-        }
-
-        if (isset($config['size'])) {
-            $this->size = $config['size'];
-        }
-
-        static $callables = ['pump', 'drain'];
-        foreach ($callables as $check) {
-            if (isset($config[$check])) {
-                if (!is_callable($config[$check])) {
-                    throw new \InvalidArgumentException(
-                        $check . ' must be callable'
-                    );
-                }
-                $this->{$check} = $config[$check];
-            }
-        }
-
-        $this->hwm = $buffer->getMetadata('hwm');
-
-        // Cannot drain when there's no high water mark.
-        if ($this->hwm === null) {
-            $this->drain = null;
-        }
-
-        $this->stream = $buffer;
-    }
-
-    /**
-     * Factory method used to create new async stream and an underlying buffer
-     * if no buffer is provided.
-     *
-     * This function accepts the same options as AsyncReadStream::__construct,
-     * but added the following key value pairs:
-     *
-     * - buffer: (StreamInterface) Buffer used to buffer data. If none is
-     *   provided, a default buffer is created.
-     * - hwm: (int) High water mark to use if a buffer is created on your
-     *   behalf.
-     * - max_buffer: (int) If provided, wraps the utilized buffer in a
-     *   DroppingStream decorator to ensure that buffer does not exceed a given
-     *   length. When exceeded, the stream will begin dropping data. Set the
-     *   max_buffer to 0, to use a NullStream which does not store data.
-     * - write: (callable) A function that is invoked when data is written
-     *   to the underlying buffer. The function accepts the buffer as the first
-     *   argument, and the data being written as the second. The function MUST
-     *   return the number of bytes that were written or false to let writers
-     *   know to slow down.
-     * - drain: (callable) See constructor documentation.
-     * - pump: (callable) See constructor documentation.
-     *
-     * @param array $options Associative array of options.
-     *
-     * @return array Returns an array containing the buffer used to buffer
-     *               data, followed by the ready to use AsyncReadStream object.
-     */
-    public static function create(array $options = [])
-    {
-        $maxBuffer = isset($options['max_buffer'])
-            ? $options['max_buffer']
-            : null;
-
-        if ($maxBuffer === 0) {
-            $buffer = new NullStream();
-        } elseif (isset($options['buffer'])) {
-            $buffer = $options['buffer'];
-        } else {
-            $hwm = isset($options['hwm']) ? $options['hwm'] : 16384;
-            $buffer = new BufferStream($hwm);
-        }
-
-        if ($maxBuffer > 0) {
-            $buffer = new DroppingStream($buffer, $options['max_buffer']);
-        }
-
-        // Call the on_write callback if an on_write function was provided.
-        if (isset($options['write'])) {
-            $onWrite = $options['write'];
-            $buffer = FnStream::decorate($buffer, [
-                'write' => function ($string) use ($buffer, $onWrite) {
-                    $result = $buffer->write($string);
-                    $onWrite($buffer, $string);
-                    return $result;
-                }
-            ]);
-        }
-
-        return [$buffer, new self($buffer, $options)];
-    }
-
-    public function getSize()
-    {
-        return $this->size;
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function write($string)
-    {
-        return false;
-    }
-
-    public function read($length)
-    {
-        if (!$this->needsDrain && $this->drain) {
-            $this->needsDrain = $this->stream->getSize() >= $this->hwm;
-        }
-
-        $result = $this->stream->read($length);
-
-        // If we need to drain, then drain when the buffer is empty.
-        if ($this->needsDrain && $this->stream->getSize() === 0) {
-            $this->needsDrain = false;
-            $drainFn = $this->drain;
-            $drainFn($this->stream);
-        }
-
-        $resultLen = strlen($result);
-
-        // If a pump was provided, the buffer is still open, and not enough
-        // data was given, then block until the data is provided.
-        if ($this->pump && $resultLen < $length) {
-            $pumpFn = $this->pump;
-            $result .= $pumpFn($length - $resultLen);
-        }
-
-        return $result;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/BufferStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/BufferStream.php
deleted file mode 100644
index 0fffbd63a8c555a95dc7630b9a838c596591d68d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/BufferStream.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\CannotAttachException;
-
-/**
- * Provides a buffer stream that can be written to to fill a buffer, and read
- * from to remove bytes from the buffer.
- *
- * This stream returns a "hwm" metadata value that tells upstream consumers
- * what the configured high water mark of the stream is, or the maximum
- * preferred size of the buffer.
- *
- * @package GuzzleHttp\Stream
- */
-class BufferStream implements StreamInterface
-{
-    private $hwm;
-    private $buffer = '';
-
-    /**
-     * @param int $hwm High water mark, representing the preferred maximum
-     *                 buffer size. If the size of the buffer exceeds the high
-     *                 water mark, then calls to write will continue to succeed
-     *                 but will return false to inform writers to slow down
-     *                 until the buffer has been drained by reading from it.
-     */
-    public function __construct($hwm = 16384)
-    {
-        $this->hwm = $hwm;
-    }
-
-    public function __toString()
-    {
-        return $this->getContents();
-    }
-
-    public function getContents()
-    {
-        $buffer = $this->buffer;
-        $this->buffer = '';
-
-        return $buffer;
-    }
-
-    public function close()
-    {
-        $this->buffer = '';
-    }
-
-    public function detach()
-    {
-        $this->close();
-    }
-
-    public function attach($stream)
-    {
-        throw new CannotAttachException();
-    }
-
-    public function getSize()
-    {
-        return strlen($this->buffer);
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function isWritable()
-    {
-        return true;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return false;
-    }
-
-    public function eof()
-    {
-        return strlen($this->buffer) === 0;
-    }
-
-    public function tell()
-    {
-        return false;
-    }
-
-    /**
-     * Reads data from the buffer.
-     */
-    public function read($length)
-    {
-        $currentLength = strlen($this->buffer);
-
-        if ($length >= $currentLength) {
-            // No need to slice the buffer because we don't have enough data.
-            $result = $this->buffer;
-            $this->buffer = '';
-        } else {
-            // Slice up the result to provide a subset of the buffer.
-            $result = substr($this->buffer, 0, $length);
-            $this->buffer = substr($this->buffer, $length);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Writes data to the buffer.
-     */
-    public function write($string)
-    {
-        $this->buffer .= $string;
-
-        if (strlen($this->buffer) >= $this->hwm) {
-            return false;
-        }
-
-        return strlen($string);
-    }
-
-    public function getMetadata($key = null)
-    {
-        if ($key == 'hwm') {
-            return $this->hwm;
-        }
-
-        return $key ? null : [];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/CachingStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/CachingStream.php
deleted file mode 100644
index 60bb9056c432e60019bafd2b609428c15fd63727..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/CachingStream.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\SeekException;
-
-/**
- * Stream decorator that can cache previously read bytes from a sequentially
- * read stream.
- */
-class CachingStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var StreamInterface Stream being wrapped */
-    private $remoteStream;
-
-    /** @var int Number of bytes to skip reading due to a write on the buffer */
-    private $skipReadBytes = 0;
-
-    /**
-     * We will treat the buffer object as the body of the stream
-     *
-     * @param StreamInterface $stream Stream to cache
-     * @param StreamInterface $target Optionally specify where data is cached
-     */
-    public function __construct(
-        StreamInterface $stream,
-        StreamInterface $target = null
-    ) {
-        $this->remoteStream = $stream;
-        $this->stream = $target ?: new Stream(fopen('php://temp', 'r+'));
-    }
-
-    public function getSize()
-    {
-        return max($this->stream->getSize(), $this->remoteStream->getSize());
-    }
-
-    /**
-     * {@inheritdoc}
-     * @throws SeekException When seeking with SEEK_END or when seeking
-     *     past the total size of the buffer stream
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if ($whence == SEEK_SET) {
-            $byte = $offset;
-        } elseif ($whence == SEEK_CUR) {
-            $byte = $offset + $this->tell();
-        } else {
-            return false;
-        }
-
-        // You cannot skip ahead past where you've read from the remote stream
-        if ($byte > $this->stream->getSize()) {
-            throw new SeekException(
-                $this,
-                $byte,
-                sprintf('Cannot seek to byte %d when the buffered stream only'
-                    . ' contains %d bytes', $byte, $this->stream->getSize())
-            );
-        }
-
-        return $this->stream->seek($byte);
-    }
-
-    public function read($length)
-    {
-        // Perform a regular read on any previously read data from the buffer
-        $data = $this->stream->read($length);
-        $remaining = $length - strlen($data);
-
-        // More data was requested so read from the remote stream
-        if ($remaining) {
-            // If data was written to the buffer in a position that would have
-            // been filled from the remote stream, then we must skip bytes on
-            // the remote stream to emulate overwriting bytes from that
-            // position. This mimics the behavior of other PHP stream wrappers.
-            $remoteData = $this->remoteStream->read(
-                $remaining + $this->skipReadBytes
-            );
-
-            if ($this->skipReadBytes) {
-                $len = strlen($remoteData);
-                $remoteData = substr($remoteData, $this->skipReadBytes);
-                $this->skipReadBytes = max(0, $this->skipReadBytes - $len);
-            }
-
-            $data .= $remoteData;
-            $this->stream->write($remoteData);
-        }
-
-        return $data;
-    }
-
-    public function write($string)
-    {
-        // When appending to the end of the currently read stream, you'll want
-        // to skip bytes from being read from the remote stream to emulate
-        // other stream wrappers. Basically replacing bytes of data of a fixed
-        // length.
-        $overflow = (strlen($string) + $this->tell()) - $this->remoteStream->tell();
-        if ($overflow > 0) {
-            $this->skipReadBytes += $overflow;
-        }
-
-        return $this->stream->write($string);
-    }
-
-    public function eof()
-    {
-        return $this->stream->eof() && $this->remoteStream->eof();
-    }
-
-    /**
-     * Close both the remote stream and buffer stream
-     */
-    public function close()
-    {
-        $this->remoteStream->close() && $this->stream->close();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/DroppingStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/DroppingStream.php
deleted file mode 100644
index 56ee80c123a92b906e636adc71dfb95f74968dc5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/DroppingStream.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Stream decorator that begins dropping data once the size of the underlying
- * stream becomes too full.
- */
-class DroppingStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    private $maxLength;
-
-    /**
-     * @param StreamInterface $stream    Underlying stream to decorate.
-     * @param int             $maxLength Maximum size before dropping data.
-     */
-    public function __construct(StreamInterface $stream, $maxLength)
-    {
-        $this->stream = $stream;
-        $this->maxLength = $maxLength;
-    }
-
-    public function write($string)
-    {
-        $diff = $this->maxLength - $this->stream->getSize();
-
-        // Begin returning false when the underlying stream is too large.
-        if ($diff <= 0) {
-            return false;
-        }
-
-        // Write the stream or a subset of the stream if needed.
-        if (strlen($string) < $diff) {
-            return $this->stream->write($string);
-        }
-
-        $this->stream->write(substr($string, 0, $diff));
-
-        return false;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/CannotAttachException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/CannotAttachException.php
deleted file mode 100644
index e631b9fa44bb6410eef808e33d19fa32edd42193..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/CannotAttachException.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream\Exception;
-
-class CannotAttachException extends \RuntimeException {}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/SeekException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/SeekException.php
deleted file mode 100644
index 3f6d5ebad5180af15686dca6df791e2456463358..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Exception/SeekException.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream\Exception;
-
-use GuzzleHttp\Stream\StreamInterface;
-
-/**
- * Exception thrown when a seek fails on a stream.
- */
-class SeekException extends \RuntimeException
-{
-    private $stream;
-
-    public function __construct(StreamInterface $stream, $pos = 0, $msg = '')
-    {
-        $this->stream = $stream;
-        $msg = $msg ?: 'Could not seek the stream to position ' . $pos;
-        parent::__construct($msg);
-    }
-
-    /**
-     * @return StreamInterface
-     */
-    public function getStream()
-    {
-        return $this->stream;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/FnStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/FnStream.php
deleted file mode 100644
index 6b5872d7f6c599b4f5c4b1858b4a3073cf918fab..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/FnStream.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Compose stream implementations based on a hash of functions.
- *
- * Allows for easy testing and extension of a provided stream without needing
- * to create a concrete class for a simple extension point.
- */
-class FnStream implements StreamInterface
-{
-    /** @var array */
-    private $methods;
-
-    /** @var array Methods that must be implemented in the given array */
-    private static $slots = ['__toString', 'close', 'detach', 'attach',
-        'getSize', 'tell', 'eof', 'isSeekable', 'seek', 'isWritable', 'write',
-        'isReadable', 'read', 'getContents', 'getMetadata'];
-
-    /**
-     * @param array $methods Hash of method name to a callable.
-     */
-    public function __construct(array $methods)
-    {
-        $this->methods = $methods;
-
-        // Create the functions on the class
-        foreach ($methods as $name => $fn) {
-            $this->{'_fn_' . $name} = $fn;
-        }
-    }
-
-    /**
-     * Lazily determine which methods are not implemented.
-     * @throws \BadMethodCallException
-     */
-    public function __get($name)
-    {
-        throw new \BadMethodCallException(str_replace('_fn_', '', $name)
-            . '() is not implemented in the FnStream');
-    }
-
-    /**
-     * The close method is called on the underlying stream only if possible.
-     */
-    public function __destruct()
-    {
-        if (isset($this->_fn_close)) {
-            call_user_func($this->_fn_close);
-        }
-    }
-
-    /**
-     * Adds custom functionality to an underlying stream by intercepting
-     * specific method calls.
-     *
-     * @param StreamInterface $stream  Stream to decorate
-     * @param array           $methods Hash of method name to a closure
-     *
-     * @return FnStream
-     */
-    public static function decorate(StreamInterface $stream, array $methods)
-    {
-        // If any of the required methods were not provided, then simply
-        // proxy to the decorated stream.
-        foreach (array_diff(self::$slots, array_keys($methods)) as $diff) {
-            $methods[$diff] = [$stream, $diff];
-        }
-
-        return new self($methods);
-    }
-
-    public function __toString()
-    {
-        return call_user_func($this->_fn___toString);
-    }
-
-    public function close()
-    {
-        return call_user_func($this->_fn_close);
-    }
-
-    public function detach()
-    {
-        return call_user_func($this->_fn_detach);
-    }
-
-    public function attach($stream)
-    {
-        return call_user_func($this->_fn_attach, $stream);
-    }
-
-    public function getSize()
-    {
-        return call_user_func($this->_fn_getSize);
-    }
-
-    public function tell()
-    {
-        return call_user_func($this->_fn_tell);
-    }
-
-    public function eof()
-    {
-        return call_user_func($this->_fn_eof);
-    }
-
-    public function isSeekable()
-    {
-        return call_user_func($this->_fn_isSeekable);
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return call_user_func($this->_fn_seek, $offset, $whence);
-    }
-
-    public function isWritable()
-    {
-        return call_user_func($this->_fn_isWritable);
-    }
-
-    public function write($string)
-    {
-        return call_user_func($this->_fn_write, $string);
-    }
-
-    public function isReadable()
-    {
-        return call_user_func($this->_fn_isReadable);
-    }
-
-    public function read($length)
-    {
-        return call_user_func($this->_fn_read, $length);
-    }
-
-    public function getContents()
-    {
-        return call_user_func($this->_fn_getContents);
-    }
-
-    public function getMetadata($key = null)
-    {
-        return call_user_func($this->_fn_getMetadata, $key);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/GuzzleStreamWrapper.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/GuzzleStreamWrapper.php
deleted file mode 100644
index 4d049a6936d688dcafc6fc594acb395b3965b0d7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/GuzzleStreamWrapper.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Converts Guzzle streams into PHP stream resources.
- */
-class GuzzleStreamWrapper
-{
-    /** @var resource */
-    public $context;
-
-    /** @var StreamInterface */
-    private $stream;
-
-    /** @var string r, r+, or w */
-    private $mode;
-
-    /**
-     * Returns a resource representing the stream.
-     *
-     * @param StreamInterface $stream The stream to get a resource for
-     *
-     * @return resource
-     * @throws \InvalidArgumentException if stream is not readable or writable
-     */
-    public static function getResource(StreamInterface $stream)
-    {
-        self::register();
-
-        if ($stream->isReadable()) {
-            $mode = $stream->isWritable() ? 'r+' : 'r';
-        } elseif ($stream->isWritable()) {
-            $mode = 'w';
-        } else {
-            throw new \InvalidArgumentException('The stream must be readable, '
-                . 'writable, or both.');
-        }
-
-        return fopen('guzzle://stream', $mode, null, stream_context_create([
-            'guzzle' => ['stream' => $stream]
-        ]));
-    }
-
-    /**
-     * Registers the stream wrapper if needed
-     */
-    public static function register()
-    {
-        if (!in_array('guzzle', stream_get_wrappers())) {
-            stream_wrapper_register('guzzle', __CLASS__);
-        }
-    }
-
-    public function stream_open($path, $mode, $options, &$opened_path)
-    {
-        $options = stream_context_get_options($this->context);
-
-        if (!isset($options['guzzle']['stream'])) {
-            return false;
-        }
-
-        $this->mode = $mode;
-        $this->stream = $options['guzzle']['stream'];
-
-        return true;
-    }
-
-    public function stream_read($count)
-    {
-        return $this->stream->read($count);
-    }
-
-    public function stream_write($data)
-    {
-        return (int) $this->stream->write($data);
-    }
-
-    public function stream_tell()
-    {
-        return $this->stream->tell();
-    }
-
-    public function stream_eof()
-    {
-        return $this->stream->eof();
-    }
-
-    public function stream_seek($offset, $whence)
-    {
-        return $this->stream->seek($offset, $whence);
-    }
-
-    public function stream_stat()
-    {
-        static $modeMap = [
-            'r'  => 33060,
-            'r+' => 33206,
-            'w'  => 33188
-        ];
-
-        return [
-            'dev'     => 0,
-            'ino'     => 0,
-            'mode'    => $modeMap[$this->mode],
-            'nlink'   => 0,
-            'uid'     => 0,
-            'gid'     => 0,
-            'rdev'    => 0,
-            'size'    => $this->stream->getSize() ?: 0,
-            'atime'   => 0,
-            'mtime'   => 0,
-            'ctime'   => 0,
-            'blksize' => 0,
-            'blocks'  => 0
-        ];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/InflateStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/InflateStream.php
deleted file mode 100644
index 978af21031b9f83a174008e8750d4d0ebcc20b5f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/InflateStream.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Uses PHP's zlib.inflate filter to inflate deflate or gzipped content.
- *
- * This stream decorator skips the first 10 bytes of the given stream to remove
- * the gzip header, converts the provided stream to a PHP stream resource,
- * then appends the zlib.inflate filter. The stream is then converted back
- * to a Guzzle stream resource to be used as a Guzzle stream.
- *
- * @link http://tools.ietf.org/html/rfc1952
- * @link http://php.net/manual/en/filters.compression.php
- */
-class InflateStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    public function __construct(StreamInterface $stream)
-    {
-        // Skip the first 10 bytes
-        $stream = new LimitStream($stream, -1, 10);
-        $resource = GuzzleStreamWrapper::getResource($stream);
-        stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ);
-        $this->stream = new Stream($resource);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LazyOpenStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LazyOpenStream.php
deleted file mode 100644
index 6242ee7b57fa0783cc2f79aa45c6391c2c689b52..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LazyOpenStream.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Lazily reads or writes to a file that is opened only after an IO operation
- * take place on the stream.
- */
-class LazyOpenStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var string File to open */
-    private $filename;
-
-    /** @var string $mode */
-    private $mode;
-
-    /**
-     * @param string $filename File to lazily open
-     * @param string $mode     fopen mode to use when opening the stream
-     */
-    public function __construct($filename, $mode)
-    {
-        $this->filename = $filename;
-        $this->mode = $mode;
-    }
-
-    /**
-     * Creates the underlying stream lazily when required.
-     *
-     * @return StreamInterface
-     */
-    protected function createStream()
-    {
-        return Stream::factory(Utils::open($this->filename, $this->mode));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LimitStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LimitStream.php
deleted file mode 100644
index e9fad98573318b55a4b2f70805746956a52e1036..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/LimitStream.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\SeekException;
-
-/**
- * Decorator used to return only a subset of a stream
- */
-class LimitStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    /** @var int Offset to start reading from */
-    private $offset;
-
-    /** @var int Limit the number of bytes that can be read */
-    private $limit;
-
-    /**
-     * @param StreamInterface $stream Stream to wrap
-     * @param int             $limit  Total number of bytes to allow to be read
-     *                                from the stream. Pass -1 for no limit.
-     * @param int|null        $offset Position to seek to before reading (only
-     *                                works on seekable streams).
-     */
-    public function __construct(
-        StreamInterface $stream,
-        $limit = -1,
-        $offset = 0
-    ) {
-        $this->stream = $stream;
-        $this->setLimit($limit);
-        $this->setOffset($offset);
-    }
-
-    public function eof()
-    {
-        // Always return true if the underlying stream is EOF
-        if ($this->stream->eof()) {
-            return true;
-        }
-
-        // No limit and the underlying stream is not at EOF
-        if ($this->limit == -1) {
-            return false;
-        }
-
-        $tell = $this->stream->tell();
-        if ($tell === false) {
-            return false;
-        }
-
-        return $tell >= $this->offset + $this->limit;
-    }
-
-    /**
-     * Returns the size of the limited subset of data
-     * {@inheritdoc}
-     */
-    public function getSize()
-    {
-        if (null === ($length = $this->stream->getSize())) {
-            return null;
-        } elseif ($this->limit == -1) {
-            return $length - $this->offset;
-        } else {
-            return min($this->limit, $length - $this->offset);
-        }
-    }
-
-    /**
-     * Allow for a bounded seek on the read limited stream
-     * {@inheritdoc}
-     */
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        if ($whence !== SEEK_SET || $offset < 0) {
-            return false;
-        }
-
-        $offset += $this->offset;
-
-        if ($this->limit !== -1) {
-            if ($offset > $this->offset + $this->limit) {
-                $offset = $this->offset + $this->limit;
-            }
-        }
-
-        return $this->stream->seek($offset);
-    }
-
-    /**
-     * Give a relative tell()
-     * {@inheritdoc}
-     */
-    public function tell()
-    {
-        return $this->stream->tell() - $this->offset;
-    }
-
-    /**
-     * Set the offset to start limiting from
-     *
-     * @param int $offset Offset to seek to and begin byte limiting from
-     *
-     * @return self
-     * @throws SeekException
-     */
-    public function setOffset($offset)
-    {
-        $current = $this->stream->tell();
-
-        if ($current !== $offset) {
-            // If the stream cannot seek to the offset position, then read to it
-            if (!$this->stream->seek($offset)) {
-                if ($current > $offset) {
-                    throw new SeekException($this, $offset);
-                } else {
-                    $this->stream->read($offset - $current);
-                }
-            }
-        }
-
-        $this->offset = $offset;
-
-        return $this;
-    }
-
-    /**
-     * Set the limit of bytes that the decorator allows to be read from the
-     * stream.
-     *
-     * @param int $limit Number of bytes to allow to be read from the stream.
-     *                   Use -1 for no limit.
-     * @return self
-     */
-    public function setLimit($limit)
-    {
-        $this->limit = $limit;
-
-        return $this;
-    }
-
-    public function read($length)
-    {
-        if ($this->limit == -1) {
-            return $this->stream->read($length);
-        }
-
-        // Check if the current position is less than the total allowed
-        // bytes + original offset
-        $remaining = ($this->offset + $this->limit) - $this->stream->tell();
-        if ($remaining > 0) {
-            // Only return the amount of requested data, ensuring that the byte
-            // limit is not exceeded
-            return $this->stream->read(min($remaining, $length));
-        } else {
-            return false;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/MetadataStreamInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/MetadataStreamInterface.php
deleted file mode 100644
index c1433ad83e8158407368ba7f2829cddf662bc9f7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/MetadataStreamInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * This interface is deprecated and should no longer be used. Just use
- * StreamInterface now that the getMetadata method has been added to
- * StreamInterface.
- *
- * @deprecated
- */
-interface MetadataStreamInterface extends StreamInterface {}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NoSeekStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NoSeekStream.php
deleted file mode 100644
index 3d42395d76b45b8e97e983cc190b934439fd96da..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NoSeekStream.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Stream decorator that prevents a stream from being seeked
- */
-class NoSeekStream implements StreamInterface
-{
-    use StreamDecoratorTrait;
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return false;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function attach($stream)
-    {
-        $this->stream->attach($stream);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NullStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NullStream.php
deleted file mode 100644
index 41ee776683a0f0f26042cc1172f08ed886618d07..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/NullStream.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-use GuzzleHttp\Stream\Exception\CannotAttachException;
-
-/**
- * Does not store any data written to it.
- */
-class NullStream implements StreamInterface
-{
-    public function __toString()
-    {
-        return '';
-    }
-
-    public function getContents()
-    {
-        return '';
-    }
-
-    public function close() {}
-
-    public function detach() {}
-
-    public function attach($stream)
-    {
-        throw new CannotAttachException();
-    }
-
-    public function getSize()
-    {
-        return 0;
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function isWritable()
-    {
-        return true;
-    }
-
-    public function isSeekable()
-    {
-        return true;
-    }
-
-    public function eof()
-    {
-        return true;
-    }
-
-    public function tell()
-    {
-        return 0;
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return false;
-    }
-
-    public function read($length)
-    {
-        return false;
-    }
-
-    public function write($string)
-    {
-        return strlen($string);
-    }
-
-    public function getMetadata($key = null)
-    {
-        return $key ? null : [];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/PumpStream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/PumpStream.php
deleted file mode 100644
index 9963207296b2c5fc899823c16e0199a8ae5278d9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/PumpStream.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\CannotAttachException;
-
-/**
- * Provides a read only stream that pumps data from a PHP callable.
- *
- * When invoking the provided callable, the PumpStream will pass the amount of
- * data requested to read to the callable. The callable can choose to ignore
- * this value and return fewer or more bytes than requested. Any extra data
- * returned by the provided callable is buffered internally until drained using
- * the read() function of the PumpStream. The provided callable MUST return
- * false when there is no more data to read.
- */
-class PumpStream implements StreamInterface
-{
-    /** @var callable */
-    private $source;
-
-    /** @var int */
-    private $size;
-
-    /** @var int */
-    private $tellPos = 0;
-
-    /** @var array */
-    private $metadata;
-
-    /** @var BufferStream */
-    private $buffer;
-
-    /**
-     * @param callable $source Source of the stream data. The callable MAY
-     *                         accept an integer argument used to control the
-     *                         amount of data to return. The callable MUST
-     *                         return a string when called, or false on error
-     *                         or EOF.
-     * @param array $options   Stream options:
-     *                         - metadata: Hash of metadata to use with stream.
-     *                         - size: Size of the stream, if known.
-     */
-    public function __construct(callable $source, array $options = [])
-    {
-        $this->source = $source;
-        $this->size = isset($options['size']) ? $options['size'] : null;
-        $this->metadata = isset($options['metadata']) ? $options['metadata'] : [];
-        $this->buffer = new BufferStream();
-    }
-
-    public function __toString()
-    {
-        return Utils::copyToString($this);
-    }
-
-    public function close()
-    {
-        $this->detach();
-    }
-
-    public function detach()
-    {
-        $this->tellPos = false;
-        $this->source = null;
-    }
-
-    public function attach($stream)
-    {
-        throw new CannotAttachException();
-    }
-
-    public function getSize()
-    {
-        return $this->size;
-    }
-
-    public function tell()
-    {
-        return $this->tellPos;
-    }
-
-    public function eof()
-    {
-        return !$this->source;
-    }
-
-    public function isSeekable()
-    {
-        return false;
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return false;
-    }
-
-    public function isWritable()
-    {
-        return false;
-    }
-
-    public function write($string)
-    {
-        return false;
-    }
-
-    public function isReadable()
-    {
-        return true;
-    }
-
-    public function read($length)
-    {
-        $data = $this->buffer->read($length);
-        $readLen = strlen($data);
-        $this->tellPos += $readLen;
-        $remaining = $length - $readLen;
-
-        if ($remaining) {
-            $this->pump($remaining);
-            $data .= $this->buffer->read($remaining);
-            $this->tellPos += strlen($data) - $readLen;
-        }
-
-        return $data;
-    }
-
-    public function getContents()
-    {
-        $result = '';
-        while (!$this->eof()) {
-            $result .= $this->read(1000000);
-        }
-
-        return $result;
-    }
-
-    public function getMetadata($key = null)
-    {
-        if (!$key) {
-            return $this->metadata;
-        }
-
-        return isset($this->metadata[$key]) ? $this->metadata[$key] : null;
-    }
-
-    private function pump($length)
-    {
-        if ($this->source) {
-            do {
-                $data = call_user_func($this->source, $length);
-                if ($data === false || $data === null) {
-                    $this->source = null;
-                    return;
-                }
-                $this->buffer->write($data);
-                $length -= strlen($data);
-            } while ($length > 0);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Stream.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Stream.php
deleted file mode 100644
index 7adbc5e3f3ec44c1b6d8cb1bd72bec5a332e8fcb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Stream.php
+++ /dev/null
@@ -1,261 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * PHP stream implementation
- */
-class Stream implements StreamInterface
-{
-    private $stream;
-    private $size;
-    private $seekable;
-    private $readable;
-    private $writable;
-    private $uri;
-    private $customMetadata;
-
-    /** @var array Hash of readable and writable stream types */
-    private static $readWriteHash = [
-        'read' => [
-            'r' => true, 'w+' => true, 'r+' => true, 'x+' => true, 'c+' => true,
-            'rb' => true, 'w+b' => true, 'r+b' => true, 'x+b' => true,
-            'c+b' => true, 'rt' => true, 'w+t' => true, 'r+t' => true,
-            'x+t' => true, 'c+t' => true, 'a+' => true
-        ],
-        'write' => [
-            'w' => true, 'w+' => true, 'rw' => true, 'r+' => true, 'x+' => true,
-            'c+' => true, 'wb' => true, 'w+b' => true, 'r+b' => true,
-            'x+b' => true, 'c+b' => true, 'w+t' => true, 'r+t' => true,
-            'x+t' => true, 'c+t' => true, 'a' => true, 'a+' => true
-        ]
-    ];
-
-    /**
-     * Create a new stream based on the input type.
-     *
-     * This factory accepts the same associative array of options as described
-     * in the constructor.
-     *
-     * @param resource|string|StreamInterface $resource Entity body data
-     * @param array                           $options  Additional options
-     *
-     * @return Stream
-     * @throws \InvalidArgumentException if the $resource arg is not valid.
-     */
-    public static function factory($resource = '', array $options = [])
-    {
-        $type = gettype($resource);
-
-        if ($type == 'string') {
-            $stream = fopen('php://temp', 'r+');
-            if ($resource !== '') {
-                fwrite($stream, $resource);
-                fseek($stream, 0);
-            }
-            return new self($stream, $options);
-        }
-
-        if ($type == 'resource') {
-            return new self($resource, $options);
-        }
-
-        if ($resource instanceof StreamInterface) {
-            return $resource;
-        }
-
-        if ($type == 'object' && method_exists($resource, '__toString')) {
-            return self::factory((string) $resource, $options);
-        }
-
-        if (is_callable($resource)) {
-            return new PumpStream($resource, $options);
-        }
-
-        if ($resource instanceof \Iterator) {
-            return new PumpStream(function () use ($resource) {
-                if (!$resource->valid()) {
-                    return false;
-                }
-                $result = $resource->current();
-                $resource->next();
-                return $result;
-            }, $options);
-        }
-
-        throw new \InvalidArgumentException('Invalid resource type: ' . $type);
-    }
-
-    /**
-     * This constructor accepts an associative array of options.
-     *
-     * - size: (int) If a read stream would otherwise have an indeterminate
-     *   size, but the size is known due to foreknownledge, then you can
-     *   provide that size, in bytes.
-     * - metadata: (array) Any additional metadata to return when the metadata
-     *   of the stream is accessed.
-     *
-     * @param resource $stream  Stream resource to wrap.
-     * @param array    $options Associative array of options.
-     *
-     * @throws \InvalidArgumentException if the stream is not a stream resource
-     */
-    public function __construct($stream, $options = [])
-    {
-        if (!is_resource($stream)) {
-            throw new \InvalidArgumentException('Stream must be a resource');
-        }
-
-        if (isset($options['size'])) {
-            $this->size = $options['size'];
-        }
-
-        $this->customMetadata = isset($options['metadata'])
-            ? $options['metadata']
-            : [];
-
-        $this->attach($stream);
-    }
-
-    /**
-     * Closes the stream when the destructed
-     */
-    public function __destruct()
-    {
-        $this->close();
-    }
-
-    public function __toString()
-    {
-        if (!$this->stream) {
-            return '';
-        }
-
-        $this->seek(0);
-
-        return (string) stream_get_contents($this->stream);
-    }
-
-    public function getContents()
-    {
-        return $this->stream ? stream_get_contents($this->stream) : '';
-    }
-
-    public function close()
-    {
-        if (is_resource($this->stream)) {
-            fclose($this->stream);
-        }
-
-        $this->detach();
-    }
-
-    public function detach()
-    {
-        $result = $this->stream;
-        $this->stream = $this->size = $this->uri = null;
-        $this->readable = $this->writable = $this->seekable = false;
-
-        return $result;
-    }
-
-    public function attach($stream)
-    {
-        $this->stream = $stream;
-        $meta = stream_get_meta_data($this->stream);
-        $this->seekable = $meta['seekable'];
-        $this->readable = isset(self::$readWriteHash['read'][$meta['mode']]);
-        $this->writable = isset(self::$readWriteHash['write'][$meta['mode']]);
-        $this->uri = $this->getMetadata('uri');
-    }
-
-    public function getSize()
-    {
-        if ($this->size !== null) {
-            return $this->size;
-        }
-
-        if (!$this->stream) {
-            return null;
-        }
-
-        // Clear the stat cache if the stream has a URI
-        if ($this->uri) {
-            clearstatcache(true, $this->uri);
-        }
-
-        $stats = fstat($this->stream);
-        if (isset($stats['size'])) {
-            $this->size = $stats['size'];
-            return $this->size;
-        }
-
-        return null;
-    }
-
-    public function isReadable()
-    {
-        return $this->readable;
-    }
-
-    public function isWritable()
-    {
-        return $this->writable;
-    }
-
-    public function isSeekable()
-    {
-        return $this->seekable;
-    }
-
-    public function eof()
-    {
-        return !$this->stream || feof($this->stream);
-    }
-
-    public function tell()
-    {
-        return $this->stream ? ftell($this->stream) : false;
-    }
-
-    public function setSize($size)
-    {
-        $this->size = $size;
-
-        return $this;
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return $this->seekable
-            ? fseek($this->stream, $offset, $whence) === 0
-            : false;
-    }
-
-    public function read($length)
-    {
-        return $this->readable ? fread($this->stream, $length) : false;
-    }
-
-    public function write($string)
-    {
-        // We can't know the size after writing anything
-        $this->size = null;
-
-        return $this->writable ? fwrite($this->stream, $string) : false;
-    }
-
-    public function getMetadata($key = null)
-    {
-        if (!$this->stream) {
-            return $key ? null : [];
-        } elseif (!$key) {
-            return $this->customMetadata + stream_get_meta_data($this->stream);
-        } elseif (isset($this->customMetadata[$key])) {
-            return $this->customMetadata[$key];
-        }
-
-        $meta = stream_get_meta_data($this->stream);
-
-        return isset($meta[$key]) ? $meta[$key] : null;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamDecoratorTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamDecoratorTrait.php
deleted file mode 100644
index 39c19c58ccf1cf2ec95e807c0868383a7641313b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamDecoratorTrait.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-use GuzzleHttp\Stream\Exception\CannotAttachException;
-
-/**
- * Stream decorator trait
- * @property StreamInterface stream
- */
-trait StreamDecoratorTrait
-{
-    /**
-     * @param StreamInterface $stream Stream to decorate
-     */
-    public function __construct(StreamInterface $stream)
-    {
-        $this->stream = $stream;
-    }
-
-    /**
-     * Magic method used to create a new stream if streams are not added in
-     * the constructor of a decorator (e.g., LazyOpenStream).
-     */
-    public function __get($name)
-    {
-        if ($name == 'stream') {
-            $this->stream = $this->createStream();
-            return $this->stream;
-        }
-
-        throw new \UnexpectedValueException("$name not found on class");
-    }
-
-    public function __toString()
-    {
-        try {
-            $this->seek(0);
-            return $this->getContents();
-        } catch (\Exception $e) {
-            // Really, PHP? https://bugs.php.net/bug.php?id=53648
-            trigger_error('StreamDecorator::__toString exception: '
-                . (string) $e, E_USER_ERROR);
-            return '';
-        }
-    }
-
-    public function getContents()
-    {
-        return Utils::copyToString($this);
-    }
-
-    /**
-     * Allow decorators to implement custom methods
-     *
-     * @param string $method Missing method name
-     * @param array  $args   Method arguments
-     *
-     * @return mixed
-     */
-    public function __call($method, array $args)
-    {
-        $result = call_user_func_array(array($this->stream, $method), $args);
-
-        // Always return the wrapped object if the result is a return $this
-        return $result === $this->stream ? $this : $result;
-    }
-
-    public function close()
-    {
-        $this->stream->close();
-    }
-
-    public function getMetadata($key = null)
-    {
-        return $this->stream->getMetadata($key);
-    }
-
-    public function detach()
-    {
-        return $this->stream->detach();
-    }
-
-    public function attach($stream)
-    {
-        throw new CannotAttachException();
-    }
-
-    public function getSize()
-    {
-        return $this->stream->getSize();
-    }
-
-    public function eof()
-    {
-        return $this->stream->eof();
-    }
-
-    public function tell()
-    {
-        return $this->stream->tell();
-    }
-
-    public function isReadable()
-    {
-        return $this->stream->isReadable();
-    }
-
-    public function isWritable()
-    {
-        return $this->stream->isWritable();
-    }
-
-    public function isSeekable()
-    {
-        return $this->stream->isSeekable();
-    }
-
-    public function seek($offset, $whence = SEEK_SET)
-    {
-        return $this->stream->seek($offset, $whence);
-    }
-
-    public function read($length)
-    {
-        return $this->stream->read($length);
-    }
-
-    public function write($string)
-    {
-        return $this->stream->write($string);
-    }
-
-    /**
-     * Implement in subclasses to dynamically create streams when requested.
-     *
-     * @return StreamInterface
-     * @throws \BadMethodCallException
-     */
-    protected function createStream()
-    {
-        throw new \BadMethodCallException('createStream() not implemented in '
-            . get_class($this));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamInterface.php
deleted file mode 100644
index fd19c6f25ae12a7757f85498d75812194d59b727..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/StreamInterface.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-/**
- * Describes a stream instance.
- */
-interface StreamInterface
-{
-    /**
-     * Attempts to seek to the beginning of the stream and reads all data into
-     * a string until the end of the stream is reached.
-     *
-     * Warning: This could attempt to load a large amount of data into memory.
-     *
-     * @return string
-     */
-    public function __toString();
-
-    /**
-     * Closes the stream and any underlying resources.
-     */
-    public function close();
-
-    /**
-     * Separates any underlying resources from the stream.
-     *
-     * After the underlying resource has been detached, the stream object is in
-     * an unusable state. If you wish to use a Stream object as a PHP stream
-     * but keep the Stream object in a consistent state, use
-     * {@see GuzzleHttp\Stream\GuzzleStreamWrapper::getResource}.
-     *
-     * @return resource|null Returns the underlying PHP stream resource or null
-     *                       if the Stream object did not utilize an underlying
-     *                       stream resource.
-     */
-    public function detach();
-
-    /**
-     * Replaces the underlying stream resource with the provided stream.
-     *
-     * Use this method to replace the underlying stream with another; as an
-     * example, in server-side code, if you decide to return a file, you
-     * would replace the original content-oriented stream with the file
-     * stream.
-     *
-     * Any internal state such as caching of cursor position should be reset
-     * when attach() is called, as the stream has changed.
-     *
-     * @param resource $stream
-     *
-     * @return void
-     */
-    public function attach($stream);
-
-    /**
-     * Get the size of the stream if known
-     *
-     * @return int|null Returns the size in bytes if known, or null if unknown
-     */
-    public function getSize();
-
-    /**
-     * Returns the current position of the file read/write pointer
-     *
-     * @return int|bool Returns the position of the file pointer or false on error
-     */
-    public function tell();
-
-    /**
-     * Returns true if the stream is at the end of the stream.
-     *
-     * @return bool
-     */
-    public function eof();
-
-    /**
-     * Returns whether or not the stream is seekable
-     *
-     * @return bool
-     */
-    public function isSeekable();
-
-    /**
-     * Seek to a position in the stream
-     *
-     * @param int $offset Stream offset
-     * @param int $whence Specifies how the cursor position will be calculated
-     *                    based on the seek offset. Valid values are identical
-     *                    to the built-in PHP $whence values for `fseek()`.
-     *                    SEEK_SET: Set position equal to offset bytes
-     *                    SEEK_CUR: Set position to current location plus offset
-     *                    SEEK_END: Set position to end-of-stream plus offset
-     *
-     * @return bool Returns true on success or false on failure
-     * @link   http://www.php.net/manual/en/function.fseek.php
-     */
-    public function seek($offset, $whence = SEEK_SET);
-
-    /**
-     * Returns whether or not the stream is writable
-     *
-     * @return bool
-     */
-    public function isWritable();
-
-    /**
-     * Write data to the stream
-     *
-     * @param string $string The string that is to be written.
-     *
-     * @return int|bool Returns the number of bytes written to the stream on
-     *                  success returns false on failure (e.g., broken pipe,
-     *                  writer needs to slow down, buffer is full, etc.)
-     */
-    public function write($string);
-
-    /**
-     * Returns whether or not the stream is readable
-     *
-     * @return bool
-     */
-    public function isReadable();
-
-    /**
-     * Read data from the stream
-     *
-     * @param int $length Read up to $length bytes from the object and return
-     *                    them. Fewer than $length bytes may be returned if
-     *                    underlying stream call returns fewer bytes.
-     *
-     * @return string     Returns the data read from the stream.
-     */
-    public function read($length);
-
-    /**
-     * Returns the remaining contents of the stream as a string.
-     *
-     * Note: this could potentially load a large amount of data into memory.
-     *
-     * @return string
-     */
-    public function getContents();
-
-    /**
-     * Get stream metadata as an associative array or retrieve a specific key.
-     *
-     * The keys returned are identical to the keys returned from PHP's
-     * stream_get_meta_data() function.
-     *
-     * @param string $key Specific metadata to retrieve.
-     *
-     * @return array|mixed|null Returns an associative array if no key is
-     *                          no key is provided. Returns a specific key
-     *                          value if a key is provided and the value is
-     *                          found, or null if the key is not found.
-     * @see http://php.net/manual/en/function.stream-get-meta-data.php
-     */
-    public function getMetadata($key = null);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Utils.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Utils.php
deleted file mode 100644
index 94cb42d31d15d879c7414f223a36f729cbb1ca67..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/src/Utils.php
+++ /dev/null
@@ -1,196 +0,0 @@
-<?php
-namespace GuzzleHttp\Stream;
-
-use GuzzleHttp\Stream\Exception\SeekException;
-
-/**
- * Static utility class because PHP's autoloaders don't support the concept
- * of namespaced function autoloading.
- */
-class Utils
-{
-    /**
-     * Safely opens a PHP stream resource using a filename.
-     *
-     * When fopen fails, PHP normally raises a warning. This function adds an
-     * error handler that checks for errors and throws an exception instead.
-     *
-     * @param string $filename File to open
-     * @param string $mode     Mode used to open the file
-     *
-     * @return resource
-     * @throws \RuntimeException if the file cannot be opened
-     */
-    public static function open($filename, $mode)
-    {
-        $ex = null;
-        set_error_handler(function () use ($filename, $mode, &$ex) {
-            $ex = new \RuntimeException(sprintf(
-                'Unable to open %s using mode %s: %s',
-                $filename,
-                $mode,
-                func_get_args()[1]
-            ));
-        });
-
-        $handle = fopen($filename, $mode);
-        restore_error_handler();
-
-        if ($ex) {
-            /** @var $ex \RuntimeException */
-            throw $ex;
-        }
-
-        return $handle;
-    }
-
-    /**
-     * Copy the contents of a stream into a string until the given number of
-     * bytes have been read.
-     *
-     * @param StreamInterface $stream Stream to read
-     * @param int             $maxLen Maximum number of bytes to read. Pass -1
-     *                                to read the entire stream.
-     * @return string
-     */
-    public static function copyToString(StreamInterface $stream, $maxLen = -1)
-    {
-        $buffer = '';
-
-        if ($maxLen === -1) {
-            while (!$stream->eof()) {
-                $buf = $stream->read(1048576);
-                if ($buf === false) {
-                    break;
-                }
-                $buffer .= $buf;
-            }
-            return $buffer;
-        }
-
-        $len = 0;
-        while (!$stream->eof() && $len < $maxLen) {
-            $buf = $stream->read($maxLen - $len);
-            if ($buf === false) {
-                break;
-            }
-            $buffer .= $buf;
-            $len = strlen($buffer);
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Copy the contents of a stream into another stream until the given number
-     * of bytes have been read.
-     *
-     * @param StreamInterface $source Stream to read from
-     * @param StreamInterface $dest   Stream to write to
-     * @param int             $maxLen Maximum number of bytes to read. Pass -1
-     *                                to read the entire stream.
-     */
-    public static function copyToStream(
-        StreamInterface $source,
-        StreamInterface $dest,
-        $maxLen = -1
-    ) {
-        if ($maxLen === -1) {
-            while (!$source->eof()) {
-                if (!$dest->write($source->read(1048576))) {
-                    break;
-                }
-            }
-            return;
-        }
-
-        $bytes = 0;
-        while (!$source->eof()) {
-            $buf = $source->read($maxLen - $bytes);
-            if (!($len = strlen($buf))) {
-                break;
-            }
-            $bytes += $len;
-            $dest->write($buf);
-            if ($bytes == $maxLen) {
-                break;
-            }
-        }
-    }
-
-    /**
-     * Calculate a hash of a Stream
-     *
-     * @param StreamInterface $stream    Stream to calculate the hash for
-     * @param string          $algo      Hash algorithm (e.g. md5, crc32, etc)
-     * @param bool            $rawOutput Whether or not to use raw output
-     *
-     * @return string Returns the hash of the stream
-     * @throws SeekException
-     */
-    public static function hash(
-        StreamInterface $stream,
-        $algo,
-        $rawOutput = false
-    ) {
-        $pos = $stream->tell();
-
-        if ($pos > 0 && !$stream->seek(0)) {
-            throw new SeekException($stream);
-        }
-
-        $ctx = hash_init($algo);
-        while (!$stream->eof()) {
-            hash_update($ctx, $stream->read(1048576));
-        }
-
-        $out = hash_final($ctx, (bool) $rawOutput);
-        $stream->seek($pos);
-
-        return $out;
-    }
-
-    /**
-     * Read a line from the stream up to the maximum allowed buffer length
-     *
-     * @param StreamInterface $stream    Stream to read from
-     * @param int             $maxLength Maximum buffer length
-     *
-     * @return string|bool
-     */
-    public static function readline(StreamInterface $stream, $maxLength = null)
-    {
-        $buffer = '';
-        $size = 0;
-
-        while (!$stream->eof()) {
-            if (false === ($byte = $stream->read(1))) {
-                return $buffer;
-            }
-            $buffer .= $byte;
-            // Break when a new line is found or the max length - 1 is reached
-            if ($byte == PHP_EOL || ++$size == $maxLength - 1) {
-                break;
-            }
-        }
-
-        return $buffer;
-    }
-
-    /**
-     * Alias of GuzzleHttp\Stream\Stream::factory.
-     *
-     * @param mixed $resource Resource to create
-     * @param array $options  Associative array of stream options defined in
-     *                        {@see \GuzzleHttp\Stream\Stream::__construct}
-     *
-     * @return StreamInterface
-     *
-     * @see GuzzleHttp\Stream\Stream::factory
-     * @see GuzzleHttp\Stream\Stream::__construct
-     */
-    public static function create($resource, array $options = [])
-    {
-        return Stream::factory($resource, $options);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AppendStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AppendStreamTest.php
deleted file mode 100644
index 78798d9f7a0f33ba444e8766ec966967ea8f8c3e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AppendStreamTest.php
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\AppendStream;
-use GuzzleHttp\Stream\Stream;
-
-class AppendStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Each stream must be readable
-     */
-    public function testValidatesStreamsAreReadable()
-    {
-        $a = new AppendStream();
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isReadable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $a->addStream($s);
-    }
-
-    public function testValidatesSeekType()
-    {
-        $a = new AppendStream();
-        $this->assertFalse($a->seek(100, SEEK_CUR));
-    }
-
-    public function testTriesToRewindOnSeek()
-    {
-        $a = new AppendStream();
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isReadable', 'seek', 'isSeekable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $s->expects($this->once())
-            ->method('isSeekable')
-            ->will($this->returnValue(true));
-        $s->expects($this->once())
-            ->method('seek')
-            ->will($this->returnValue(false));
-        $a->addStream($s);
-        $this->assertFalse($a->seek(10));
-    }
-
-    public function testSeeksToPositionByReading()
-    {
-        $a = new AppendStream([
-            Stream::factory('foo'),
-            Stream::factory('bar'),
-            Stream::factory('baz'),
-        ]);
-
-        $this->assertTrue($a->seek(3));
-        $this->assertEquals(3, $a->tell());
-        $this->assertEquals('bar', $a->read(3));
-        $a->seek(6);
-        $this->assertEquals(6, $a->tell());
-        $this->assertEquals('baz', $a->read(3));
-    }
-
-    public function testDetachesEachStream()
-    {
-        $s1 = Stream::factory('foo');
-        $s2 = Stream::factory('foo');
-        $a = new AppendStream([$s1, $s2]);
-        $this->assertSame('foofoo', (string) $a);
-        $a->detach();
-        $this->assertSame('', (string) $a);
-        $this->assertSame(0, $a->getSize());
-    }
-
-    public function testClosesEachStream()
-    {
-        $s1 = Stream::factory('foo');
-        $a = new AppendStream([$s1]);
-        $a->close();
-        $this->assertSame('', (string) $a);
-    }
-
-    public function testIsNotWritable()
-    {
-        $a = new AppendStream([Stream::factory('foo')]);
-        $this->assertFalse($a->isWritable());
-        $this->assertTrue($a->isSeekable());
-        $this->assertTrue($a->isReadable());
-        $this->assertFalse($a->write('foo'));
-    }
-
-    public function testDoesNotNeedStreams()
-    {
-        $a = new AppendStream();
-        $this->assertEquals('', (string) $a);
-    }
-
-    public function testCanReadFromMultipleStreams()
-    {
-        $a = new AppendStream([
-            Stream::factory('foo'),
-            Stream::factory('bar'),
-            Stream::factory('baz'),
-        ]);
-        $this->assertFalse($a->eof());
-        $this->assertSame(0, $a->tell());
-        $this->assertEquals('foo', $a->read(3));
-        $this->assertEquals('bar', $a->read(3));
-        $this->assertEquals('baz', $a->read(3));
-        $this->assertTrue($a->eof());
-        $this->assertSame(9, $a->tell());
-        $this->assertEquals('foobarbaz', (string) $a);
-    }
-
-    public function testCanDetermineSizeFromMultipleStreams()
-    {
-        $a = new AppendStream([
-            Stream::factory('foo'),
-            Stream::factory('bar')
-        ]);
-        $this->assertEquals(6, $a->getSize());
-
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isSeekable', 'isReadable'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('isSeekable')
-            ->will($this->returnValue(null));
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $a->addStream($s);
-        $this->assertNull($a->getSize());
-    }
-
-    public function testCatchesExceptionsWhenCastingToString()
-    {
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['read', 'isReadable', 'eof'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('read')
-            ->will($this->throwException(new \RuntimeException('foo')));
-        $s->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(true));
-        $s->expects($this->any())
-            ->method('eof')
-            ->will($this->returnValue(false));
-        $a = new AppendStream([$s]);
-        $this->assertFalse($a->eof());
-        $this->assertSame('', (string) $a);
-    }
-
-    public function testCanDetach()
-    {
-        $s = new AppendStream();
-        $s->detach();
-    }
-
-    public function testReturnsEmptyMetadata()
-    {
-        $s = new AppendStream();
-        $this->assertEquals([], $s->getMetadata());
-        $this->assertNull($s->getMetadata('foo'));
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\CannotAttachException
-     */
-    public function testCannotAttach()
-    {
-        $p = new AppendStream();
-        $p->attach('a');
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AsyncReadStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AsyncReadStreamTest.php
deleted file mode 100644
index 8c78995962a2327070ec2313c6da44249745c866..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/AsyncReadStreamTest.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\AsyncReadStream;
-use GuzzleHttp\Stream\BufferStream;
-use GuzzleHttp\Stream\FnStream;
-use GuzzleHttp\Stream\Stream;
-
-class AsyncReadStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Buffer must be readable and writable
-     */
-    public function testValidatesReadableBuffer()
-    {
-        new AsyncReadStream(FnStream::decorate(
-            Stream::factory(),
-            ['isReadable' => function () { return false; }]
-        ));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage Buffer must be readable and writable
-     */
-    public function testValidatesWritableBuffer()
-    {
-        new AsyncReadStream(FnStream::decorate(
-            Stream::factory(),
-            ['isWritable' => function () { return false; }]
-        ));
-    }
-
-    public function testValidatesHwmMetadata()
-    {
-        $a = new AsyncReadStream(Stream::factory(), [
-            'drain' => function() {}
-        ]);
-        $this->assertNull($this->readAttribute($a, 'drain'));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage pump must be callable
-     */
-    public function testValidatesPumpIsCallable()
-    {
-        new AsyncReadStream(new BufferStream(), ['pump' => true]);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     * @expectedExceptionMessage drain must be callable
-     */
-    public function testValidatesDrainIsCallable()
-    {
-        new AsyncReadStream(new BufferStream(), ['drain' => true]);
-    }
-
-    public function testCanInitialize()
-    {
-        $buffer = new BufferStream();
-        $a = new AsyncReadStream($buffer, [
-            'size'  => 10,
-            'drain' => function () {},
-            'pump'  => function () {},
-        ]);
-        $this->assertSame($buffer, $this->readAttribute($a, 'stream'));
-        $this->assertTrue(is_callable($this->readAttribute($a, 'drain')));
-        $this->assertTrue(is_callable($this->readAttribute($a, 'pump')));
-        $this->assertTrue($a->isReadable());
-        $this->assertFalse($a->isSeekable());
-        $this->assertFalse($a->isWritable());
-        $this->assertFalse($a->write('foo'));
-        $this->assertEquals(10, $a->getSize());
-    }
-
-    public function testReadsFromBufferWithNoDrainOrPump()
-    {
-        $buffer = new BufferStream();
-        $a = new AsyncReadStream($buffer);
-        $buffer->write('foo');
-        $this->assertNull($a->getSize());
-        $this->assertEquals('foo', $a->read(10));
-        $this->assertEquals('', $a->read(10));
-    }
-
-    public function testCallsPumpForMoreDataWhenRequested()
-    {
-        $called = 0;
-        $buffer = new BufferStream();
-        $a = new AsyncReadStream($buffer, [
-            'pump' => function ($size) use (&$called) {
-                $called++;
-                return str_repeat('.', $size);
-            }
-        ]);
-        $buffer->write('foobar');
-        $this->assertEquals('foo', $a->read(3));
-        $this->assertEquals(0, $called);
-        $this->assertEquals('bar.....', $a->read(8));
-        $this->assertEquals(1, $called);
-        $this->assertEquals('..', $a->read(2));
-        $this->assertEquals(2, $called);
-    }
-
-    public function testCallsDrainWhenNeeded()
-    {
-        $called = 0;
-        $buffer = new BufferStream(5);
-        $a = new AsyncReadStream($buffer, [
-            'drain' => function (BufferStream $b) use (&$called, $buffer) {
-                $this->assertSame($b, $buffer);
-                $called++;
-            }
-        ]);
-
-        $buffer->write('foobar');
-        $this->assertEquals(6, $buffer->getSize());
-        $this->assertEquals(0, $called);
-
-        $a->read(3);
-        $this->assertTrue($this->readAttribute($a, 'needsDrain'));
-        $this->assertEquals(3, $buffer->getSize());
-        $this->assertEquals(0, $called);
-
-        $a->read(3);
-        $this->assertEquals(0, $buffer->getSize());
-        $this->assertFalse($this->readAttribute($a, 'needsDrain'));
-        $this->assertEquals(1, $called);
-    }
-
-    public function testCreatesBufferWithNoConfig()
-    {
-        list($buffer, $async) = AsyncReadStream::create();
-        $this->assertInstanceOf('GuzzleHttp\Stream\BufferStream', $buffer);
-        $this->assertInstanceOf('GuzzleHttp\Stream\AsyncReadStream', $async);
-    }
-
-    public function testCreatesBufferWithSpecifiedBuffer()
-    {
-        $buf = new BufferStream();
-        list($buffer, $async) = AsyncReadStream::create(['buffer' => $buf]);
-        $this->assertSame($buf, $buffer);
-        $this->assertInstanceOf('GuzzleHttp\Stream\AsyncReadStream', $async);
-    }
-
-    public function testCreatesNullStream()
-    {
-        list($buffer, $async) = AsyncReadStream::create(['max_buffer' => 0]);
-        $this->assertInstanceOf('GuzzleHttp\Stream\NullStream', $buffer);
-        $this->assertInstanceOf('GuzzleHttp\Stream\AsyncReadStream', $async);
-    }
-
-    public function testCreatesDroppingStream()
-    {
-        list($buffer, $async) = AsyncReadStream::create(['max_buffer' => 5]);
-        $this->assertInstanceOf('GuzzleHttp\Stream\DroppingStream', $buffer);
-        $this->assertInstanceOf('GuzzleHttp\Stream\AsyncReadStream', $async);
-        $buffer->write('12345678910');
-        $this->assertEquals(5, $buffer->getSize());
-    }
-
-    public function testCreatesOnWriteStream()
-    {
-        $c = 0;
-        $b = new BufferStream();
-        list($buffer, $async) = AsyncReadStream::create([
-            'buffer' => $b,
-            'write'  => function (BufferStream $buf, $data) use (&$c, $b) {
-                $this->assertSame($buf, $b);
-                $this->assertEquals('foo', $data);
-                $c++;
-            }
-        ]);
-        $this->assertInstanceOf('GuzzleHttp\Stream\FnStream', $buffer);
-        $this->assertInstanceOf('GuzzleHttp\Stream\AsyncReadStream', $async);
-        $this->assertEquals(0, $c);
-        $this->assertEquals(3, $buffer->write('foo'));
-        $this->assertEquals(1, $c);
-        $this->assertEquals(3, $buffer->write('foo'));
-        $this->assertEquals(2, $c);
-        $this->assertEquals('foofoo', (string) $buffer);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/BufferStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/BufferStreamTest.php
deleted file mode 100644
index f9bfea21d183369dc1f480673dc17ba2ba70b0f0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/BufferStreamTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\BufferStream;
-
-class BufferStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasMetadata()
-    {
-        $b = new BufferStream(10);
-        $this->assertTrue($b->isReadable());
-        $this->assertTrue($b->isWritable());
-        $this->assertFalse($b->isSeekable());
-        $this->assertEquals(null, $b->getMetadata('foo'));
-        $this->assertEquals(10, $b->getMetadata('hwm'));
-        $this->assertEquals([], $b->getMetadata());
-    }
-
-    public function testRemovesReadDataFromBuffer()
-    {
-        $b = new BufferStream();
-        $this->assertEquals(3, $b->write('foo'));
-        $this->assertEquals(3, $b->getSize());
-        $this->assertFalse($b->eof());
-        $this->assertEquals('foo', $b->read(10));
-        $this->assertTrue($b->eof());
-        $this->assertEquals('', $b->read(10));
-    }
-
-    public function testCanCastToStringOrGetContents()
-    {
-        $b = new BufferStream();
-        $b->write('foo');
-        $b->write('baz');
-        $this->assertEquals('foo', $b->read(3));
-        $b->write('bar');
-        $this->assertEquals('bazbar', (string) $b);
-        $this->assertFalse($b->tell());
-    }
-
-    public function testDetachClearsBuffer()
-    {
-        $b = new BufferStream();
-        $b->write('foo');
-        $b->detach();
-        $this->assertEquals(0, $b->tell());
-        $this->assertTrue($b->eof());
-        $this->assertEquals(3, $b->write('abc'));
-        $this->assertEquals('abc', $b->read(10));
-    }
-
-    public function testExceedingHighwaterMarkReturnsFalseButStillBuffers()
-    {
-        $b = new BufferStream(5);
-        $this->assertEquals(3, $b->write('hi '));
-        $this->assertFalse($b->write('hello'));
-        $this->assertEquals('hi hello', (string) $b);
-        $this->assertEquals(4, $b->write('test'));
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\CannotAttachException
-     */
-    public function testCannotAttach()
-    {
-        $p = new BufferStream();
-        $p->attach('a');
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/CachingStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/CachingStreamTest.php
deleted file mode 100644
index ea969b3ad7e78b8027bc9bcde95054597eb44d71..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/CachingStreamTest.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\CachingStream;
-use GuzzleHttp\Stream\Utils;
-
-/**
- * @covers GuzzleHttp\Stream\CachingStream
- */
-class CachingStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var CachingStream */
-    protected $body;
-
-    /** @var Stream */
-    protected $decorated;
-
-    public function setUp()
-    {
-        $this->decorated = Stream::factory('testing');
-        $this->body = new CachingStream($this->decorated);
-    }
-
-    public function tearDown()
-    {
-        $this->decorated->close();
-        $this->body->close();
-    }
-
-    public function testUsesRemoteSizeIfPossible()
-    {
-        $body = Stream::factory('test');
-        $caching = new CachingStream($body);
-        $this->assertEquals(4, $caching->getSize());
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Cannot seek to byte 10
-     */
-    public function testCannotSeekPastWhatHasBeenRead()
-    {
-        $this->body->seek(10);
-    }
-
-    public function testCannotUseSeekEnd()
-    {
-        $this->assertFalse($this->body->seek(2, SEEK_END));
-    }
-
-    public function testRewindUsesSeek()
-    {
-        $a = Stream::factory('foo');
-        $d = $this->getMockBuilder('GuzzleHttp\Stream\CachingStream')
-            ->setMethods(array('seek'))
-            ->setConstructorArgs(array($a))
-            ->getMock();
-        $d->expects($this->once())
-            ->method('seek')
-            ->with(0)
-            ->will($this->returnValue(true));
-        $d->seek(0);
-    }
-
-    public function testCanSeekToReadBytes()
-    {
-        $this->assertEquals('te', $this->body->read(2));
-        $this->body->seek(0);
-        $this->assertEquals('test', $this->body->read(4));
-        $this->assertEquals(4, $this->body->tell());
-        $this->body->seek(2);
-        $this->assertEquals(2, $this->body->tell());
-        $this->body->seek(2, SEEK_CUR);
-        $this->assertEquals(4, $this->body->tell());
-        $this->assertEquals('ing', $this->body->read(3));
-    }
-
-    public function testWritesToBufferStream()
-    {
-        $this->body->read(2);
-        $this->body->write('hi');
-        $this->body->seek(0);
-        $this->assertEquals('tehiing', (string) $this->body);
-    }
-
-    public function testSkipsOverwrittenBytes()
-    {
-        $decorated = Stream::factory(
-            implode("\n", array_map(function ($n) {
-                return str_pad($n, 4, '0', STR_PAD_LEFT);
-            }, range(0, 25)))
-        );
-
-        $body = new CachingStream($decorated);
-
-        $this->assertEquals("0000\n", Utils::readline($body));
-        $this->assertEquals("0001\n", Utils::readline($body));
-        // Write over part of the body yet to be read, so skip some bytes
-        $this->assertEquals(5, $body->write("TEST\n"));
-        $this->assertEquals(5, $this->readAttribute($body, 'skipReadBytes'));
-        // Read, which skips bytes, then reads
-        $this->assertEquals("0003\n", Utils::readline($body));
-        $this->assertEquals(0, $this->readAttribute($body, 'skipReadBytes'));
-        $this->assertEquals("0004\n", Utils::readline($body));
-        $this->assertEquals("0005\n", Utils::readline($body));
-
-        // Overwrite part of the cached body (so don't skip any bytes)
-        $body->seek(5);
-        $this->assertEquals(5, $body->write("ABCD\n"));
-        $this->assertEquals(0, $this->readAttribute($body, 'skipReadBytes'));
-        $this->assertEquals("TEST\n", Utils::readline($body));
-        $this->assertEquals("0003\n", Utils::readline($body));
-        $this->assertEquals("0004\n", Utils::readline($body));
-        $this->assertEquals("0005\n", Utils::readline($body));
-        $this->assertEquals("0006\n", Utils::readline($body));
-        $this->assertEquals(5, $body->write("1234\n"));
-        $this->assertEquals(5, $this->readAttribute($body, 'skipReadBytes'));
-
-        // Seek to 0 and ensure the overwritten bit is replaced
-        $body->seek(0);
-        $this->assertEquals("0000\nABCD\nTEST\n0003\n0004\n0005\n0006\n1234\n0008\n0009\n", $body->read(50));
-
-        // Ensure that casting it to a string does not include the bit that was overwritten
-        $this->assertContains("0000\nABCD\nTEST\n0003\n0004\n0005\n0006\n1234\n0008\n0009\n", (string) $body);
-    }
-
-    public function testClosesBothStreams()
-    {
-        $s = fopen('php://temp', 'r');
-        $a = Stream::factory($s);
-        $d = new CachingStream($a);
-        $d->close();
-        $this->assertFalse(is_resource($s));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/DroppingStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/DroppingStreamTest.php
deleted file mode 100644
index bb2cb22048ebdade5ce4e083adad50484ba0ba04..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/DroppingStreamTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\BufferStream;
-use GuzzleHttp\Stream\DroppingStream;
-
-class DroppingStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testBeginsDroppingWhenSizeExceeded()
-    {
-        $stream = new BufferStream();
-        $drop = new DroppingStream($stream, 5);
-        $this->assertEquals(3, $drop->write('hel'));
-        $this->assertFalse($drop->write('lo'));
-        $this->assertEquals(5, $drop->getSize());
-        $this->assertEquals('hello', $drop->read(5));
-        $this->assertEquals(0, $drop->getSize());
-        $drop->write('12345678910');
-        $this->assertEquals(5, $stream->getSize());
-        $this->assertEquals(5, $drop->getSize());
-        $this->assertEquals('12345', (string) $drop);
-        $this->assertEquals(0, $drop->getSize());
-        $drop->write('hello');
-        $this->assertFalse($drop->write('test'));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/Exception/SeekExceptionTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/Exception/SeekExceptionTest.php
deleted file mode 100644
index fd8cd1ad266a710daf11812b24d3ce803e977c9f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/Exception/SeekExceptionTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream\Exception;
-
-use GuzzleHttp\Stream\Exception\SeekException;
-use GuzzleHttp\Stream\Stream;
-
-class SeekExceptionTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasStream()
-    {
-        $s = Stream::factory('foo');
-        $e = new SeekException($s, 10);
-        $this->assertSame($s, $e->getStream());
-        $this->assertContains('10', $e->getMessage());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/FnStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/FnStreamTest.php
deleted file mode 100644
index 6cc336b916c6f17b47c743ef73d1a7dede91e623..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/FnStreamTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\FnStream;
-
-/**
- * @covers GuzzleHttp\Stream\FnStream
- */
-class FnStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \BadMethodCallException
-     * @expectedExceptionMessage seek() is not implemented in the FnStream
-     */
-    public function testThrowsWhenNotImplemented()
-    {
-        (new FnStream([]))->seek(1);
-    }
-
-    public function testProxiesToFunction()
-    {
-        $s = new FnStream([
-            'read' => function ($len) {
-                $this->assertEquals(3, $len);
-                return 'foo';
-            }
-        ]);
-
-        $this->assertEquals('foo', $s->read(3));
-    }
-
-    public function testCanCloseOnDestruct()
-    {
-        $called = false;
-        $s = new FnStream([
-            'close' => function () use (&$called) {
-                $called = true;
-            }
-        ]);
-        unset($s);
-        $this->assertTrue($called);
-    }
-
-    public function testDoesNotRequireClose()
-    {
-        $s = new FnStream([]);
-        unset($s);
-    }
-
-    public function testDecoratesStream()
-    {
-        $a = Stream::factory('foo');
-        $b = FnStream::decorate($a, []);
-        $this->assertEquals(3, $b->getSize());
-        $this->assertEquals($b->isWritable(), true);
-        $this->assertEquals($b->isReadable(), true);
-        $this->assertEquals($b->isSeekable(), true);
-        $this->assertEquals($b->read(3), 'foo');
-        $this->assertEquals($b->tell(), 3);
-        $this->assertEquals($a->tell(), 3);
-        $this->assertEquals($b->eof(), true);
-        $this->assertEquals($a->eof(), true);
-        $b->seek(0);
-        $this->assertEquals('foo', (string) $b);
-        $b->seek(0);
-        $this->assertEquals('foo', $b->getContents());
-        $this->assertEquals($a->getMetadata(), $b->getMetadata());
-        $b->seek(0, SEEK_END);
-        $b->write('bar');
-        $this->assertEquals('foobar', (string) $b);
-        $this->assertInternalType('resource', $b->detach());
-        $b->close();
-    }
-
-    public function testDecoratesWithCustomizations()
-    {
-        $called = false;
-        $a = Stream::factory('foo');
-        $b = FnStream::decorate($a, [
-            'read' => function ($len) use (&$called, $a) {
-                $called = true;
-                return $a->read($len);
-            }
-        ]);
-        $this->assertEquals('foo', $b->read(3));
-        $this->assertTrue($called);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/GuzzleStreamWrapperTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/GuzzleStreamWrapperTest.php
deleted file mode 100644
index 33c3eccb4c090a9c57e09c2bef3f8d7102bf9382..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/GuzzleStreamWrapperTest.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\GuzzleStreamWrapper;
-use GuzzleHttp\Stream\Stream;
-
-/**
- * @covers GuzzleHttp\Stream\GuzzleStreamWrapper
- */
-class GuzzleStreamWrapperTest extends \PHPUnit_Framework_TestCase
-{
-    public function testResource()
-    {
-        $stream = Stream::factory('foo');
-        $handle = GuzzleStreamWrapper::getResource($stream);
-        $this->assertSame('foo', fread($handle, 3));
-        $this->assertSame(3, ftell($handle));
-        $this->assertSame(3, fwrite($handle, 'bar'));
-        $this->assertSame(0, fseek($handle, 0));
-        $this->assertSame('foobar', fread($handle, 6));
-        $this->assertTrue(feof($handle));
-
-        // This fails on HHVM for some reason
-        if (!defined('HHVM_VERSION')) {
-            $this->assertEquals([
-                'dev'     => 0,
-                'ino'     => 0,
-                'mode'    => 33206,
-                'nlink'   => 0,
-                'uid'     => 0,
-                'gid'     => 0,
-                'rdev'    => 0,
-                'size'    => 6,
-                'atime'   => 0,
-                'mtime'   => 0,
-                'ctime'   => 0,
-                'blksize' => 0,
-                'blocks'  => 0,
-                0         => 0,
-                1         => 0,
-                2         => 33206,
-                3         => 0,
-                4         => 0,
-                5         => 0,
-                6         => 0,
-                7         => 6,
-                8         => 0,
-                9         => 0,
-                10        => 0,
-                11        => 0,
-                12        => 0,
-            ], fstat($handle));
-        }
-
-        $this->assertTrue(fclose($handle));
-        $this->assertSame('foobar', (string) $stream);
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testValidatesStream()
-    {
-        $stream = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isReadable', 'isWritable'])
-            ->getMockForAbstractClass();
-        $stream->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $stream->expects($this->once())
-            ->method('isWritable')
-            ->will($this->returnValue(false));
-        GuzzleStreamWrapper::getResource($stream);
-    }
-
-    /**
-     * @expectedException \PHPUnit_Framework_Error_Warning
-     */
-    public function testReturnsFalseWhenStreamDoesNotExist()
-    {
-        fopen('guzzle://foo', 'r');
-    }
-
-    public function testCanOpenReadonlyStream()
-    {
-        $stream = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isReadable', 'isWritable'])
-            ->getMockForAbstractClass();
-        $stream->expects($this->once())
-            ->method('isReadable')
-            ->will($this->returnValue(false));
-        $stream->expects($this->once())
-            ->method('isWritable')
-            ->will($this->returnValue(true));
-        $r = GuzzleStreamWrapper::getResource($stream);
-        $this->assertInternalType('resource', $r);
-        fclose($r);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/InflateStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/InflateStreamTest.php
deleted file mode 100644
index ead9356a53f27f68cce9a6123a3a6d8dba702782..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/InflateStreamTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\InflateStream;
-use GuzzleHttp\Stream\Stream;
-
-class InflateStreamtest extends \PHPUnit_Framework_TestCase
-{
-    public function testInflatesStreams()
-    {
-        $content = gzencode('test');
-        $a = Stream::factory($content);
-        $b = new InflateStream($a);
-        $this->assertEquals('test', (string) $b);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LazyOpenStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LazyOpenStreamTest.php
deleted file mode 100644
index 79e0078e888065f9ee865679500be22413c9bbb9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LazyOpenStreamTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\LazyOpenStream;
-
-class LazyOpenStreamTest extends \PHPUnit_Framework_TestCase
-{
-    private $fname;
-
-    public function setup()
-    {
-        $this->fname = tempnam('/tmp', 'tfile');
-
-        if (file_exists($this->fname)) {
-            unlink($this->fname);
-        }
-    }
-
-    public function tearDown()
-    {
-        if (file_exists($this->fname)) {
-            unlink($this->fname);
-        }
-    }
-
-    public function testOpensLazily()
-    {
-        $l = new LazyOpenStream($this->fname, 'w+');
-        $l->write('foo');
-        $this->assertInternalType('array', $l->getMetadata());
-        $this->assertFileExists($this->fname);
-        $this->assertEquals('foo', file_get_contents($this->fname));
-        $this->assertEquals('foo', (string) $l);
-    }
-
-    public function testProxiesToFile()
-    {
-        file_put_contents($this->fname, 'foo');
-        $l = new LazyOpenStream($this->fname, 'r');
-        $this->assertEquals('foo', $l->read(4));
-        $this->assertTrue($l->eof());
-        $this->assertEquals(3, $l->tell());
-        $this->assertTrue($l->isReadable());
-        $this->assertTrue($l->isSeekable());
-        $this->assertFalse($l->isWritable());
-        $l->seek(1);
-        $this->assertEquals('oo', $l->getContents());
-        $this->assertEquals('foo', (string) $l);
-        $this->assertEquals(3, $l->getSize());
-        $this->assertInternalType('array', $l->getMetadata());
-        $l->close();
-    }
-
-    public function testDetachesUnderlyingStream()
-    {
-        file_put_contents($this->fname, 'foo');
-        $l = new LazyOpenStream($this->fname, 'r');
-        $r = $l->detach();
-        $this->assertInternalType('resource', $r);
-        fseek($r, 0);
-        $this->assertEquals('foo', stream_get_contents($r));
-        fclose($r);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LimitStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LimitStreamTest.php
deleted file mode 100644
index efb1dc58ff362332c08a00f27c21faf59a8041c0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/LimitStreamTest.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Http;
-
-use GuzzleHttp\Stream\FnStream;
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\LimitStream;
-use GuzzleHttp\Stream\NoSeekStream;
-
-/**
- * @covers GuzzleHttp\Stream\LimitStream
- */
-class LimitStreamTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var LimitStream */
-    protected $body;
-
-    /** @var Stream */
-    protected $decorated;
-
-    public function setUp()
-    {
-        $this->decorated = Stream::factory(fopen(__FILE__, 'r'));
-        $this->body = new LimitStream($this->decorated, 10, 3);
-    }
-
-    public function testReturnsSubset()
-    {
-        $body = new LimitStream(Stream::factory('foo'), -1, 1);
-        $this->assertEquals('oo', (string) $body);
-        $this->assertTrue($body->eof());
-        $body->seek(0);
-        $this->assertFalse($body->eof());
-        $this->assertEquals('oo', $body->read(100));
-        $this->assertTrue($body->eof());
-    }
-
-    public function testReturnsSubsetWhenCastToString()
-    {
-        $body = Stream::factory('foo_baz_bar');
-        $limited = new LimitStream($body, 3, 4);
-        $this->assertEquals('baz', (string) $limited);
-    }
-
-    public function testReturnsSubsetOfEmptyBodyWhenCastToString()
-    {
-        $body = Stream::factory('');
-        $limited = new LimitStream($body, 0, 10);
-        $this->assertEquals('', (string) $limited);
-    }
-
-    public function testSeeksWhenConstructed()
-    {
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-    }
-
-    public function testAllowsBoundedSeek()
-    {
-        $this->assertEquals(true, $this->body->seek(100));
-        $this->assertEquals(10, $this->body->tell());
-        $this->assertEquals(13, $this->decorated->tell());
-        $this->assertEquals(true, $this->body->seek(0));
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-        $this->assertEquals(false, $this->body->seek(-10));
-        $this->assertEquals(0, $this->body->tell());
-        $this->assertEquals(3, $this->decorated->tell());
-        $this->assertEquals(true, $this->body->seek(5));
-        $this->assertEquals(5, $this->body->tell());
-        $this->assertEquals(8, $this->decorated->tell());
-        $this->assertEquals(false, $this->body->seek(1000, SEEK_END));
-    }
-
-    public function testReadsOnlySubsetOfData()
-    {
-        $data = $this->body->read(100);
-        $this->assertEquals(10, strlen($data));
-        $this->assertFalse($this->body->read(1000));
-
-        $this->body->setOffset(10);
-        $newData = $this->body->read(100);
-        $this->assertEquals(10, strlen($newData));
-        $this->assertNotSame($data, $newData);
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\SeekException
-     * @expectedExceptionMessage Could not seek the stream to position 2
-     */
-    public function testThrowsWhenCurrentGreaterThanOffsetSeek()
-    {
-        $a = Stream::factory('foo_bar');
-        $b = new NoSeekStream($a);
-        $c = new LimitStream($b);
-        $a->getContents();
-        $c->setOffset(2);
-    }
-
-    public function testClaimsConsumedWhenReadLimitIsReached()
-    {
-        $this->assertFalse($this->body->eof());
-        $this->body->read(1000);
-        $this->assertTrue($this->body->eof());
-    }
-
-    public function testContentLengthIsBounded()
-    {
-        $this->assertEquals(10, $this->body->getSize());
-    }
-
-    public function testGetContentsIsBasedOnSubset()
-    {
-        $body = new LimitStream(Stream::factory('foobazbar'), 3, 3);
-        $this->assertEquals('baz', $body->getContents());
-    }
-
-    public function testReturnsNullIfSizeCannotBeDetermined()
-    {
-        $a = new FnStream([
-            'getSize' => function () { return null; },
-            'tell'    => function () { return 0; },
-        ]);
-        $b = new LimitStream($a);
-        $this->assertNull($b->getSize());
-    }
-
-    public function testLengthLessOffsetWhenNoLimitSize()
-    {
-        $a = Stream::factory('foo_bar');
-        $b = new LimitStream($a, -1, 4);
-        $this->assertEquals(3, $b->getSize());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NoSeekStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NoSeekStreamTest.php
deleted file mode 100644
index 21b7c6d22707b4db796c5cc4deed60b4a3dc6152..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NoSeekStreamTest.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\NoSeekStream;
-
-/**
- * @covers GuzzleHttp\Stream\NoSeekStream
- * @covers GuzzleHttp\Stream\StreamDecoratorTrait
- */
-class NoSeekStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCannotSeek()
-    {
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['isSeekable', 'seek'])
-            ->getMockForAbstractClass();
-        $s->expects($this->never())->method('seek');
-        $s->expects($this->never())->method('isSeekable');
-        $wrapped = new NoSeekStream($s);
-        $this->assertFalse($wrapped->isSeekable());
-        $this->assertFalse($wrapped->seek(2));
-    }
-
-    public function testHandlesClose()
-    {
-        $s = Stream::factory('foo');
-        $wrapped = new NoSeekStream($s);
-        $wrapped->close();
-        $this->assertFalse($wrapped->write('foo'));
-    }
-
-    public function testCanAttach()
-    {
-        $s1 = Stream::factory('foo');
-        $s2 = Stream::factory('bar');
-        $wrapped = new NoSeekStream($s1);
-        $wrapped->attach($s2->detach());
-        $this->assertEquals('bar', (string) $wrapped);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NullStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NullStreamTest.php
deleted file mode 100644
index 8e41431592ec2143c2491650a920f8058cdfb47d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/NullStreamTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\NullStream;
-
-class NullStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testDoesNothing()
-    {
-        $b = new NullStream();
-        $this->assertEquals('', $b->read(10));
-        $this->assertEquals(4, $b->write('test'));
-        $this->assertEquals('', (string) $b);
-        $this->assertNull($b->getMetadata('a'));
-        $this->assertEquals([], $b->getMetadata());
-        $this->assertEquals(0, $b->getSize());
-        $this->assertEquals('', $b->getContents());
-        $this->assertEquals(0, $b->tell());
-
-        $this->assertTrue($b->isReadable());
-        $this->assertTrue($b->isWritable());
-        $this->assertTrue($b->isSeekable());
-        $this->assertFalse($b->seek(10));
-
-        $this->assertTrue($b->eof());
-        $b->detach();
-        $this->assertTrue($b->eof());
-        $b->close();
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\CannotAttachException
-     */
-    public function testCannotAttach()
-    {
-        $p = new NullStream();
-        $p->attach('a');
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/PumpStreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/PumpStreamTest.php
deleted file mode 100644
index 2d20ce90c0d7674d946b0a2b3c6c871e2d3019a5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/PumpStreamTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\LimitStream;
-use GuzzleHttp\Stream\PumpStream;
-use GuzzleHttp\Stream\Stream;
-
-class PumpStreamTest extends \PHPUnit_Framework_TestCase
-{
-    public function testHasMetadataAndSize()
-    {
-        $p = new PumpStream(function () {}, [
-            'metadata' => ['foo' => 'bar'],
-            'size'     => 100
-        ]);
-
-        $this->assertEquals('bar', $p->getMetadata('foo'));
-        $this->assertEquals(['foo' => 'bar'], $p->getMetadata());
-        $this->assertEquals(100, $p->getSize());
-    }
-
-    public function testCanReadFromCallable()
-    {
-        $p = Stream::factory(function ($size) {
-            return 'a';
-        });
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals(1, $p->tell());
-        $this->assertEquals('aaaaa', $p->read(5));
-        $this->assertEquals(6, $p->tell());
-    }
-
-    public function testStoresExcessDataInBuffer()
-    {
-        $called = [];
-        $p = Stream::factory(function ($size) use (&$called) {
-            $called[] = $size;
-            return 'abcdef';
-        });
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals('b', $p->read(1));
-        $this->assertEquals('cdef', $p->read(4));
-        $this->assertEquals('abcdefabc', $p->read(9));
-        $this->assertEquals([1, 9, 3], $called);
-    }
-
-    public function testInifiniteStreamWrappedInLimitStream()
-    {
-        $p = Stream::factory(function () { return 'a'; });
-        $s = new LimitStream($p, 5);
-        $this->assertEquals('aaaaa', (string) $s);
-    }
-
-    public function testDescribesCapabilities()
-    {
-        $p = Stream::factory(function () {});
-        $this->assertTrue($p->isReadable());
-        $this->assertFalse($p->isSeekable());
-        $this->assertFalse($p->isWritable());
-        $this->assertNull($p->getSize());
-        $this->assertFalse($p->write('aa'));
-        $this->assertEquals('', $p->getContents());
-        $this->assertEquals('', (string) $p);
-        $p->close();
-        $this->assertEquals('', $p->read(10));
-        $this->assertTrue($p->eof());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\CannotAttachException
-     */
-    public function testCannotAttach()
-    {
-        $p = Stream::factory(function () {});
-        $p->attach('a');
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamDecoratorTraitTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamDecoratorTraitTest.php
deleted file mode 100644
index 2ba79addfad62c336531b256631dd98c95957085..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamDecoratorTraitTest.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\StreamInterface;
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\StreamDecoratorTrait;
-
-class Str implements StreamInterface
-{
-    use StreamDecoratorTrait;
-}
-
-/**
- * @covers GuzzleHttp\Stream\StreamDecoratorTrait
- */
-class StreamDecoratorTraitTest extends \PHPUnit_Framework_TestCase
-{
-    private $a;
-    private $b;
-    private $c;
-
-    public function setUp()
-    {
-        $this->c = fopen('php://temp', 'r+');
-        fwrite($this->c, 'foo');
-        fseek($this->c, 0);
-        $this->a = Stream::factory($this->c);
-        $this->b = new Str($this->a);
-    }
-
-    public function testCatchesExceptionsWhenCastingToString()
-    {
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\StreamInterface')
-            ->setMethods(['read'])
-            ->getMockForAbstractClass();
-        $s->expects($this->once())
-            ->method('read')
-            ->will($this->throwException(new \Exception('foo')));
-        $msg = '';
-        set_error_handler(function ($errNo, $str) use (&$msg) { $msg = $str; });
-        echo new Str($s);
-        restore_error_handler();
-        $this->assertContains('foo', $msg);
-    }
-
-    public function testToString()
-    {
-        $this->assertEquals('foo', (string) $this->b);
-    }
-
-    public function testHasSize()
-    {
-        $this->assertEquals(3, $this->b->getSize());
-        $this->assertSame($this->b, $this->b->setSize(2));
-        $this->assertEquals(2, $this->b->getSize());
-    }
-
-    public function testReads()
-    {
-        $this->assertEquals('foo', $this->b->read(10));
-    }
-
-    public function testCheckMethods()
-    {
-        $this->assertEquals($this->a->isReadable(), $this->b->isReadable());
-        $this->assertEquals($this->a->isWritable(), $this->b->isWritable());
-        $this->assertEquals($this->a->isSeekable(), $this->b->isSeekable());
-    }
-
-    public function testSeeksAndTells()
-    {
-        $this->assertTrue($this->b->seek(1));
-        $this->assertEquals(1, $this->a->tell());
-        $this->assertEquals(1, $this->b->tell());
-        $this->assertTrue($this->b->seek(0));
-        $this->assertEquals(0, $this->a->tell());
-        $this->assertEquals(0, $this->b->tell());
-        $this->assertTrue($this->b->seek(0, SEEK_END));
-        $this->assertEquals(3, $this->a->tell());
-        $this->assertEquals(3, $this->b->tell());
-    }
-
-    public function testGetsContents()
-    {
-        $this->assertEquals('foo', $this->b->getContents());
-        $this->assertEquals('', $this->b->getContents());
-        $this->b->seek(1);
-        $this->assertEquals('oo', $this->b->getContents(1));
-    }
-
-    public function testCloses()
-    {
-        $this->b->close();
-        $this->assertFalse(is_resource($this->c));
-    }
-
-    public function testDetaches()
-    {
-        $this->b->detach();
-        $this->assertFalse($this->b->isReadable());
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\CannotAttachException
-     */
-    public function testCannotAttachByDefault()
-    {
-        $this->b->attach('a');
-    }
-
-    public function testWrapsMetadata()
-    {
-        $this->assertSame($this->b->getMetadata(), $this->a->getMetadata());
-        $this->assertSame($this->b->getMetadata('uri'), $this->a->getMetadata('uri'));
-    }
-
-    public function testWrapsWrites()
-    {
-        $this->b->seek(0, SEEK_END);
-        $this->b->write('foo');
-        $this->assertEquals('foofoo', (string) $this->a);
-    }
-
-    /**
-     * @expectedException \UnexpectedValueException
-     */
-    public function testThrowsWithInvalidGetter()
-    {
-        $this->b->foo;
-    }
-
-    /**
-     * @expectedException \BadMethodCallException
-     */
-    public function testThrowsWhenGetterNotImplemented()
-    {
-        $s = new BadStream();
-        $s->stream;
-    }
-}
-
-class BadStream
-{
-    use StreamDecoratorTrait;
-
-    public function __construct() {}
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamTest.php
deleted file mode 100644
index 2985bfbb17b27bf3bebbab59f22e3eb46a4614bd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/StreamTest.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\Stream;
-
-/**
- * @covers GuzzleHttp\Stream\Stream
- */
-class StreamTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testConstructorThrowsExceptionOnInvalidArgument()
-    {
-        new Stream(true);
-    }
-
-    public function testConstructorInitializesProperties()
-    {
-        $handle = fopen('php://temp', 'r+');
-        fwrite($handle, 'data');
-        $stream = new Stream($handle);
-        $this->assertTrue($stream->isReadable());
-        $this->assertTrue($stream->isWritable());
-        $this->assertTrue($stream->isSeekable());
-        $this->assertEquals('php://temp', $stream->getMetadata('uri'));
-        $this->assertInternalType('array', $stream->getMetadata());
-        $this->assertEquals(4, $stream->getSize());
-        $this->assertFalse($stream->eof());
-        $stream->close();
-    }
-
-    public function testStreamClosesHandleOnDestruct()
-    {
-        $handle = fopen('php://temp', 'r');
-        $stream = new Stream($handle);
-        unset($stream);
-        $this->assertFalse(is_resource($handle));
-    }
-
-    public function testConvertsToString()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = new Stream($handle);
-        $this->assertEquals('data', (string) $stream);
-        $this->assertEquals('data', (string) $stream);
-        $stream->close();
-    }
-
-    public function testGetsContents()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = new Stream($handle);
-        $this->assertEquals('', $stream->getContents());
-        $stream->seek(0);
-        $this->assertEquals('data', $stream->getContents());
-        $this->assertEquals('', $stream->getContents());
-    }
-
-    public function testChecksEof()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = new Stream($handle);
-        $this->assertFalse($stream->eof());
-        $stream->read(4);
-        $this->assertTrue($stream->eof());
-        $stream->close();
-    }
-
-    public function testAllowsSettingManualSize()
-    {
-        $handle = fopen('php://temp', 'w+');
-        fwrite($handle, 'data');
-        $stream = new Stream($handle);
-        $stream->setSize(10);
-        $this->assertEquals(10, $stream->getSize());
-        $stream->close();
-    }
-
-    public function testGetSize()
-    {
-        $size = filesize(__FILE__);
-        $handle = fopen(__FILE__, 'r');
-        $stream = new Stream($handle);
-        $this->assertEquals($size, $stream->getSize());
-        // Load from cache
-        $this->assertEquals($size, $stream->getSize());
-        $stream->close();
-    }
-
-    public function testEnsuresSizeIsConsistent()
-    {
-        $h = fopen('php://temp', 'w+');
-        $this->assertEquals(3, fwrite($h, 'foo'));
-        $stream = new Stream($h);
-        $this->assertEquals(3, $stream->getSize());
-        $this->assertEquals(4, $stream->write('test'));
-        $this->assertEquals(7, $stream->getSize());
-        $this->assertEquals(7, $stream->getSize());
-        $stream->close();
-    }
-
-    public function testProvidesStreamPosition()
-    {
-        $handle = fopen('php://temp', 'w+');
-        $stream = new Stream($handle);
-        $this->assertEquals(0, $stream->tell());
-        $stream->write('foo');
-        $this->assertEquals(3, $stream->tell());
-        $stream->seek(1);
-        $this->assertEquals(1, $stream->tell());
-        $this->assertSame(ftell($handle), $stream->tell());
-        $stream->close();
-    }
-
-    public function testKeepsPositionOfResource()
-    {
-        $h = fopen(__FILE__, 'r');
-        fseek($h, 10);
-        $stream = Stream::factory($h);
-        $this->assertEquals(10, $stream->tell());
-        $stream->close();
-    }
-
-    public function testCanDetachAndAttachStream()
-    {
-        $r = fopen('php://temp', 'w+');
-        $stream = new Stream($r);
-        $stream->write('foo');
-        $this->assertTrue($stream->isReadable());
-        $this->assertSame($r, $stream->detach());
-        $this->assertNull($stream->detach());
-
-        $this->assertFalse($stream->isReadable());
-        $this->assertFalse($stream->read(10));
-        $this->assertFalse($stream->isWritable());
-        $this->assertFalse($stream->write('bar'));
-        $this->assertFalse($stream->isSeekable());
-        $this->assertFalse($stream->seek(10));
-        $this->assertFalse($stream->tell());
-        $this->assertTrue($stream->eof());
-        $this->assertNull($stream->getSize());
-        $this->assertSame('', (string) $stream);
-        $this->assertSame('', $stream->getContents());
-
-        $stream->attach($r);
-        $stream->seek(0);
-        $this->assertEquals('foo', $stream->getContents());
-        $this->assertTrue($stream->isReadable());
-        $this->assertTrue($stream->isWritable());
-        $this->assertTrue($stream->isSeekable());
-
-        $stream->close();
-    }
-
-    public function testCloseClearProperties()
-    {
-        $handle = fopen('php://temp', 'r+');
-        $stream = new Stream($handle);
-        $stream->close();
-
-        $this->assertEmpty($stream->getMetadata());
-        $this->assertFalse($stream->isSeekable());
-        $this->assertFalse($stream->isReadable());
-        $this->assertFalse($stream->isWritable());
-        $this->assertNull($stream->getSize());
-    }
-
-    public function testCreatesWithFactory()
-    {
-        $stream = Stream::factory('foo');
-        $this->assertInstanceOf('GuzzleHttp\Stream\Stream', $stream);
-        $this->assertEquals('foo', $stream->getContents());
-        $stream->close();
-    }
-
-    public function testFactoryCreatesFromEmptyString()
-    {
-        $s = Stream::factory();
-        $this->assertInstanceOf('GuzzleHttp\Stream\Stream', $s);
-    }
-
-    public function testFactoryCreatesFromResource()
-    {
-        $r = fopen(__FILE__, 'r');
-        $s = Stream::factory($r);
-        $this->assertInstanceOf('GuzzleHttp\Stream\Stream', $s);
-        $this->assertSame(file_get_contents(__FILE__), (string) $s);
-    }
-
-    public function testFactoryCreatesFromObjectWithToString()
-    {
-        $r = new HasToString();
-        $s = Stream::factory($r);
-        $this->assertInstanceOf('GuzzleHttp\Stream\Stream', $s);
-        $this->assertEquals('foo', (string) $s);
-    }
-
-    public function testCreatePassesThrough()
-    {
-        $s = Stream::factory('foo');
-        $this->assertSame($s, Stream::factory($s));
-    }
-
-    /**
-     * @expectedException \InvalidArgumentException
-     */
-    public function testThrowsExceptionForUnknown()
-    {
-        Stream::factory(new \stdClass());
-    }
-
-    public function testReturnsCustomMetadata()
-    {
-        $s = Stream::factory('foo', ['metadata' => ['hwm' => 3]]);
-        $this->assertEquals(3, $s->getMetadata('hwm'));
-        $this->assertArrayHasKey('hwm', $s->getMetadata());
-    }
-
-    public function testCanSetSize()
-    {
-        $s = Stream::factory('', ['size' => 10]);
-        $this->assertEquals(10, $s->getSize());
-    }
-
-    public function testCanCreateIteratorBasedStream()
-    {
-        $a = new \ArrayIterator(['foo', 'bar', '123']);
-        $p = Stream::factory($a);
-        $this->assertInstanceOf('GuzzleHttp\Stream\PumpStream', $p);
-        $this->assertEquals('foo', $p->read(3));
-        $this->assertFalse($p->eof());
-        $this->assertEquals('b', $p->read(1));
-        $this->assertEquals('a', $p->read(1));
-        $this->assertEquals('r12', $p->read(3));
-        $this->assertFalse($p->eof());
-        $this->assertEquals('3', $p->getContents());
-        $this->assertTrue($p->eof());
-        $this->assertEquals(9, $p->tell());
-    }
-}
-
-class HasToString
-{
-    public function __toString() {
-        return 'foo';
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/UtilsTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/UtilsTest.php
deleted file mode 100644
index 6e3e3b21608c0f47cfdf334e2aca668015382629..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/guzzlehttp/streams/tests/UtilsTest.php
+++ /dev/null
@@ -1,155 +0,0 @@
-<?php
-namespace GuzzleHttp\Tests\Stream;
-
-use GuzzleHttp\Stream\FnStream;
-use GuzzleHttp\Stream\NoSeekStream;
-use GuzzleHttp\Stream\Stream;
-use GuzzleHttp\Stream\Utils;
-
-class UtilsTest extends \PHPUnit_Framework_TestCase
-{
-    public function testCopiesToString()
-    {
-        $s = Stream::factory('foobaz');
-        $this->assertEquals('foobaz', Utils::copyToString($s));
-        $s->seek(0);
-        $this->assertEquals('foo', Utils::copyToString($s, 3));
-        $this->assertEquals('baz', Utils::copyToString($s, 3));
-        $this->assertEquals('', Utils::copyToString($s));
-    }
-
-    public function testCopiesToStringStopsWhenReadFails()
-    {
-        $s1 = Stream::factory('foobaz');
-        $s1 = FnStream::decorate($s1, [
-            'read' => function () {
-                return false;
-            }
-        ]);
-        $result = Utils::copyToString($s1);
-        $this->assertEquals('', $result);
-    }
-
-    public function testCopiesToStream()
-    {
-        $s1 = Stream::factory('foobaz');
-        $s2 = Stream::factory('');
-        Utils::copyToStream($s1, $s2);
-        $this->assertEquals('foobaz', (string) $s2);
-        $s2 = Stream::factory('');
-        $s1->seek(0);
-        Utils::copyToStream($s1, $s2, 3);
-        $this->assertEquals('foo', (string) $s2);
-        Utils::copyToStream($s1, $s2, 3);
-        $this->assertEquals('foobaz', (string) $s2);
-    }
-
-    public function testStopsCopyToStreamWhenWriteFails()
-    {
-        $s1 = Stream::factory('foobaz');
-        $s2 = Stream::factory('');
-        $s2 = FnStream::decorate($s2, ['write' => function () { return 0; }]);
-        Utils::copyToStream($s1, $s2);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testStopsCopyToSteamWhenWriteFailsWithMaxLen()
-    {
-        $s1 = Stream::factory('foobaz');
-        $s2 = Stream::factory('');
-        $s2 = FnStream::decorate($s2, ['write' => function () { return 0; }]);
-        Utils::copyToStream($s1, $s2, 10);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testStopsCopyToSteamWhenReadFailsWithMaxLen()
-    {
-        $s1 = Stream::factory('foobaz');
-        $s1 = FnStream::decorate($s1, ['read' => function () { return ''; }]);
-        $s2 = Stream::factory('');
-        Utils::copyToStream($s1, $s2, 10);
-        $this->assertEquals('', (string) $s2);
-    }
-
-    public function testReadsLines()
-    {
-        $s = Stream::factory("foo\nbaz\nbar");
-        $this->assertEquals("foo\n", Utils::readline($s));
-        $this->assertEquals("baz\n", Utils::readline($s));
-        $this->assertEquals("bar", Utils::readline($s));
-    }
-
-    public function testReadsLinesUpToMaxLength()
-    {
-        $s = Stream::factory("12345\n");
-        $this->assertEquals("123", Utils::readline($s, 4));
-        $this->assertEquals("45\n", Utils::readline($s));
-    }
-
-    public function testReadsLineUntilFalseReturnedFromRead()
-    {
-        $s = $this->getMockBuilder('GuzzleHttp\Stream\Stream')
-            ->setMethods(['read', 'eof'])
-            ->disableOriginalConstructor()
-            ->getMock();
-        $s->expects($this->exactly(2))
-            ->method('read')
-            ->will($this->returnCallback(function () {
-                static $c = false;
-                if ($c) {
-                    return false;
-                }
-                $c = true;
-                return 'h';
-            }));
-        $s->expects($this->exactly(2))
-            ->method('eof')
-            ->will($this->returnValue(false));
-        $this->assertEquals("h", Utils::readline($s));
-    }
-
-    public function testCalculatesHash()
-    {
-        $s = Stream::factory('foobazbar');
-        $this->assertEquals(md5('foobazbar'), Utils::hash($s, 'md5'));
-    }
-
-    /**
-     * @expectedException \GuzzleHttp\Stream\Exception\SeekException
-     */
-    public function testCalculatesHashThrowsWhenSeekFails()
-    {
-        $s = new NoSeekStream(Stream::factory('foobazbar'));
-        $s->read(2);
-        Utils::hash($s, 'md5');
-    }
-
-    public function testCalculatesHashSeeksToOriginalPosition()
-    {
-        $s = Stream::factory('foobazbar');
-        $s->seek(4);
-        $this->assertEquals(md5('foobazbar'), Utils::hash($s, 'md5'));
-        $this->assertEquals(4, $s->tell());
-    }
-
-    public function testOpensFilesSuccessfully()
-    {
-        $r = Utils::open(__FILE__, 'r');
-        $this->assertInternalType('resource', $r);
-        fclose($r);
-    }
-
-    /**
-     * @expectedException \RuntimeException
-     * @expectedExceptionMessage Unable to open /path/to/does/not/exist using mode r
-     */
-    public function testThrowsExceptionNotWarning()
-    {
-        Utils::open('/path/to/does/not/exist', 'r');
-    }
-
-    public function testProxiesToFactory()
-    {
-        $this->assertEquals('foo', (string) Utils::create('foo'));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/LICENSE
deleted file mode 100644
index 474c952b4b50c761c9b031f410ac0dfbc1daac4c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012 PHP Framework Interoperability Group
-
-Permission is hereby granted, free of charge, to any person obtaining a copy 
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights 
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
-copies of the Software, and to permit persons to whom the Software is 
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in 
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/AbstractLogger.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/AbstractLogger.php
deleted file mode 100644
index 90e721af2d37716f0984a6b17b2385c223a248ed..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/AbstractLogger.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This is a simple Logger implementation that other Loggers can inherit from.
- *
- * It simply delegates all log-level-specific methods to the `log` method to
- * reduce boilerplate code that a simple Logger that does the same thing with
- * messages regardless of the error level has to implement.
- */
-abstract class AbstractLogger implements LoggerInterface
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function emergency($message, array $context = array())
-    {
-        $this->log(LogLevel::EMERGENCY, $message, $context);
-    }
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function alert($message, array $context = array())
-    {
-        $this->log(LogLevel::ALERT, $message, $context);
-    }
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function critical($message, array $context = array())
-    {
-        $this->log(LogLevel::CRITICAL, $message, $context);
-    }
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function error($message, array $context = array())
-    {
-        $this->log(LogLevel::ERROR, $message, $context);
-    }
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function warning($message, array $context = array())
-    {
-        $this->log(LogLevel::WARNING, $message, $context);
-    }
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function notice($message, array $context = array())
-    {
-        $this->log(LogLevel::NOTICE, $message, $context);
-    }
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function info($message, array $context = array())
-    {
-        $this->log(LogLevel::INFO, $message, $context);
-    }
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function debug($message, array $context = array())
-    {
-        $this->log(LogLevel::DEBUG, $message, $context);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/InvalidArgumentException.php
deleted file mode 100644
index 67f852d1dbc660ba05e703fe9b727727da2b3f78..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/InvalidArgumentException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-class InvalidArgumentException extends \InvalidArgumentException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LogLevel.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LogLevel.php
deleted file mode 100644
index 9cebcace652f5bc52ee4c20497162df4ef00b16d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LogLevel.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes log levels.
- */
-class LogLevel
-{
-    const EMERGENCY = 'emergency';
-    const ALERT     = 'alert';
-    const CRITICAL  = 'critical';
-    const ERROR     = 'error';
-    const WARNING   = 'warning';
-    const NOTICE    = 'notice';
-    const INFO      = 'info';
-    const DEBUG     = 'debug';
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
deleted file mode 100644
index 4d64f4786adb9b25259533304542302ca687eba2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes a logger-aware instance.
- */
-interface LoggerAwareInterface
-{
-    /**
-     * Sets a logger instance on the object.
-     *
-     * @param LoggerInterface $logger
-     *
-     * @return void
-     */
-    public function setLogger(LoggerInterface $logger);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
deleted file mode 100644
index 639f79bdaa5a007de241f4d902b679c51980eaca..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Basic Implementation of LoggerAwareInterface.
- */
-trait LoggerAwareTrait
-{
-    /**
-     * The logger instance.
-     *
-     * @var LoggerInterface
-     */
-    protected $logger;
-
-    /**
-     * Sets a logger.
-     *
-     * @param LoggerInterface $logger
-     */
-    public function setLogger(LoggerInterface $logger)
-    {
-        $this->logger = $logger;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerInterface.php
deleted file mode 100644
index 5ea72438b56694639c13101cbc3c82339a6e96a8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerInterface.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * Describes a logger instance.
- *
- * The message MUST be a string or object implementing __toString().
- *
- * The message MAY contain placeholders in the form: {foo} where foo
- * will be replaced by the context data in key "foo".
- *
- * The context array can contain arbitrary data. The only assumption that
- * can be made by implementors is that if an Exception instance is given
- * to produce a stack trace, it MUST be in a key named "exception".
- *
- * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
- * for the full interface specification.
- */
-interface LoggerInterface
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function emergency($message, array $context = array());
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function alert($message, array $context = array());
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function critical($message, array $context = array());
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function error($message, array $context = array());
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function warning($message, array $context = array());
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function notice($message, array $context = array());
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function info($message, array $context = array());
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function debug($message, array $context = array());
-
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed  $level
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function log($level, $message, array $context = array());
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerTrait.php
deleted file mode 100644
index 867225df1d12469facd1355e6db7467e0d8de128..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/LoggerTrait.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This is a simple Logger trait that classes unable to extend AbstractLogger
- * (because they extend another class, etc) can include.
- *
- * It simply delegates all log-level-specific methods to the `log` method to
- * reduce boilerplate code that a simple Logger that does the same thing with
- * messages regardless of the error level has to implement.
- */
-trait LoggerTrait
-{
-    /**
-     * System is unusable.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function emergency($message, array $context = array())
-    {
-        $this->log(LogLevel::EMERGENCY, $message, $context);
-    }
-
-    /**
-     * Action must be taken immediately.
-     *
-     * Example: Entire website down, database unavailable, etc. This should
-     * trigger the SMS alerts and wake you up.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function alert($message, array $context = array())
-    {
-        $this->log(LogLevel::ALERT, $message, $context);
-    }
-
-    /**
-     * Critical conditions.
-     *
-     * Example: Application component unavailable, unexpected exception.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function critical($message, array $context = array())
-    {
-        $this->log(LogLevel::CRITICAL, $message, $context);
-    }
-
-    /**
-     * Runtime errors that do not require immediate action but should typically
-     * be logged and monitored.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function error($message, array $context = array())
-    {
-        $this->log(LogLevel::ERROR, $message, $context);
-    }
-
-    /**
-     * Exceptional occurrences that are not errors.
-     *
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
-     * that are not necessarily wrong.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function warning($message, array $context = array())
-    {
-        $this->log(LogLevel::WARNING, $message, $context);
-    }
-
-    /**
-     * Normal but significant events.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function notice($message, array $context = array())
-    {
-        $this->log(LogLevel::NOTICE, $message, $context);
-    }
-
-    /**
-     * Interesting events.
-     *
-     * Example: User logs in, SQL logs.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function info($message, array $context = array())
-    {
-        $this->log(LogLevel::INFO, $message, $context);
-    }
-
-    /**
-     * Detailed debug information.
-     *
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function debug($message, array $context = array())
-    {
-        $this->log(LogLevel::DEBUG, $message, $context);
-    }
-
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed  $level
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    abstract public function log($level, $message, array $context = array());
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/NullLogger.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/NullLogger.php
deleted file mode 100644
index d8cd682c8f963e8f5e04f46a4a57308cc8d9ecf0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/NullLogger.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Psr\Log;
-
-/**
- * This Logger can be used to avoid conditional log calls.
- *
- * Logging should always be optional, and if no logger is provided to your
- * library creating a NullLogger instance to have something to throw logs at
- * is a good way to avoid littering your code with `if ($this->logger) { }`
- * blocks.
- */
-class NullLogger extends AbstractLogger
-{
-    /**
-     * Logs with an arbitrary level.
-     *
-     * @param mixed  $level
-     * @param string $message
-     * @param array  $context
-     *
-     * @return void
-     */
-    public function log($level, $message, array $context = array())
-    {
-        // noop
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
deleted file mode 100644
index a0391a52b8fc10b727c2258a19520c65791fc1ae..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
-<?php
-
-namespace Psr\Log\Test;
-
-use Psr\Log\LoggerInterface;
-use Psr\Log\LogLevel;
-
-/**
- * Provides a base test class for ensuring compliance with the LoggerInterface.
- *
- * Implementors can extend the class and implement abstract methods to run this
- * as part of their test suite.
- */
-abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @return LoggerInterface
-     */
-    abstract public function getLogger();
-
-    /**
-     * This must return the log messages in order.
-     *
-     * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
-     *
-     * Example ->error('Foo') would yield "error Foo".
-     *
-     * @return string[]
-     */
-    abstract public function getLogs();
-
-    public function testImplements()
-    {
-        $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
-    }
-
-    /**
-     * @dataProvider provideLevelsAndMessages
-     */
-    public function testLogsAtAllLevels($level, $message)
-    {
-        $logger = $this->getLogger();
-        $logger->{$level}($message, array('user' => 'Bob'));
-        $logger->log($level, $message, array('user' => 'Bob'));
-
-        $expected = array(
-            $level.' message of level '.$level.' with context: Bob',
-            $level.' message of level '.$level.' with context: Bob',
-        );
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function provideLevelsAndMessages()
-    {
-        return array(
-            LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
-            LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
-            LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
-            LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
-            LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
-            LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
-            LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
-            LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
-        );
-    }
-
-    /**
-     * @expectedException \Psr\Log\InvalidArgumentException
-     */
-    public function testThrowsOnInvalidLevel()
-    {
-        $logger = $this->getLogger();
-        $logger->log('invalid level', 'Foo');
-    }
-
-    public function testContextReplacement()
-    {
-        $logger = $this->getLogger();
-        $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
-
-        $expected = array('info {Message {nothing} Bob Bar a}');
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function testObjectCastToString()
-    {
-        if (method_exists($this, 'createPartialMock')) {
-            $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
-        } else {
-            $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
-        }
-        $dummy->expects($this->once())
-            ->method('__toString')
-            ->will($this->returnValue('DUMMY'));
-
-        $this->getLogger()->warning($dummy);
-
-        $expected = array('warning DUMMY');
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function testContextCanContainAnything()
-    {
-        $context = array(
-            'bool' => true,
-            'null' => null,
-            'string' => 'Foo',
-            'int' => 0,
-            'float' => 0.5,
-            'nested' => array('with object' => new DummyTest),
-            'object' => new \DateTime,
-            'resource' => fopen('php://memory', 'r'),
-        );
-
-        $this->getLogger()->warning('Crazy context data', $context);
-
-        $expected = array('warning Crazy context data');
-        $this->assertEquals($expected, $this->getLogs());
-    }
-
-    public function testContextExceptionKeyCanBeExceptionOrOtherValues()
-    {
-        $logger = $this->getLogger();
-        $logger->warning('Random message', array('exception' => 'oops'));
-        $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
-
-        $expected = array(
-            'warning Random message',
-            'critical Uncaught Exception!'
-        );
-        $this->assertEquals($expected, $this->getLogs());
-    }
-}
-
-class DummyTest
-{
-    public function __toString()
-    {
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/README.md b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/README.md
deleted file mode 100644
index 574bc1cb2a82ffa07bcc2f7ffee3656eb086ba29..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-PSR Log
-=======
-
-This repository holds all interfaces/classes/traits related to
-[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
-
-Note that this is not a logger of its own. It is merely an interface that
-describes a logger. See the specification for more details.
-
-Usage
------
-
-If you need a logger, you can use the interface like this:
-
-```php
-<?php
-
-use Psr\Log\LoggerInterface;
-
-class Foo
-{
-    private $logger;
-
-    public function __construct(LoggerInterface $logger = null)
-    {
-        $this->logger = $logger;
-    }
-
-    public function doSomething()
-    {
-        if ($this->logger) {
-            $this->logger->info('Doing work');
-        }
-
-        // do something useful
-    }
-}
-```
-
-You can then pick one of the implementations of the interface to get a logger.
-
-If you want to implement the interface, you can require this package and
-implement `Psr\Log\LoggerInterface` in your code. Please read the
-[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
-for details.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/composer.json b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/composer.json
deleted file mode 100644
index 87934d707e7a37325a0ec6afe4b63aaa4ca6337c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/psr/log/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name": "psr/log",
-    "description": "Common interface for logging libraries",
-    "keywords": ["psr", "psr-3", "log"],
-    "homepage": "https://github.com/php-fig/log",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "PHP-FIG",
-            "homepage": "http://www.php-fig.org/"
-        }
-    ],
-    "require": {
-        "php": ">=5.3.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "Psr\\Log\\": "Psr/Log/"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.0.x-dev"
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/.travis.yml b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/.travis.yml
deleted file mode 100644
index 19c08ab1a98d6859e2638b64fdb19131d5b285fb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: php
-
-php:
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - nightly
-  - hhvm
-
-before_install:
-  - composer self-update
-
-install:
-  - composer install
-
-script:
-  - phpunit -v --coverage-text --coverage-clover=./build/logs/clover.xml
-
-after_script:
-  - if [ -f ./build/logs/clover.xml ]; then travis_retry composer require satooshi/php-coveralls --no-interaction --update-with-dependencies; fi
-  - if [ -f ./build/logs/clover.xml ]; then php vendor/bin/coveralls -v; fi
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/CHANGELOG.md b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/CHANGELOG.md
deleted file mode 100644
index 4886f96cf25d725a7ae6bb0ac865004b0c18e164..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/CHANGELOG.md
+++ /dev/null
@@ -1,91 +0,0 @@
-CHANGELOG for 2.x
-=================
-
-* 2.5.0 (2016-12-22)
-
-    * Revert automatic cancellation of pending collection promises once the
-      output promise resolves. This was introduced in 42d86b7 (PR #36, released
-      in [v2.3.0](https://github.com/reactphp/promise/releases/tag/v2.3.0)) and
-      was both unintended and backward incompatible.
-
-      If you need automatic cancellation, you can use something like:
-
-      ```php
-      function allAndCancel(array $promises)
-      {
-           return \React\Promise\all($promises)
-               ->always(function() use ($promises) {
-                   foreach ($promises as $promise) {
-                       if ($promise instanceof \React\Promise\CancellablePromiseInterface) {
-                           $promise->cancel();
-                       }
-                   }
-              });
-      }
-      ```
-    * `all()` and `map()` functions now preserve the order of the array (#77).
-    * Fix circular references when resolving a promise with itself (#71).
-
-* 2.4.1 (2016-05-03)
-
-    * Fix `some()` not cancelling pending promises when too much input promises
-      reject (16ff799).
-
-* 2.4.0 (2016-03-31)
-
-    * Support foreign thenables in `resolve()`.
-      Any object that provides a `then()` method is now assimilated to a trusted
-      promise that follows the state of this thenable (#52).
-    * Fix `some()` and `any()` for input arrays containing not enough items
-      (#34).
-
-* 2.3.0 (2016-03-24)
-
-    * Allow cancellation of promises returned by functions working on promise
-      collections (#36).
-    * Handle `\Throwable` in the same way as `\Exception` (#51 by @joshdifabio).
-
-* 2.2.2 (2016-02-26)
-
-    * Fix cancellation handlers called multiple times (#47 by @clue).
-
-* 2.2.1 (2015-07-03)
-
-    * Fix stack error when resolving a promise in its own fulfillment or
-      rejection handlers.
-
-* 2.2.0 (2014-12-30)
-
-    * Introduce new `ExtendedPromiseInterface` implemented by all promises.
-    * Add new `done()` method (part of the `ExtendedPromiseInterface`).
-    * Add new `otherwise()` method (part of the `ExtendedPromiseInterface`).
-    * Add new `always()` method (part of the `ExtendedPromiseInterface`).
-    * Add new `progress()` method (part of the `ExtendedPromiseInterface`).
-    * Rename `Deferred::progress` to `Deferred::notify` to avoid confusion with
-      `ExtendedPromiseInterface::progress` (a `Deferred::progress` alias is
-      still available for backward compatibility)
-    * `resolve()` now always returns a `ExtendedPromiseInterface`.
-
-* 2.1.0 (2014-10-15)
-
-    * Introduce new `CancellablePromiseInterface` implemented by all promises.
-    * Add new `cancel()` method (part of the `CancellablePromiseInterface`).
-
-* 2.0.0 (2013-12-10)
-
-    New major release. The goal is to streamline the API and to make it more
-    compliant with other promise libraries and especially with the new upcoming
-    [ES6 promises specification](https://github.com/domenic/promises-unwrapping/).
-
-    * Add standalone Promise class.
-    * Add new `race()` function.
-    * BC break: Bump minimum PHP version to PHP 5.4.
-    * BC break: Remove `ResolverInterface` and `PromiseInterface` from 
-      `Deferred`.
-    * BC break: Change signature of `PromiseInterface`.
-    * BC break: Remove `When` and `Util` classes and move static methods to
-      functions.
-    * BC break: `FulfilledPromise` and `RejectedPromise` now throw an exception
-      when initialized with a promise instead of a value/reason.
-    * BC break: `Deferred::resolve()` and `Deferred::reject()` no longer return
-      a promise.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/LICENSE b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/LICENSE
deleted file mode 100644
index 5919d20ff3fab238b917724cd73d4e8423fe7e62..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012-2016 Jan Sorgalla
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/README.md b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/README.md
deleted file mode 100644
index 9c0558c04d0942f435749d8af99647d196b32baa..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/README.md
+++ /dev/null
@@ -1,840 +0,0 @@
-React/Promise
-=============
-
-A lightweight implementation of
-[CommonJS Promises/A](http://wiki.commonjs.org/wiki/Promises/A) for PHP.
-
-[![Build Status](https://travis-ci.org/reactphp/promise.svg?branch=master)](http://travis-ci.org/reactphp/promise)
-[![Coverage Status](https://coveralls.io/repos/github/reactphp/promise/badge.svg?branch=master)](https://coveralls.io/github/reactphp/promise?branch=master)
-
-Table of Contents
------------------
-
-1. [Introduction](#introduction)
-2. [Concepts](#concepts)
-   * [Deferred](#deferred)
-   * [Promise](#promise)
-3. [API](#api)
-   * [Deferred](#deferred-1)
-     * [Deferred::promise()](#deferredpromise)
-     * [Deferred::resolve()](#deferredresolve)
-     * [Deferred::reject()](#deferredreject)
-     * [Deferred::notify()](#deferrednotify)
-   * [PromiseInterface](#promiseinterface)
-     * [PromiseInterface::then()](#promiseinterfacethen)
-   * [ExtendedPromiseInterface](#extendedpromiseinterface)
-        * [ExtendedPromiseInterface::done()](#extendedpromiseinterfacedone)
-        * [ExtendedPromiseInterface::otherwise()](#extendedpromiseinterfaceotherwise)
-        * [ExtendedPromiseInterface::always()](#extendedpromiseinterfacealways)
-        * [ExtendedPromiseInterface::progress()](#extendedpromiseinterfaceprogress)
-   * [CancellablePromiseInterface](#cancellablepromiseinterface)
-        * [CancellablePromiseInterface::cancel()](#cancellablepromiseinterfacecancel)
-   * [Promise](#promise-1)
-   * [FulfilledPromise](#fulfilledpromise)
-   * [RejectedPromise](#rejectedpromise)
-   * [LazyPromise](#lazypromise)
-   * [Functions](#functions)
-     * [resolve()](#resolve)
-     * [reject()](#reject)
-     * [all()](#all)
-     * [race()](#race)
-     * [any()](#any)
-     * [some()](#some)
-     * [map()](#map)
-     * [reduce()](#reduce)
-   * [PromisorInterface](#promisorinterface)
-4. [Examples](#examples)
-   * [How to use Deferred](#how-to-use-deferred)
-   * [How promise forwarding works](#how-promise-forwarding-works)
-     * [Resolution forwarding](#resolution-forwarding)
-     * [Rejection forwarding](#rejection-forwarding)
-     * [Mixed resolution and rejection forwarding](#mixed-resolution-and-rejection-forwarding)
-     * [Progress event forwarding](#progress-event-forwarding)
-   * [done() vs. then()](#done-vs-then)
-5. [Credits](#credits)
-6. [License](#license)
-
-Introduction
-------------
-
-React/Promise is a library implementing
-[CommonJS Promises/A](http://wiki.commonjs.org/wiki/Promises/A) for PHP.
-
-It also provides several other useful promise-related concepts, such as joining
-multiple promises and mapping and reducing collections of promises.
-
-If you've never heard about promises before,
-[read this first](https://gist.github.com/3889970).
-
-Concepts
---------
-
-### Deferred
-
-A **Deferred** represents a computation or unit of work that may not have
-completed yet. Typically (but not always), that computation will be something
-that executes asynchronously and completes at some point in the future.
-
-### Promise
-
-While a deferred represents the computation itself, a **Promise** represents
-the result of that computation. Thus, each deferred has a promise that acts as
-a placeholder for its actual result.
-
-API
----
-
-### Deferred
-
-A deferred represents an operation whose resolution is pending. It has separate
-promise and resolver parts.
-
-```php
-$deferred = new React\Promise\Deferred();
-
-$promise = $deferred->promise();
-
-$deferred->resolve(mixed $value = null);
-$deferred->reject(mixed $reason = null);
-$deferred->notify(mixed $update = null);
-```
-
-The `promise` method returns the promise of the deferred.
-
-The `resolve` and `reject` methods control the state of the deferred.
-
-The `notify` method is for progress notification.
-
-The constructor of the `Deferred` accepts an optional `$canceller` argument.
-See [Promise](#promise-1) for more information.
-
-#### Deferred::promise()
-
-```php
-$promise = $deferred->promise();
-```
-
-Returns the promise of the deferred, which you can hand out to others while
-keeping the authority to modify its state to yourself.
-
-#### Deferred::resolve()
-
-```php
-$deferred->resolve(mixed $value = null);
-```
-
-Resolves the promise returned by `promise()`. All consumers are notified by
-having `$onFulfilled` (which they registered via `$promise->then()`) called with
-`$value`.
-
-If `$value` itself is a promise, the promise will transition to the state of
-this promise once it is resolved.
-
-#### Deferred::reject()
-
-```php
-$deferred->reject(mixed $reason = null);
-```
-
-Rejects the promise returned by `promise()`, signalling that the deferred's
-computation failed.
-All consumers are notified by having `$onRejected` (which they registered via
-`$promise->then()`) called with `$reason`.
-
-If `$reason` itself is a promise, the promise will be rejected with the outcome
-of this promise regardless whether it fulfills or rejects.
-
-#### Deferred::notify()
-
-```php
-$deferred->notify(mixed $update = null);
-```
-
-Triggers progress notifications, to indicate to consumers that the computation
-is making progress toward its result.
-
-All consumers are notified by having `$onProgress` (which they registered via
-`$promise->then()`) called with `$update`.
-
-### PromiseInterface
-
-The promise interface provides the common interface for all promise
-implementations.
-
-A promise represents an eventual outcome, which is either fulfillment (success)
-and an associated value, or rejection (failure) and an associated reason.
-
-Once in the fulfilled or rejected state, a promise becomes immutable.
-Neither its state nor its result (or error) can be modified.
-
-#### Implementations
-
-* [Promise](#promise-1)
-* [FulfilledPromise](#fulfilledpromise)
-* [RejectedPromise](#rejectedpromise)
-* [LazyPromise](#lazypromise)
-
-#### PromiseInterface::then()
-
-```php
-$transformedPromise = $promise->then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null);
-```
-
-Transforms a promise's value by applying a function to the promise's fulfillment
-or rejection value. Returns a new promise for the transformed result.
-
-The `then()` method registers new fulfilled, rejection and progress handlers
-with a promise (all parameters are optional):
-
-  * `$onFulfilled` will be invoked once the promise is fulfilled and passed
-    the result as the first argument.
-  * `$onRejected` will be invoked once the promise is rejected and passed the
-    reason as the first argument.
-  * `$onProgress` will be invoked whenever the producer of the promise
-    triggers progress notifications and passed a single argument (whatever it
-    wants) to indicate progress.
-
-It returns a new promise that will fulfill with the return value of either
-`$onFulfilled` or `$onRejected`, whichever is called, or will reject with
-the thrown exception if either throws.
-
-A promise makes the following guarantees about handlers registered in
-the same call to `then()`:
-
-  1. Only one of `$onFulfilled` or `$onRejected` will be called,
-     never both.
-  2. `$onFulfilled` and `$onRejected` will never be called more
-     than once.
-  3. `$onProgress` may be called multiple times.
-
-#### See also
-
-* [resolve()](#resolve) - Creating a resolved promise
-* [reject()](#reject) - Creating a rejected promise
-* [ExtendedPromiseInterface::done()](#extendedpromiseinterfacedone)
-* [done() vs. then()](#done-vs-then)
-
-### ExtendedPromiseInterface
-
-The ExtendedPromiseInterface extends the PromiseInterface with useful shortcut
-and utility methods which are not part of the Promises/A specification.
-
-#### Implementations
-
-* [Promise](#promise-1)
-* [FulfilledPromise](#fulfilledpromise)
-* [RejectedPromise](#rejectedpromise)
-* [LazyPromise](#lazypromise)
-
-#### ExtendedPromiseInterface::done()
-
-```php
-$promise->done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null);
-```
-
-Consumes the promise's ultimate value if the promise fulfills, or handles the
-ultimate error.
-
-It will cause a fatal error if either `$onFulfilled` or `$onRejected` throw or
-return a rejected promise.
-
-Since the purpose of `done()` is consumption rather than transformation,
-`done()` always returns `null`.
-
-#### See also
-
-* [PromiseInterface::then()](#promiseinterfacethen)
-* [done() vs. then()](#done-vs-then)
-
-#### ExtendedPromiseInterface::otherwise()
-
-```php
-$promise->otherwise(callable $onRejected);
-```
-
-Registers a rejection handler for promise. It is a shortcut for:
-
-```php
-$promise->then(null, $onRejected);
-```
-
-Additionally, you can type hint the `$reason` argument of `$onRejected` to catch
-only specific errors.
-
-```php
-$promise
-    ->otherwise(function (\RuntimeException $reason) {
-        // Only catch \RuntimeException instances
-        // All other types of errors will propagate automatically
-    })
-    ->otherwise(function ($reason) {
-        // Catch other errors
-    )};
-```
-
-#### ExtendedPromiseInterface::always()
-
-```php
-$newPromise = $promise->always(callable $onFulfilledOrRejected);
-```
-
-Allows you to execute "cleanup" type tasks in a promise chain.
-
-It arranges for `$onFulfilledOrRejected` to be called, with no arguments,
-when the promise is either fulfilled or rejected.
-
-* If `$promise` fulfills, and `$onFulfilledOrRejected` returns successfully,
-  `$newPromise` will fulfill with the same value as `$promise`.
-* If `$promise` fulfills, and `$onFulfilledOrRejected` throws or returns a
-  rejected promise, `$newPromise` will reject with the thrown exception or
-  rejected promise's reason.
-* If `$promise` rejects, and `$onFulfilledOrRejected` returns successfully,
-  `$newPromise` will reject with the same reason as `$promise`.
-* If `$promise` rejects, and `$onFulfilledOrRejected` throws or returns a
-  rejected promise, `$newPromise` will reject with the thrown exception or
-  rejected promise's reason.
-
-`always()` behaves similarly to the synchronous finally statement. When combined
-with `otherwise()`, `always()` allows you to write code that is similar to the familiar
-synchronous catch/finally pair.
-
-Consider the following synchronous code:
-
-```php
-try {
-  return doSomething();
-} catch(\Exception $e) {
-    return handleError($e);
-} finally {
-    cleanup();
-}
-```
-
-Similar asynchronous code (with `doSomething()` that returns a promise) can be
-written:
-
-```php
-return doSomething()
-    ->otherwise('handleError')
-    ->always('cleanup');
-```
-
-#### ExtendedPromiseInterface::progress()
-
-```php
-$promise->progress(callable $onProgress);
-```
-
-Registers a handler for progress updates from promise. It is a shortcut for:
-
-```php
-$promise->then(null, null, $onProgress);
-```
-
-### CancellablePromiseInterface
-
-A cancellable promise provides a mechanism for consumers to notify the creator
-of the promise that they are not longer interested in the result of an
-operation.
-
-#### CancellablePromiseInterface::cancel()
-
-``` php
-$promise->cancel();
-```
-
-The `cancel()` method notifies the creator of the promise that there is no
-further interest in the results of the operation.
-
-Once a promise is settled (either fulfilled or rejected), calling `cancel()` on
-a promise has no effect.
-
-#### Implementations
-
-* [Promise](#promise-1)
-* [FulfilledPromise](#fulfilledpromise)
-* [RejectedPromise](#rejectedpromise)
-* [LazyPromise](#lazypromise)
-
-### Promise
-
-Creates a promise whose state is controlled by the functions passed to
-`$resolver`.
-
-```php
-$resolver = function (callable $resolve, callable $reject, callable $notify) {
-    // Do some work, possibly asynchronously, and then
-    // resolve or reject. You can notify of progress events
-    // along the way if you want/need.
-
-    $resolve($awesomeResult);
-    // or $resolve($anotherPromise);
-    // or $reject($nastyError);
-    // or $notify($progressNotification);
-};
-
-$canceller = function (callable $resolve, callable $reject, callable $progress) {
-    // Cancel/abort any running operations like network connections, streams etc.
-
-    $reject(new \Exception('Promise cancelled'));
-};
-
-$promise = new React\Promise\Promise($resolver, $canceller);
-```
-
-The promise constructor receives a resolver function and an optional canceller
-function which both will be called with 3 arguments:
-
-  * `$resolve($value)` - Primary function that seals the fate of the
-    returned promise. Accepts either a non-promise value, or another promise.
-    When called with a non-promise value, fulfills promise with that value.
-    When called with another promise, e.g. `$resolve($otherPromise)`, promise's
-    fate will be equivalent to that of `$otherPromise`.
-  * `$reject($reason)` - Function that rejects the promise.
-  * `$notify($update)` - Function that issues progress events for the promise.
-
-If the resolver or canceller throw an exception, the promise will be rejected
-with that thrown exception as the rejection reason.
-
-The resolver function will be called immediately, the canceller function only
-once all consumers called the `cancel()` method of the promise.
-
-### FulfilledPromise
-
-Creates a already fulfilled promise.
-
-```php
-$promise = React\Promise\FulfilledPromise($value);
-```
-
-Note, that `$value` **cannot** be a promise. It's recommended to use
-[resolve()](#resolve) for creating resolved promises.
-
-### RejectedPromise
-
-Creates a already rejected promise.
-
-```php
-$promise = React\Promise\RejectedPromise($reason);
-```
-
-Note, that `$reason` **cannot** be a promise. It's recommended to use
-[reject()](#reject) for creating rejected promises.
-
-### LazyPromise
-
-Creates a promise which will be lazily initialized by `$factory` once a consumer
-calls the `then()` method.
-
-```php
-$factory = function () {
-    $deferred = new React\Promise\Deferred();
-
-    // Do some heavy stuff here and resolve the deferred once completed
-
-    return $deferred->promise();
-};
-
-$promise = React\Promise\LazyPromise($factory);
-
-// $factory will only be executed once we call then()
-$promise->then(function ($value) {
-});
-```
-
-### Functions
-
-Useful functions for creating, joining, mapping and reducing collections of
-promises.
-
-All functions working on promise collections (like `all()`, `race()`, `some()`
-etc.) support cancellation. This means, if you call `cancel()` on the returned
-promise, all promises in the collection are cancelled. If the collection itself
-is a promise which resolves to an array, this promise is also cancelled.
-
-#### resolve()
-
-```php
-$promise = React\Promise\resolve(mixed $promiseOrValue);
-```
-
-Creates a promise for the supplied `$promiseOrValue`.
-
-If `$promiseOrValue` is a value, it will be the resolution value of the
-returned promise.
-
-If `$promiseOrValue` is a thenable (any object that provides a `then()` method),
-a trusted promise that follows the state of the thenable is returned.
-
-If `$promiseOrValue` is a promise, it will be returned as is.
-
-Note: The promise returned is always a promise implementing
-[ExtendedPromiseInterface](#extendedpromiseinterface). If you pass in a custom
-promise which only implements [PromiseInterface](#promiseinterface), this
-promise will be assimilated to a extended promise following `$promiseOrValue`.
-
-#### reject()
-
-```php
-$promise = React\Promise\reject(mixed $promiseOrValue);
-```
-
-Creates a rejected promise for the supplied `$promiseOrValue`.
-
-If `$promiseOrValue` is a value, it will be the rejection value of the
-returned promise.
-
-If `$promiseOrValue` is a promise, its completion value will be the rejected
-value of the returned promise.
-
-This can be useful in situations where you need to reject a promise without
-throwing an exception. For example, it allows you to propagate a rejection with
-the value of another promise.
-
-#### all()
-
-```php
-$promise = React\Promise\all(array|React\Promise\PromiseInterface $promisesOrValues);
-```
-
-Returns a promise that will resolve only once all the items in
-`$promisesOrValues` have resolved. The resolution value of the returned promise
-will be an array containing the resolution values of each of the items in
-`$promisesOrValues`.
-
-#### race()
-
-```php
-$promise = React\Promise\race(array|React\Promise\PromiseInterface $promisesOrValues);
-```
-
-Initiates a competitive race that allows one winner. Returns a promise which is
-resolved in the same way the first settled promise resolves.
-
-#### any()
-
-```php
-$promise = React\Promise\any(array|React\Promise\PromiseInterface $promisesOrValues);
-```
-
-Returns a promise that will resolve when any one of the items in
-`$promisesOrValues` resolves. The resolution value of the returned promise
-will be the resolution value of the triggering item.
-
-The returned promise will only reject if *all* items in `$promisesOrValues` are
-rejected. The rejection value will be an array of all rejection reasons.
-
-The returned promise will also reject with a `React\Promise\Exception\LengthException`
-if `$promisesOrValues` contains 0 items.
-
-#### some()
-
-```php
-$promise = React\Promise\some(array|React\Promise\PromiseInterface $promisesOrValues, integer $howMany);
-```
-
-Returns a promise that will resolve when `$howMany` of the supplied items in
-`$promisesOrValues` resolve. The resolution value of the returned promise
-will be an array of length `$howMany` containing the resolution values of the
-triggering items.
-
-The returned promise will reject if it becomes impossible for `$howMany` items
-to resolve (that is, when `(count($promisesOrValues) - $howMany) + 1` items
-reject). The rejection value will be an array of
-`(count($promisesOrValues) - $howMany) + 1` rejection reasons.
-
-The returned promise will also reject with a `React\Promise\Exception\LengthException`
-if `$promisesOrValues` contains less items than `$howMany`.
-
-#### map()
-
-```php
-$promise = React\Promise\map(array|React\Promise\PromiseInterface $promisesOrValues, callable $mapFunc);
-```
-
-Traditional map function, similar to `array_map()`, but allows input to contain
-promises and/or values, and `$mapFunc` may return either a value or a promise.
-
-The map function receives each item as argument, where item is a fully resolved
-value of a promise or value in `$promisesOrValues`.
-
-#### reduce()
-
-```php
-$promise = React\Promise\reduce(array|React\Promise\PromiseInterface $promisesOrValues, callable $reduceFunc , $initialValue = null);
-```
-
-Traditional reduce function, similar to `array_reduce()`, but input may contain
-promises and/or values, and `$reduceFunc` may return either a value or a
-promise, *and* `$initialValue` may be a promise or a value for the starting
-value.
-
-### PromisorInterface
-
-The `React\Promise\PromisorInterface` provides a common interface for objects
-that provide a promise. `React\Promise\Deferred` implements it, but since it
-is part of the public API anyone can implement it.
-
-Examples
---------
-
-### How to use Deferred
-
-```php
-function getAwesomeResultPromise()
-{
-    $deferred = new React\Promise\Deferred();
-
-    // Execute a Node.js-style function using the callback pattern
-    computeAwesomeResultAsynchronously(function ($error, $result) use ($deferred) {
-        if ($error) {
-            $deferred->reject($error);
-        } else {
-            $deferred->resolve($result);
-        }
-    });
-
-    // Return the promise
-    return $deferred->promise();
-}
-
-getAwesomeResultPromise()
-    ->then(
-        function ($value) {
-            // Deferred resolved, do something with $value
-        },
-        function ($reason) {
-            // Deferred rejected, do something with $reason
-        },
-        function ($update) {
-            // Progress notification triggered, do something with $update
-        }
-    );
-```
-
-### How promise forwarding works
-
-A few simple examples to show how the mechanics of Promises/A forwarding works.
-These examples are contrived, of course, and in real usage, promise chains will
-typically be spread across several function calls, or even several levels of
-your application architecture.
-
-#### Resolution forwarding
-
-Resolved promises forward resolution values to the next promise.
-The first promise, `$deferred->promise()`, will resolve with the value passed
-to `$deferred->resolve()` below.
-
-Each call to `then()` returns a new promise that will resolve with the return
-value of the previous handler. This creates a promise "pipeline".
-
-```php
-$deferred = new React\Promise\Deferred();
-
-$deferred->promise()
-    ->then(function ($x) {
-        // $x will be the value passed to $deferred->resolve() below
-        // and returns a *new promise* for $x + 1
-        return $x + 1;
-    })
-    ->then(function ($x) {
-        // $x === 2
-        // This handler receives the return value of the
-        // previous handler.
-        return $x + 1;
-    })
-    ->then(function ($x) {
-        // $x === 3
-        // This handler receives the return value of the
-        // previous handler.
-        return $x + 1;
-    })
-    ->then(function ($x) {
-        // $x === 4
-        // This handler receives the return value of the
-        // previous handler.
-        echo 'Resolve ' . $x;
-    });
-
-$deferred->resolve(1); // Prints "Resolve 4"
-```
-
-#### Rejection forwarding
-
-Rejected promises behave similarly, and also work similarly to try/catch:
-When you catch an exception, you must rethrow for it to propagate.
-
-Similarly, when you handle a rejected promise, to propagate the rejection,
-"rethrow" it by either returning a rejected promise, or actually throwing
-(since promise translates thrown exceptions into rejections)
-
-```php
-$deferred = new React\Promise\Deferred();
-
-$deferred->promise()
-    ->then(function ($x) {
-        throw new \Exception($x + 1);
-    })
-    ->otherwise(function (\Exception $x) {
-        // Propagate the rejection
-        throw $x;
-    })
-    ->otherwise(function (\Exception $x) {
-        // Can also propagate by returning another rejection
-        return React\Promise\reject(
-            new \Exception($x->getMessage() + 1)
-        );
-    })
-    ->otherwise(function ($x) {
-        echo 'Reject ' . $x->getMessage(); // 3
-    });
-
-$deferred->resolve(1);  // Prints "Reject 3"
-```
-
-#### Mixed resolution and rejection forwarding
-
-Just like try/catch, you can choose to propagate or not. Mixing resolutions and
-rejections will still forward handler results in a predictable way.
-
-```php
-$deferred = new React\Promise\Deferred();
-
-$deferred->promise()
-    ->then(function ($x) {
-        return $x + 1;
-    })
-    ->then(function ($x) {
-        throw new \Exception($x + 1);
-    })
-    ->otherwise(function (\Exception $x) {
-        // Handle the rejection, and don't propagate.
-        // This is like catch without a rethrow
-        return $x->getMessage() + 1;
-    })
-    ->then(function ($x) {
-        echo 'Mixed ' . $x; // 4
-    });
-
-$deferred->resolve(1);  // Prints "Mixed 4"
-```
-
-#### Progress event forwarding
-
-In the same way as resolution and rejection handlers, your progress handler
-**MUST** return a progress event to be propagated to the next link in the chain.
-If you return nothing, `null` will be propagated.
-
-Also in the same way as resolutions and rejections, if you don't register a
-progress handler, the update will be propagated through.
-
-If your progress handler throws an exception, the exception will be propagated
-to the next link in the chain. The best thing to do is to ensure your progress
-handlers do not throw exceptions.
-
-This gives you the opportunity to transform progress events at each step in the
-chain so that they are meaningful to the next step. It also allows you to choose
-not to transform them, and simply let them propagate untransformed, by not
-registering a progress handler.
-
-```php
-$deferred = new React\Promise\Deferred();
-
-$deferred->promise()
-    ->progress(function ($update) {
-        return $update + 1;
-    })
-    ->progress(function ($update) {
-        echo 'Progress ' . $update; // 2
-    });
-
-$deferred->notify(1);  // Prints "Progress 2"
-```
-
-### done() vs. then()
-
-The golden rule is:
-
-    Either return your promise, or call done() on it.
-
-At a first glance, `then()` and `done()` seem very similar. However, there are
-important distinctions.
-
-The intent of `then()` is to transform a promise's value and to pass or return
-a new promise for the transformed value along to other parts of your code.
-
-The intent of `done()` is to consume a promise's value, transferring
-responsibility for the value to your code.
-
-In addition to transforming a value, `then()` allows you to recover from, or
-propagate intermediate errors. Any errors that are not handled will be caught
-by the promise machinery and used to reject the promise returned by `then()`.
-
-Calling `done()` transfers all responsibility for errors to your code. If an
-error (either a thrown exception or returned rejection) escapes the
-`$onFulfilled` or `$onRejected` callbacks you provide to done, it will be
-rethrown in an uncatchable way causing a fatal error.
-
-```php
-function getJsonResult()
-{
-    return queryApi()
-        ->then(
-            // Transform API results to an object
-            function ($jsonResultString) {
-                return json_decode($jsonResultString);
-            },
-            // Transform API errors to an exception
-            function ($jsonErrorString) {
-                $object = json_decode($jsonErrorString);
-                throw new ApiErrorException($object->errorMessage);
-            }
-        );
-}
-
-// Here we provide no rejection handler. If the promise returned has been
-// rejected, the ApiErrorException will be thrown
-getJsonResult()
-    ->done(
-        // Consume transformed object
-        function ($jsonResultObject) {
-            // Do something with $jsonResultObject
-        }
-    );
-
-// Here we provide a rejection handler which will either throw while debugging
-// or log the exception
-getJsonResult()
-    ->done(
-        function ($jsonResultObject) {
-            // Do something with $jsonResultObject
-        },
-        function (ApiErrorException $exception) {
-            if (isDebug()) {
-                throw $exception;
-            } else {
-                logException($exception);
-            }
-        }
-    );
-```
-
-Note that if a rejection value is not an instance of `\Exception`, it will be
-wrapped in an exception of the type `React\Promise\UnhandledRejectionException`.
-
-You can get the original rejection reason by calling `$exception->getReason()`.
-
-Credits
--------
-
-React/Promise is a port of [when.js](https://github.com/cujojs/when)
-by [Brian Cavalier](https://github.com/briancavalier).
-
-Also, large parts of the documentation have been ported from the when.js
-[Wiki](https://github.com/cujojs/when/wiki) and the
-[API docs](https://github.com/cujojs/when/blob/master/docs/api.md).
-
-License
--------
-
-React/Promise is released under the [MIT](https://github.com/reactphp/promise/blob/master/LICENSE) license.
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/composer.json b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/composer.json
deleted file mode 100644
index 7cf1750f246702d2813d2b50951736772eb5bc87..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name": "react/promise",
-    "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-    "license": "MIT",
-    "authors": [
-        {"name": "Jan Sorgalla", "email": "jsorgalla@gmail.com"}
-    ],
-    "require": {
-        "php": ">=5.4.0"
-    },
-    "autoload": {
-        "psr-4": {
-            "React\\Promise\\": "src/"
-        },
-        "files": ["src/functions_include.php"]
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "React\\Promise\\": "tests/fixtures"
-        }
-    },
-    "keywords": [
-        "promise",
-        "promises"
-    ]
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/phpunit.xml.dist b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/phpunit.xml.dist
deleted file mode 100644
index b9a689d74f8361a468e3c29fecf98d648f0c41ff..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/phpunit.xml.dist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false"
-         syntaxCheck="false"
-         bootstrap="tests/bootstrap.php"
->
-    <testsuites>
-        <testsuite name="Promise Test Suite">
-            <directory>./tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src/</directory>
-            <exclude>
-                <file>./src/functions_include.php</file>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellablePromiseInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellablePromiseInterface.php
deleted file mode 100644
index 896db2d372a5f99cd5c4fae90ebe39516e969f30..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellablePromiseInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-interface CancellablePromiseInterface extends PromiseInterface
-{
-    /**
-     * @return void
-     */
-    public function cancel();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellationQueue.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellationQueue.php
deleted file mode 100644
index a366994d98cfece881bce81ab429f67e00bff9ba..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/CancellationQueue.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class CancellationQueue
-{
-    private $started = false;
-    private $queue = [];
-
-    public function __invoke()
-    {
-        if ($this->started) {
-            return;
-        }
-
-        $this->started = true;
-        $this->drain();
-    }
-
-    public function enqueue($cancellable)
-    {
-        if (!method_exists($cancellable, 'then') || !method_exists($cancellable, 'cancel')) {
-            return;
-        }
-
-        $length = array_push($this->queue, $cancellable);
-
-        if ($this->started && 1 === $length) {
-            $this->drain();
-        }
-    }
-
-    private function drain()
-    {
-        for ($i = key($this->queue); isset($this->queue[$i]); $i++) {
-            $cancellable = $this->queue[$i];
-
-            $exception = null;
-
-            try {
-                $cancellable->cancel();
-            } catch (\Throwable $exception) {
-            } catch (\Exception $exception) {
-            }
-
-            unset($this->queue[$i]);
-
-            if ($exception) {
-                throw $exception;
-            }
-        }
-
-        $this->queue = [];
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Deferred.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Deferred.php
deleted file mode 100644
index f23980c31184ba084b1b48375c0f6c35cd2f927b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Deferred.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class Deferred implements PromisorInterface
-{
-    private $promise;
-    private $resolveCallback;
-    private $rejectCallback;
-    private $notifyCallback;
-    private $canceller;
-
-    public function __construct(callable $canceller = null)
-    {
-        $this->canceller = $canceller;
-    }
-
-    public function promise()
-    {
-        if (null === $this->promise) {
-            $this->promise = new Promise(function ($resolve, $reject, $notify) {
-                $this->resolveCallback = $resolve;
-                $this->rejectCallback  = $reject;
-                $this->notifyCallback  = $notify;
-            }, $this->canceller);
-        }
-
-        return $this->promise;
-    }
-
-    public function resolve($value = null)
-    {
-        $this->promise();
-
-        call_user_func($this->resolveCallback, $value);
-    }
-
-    public function reject($reason = null)
-    {
-        $this->promise();
-
-        call_user_func($this->rejectCallback, $reason);
-    }
-
-    public function notify($update = null)
-    {
-        $this->promise();
-
-        call_user_func($this->notifyCallback, $update);
-    }
-
-    /**
-     * @deprecated 2.2.0
-     * @see Deferred::notify()
-     */
-    public function progress($update = null)
-    {
-        $this->notify($update);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Exception/LengthException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Exception/LengthException.php
deleted file mode 100644
index 775c48db6a9974038092e035e0827ca5fcbb7a1f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Exception/LengthException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace React\Promise\Exception;
-
-class LengthException extends \LengthException
-{
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/ExtendedPromiseInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/ExtendedPromiseInterface.php
deleted file mode 100644
index 9cb6435987525754edab701518767203ba1ad559..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/ExtendedPromiseInterface.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-interface ExtendedPromiseInterface extends PromiseInterface
-{
-    /**
-     * @return void
-     */
-    public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null);
-
-    /**
-     * @return ExtendedPromiseInterface
-     */
-    public function otherwise(callable $onRejected);
-
-    /**
-     * @return ExtendedPromiseInterface
-     */
-    public function always(callable $onFulfilledOrRejected);
-
-    /**
-     * @return ExtendedPromiseInterface
-     */
-    public function progress(callable $onProgress);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/FulfilledPromise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/FulfilledPromise.php
deleted file mode 100644
index 914bb5c15abf5645b9963a4617602eae3d795a75..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/FulfilledPromise.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FulfilledPromise implements ExtendedPromiseInterface, CancellablePromiseInterface
-{
-    private $value;
-
-    public function __construct($value = null)
-    {
-        if ($value instanceof PromiseInterface) {
-            throw new \InvalidArgumentException('You cannot create React\Promise\FulfilledPromise with a promise. Use React\Promise\resolve($promiseOrValue) instead.');
-        }
-
-        $this->value = $value;
-    }
-
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null === $onFulfilled) {
-            return $this;
-        }
-
-        try {
-            return resolve($onFulfilled($this->value));
-        } catch (\Throwable $exception) {
-            return new RejectedPromise($exception);
-        } catch (\Exception $exception) {
-            return new RejectedPromise($exception);
-        }
-    }
-
-    public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null === $onFulfilled) {
-            return;
-        }
-
-        $result = $onFulfilled($this->value);
-
-        if ($result instanceof ExtendedPromiseInterface) {
-            $result->done();
-        }
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this;
-    }
-
-    public function always(callable $onFulfilledOrRejected)
-    {
-        return $this->then(function ($value) use ($onFulfilledOrRejected) {
-            return resolve($onFulfilledOrRejected())->then(function () use ($value) {
-                return $value;
-            });
-        });
-    }
-
-    public function progress(callable $onProgress)
-    {
-        return $this;
-    }
-
-    public function cancel()
-    {
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/LazyPromise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/LazyPromise.php
deleted file mode 100644
index 7e3a3d3dd003dac853b5d5c14b9c643f9821e35e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/LazyPromise.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class LazyPromise implements ExtendedPromiseInterface, CancellablePromiseInterface
-{
-    private $factory;
-    private $promise;
-
-    public function __construct(callable $factory)
-    {
-        $this->factory = $factory;
-    }
-
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        return $this->promise()->then($onFulfilled, $onRejected, $onProgress);
-    }
-
-    public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        return $this->promise()->done($onFulfilled, $onRejected, $onProgress);
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->promise()->otherwise($onRejected);
-    }
-
-    public function always(callable $onFulfilledOrRejected)
-    {
-        return $this->promise()->always($onFulfilledOrRejected);
-    }
-
-    public function progress(callable $onProgress)
-    {
-        return $this->promise()->progress($onProgress);
-    }
-
-    public function cancel()
-    {
-        return $this->promise()->cancel();
-    }
-
-    /**
-     * @internal
-     * @see Promise::settle()
-     */
-    public function promise()
-    {
-        if (null === $this->promise) {
-            try {
-                $this->promise = resolve(call_user_func($this->factory));
-            } catch (\Throwable $exception) {
-                $this->promise = new RejectedPromise($exception);
-            } catch (\Exception $exception) {
-                $this->promise = new RejectedPromise($exception);
-            }
-        }
-
-        return $this->promise;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Promise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Promise.php
deleted file mode 100644
index c8a3f7d6101a3d3fcb1b8dff3e92a23f9b285d55..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/Promise.php
+++ /dev/null
@@ -1,207 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class Promise implements ExtendedPromiseInterface, CancellablePromiseInterface
-{
-    private $canceller;
-    private $result;
-
-    private $handlers = [];
-    private $progressHandlers = [];
-
-    private $requiredCancelRequests = 0;
-    private $cancelRequests = 0;
-
-    public function __construct(callable $resolver, callable $canceller = null)
-    {
-        $this->canceller = $canceller;
-        $this->call($resolver);
-    }
-
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null !== $this->result) {
-            return $this->result()->then($onFulfilled, $onRejected, $onProgress);
-        }
-
-        if (null === $this->canceller) {
-            return new static($this->resolver($onFulfilled, $onRejected, $onProgress));
-        }
-
-        $this->requiredCancelRequests++;
-
-        return new static($this->resolver($onFulfilled, $onRejected, $onProgress), function () {
-            if (++$this->cancelRequests < $this->requiredCancelRequests) {
-                return;
-            }
-
-            $this->cancel();
-        });
-    }
-
-    public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null !== $this->result) {
-            return $this->result()->done($onFulfilled, $onRejected, $onProgress);
-        }
-
-        $this->handlers[] = function (ExtendedPromiseInterface $promise) use ($onFulfilled, $onRejected) {
-            $promise
-                ->done($onFulfilled, $onRejected);
-        };
-
-        if ($onProgress) {
-            $this->progressHandlers[] = $onProgress;
-        }
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        return $this->then(null, function ($reason) use ($onRejected) {
-            if (!_checkTypehint($onRejected, $reason)) {
-                return new RejectedPromise($reason);
-            }
-
-            return $onRejected($reason);
-        });
-    }
-
-    public function always(callable $onFulfilledOrRejected)
-    {
-        return $this->then(function ($value) use ($onFulfilledOrRejected) {
-            return resolve($onFulfilledOrRejected())->then(function () use ($value) {
-                return $value;
-            });
-        }, function ($reason) use ($onFulfilledOrRejected) {
-            return resolve($onFulfilledOrRejected())->then(function () use ($reason) {
-                return new RejectedPromise($reason);
-            });
-        });
-    }
-
-    public function progress(callable $onProgress)
-    {
-        return $this->then(null, null, $onProgress);
-    }
-
-    public function cancel()
-    {
-        if (null === $this->canceller || null !== $this->result) {
-            return;
-        }
-
-        $canceller = $this->canceller;
-        $this->canceller = null;
-
-        $this->call($canceller);
-    }
-
-    private function resolver(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        return function ($resolve, $reject, $notify) use ($onFulfilled, $onRejected, $onProgress) {
-            if ($onProgress) {
-                $progressHandler = function ($update) use ($notify, $onProgress) {
-                    try {
-                        $notify($onProgress($update));
-                    } catch (\Throwable $e) {
-                        $notify($e);
-                    } catch (\Exception $e) {
-                        $notify($e);
-                    }
-                };
-            } else {
-                $progressHandler = $notify;
-            }
-
-            $this->handlers[] = function (ExtendedPromiseInterface $promise) use ($onFulfilled, $onRejected, $resolve, $reject, $progressHandler) {
-                $promise
-                    ->then($onFulfilled, $onRejected)
-                    ->done($resolve, $reject, $progressHandler);
-            };
-
-            $this->progressHandlers[] = $progressHandler;
-        };
-    }
-
-    private function resolve($value = null)
-    {
-        if (null !== $this->result) {
-            return;
-        }
-
-        $this->settle(resolve($value));
-    }
-
-    private function reject($reason = null)
-    {
-        if (null !== $this->result) {
-            return;
-        }
-
-        $this->settle(reject($reason));
-    }
-
-    private function notify($update = null)
-    {
-        if (null !== $this->result) {
-            return;
-        }
-
-        foreach ($this->progressHandlers as $handler) {
-            $handler($update);
-        }
-    }
-
-    private function settle(ExtendedPromiseInterface $promise)
-    {
-        if ($promise instanceof LazyPromise) {
-            $promise = $promise->promise();
-        }
-
-        if ($promise === $this) {
-            $promise = new RejectedPromise(
-                new \LogicException('Cannot resolve a promise with itself.')
-            );
-        }
-
-        $handlers = $this->handlers;
-
-        $this->progressHandlers = $this->handlers = [];
-        $this->result = $promise;
-
-        foreach ($handlers as $handler) {
-            $handler($promise);
-        }
-    }
-
-    private function result()
-    {
-        while ($this->result instanceof self && null !== $this->result->result) {
-            $this->result = $this->result->result;
-        }
-
-        return $this->result;
-    }
-
-    private function call(callable $callback)
-    {
-        try {
-            $callback(
-                function ($value = null) {
-                    $this->resolve($value);
-                },
-                function ($reason = null) {
-                    $this->reject($reason);
-                },
-                function ($update = null) {
-                    $this->notify($update);
-                }
-            );
-        } catch (\Throwable $e) {
-            $this->reject($e);
-        } catch (\Exception $e) {
-            $this->reject($e);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromiseInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromiseInterface.php
deleted file mode 100644
index d80d11421ad1f60c4e05002288a07b91f6312b27..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromiseInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-interface PromiseInterface
-{
-    /**
-     * @return PromiseInterface
-     */
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromisorInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromisorInterface.php
deleted file mode 100644
index 9341a4fa83cd840f7baa12a36987aa6ade856e88..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/PromisorInterface.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-interface PromisorInterface
-{
-    /**
-     * @return PromiseInterface
-     */
-    public function promise();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/RejectedPromise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/RejectedPromise.php
deleted file mode 100644
index 479a746b342f01218cb7421767bc53013e4a7ebb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/RejectedPromise.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class RejectedPromise implements ExtendedPromiseInterface, CancellablePromiseInterface
-{
-    private $reason;
-
-    public function __construct($reason = null)
-    {
-        if ($reason instanceof PromiseInterface) {
-            throw new \InvalidArgumentException('You cannot create React\Promise\RejectedPromise with a promise. Use React\Promise\reject($promiseOrValue) instead.');
-        }
-
-        $this->reason = $reason;
-    }
-
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null === $onRejected) {
-            return $this;
-        }
-
-        try {
-            return resolve($onRejected($this->reason));
-        } catch (\Throwable $exception) {
-            return new RejectedPromise($exception);
-        } catch (\Exception $exception) {
-            return new RejectedPromise($exception);
-        }
-    }
-
-    public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        if (null === $onRejected) {
-            throw UnhandledRejectionException::resolve($this->reason);
-        }
-
-        $result = $onRejected($this->reason);
-
-        if ($result instanceof self) {
-            throw UnhandledRejectionException::resolve($result->reason);
-        }
-
-        if ($result instanceof ExtendedPromiseInterface) {
-            $result->done();
-        }
-    }
-
-    public function otherwise(callable $onRejected)
-    {
-        if (!_checkTypehint($onRejected, $this->reason)) {
-            return $this;
-        }
-
-        return $this->then(null, $onRejected);
-    }
-
-    public function always(callable $onFulfilledOrRejected)
-    {
-        return $this->then(null, function ($reason) use ($onFulfilledOrRejected) {
-            return resolve($onFulfilledOrRejected())->then(function () use ($reason) {
-                return new RejectedPromise($reason);
-            });
-        });
-    }
-
-    public function progress(callable $onProgress)
-    {
-        return $this;
-    }
-
-    public function cancel()
-    {
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/UnhandledRejectionException.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/UnhandledRejectionException.php
deleted file mode 100644
index a44b7a1bffc05ad5f7ceba03bb80826aaf4f7edd..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/UnhandledRejectionException.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class UnhandledRejectionException extends \RuntimeException
-{
-    private $reason;
-
-    public static function resolve($reason)
-    {
-        if ($reason instanceof \Exception || $reason instanceof \Throwable) {
-            return $reason;
-        }
-
-        return new static($reason);
-    }
-
-    public function __construct($reason)
-    {
-        $this->reason = $reason;
-
-        $message = sprintf('Unhandled Rejection: %s', json_encode($reason));
-
-        parent::__construct($message, 0);
-    }
-
-    public function getReason()
-    {
-        return $this->reason;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions.php
deleted file mode 100644
index 70c0eb72f9e52d39dfa5a82acbd912367bdf3f53..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions.php
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-function resolve($promiseOrValue = null)
-{
-    if ($promiseOrValue instanceof ExtendedPromiseInterface) {
-        return $promiseOrValue;
-    }
-
-    if (method_exists($promiseOrValue, 'then')) {
-        $canceller = null;
-
-        if (method_exists($promiseOrValue, 'cancel')) {
-            $canceller = [$promiseOrValue, 'cancel'];
-        }
-
-        return new Promise(function ($resolve, $reject, $notify) use ($promiseOrValue) {
-            $promiseOrValue->then($resolve, $reject, $notify);
-        }, $canceller);
-    }
-
-    return new FulfilledPromise($promiseOrValue);
-}
-
-function reject($promiseOrValue = null)
-{
-    if ($promiseOrValue instanceof PromiseInterface) {
-        return resolve($promiseOrValue)->then(function ($value) {
-            return new RejectedPromise($value);
-        });
-    }
-
-    return new RejectedPromise($promiseOrValue);
-}
-
-function all($promisesOrValues)
-{
-    return map($promisesOrValues, function ($val) {
-        return $val;
-    });
-}
-
-function race($promisesOrValues)
-{
-    $cancellationQueue = new CancellationQueue();
-    $cancellationQueue->enqueue($promisesOrValues);
-
-    return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $cancellationQueue) {
-        resolve($promisesOrValues)
-            ->done(function ($array) use ($cancellationQueue, $resolve, $reject, $notify) {
-                if (!is_array($array) || !$array) {
-                    $resolve();
-                    return;
-                }
-
-                foreach ($array as $promiseOrValue) {
-                    $cancellationQueue->enqueue($promiseOrValue);
-
-                    resolve($promiseOrValue)
-                        ->done($resolve, $reject, $notify);
-                }
-            }, $reject, $notify);
-    }, $cancellationQueue);
-}
-
-function any($promisesOrValues)
-{
-    return some($promisesOrValues, 1)
-        ->then(function ($val) {
-            return array_shift($val);
-        });
-}
-
-function some($promisesOrValues, $howMany)
-{
-    $cancellationQueue = new CancellationQueue();
-    $cancellationQueue->enqueue($promisesOrValues);
-
-    return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $howMany, $cancellationQueue) {
-        resolve($promisesOrValues)
-            ->done(function ($array) use ($howMany, $cancellationQueue, $resolve, $reject, $notify) {
-                if (!is_array($array) || $howMany < 1) {
-                    $resolve([]);
-                    return;
-                }
-
-                $len = count($array);
-
-                if ($len < $howMany) {
-                    throw new Exception\LengthException(
-                        sprintf(
-                            'Input array must contain at least %d item%s but contains only %s item%s.',
-                            $howMany,
-                            1 === $howMany ? '' : 's',
-                            $len,
-                            1 === $len ? '' : 's'
-                        )
-                    );
-                }
-
-                $toResolve = $howMany;
-                $toReject  = ($len - $toResolve) + 1;
-                $values    = [];
-                $reasons   = [];
-
-                foreach ($array as $i => $promiseOrValue) {
-                    $fulfiller = function ($val) use ($i, &$values, &$toResolve, $toReject, $resolve) {
-                        if ($toResolve < 1 || $toReject < 1) {
-                            return;
-                        }
-
-                        $values[$i] = $val;
-
-                        if (0 === --$toResolve) {
-                            $resolve($values);
-                        }
-                    };
-
-                    $rejecter = function ($reason) use ($i, &$reasons, &$toReject, $toResolve, $reject) {
-                        if ($toResolve < 1 || $toReject < 1) {
-                            return;
-                        }
-
-                        $reasons[$i] = $reason;
-
-                        if (0 === --$toReject) {
-                            $reject($reasons);
-                        }
-                    };
-
-                    $cancellationQueue->enqueue($promiseOrValue);
-
-                    resolve($promiseOrValue)
-                        ->done($fulfiller, $rejecter, $notify);
-                }
-            }, $reject, $notify);
-    }, $cancellationQueue);
-}
-
-function map($promisesOrValues, callable $mapFunc)
-{
-    $cancellationQueue = new CancellationQueue();
-    $cancellationQueue->enqueue($promisesOrValues);
-
-    return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $mapFunc, $cancellationQueue) {
-        resolve($promisesOrValues)
-            ->done(function ($array) use ($mapFunc, $cancellationQueue, $resolve, $reject, $notify) {
-                if (!is_array($array) || !$array) {
-                    $resolve([]);
-                    return;
-                }
-
-                $toResolve = count($array);
-                $values    = [];
-
-                foreach ($array as $i => $promiseOrValue) {
-                    $cancellationQueue->enqueue($promiseOrValue);
-                    $values[$i] = null;
-
-                    resolve($promiseOrValue)
-                        ->then($mapFunc)
-                        ->done(
-                            function ($mapped) use ($i, &$values, &$toResolve, $resolve) {
-                                $values[$i] = $mapped;
-
-                                if (0 === --$toResolve) {
-                                    $resolve($values);
-                                }
-                            },
-                            $reject,
-                            $notify
-                        );
-                }
-            }, $reject, $notify);
-    }, $cancellationQueue);
-}
-
-function reduce($promisesOrValues, callable $reduceFunc, $initialValue = null)
-{
-    $cancellationQueue = new CancellationQueue();
-    $cancellationQueue->enqueue($promisesOrValues);
-
-    return new Promise(function ($resolve, $reject, $notify) use ($promisesOrValues, $reduceFunc, $initialValue, $cancellationQueue) {
-        resolve($promisesOrValues)
-            ->done(function ($array) use ($reduceFunc, $initialValue, $cancellationQueue, $resolve, $reject, $notify) {
-                if (!is_array($array)) {
-                    $array = [];
-                }
-
-                $total = count($array);
-                $i = 0;
-
-                // Wrap the supplied $reduceFunc with one that handles promises and then
-                // delegates to the supplied.
-                $wrappedReduceFunc = function ($current, $val) use ($reduceFunc, $cancellationQueue, $total, &$i) {
-                    $cancellationQueue->enqueue($val);
-
-                    return $current
-                        ->then(function ($c) use ($reduceFunc, $total, &$i, $val) {
-                            return resolve($val)
-                                ->then(function ($value) use ($reduceFunc, $total, &$i, $c) {
-                                    return $reduceFunc($c, $value, $i++, $total);
-                                });
-                        });
-                };
-
-                $cancellationQueue->enqueue($initialValue);
-
-                array_reduce($array, $wrappedReduceFunc, resolve($initialValue))
-                    ->done($resolve, $reject, $notify);
-            }, $reject, $notify);
-    }, $cancellationQueue);
-}
-
-// Internal functions
-function _checkTypehint(callable $callback, $object)
-{
-    if (!is_object($object)) {
-        return true;
-    }
-
-    if (is_array($callback)) {
-        $callbackReflection = new \ReflectionMethod($callback[0], $callback[1]);
-    } elseif (is_object($callback) && !$callback instanceof \Closure) {
-        $callbackReflection = new \ReflectionMethod($callback, '__invoke');
-    } else {
-        $callbackReflection = new \ReflectionFunction($callback);
-    }
-
-    $parameters = $callbackReflection->getParameters();
-
-    if (!isset($parameters[0])) {
-        return true;
-    }
-
-    $expectedException = $parameters[0];
-
-    if (!$expectedException->getClass()) {
-        return true;
-    }
-
-    return $expectedException->getClass()->isInstance($object);
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions_include.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions_include.php
deleted file mode 100644
index c71decbf9895632b5c8fbc457857c2bd185a1fb1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/src/functions_include.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-if (!function_exists('React\Promise\resolve')) {
-    require __DIR__.'/functions.php';
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/CancellationQueueTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/CancellationQueueTest.php
deleted file mode 100644
index 32cedf475d4edd55e0ff08cc27d20aefc9299ef2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/CancellationQueueTest.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class CancellationQueueTest extends TestCase
-{
-    /** @test */
-    public function acceptsSimpleCancellableThenable()
-    {
-        $p = new SimpleTestCancellableThenable();
-
-        $cancellationQueue = new CancellationQueue();
-        $cancellationQueue->enqueue($p);
-
-        $cancellationQueue();
-
-        $this->assertTrue($p->cancelCalled);
-    }
-
-    /** @test */
-    public function ignoresSimpleCancellable()
-    {
-        $p = new SimpleTestCancellable();
-
-        $cancellationQueue = new CancellationQueue();
-        $cancellationQueue->enqueue($p);
-
-        $cancellationQueue();
-
-        $this->assertFalse($p->cancelCalled);
-    }
-
-    /** @test */
-    public function callsCancelOnPromisesEnqueuedBeforeStart()
-    {
-        $d1 = $this->getCancellableDeferred();
-        $d2 = $this->getCancellableDeferred();
-
-        $cancellationQueue = new CancellationQueue();
-        $cancellationQueue->enqueue($d1->promise());
-        $cancellationQueue->enqueue($d2->promise());
-
-        $cancellationQueue();
-    }
-
-    /** @test */
-    public function callsCancelOnPromisesEnqueuedAfterStart()
-    {
-        $d1 = $this->getCancellableDeferred();
-        $d2 = $this->getCancellableDeferred();
-
-        $cancellationQueue = new CancellationQueue();
-
-        $cancellationQueue();
-
-        $cancellationQueue->enqueue($d2->promise());
-        $cancellationQueue->enqueue($d1->promise());
-    }
-
-    /** @test */
-    public function doesNotCallCancelTwiceWhenStartedTwice()
-    {
-        $d = $this->getCancellableDeferred();
-
-        $cancellationQueue = new CancellationQueue();
-        $cancellationQueue->enqueue($d->promise());
-
-        $cancellationQueue();
-        $cancellationQueue();
-    }
-
-    /** @test */
-    public function rethrowsExceptionsThrownFromCancel()
-    {
-        $this->setExpectedException('\Exception', 'test');
-
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel')
-            ->will($this->throwException(new \Exception('test')));
-
-        $cancellationQueue = new CancellationQueue();
-        $cancellationQueue->enqueue($mock);
-
-        $cancellationQueue();
-    }
-
-    private function getCancellableDeferred()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke');
-
-        return new Deferred($mock);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/DeferredTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/DeferredTest.php
deleted file mode 100644
index 16212e9e1cb8b1b06c8fdc3ba8c19635a6048ef7..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/DeferredTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
-
-class DeferredTest extends TestCase
-{
-    use PromiseTest\FullTestTrait;
-
-    public function getPromiseTestAdapter(callable $canceller = null)
-    {
-        $d = new Deferred($canceller);
-
-        return new CallbackPromiseAdapter([
-            'promise' => [$d, 'promise'],
-            'resolve' => [$d, 'resolve'],
-            'reject'  => [$d, 'reject'],
-            'notify'  => [$d, 'progress'],
-            'settle'  => [$d, 'resolve'],
-        ]);
-    }
-
-    /** @test */
-    public function progressIsAnAliasForNotify()
-    {
-        $deferred = new Deferred();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $deferred->promise()
-            ->then($this->expectCallableNever(), $this->expectCallableNever(), $mock);
-
-        $deferred->progress($sentinel);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FulfilledPromiseTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FulfilledPromiseTest.php
deleted file mode 100644
index 97fc8f6c6d3c2f0c0b5fa278a6bf23f991753ec3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FulfilledPromiseTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
-
-class FulfilledPromiseTest extends TestCase
-{
-    use PromiseTest\PromiseSettledTestTrait,
-        PromiseTest\PromiseFulfilledTestTrait;
-
-    public function getPromiseTestAdapter(callable $canceller = null)
-    {
-        $promise = null;
-
-        return new CallbackPromiseAdapter([
-            'promise' => function () use (&$promise) {
-                if (!$promise) {
-                    throw new \LogicException('FulfilledPromise must be resolved before obtaining the promise');
-                }
-
-                return $promise;
-            },
-            'resolve' => function ($value = null) use (&$promise) {
-                if (!$promise) {
-                    $promise = new FulfilledPromise($value);
-                }
-            },
-            'reject' => function () {
-                throw new \LogicException('You cannot call reject() for React\Promise\FulfilledPromise');
-            },
-            'notify' => function () {
-                // no-op
-            },
-            'settle' => function ($value = null) use (&$promise) {
-                if (!$promise) {
-                    $promise = new FulfilledPromise($value);
-                }
-            },
-        ]);
-    }
-
-    /** @test */
-    public function shouldThrowExceptionIfConstructedWithAPromise()
-    {
-        $this->setExpectedException('\InvalidArgumentException');
-
-        return new FulfilledPromise(new FulfilledPromise());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAllTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAllTest.php
deleted file mode 100644
index 74c1d7c31432c004fe50638256131a02e9e58afb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAllTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionAllTest extends TestCase
-{
-    /** @test */
-    public function shouldResolveEmptyInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        all([])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveValuesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2, 3]));
-
-        all([1, 2, 3])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolvePromisesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2, 3]));
-
-        all([resolve(1), resolve(2), resolve(3)])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveSparseArrayInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([null, 1, null, 1, 1]));
-
-        all([null, 1, null, 1, 1])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectIfAnyInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        all([resolve(1), reject(2), resolve(3)])
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2, 3]));
-
-        all(resolve([1, 2, 3]))
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        all(resolve(1))
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldPreserveTheOrderOfArrayWhenResolvingAsyncPromises()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2, 3]));
-
-        $deferred = new Deferred();
-
-        all([resolve(1), $deferred->promise(), resolve(3)])
-            ->then($mock);
-
-        $deferred->resolve(2);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAnyTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAnyTest.php
deleted file mode 100644
index 140b55122e4342611555eed7f80c590f2ce4f099..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionAnyTest.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\Exception\LengthException;
-
-class FunctionAnyTest extends TestCase
-{
-    /** @test */
-    public function shouldRejectWithLengthExceptionWithEmptyInputArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with(
-                $this->callback(function($exception){
-                    return $exception instanceof LengthException &&
-                           'Input array must contain at least 1 item but contains only 0 items.' === $exception->getMessage();
-                })
-            );
-
-        any([])
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldResolveToNullWithNonArrayInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        any(null)
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveWithAnInputValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        any([1, 2, 3])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveWithAPromisedInputValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        any([resolve(1), resolve(2), resolve(3)])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectWithAllRejectedInputValuesIfAllInputsAreRejected()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([0 => 1, 1 => 2, 2 => 3]));
-
-        any([reject(1), reject(2), reject(3)])
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldResolveWhenFirstInputPromiseResolves()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        any([resolve(1), reject(2), reject(3)])
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        any(resolve([1, 2, 3]))
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToNullArrayWhenInputPromiseDoesNotResolveToArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        any(resolve(1))
-            ->then($mock);
-    }
-
-    /** @test */
-    public function shouldNotRelyOnArryIndexesWhenUnwrappingToASingleResolutionValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $d1 = new Deferred();
-        $d2 = new Deferred();
-
-        any(['abc' => $d1->promise(), 1 => $d2->promise()])
-            ->then($mock);
-
-        $d2->resolve(2);
-        $d1->resolve(1);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        any(reject())
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldCancelInputPromise()
-    {
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel');
-
-        any($mock)->cancel();
-    }
-
-    /** @test */
-    public function shouldCancelInputArrayPromises()
-    {
-        $mock1 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock1
-            ->expects($this->once())
-            ->method('cancel');
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->once())
-            ->method('cancel');
-
-        any([$mock1, $mock2])->cancel();
-    }
-
-    /** @test */
-    public function shouldNotCancelOtherPendingInputArrayPromisesIfOnePromiseFulfills()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-
-        $deferred = New Deferred($mock);
-        $deferred->resolve();
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->never())
-            ->method('cancel');
-
-        some([$deferred->promise(), $mock2], 1)->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionCheckTypehintTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionCheckTypehintTest.php
deleted file mode 100644
index 8449bc1f7a39e2f0e3049e307f8e41bf920d8d08..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionCheckTypehintTest.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionCheckTypehintTest extends TestCase
-{
-    /** @test */
-    public function shouldAcceptClosureCallbackWithTypehint()
-    {
-        $this->assertTrue(_checkTypehint(function (\InvalidArgumentException $e) {
-                }, new \InvalidArgumentException()));
-        $this->assertfalse(_checkTypehint(function (\InvalidArgumentException $e) {
-                }, new \Exception()));
-    }
-
-    /** @test */
-    public function shouldAcceptFunctionStringCallbackWithTypehint()
-    {
-        $this->assertTrue(_checkTypehint('React\Promise\testCallbackWithTypehint', new \InvalidArgumentException()));
-        $this->assertfalse(_checkTypehint('React\Promise\testCallbackWithTypehint', new \Exception()));
-    }
-
-    /** @test */
-    public function shouldAcceptInvokableObjectCallbackWithTypehint()
-    {
-        $this->assertTrue(_checkTypehint(new TestCallbackWithTypehintClass(), new \InvalidArgumentException()));
-        $this->assertfalse(_checkTypehint(new TestCallbackWithTypehintClass(), new \Exception()));
-    }
-
-    /** @test */
-    public function shouldAcceptObjectMethodCallbackWithTypehint()
-    {
-        $this->assertTrue(_checkTypehint([new TestCallbackWithTypehintClass(), 'testCallback'], new \InvalidArgumentException()));
-        $this->assertfalse(_checkTypehint([new TestCallbackWithTypehintClass(), 'testCallback'], new \Exception()));
-    }
-
-    /** @test */
-    public function shouldAcceptStaticClassCallbackWithTypehint()
-    {
-        $this->assertTrue(_checkTypehint(['React\Promise\TestCallbackWithTypehintClass', 'testCallbackStatic'], new \InvalidArgumentException()));
-        $this->assertfalse(_checkTypehint(['React\Promise\TestCallbackWithTypehintClass', 'testCallbackStatic'], new \Exception()));
-    }
-
-    /** @test */
-    public function shouldAcceptClosureCallbackWithoutTypehint()
-    {
-        $this->assertTrue(_checkTypehint(function (\InvalidArgumentException $e) {
-        }, new \InvalidArgumentException()));
-    }
-
-    /** @test */
-    public function shouldAcceptFunctionStringCallbackWithoutTypehint()
-    {
-        $this->assertTrue(_checkTypehint('React\Promise\testCallbackWithoutTypehint', new \InvalidArgumentException()));
-    }
-
-    /** @test */
-    public function shouldAcceptInvokableObjectCallbackWithoutTypehint()
-    {
-        $this->assertTrue(_checkTypehint(new TestCallbackWithoutTypehintClass(), new \InvalidArgumentException()));
-    }
-
-    /** @test */
-    public function shouldAcceptObjectMethodCallbackWithoutTypehint()
-    {
-        $this->assertTrue(_checkTypehint([new TestCallbackWithoutTypehintClass(), 'testCallback'], new \InvalidArgumentException()));
-    }
-
-    /** @test */
-    public function shouldAcceptStaticClassCallbackWithoutTypehint()
-    {
-        $this->assertTrue(_checkTypehint(['React\Promise\TestCallbackWithoutTypehintClass', 'testCallbackStatic'], new \InvalidArgumentException()));
-    }
-}
-
-function testCallbackWithTypehint(\InvalidArgumentException $e)
-{
-}
-
-function testCallbackWithoutTypehint()
-{
-}
-
-class TestCallbackWithTypehintClass
-{
-    public function __invoke(\InvalidArgumentException $e)
-    {
-
-    }
-
-    public function testCallback(\InvalidArgumentException $e)
-    {
-
-    }
-
-    public static function testCallbackStatic(\InvalidArgumentException $e)
-    {
-
-    }
-}
-
-class TestCallbackWithoutTypehintClass
-{
-    public function __invoke()
-    {
-
-    }
-
-    public function testCallback()
-    {
-
-    }
-
-    public static function testCallbackStatic()
-    {
-
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionMapTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionMapTest.php
deleted file mode 100644
index 1ea560a1f20ada838e5bf2c4e9a087d797e37b91..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionMapTest.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionMapTest extends TestCase
-{
-    protected function mapper()
-    {
-        return function ($val) {
-            return $val * 2;
-        };
-    }
-
-    protected function promiseMapper()
-    {
-        return function ($val) {
-            return resolve($val * 2);
-        };
-    }
-
-    /** @test */
-    public function shouldMapInputValuesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        map(
-            [1, 2, 3],
-            $this->mapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldMapInputPromisesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        map(
-            [resolve(1), resolve(2), resolve(3)],
-            $this->mapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldMapMixedInputArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        map(
-            [1, resolve(2), 3],
-            $this->mapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldMapInputWhenMapperReturnsAPromise()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        map(
-            [1, 2, 3],
-            $this->promiseMapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        map(
-            resolve([1, resolve(2), 3]),
-            $this->mapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        map(
-            resolve(1),
-            $this->mapper()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldPreserveTheOrderOfArrayWhenResolvingAsyncPromises()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([2, 4, 6]));
-
-        $deferred = new Deferred();
-
-        map(
-            [resolve(1), $deferred->promise(), resolve(3)],
-            $this->mapper()
-        )->then($mock);
-
-        $deferred->resolve(2);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputContainsRejection()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        map(
-            [resolve(1), reject(2), resolve(3)],
-            $this->mapper()
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        map(
-            reject(),
-            $this->mapper()
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldCancelInputPromise()
-    {
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel');
-
-        map(
-            $mock,
-            $this->mapper()
-        )->cancel();
-    }
-
-    /** @test */
-    public function shouldCancelInputArrayPromises()
-    {
-        $mock1 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock1
-            ->expects($this->once())
-            ->method('cancel');
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->once())
-            ->method('cancel');
-
-        map(
-            [$mock1, $mock2],
-            $this->mapper()
-        )->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRaceTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRaceTest.php
deleted file mode 100644
index 83770ec204fcce4f72c3d30f6259143758962285..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRaceTest.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionRaceTest extends TestCase
-{
-    /** @test */
-    public function shouldResolveEmptyInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        race(
-            []
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveValuesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        race(
-            [1, 2, 3]
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolvePromisesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $d1 = new Deferred();
-        $d2 = new Deferred();
-        $d3 = new Deferred();
-
-        race(
-            [$d1->promise(), $d2->promise(), $d3->promise()]
-        )->then($mock);
-
-        $d2->resolve(2);
-
-        $d1->resolve(1);
-        $d3->resolve(3);
-    }
-
-    /** @test */
-    public function shouldResolveSparseArrayInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        race(
-            [null, 1, null, 2, 3]
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectIfFirstSettledPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $d1 = new Deferred();
-        $d2 = new Deferred();
-        $d3 = new Deferred();
-
-        race(
-            [$d1->promise(), $d2->promise(), $d3->promise()]
-        )->then($this->expectCallableNever(), $mock);
-
-        $d2->reject(2);
-
-        $d1->resolve(1);
-        $d3->resolve(3);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        race(
-            resolve([1, 2, 3])
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToNullWhenInputPromiseDoesNotResolveToArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        race(
-            resolve(1)
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        race(
-            reject()
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldCancelInputPromise()
-    {
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel');
-
-        race($mock)->cancel();
-    }
-
-    /** @test */
-    public function shouldCancelInputArrayPromises()
-    {
-        $mock1 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock1
-            ->expects($this->once())
-            ->method('cancel');
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->once())
-            ->method('cancel');
-
-        race([$mock1, $mock2])->cancel();
-    }
-
-    /** @test */
-    public function shouldNotCancelOtherPendingInputArrayPromisesIfOnePromiseFulfills()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-        $deferred = New Deferred($mock);
-        $deferred->resolve();
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->never())
-            ->method('cancel');
-
-        race([$deferred->promise(), $mock2])->cancel();
-    }
-
-    /** @test */
-    public function shouldNotCancelOtherPendingInputArrayPromisesIfOnePromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-        $deferred = New Deferred($mock);
-        $deferred->reject();
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->never())
-            ->method('cancel');
-
-        race([$deferred->promise(), $mock2])->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionReduceTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionReduceTest.php
deleted file mode 100644
index 8b43a8787a9b4cbdc22de18a7e713a60a4aefab5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionReduceTest.php
+++ /dev/null
@@ -1,347 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionReduceTest extends TestCase
-{
-    protected function plus()
-    {
-        return function ($sum, $val) {
-            return $sum + $val;
-        };
-    }
-
-    protected function append()
-    {
-        return function ($sum, $val) {
-            return $sum . $val;
-        };
-    }
-
-    /** @test */
-    public function shouldReduceValuesWithoutInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(6));
-
-        reduce(
-            [1, 2, 3],
-            $this->plus()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReduceValuesWithInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(7));
-
-        reduce(
-            [1, 2, 3],
-            $this->plus(),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReduceValuesWithInitialPromise()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(7));
-
-        reduce(
-            [1, 2, 3],
-            $this->plus(),
-            resolve(1)
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReducePromisedValuesWithoutInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(6));
-
-        reduce(
-            [resolve(1), resolve(2), resolve(3)],
-            $this->plus()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReducePromisedValuesWithInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(7));
-
-        reduce(
-            [resolve(1), resolve(2), resolve(3)],
-            $this->plus(),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReducePromisedValuesWithInitialPromise()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(7));
-
-        reduce(
-            [resolve(1), resolve(2), resolve(3)],
-            $this->plus(),
-            resolve(1)
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReduceEmptyInputWithInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        reduce(
-            [],
-            $this->plus(),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReduceEmptyInputWithInitialPromise()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        reduce(
-            [],
-            $this->plus(),
-            resolve(1)
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputContainsRejection()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        reduce(
-            [resolve(1), reject(2), resolve(3)],
-            $this->plus(),
-            resolve(1)
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldResolveWithNullWhenInputIsEmptyAndNoInitialValueOrPromiseProvided()
-    {
-        // Note: this is different from when.js's behavior!
-        // In when.reduce(), this rejects with a TypeError exception (following
-        // JavaScript's [].reduce behavior.
-        // We're following PHP's array_reduce behavior and resolve with NULL.
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        reduce(
-            [],
-            $this->plus()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldAllowSparseArrayInputWithoutInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(3));
-
-        reduce(
-            [null, null, 1, null, 1, 1],
-            $this->plus()
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldAllowSparseArrayInputWithInitialValue()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(4));
-
-        reduce(
-            [null, null, 1, null, 1, 1],
-            $this->plus(),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldReduceInInputOrder()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo('123'));
-
-        reduce(
-            [1, 2, 3],
-            $this->append(),
-            ''
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo('123'));
-
-        reduce(
-            resolve([1, 2, 3]),
-            $this->append(),
-            ''
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToInitialValueWhenInputPromiseDoesNotResolveToAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        reduce(
-            resolve(1),
-            $this->plus(),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldProvideCorrectBasisValue()
-    {
-        $insertIntoArray = function ($arr, $val, $i) {
-            $arr[$i] = $val;
-
-            return $arr;
-        };
-
-        $d1 = new Deferred();
-        $d2 = new Deferred();
-        $d3 = new Deferred();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2, 3]));
-
-        reduce(
-            [$d1->promise(), $d2->promise(), $d3->promise()],
-            $insertIntoArray,
-            []
-        )->then($mock);
-
-        $d3->resolve(3);
-        $d1->resolve(1);
-        $d2->resolve(2);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        reduce(
-            reject(),
-            $this->plus(),
-            1
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldCancelInputPromise()
-    {
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel');
-
-        reduce(
-            $mock,
-            $this->plus(),
-            1
-        )->cancel();
-    }
-
-    /** @test */
-    public function shouldCancelInputArrayPromises()
-    {
-        $mock1 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock1
-            ->expects($this->once())
-            ->method('cancel');
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->once())
-            ->method('cancel');
-
-        reduce(
-            [$mock1, $mock2],
-            $this->plus(),
-            1
-        )->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRejectTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRejectTest.php
deleted file mode 100644
index 84b8ec6a04245afeb27a8d9004ebb7f7f3886bfa..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionRejectTest.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionRejectTest extends TestCase
-{
-    /** @test */
-    public function shouldRejectAnImmediateValue()
-    {
-        $expected = 123;
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        reject($expected)
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function shouldRejectAFulfilledPromise()
-    {
-        $expected = 123;
-
-        $resolved = new FulfilledPromise($expected);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        reject($resolved)
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function shouldRejectARejectedPromise()
-    {
-        $expected = 123;
-
-        $resolved = new RejectedPromise($expected);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        reject($resolved)
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionResolveTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionResolveTest.php
deleted file mode 100644
index 53126bc02c383a43a4fb8b14faed8ea5a0b575b2..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionResolveTest.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class FunctionResolveTest extends TestCase
-{
-    /** @test */
-    public function shouldResolveAnImmediateValue()
-    {
-        $expected = 123;
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        resolve($expected)
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldResolveAFulfilledPromise()
-    {
-        $expected = 123;
-
-        $resolved = new FulfilledPromise($expected);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        resolve($resolved)
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldResolveAThenable()
-    {
-        $thenable = new SimpleFulfilledTestThenable();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo('foo'));
-
-        resolve($thenable)
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldResolveACancellableThenable()
-    {
-        $thenable = new SimpleTestCancellableThenable();
-
-        $promise = resolve($thenable);
-        $promise->cancel();
-
-        $this->assertTrue($thenable->cancelCalled);
-    }
-
-    /** @test */
-    public function shouldRejectARejectedPromise()
-    {
-        $expected = 123;
-
-        $resolved = new RejectedPromise($expected);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($expected));
-
-        resolve($resolved)
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function shouldSupportDeepNestingInPromiseChains()
-    {
-        $d = new Deferred();
-        $d->resolve(false);
-
-        $result = resolve(resolve($d->promise()->then(function ($val) {
-            $d = new Deferred();
-            $d->resolve($val);
-
-            $identity = function ($val) {
-                return $val;
-            };
-
-            return resolve($d->promise()->then($identity))->then(
-                function ($val) {
-                    return !$val;
-                }
-            );
-        })));
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(true));
-
-        $result->then($mock);
-    }
-
-    /** @test */
-    public function shouldSupportVeryDeepNestedPromises()
-    {
-        $deferreds = [];
-
-        // @TODO Increase count once global-queue is merged
-        for ($i = 0; $i < 10; $i++) {
-            $deferreds[] = $d = new Deferred();
-            $p = $d->promise();
-
-            $last = $p;
-            for ($j = 0; $j < 10; $j++) {
-                $last = $last->then(function($result) {
-                    return $result;
-                });
-            }
-        }
-
-        $p = null;
-        foreach ($deferreds as $d) {
-            if ($p) {
-                $d->resolve($p);
-            }
-
-            $p = $d->promise();
-        }
-
-        $deferreds[0]->resolve(true);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(true));
-
-        $deferreds[0]->promise()->then($mock);
-    }
-
-    /** @test */
-    public function returnsExtendePromiseForSimplePromise()
-    {
-        $promise = $this
-            ->getMockBuilder('React\Promise\PromiseInterface')
-            ->getMock();
-
-        $this->assertInstanceOf('React\Promise\ExtendedPromiseInterface', resolve($promise));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionSomeTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionSomeTest.php
deleted file mode 100644
index 276b54bb299e3a28581ceeee0f6148b6d3345e25..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/FunctionSomeTest.php
+++ /dev/null
@@ -1,258 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\Exception\LengthException;
-
-class FunctionSomeTest extends TestCase
-{
-    /** @test */
-    public function shouldRejectWithLengthExceptionWithEmptyInputArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with(
-                $this->callback(function($exception){
-                    return $exception instanceof LengthException &&
-                           'Input array must contain at least 1 item but contains only 0 items.' === $exception->getMessage();
-                })
-            );
-
-        some(
-            [],
-            1
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldRejectWithLengthExceptionWithInputArrayContainingNotEnoughItems()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with(
-                $this->callback(function($exception){
-                    return $exception instanceof LengthException &&
-                           'Input array must contain at least 4 items but contains only 3 items.' === $exception->getMessage();
-                })
-            );
-
-        some(
-            [1, 2, 3],
-            4
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldResolveToEmptyArrayWithNonArrayInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        some(
-            null,
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveValuesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2]));
-
-        some(
-            [1, 2, 3],
-            2
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolvePromisesArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2]));
-
-        some(
-            [resolve(1), resolve(2), resolve(3)],
-            2
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveSparseArrayInput()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([null, 1]));
-
-        some(
-            [null, 1, null, 2, 3],
-            2
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectIfAnyInputPromiseRejectsBeforeDesiredNumberOfInputsAreResolved()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1 => 2, 2 => 3]));
-
-        some(
-            [resolve(1), reject(2), reject(3)],
-            2
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldAcceptAPromiseForAnArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([1, 2]));
-
-        some(
-            resolve([1, 2, 3]),
-            2
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveWithEmptyArrayIfHowManyIsLessThanOne()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        some(
-            [1],
-            0
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo([]));
-
-        some(
-            resolve(1),
-            1
-        )->then($mock);
-    }
-
-    /** @test */
-    public function shouldRejectWhenInputPromiseRejects()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(null));
-
-        some(
-            reject(),
-            1
-        )->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldCancelInputPromise()
-    {
-        $mock = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock
-            ->expects($this->once())
-            ->method('cancel');
-
-        some($mock, 1)->cancel();
-    }
-
-    /** @test */
-    public function shouldCancelInputArrayPromises()
-    {
-        $mock1 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock1
-            ->expects($this->once())
-            ->method('cancel');
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->once())
-            ->method('cancel');
-
-        some([$mock1, $mock2], 1)->cancel();
-    }
-
-    /** @test */
-    public function shouldNotCancelOtherPendingInputArrayPromisesIfEnoughPromisesFulfill()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-        $deferred = New Deferred($mock);
-        $deferred->resolve();
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->never())
-            ->method('cancel');
-
-        some([$deferred->promise(), $mock2], 1);
-    }
-
-    /** @test */
-    public function shouldNotCancelOtherPendingInputArrayPromisesIfEnoughPromisesReject()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-        $deferred = New Deferred($mock);
-        $deferred->reject();
-
-        $mock2 = $this
-            ->getMockBuilder('React\Promise\CancellablePromiseInterface')
-            ->getMock();
-        $mock2
-            ->expects($this->never())
-            ->method('cancel');
-
-        some([$deferred->promise(), $mock2], 2);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/LazyPromiseTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/LazyPromiseTest.php
deleted file mode 100644
index b6308818a7714899c619d46fae8a2e45d1866ab0..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/LazyPromiseTest.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
-
-class LazyPromiseTest extends TestCase
-{
-    use PromiseTest\FullTestTrait;
-
-    public function getPromiseTestAdapter(callable $canceller = null)
-    {
-        $d = new Deferred($canceller);
-
-        $factory = function () use ($d) {
-            return $d->promise();
-        };
-
-        return new CallbackPromiseAdapter([
-            'promise'  => function () use ($factory) {
-                return new LazyPromise($factory);
-            },
-            'resolve' => [$d, 'resolve'],
-            'reject'  => [$d, 'reject'],
-            'notify'  => [$d, 'progress'],
-            'settle'  => [$d, 'resolve'],
-        ]);
-    }
-
-    /** @test */
-    public function shouldNotCallFactoryIfThenIsNotInvoked()
-    {
-        $factory = $this->createCallableMock();
-        $factory
-            ->expects($this->never())
-            ->method('__invoke');
-
-        new LazyPromise($factory);
-    }
-
-    /** @test */
-    public function shouldCallFactoryIfThenIsInvoked()
-    {
-        $factory = $this->createCallableMock();
-        $factory
-            ->expects($this->once())
-            ->method('__invoke');
-
-        $p = new LazyPromise($factory);
-        $p->then();
-    }
-
-    /** @test */
-    public function shouldReturnPromiseFromFactory()
-    {
-        $factory = $this->createCallableMock();
-        $factory
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnValue(new FulfilledPromise(1)));
-
-        $onFulfilled = $this->createCallableMock();
-        $onFulfilled
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $p = new LazyPromise($factory);
-
-        $p->then($onFulfilled);
-    }
-
-    /** @test */
-    public function shouldReturnPromiseIfFactoryReturnsNull()
-    {
-        $factory = $this->createCallableMock();
-        $factory
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnValue(null));
-
-        $p = new LazyPromise($factory);
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $p->then());
-    }
-
-    /** @test */
-    public function shouldReturnRejectedPromiseIfFactoryThrowsException()
-    {
-        $exception = new \Exception();
-
-        $factory = $this->createCallableMock();
-        $factory
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->throwException($exception));
-
-        $onRejected = $this->createCallableMock();
-        $onRejected
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $p = new LazyPromise($factory);
-
-        $p->then($this->expectCallableNever(), $onRejected);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/CallbackPromiseAdapter.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/CallbackPromiseAdapter.php
deleted file mode 100644
index bdedf4658e455eac097fe41325d1e0a3e45c4d5b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/CallbackPromiseAdapter.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseAdapter;
-
-use React\Promise;
-
-class CallbackPromiseAdapter implements PromiseAdapterInterface
-{
-    private $callbacks;
-
-    public function __construct(array $callbacks)
-    {
-        $this->callbacks = $callbacks;
-    }
-
-    public function promise()
-    {
-        return call_user_func_array($this->callbacks['promise'], func_get_args());
-    }
-
-    public function resolve()
-    {
-        return call_user_func_array($this->callbacks['resolve'], func_get_args());
-    }
-
-    public function reject()
-    {
-        return call_user_func_array($this->callbacks['reject'], func_get_args());
-    }
-
-    public function notify()
-    {
-        return call_user_func_array($this->callbacks['notify'], func_get_args());
-    }
-
-    public function settle()
-    {
-        return call_user_func_array($this->callbacks['settle'], func_get_args());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/PromiseAdapterInterface.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/PromiseAdapterInterface.php
deleted file mode 100644
index 9157cd4ea7253a7c7fe7d467aea8fe0c1ccf77a8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseAdapter/PromiseAdapterInterface.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseAdapter;
-
-use React\Promise;
-
-interface PromiseAdapterInterface
-{
-    public function promise();
-    public function resolve();
-    public function reject();
-    public function notify();
-    public function settle();
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest.php
deleted file mode 100644
index dc7b733dbfd853c058d66433ce8cc1e7b34c51fb..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
-
-class PromiseTest extends TestCase
-{
-    use PromiseTest\FullTestTrait;
-
-    public function getPromiseTestAdapter(callable $canceller = null)
-    {
-        $resolveCallback = $rejectCallback = $progressCallback = null;
-
-        $promise = new Promise(function ($resolve, $reject, $progress) use (&$resolveCallback, &$rejectCallback, &$progressCallback) {
-            $resolveCallback  = $resolve;
-            $rejectCallback   = $reject;
-            $progressCallback = $progress;
-        }, $canceller);
-
-        return new CallbackPromiseAdapter([
-            'promise' => function () use ($promise) {
-                return $promise;
-            },
-            'resolve' => $resolveCallback,
-            'reject'  => $rejectCallback,
-            'notify'  => $progressCallback,
-            'settle'  => $resolveCallback,
-        ]);
-    }
-
-    /** @test */
-    public function shouldRejectIfResolverThrowsException()
-    {
-        $exception = new \Exception('foo');
-
-        $promise = new Promise(function () use ($exception) {
-            throw $exception;
-        });
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $promise
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldFulfillIfFullfilledWithSimplePromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo('foo'));
-
-        $adapter->promise()
-            ->then($mock);
-
-        $adapter->resolve(new SimpleFulfilledTestPromise());
-    }
-
-    /** @test */
-    public function shouldRejectIfRejectedWithSimplePromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo('foo'));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->resolve(new SimpleRejectedTestPromise());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/CancelTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/CancelTestTrait.php
deleted file mode 100644
index d722d756a857c01d79597057ee4e0626b133800d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/CancelTestTrait.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-use React\Promise;
-
-trait CancelTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function cancelShouldCallCancellerWithResolverArguments()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->isType('callable'), $this->isType('callable'), $this->isType('callable'));
-
-        $adapter = $this->getPromiseTestAdapter($mock);
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldFulfillPromiseIfCancellerFulfills()
-    {
-        $adapter = $this->getPromiseTestAdapter(function ($resolve) {
-            $resolve(1);
-        });
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($mock, $this->expectCallableNever());
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldRejectPromiseIfCancellerRejects()
-    {
-        $adapter = $this->getPromiseTestAdapter(function ($resolve, $reject) {
-            $reject(1);
-        });
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldRejectPromiseWithExceptionIfCancellerThrows()
-    {
-        $e = new \Exception();
-
-        $adapter = $this->getPromiseTestAdapter(function () use ($e) {
-            throw $e;
-        });
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($e));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldProgressPromiseIfCancellerNotifies()
-    {
-        $adapter = $this->getPromiseTestAdapter(function ($resolve, $reject, $progress) {
-            $progress(1);
-        });
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $this->expectCallableNever(), $mock);
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldCallCancellerOnlyOnceIfCancellerResolves()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnCallback(function ($resolve) {
-                $resolve();
-            }));
-
-        $adapter = $this->getPromiseTestAdapter($mock);
-
-        $adapter->promise()->cancel();
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldHaveNoEffectIfCancellerDoesNothing()
-    {
-        $adapter = $this->getPromiseTestAdapter(function () {});
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $this->expectCallableNever());
-
-        $adapter->promise()->cancel();
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldCallCancellerFromDeepNestedPromiseChain()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke');
-
-        $adapter = $this->getPromiseTestAdapter($mock);
-
-        $promise = $adapter->promise()
-            ->then(function () {
-                return new Promise\Promise(function () {});
-            })
-            ->then(function () {
-                $d = new Promise\Deferred();
-
-                return $d->promise();
-            })
-            ->then(function () {
-                return new Promise\Promise(function () {});
-            });
-
-        $promise->cancel();
-    }
-
-    /** @test */
-    public function cancelCalledOnChildrenSouldOnlyCancelWhenAllChildrenCancelled()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableNever());
-
-        $child1 = $adapter->promise()
-            ->then()
-            ->then();
-
-        $adapter->promise()
-            ->then();
-
-        $child1->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldTriggerCancellerWhenAllChildrenCancel()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableOnce());
-
-        $child1 = $adapter->promise()
-            ->then()
-            ->then();
-
-        $child2 = $adapter->promise()
-            ->then();
-
-        $child1->cancel();
-        $child2->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldNotTriggerCancellerWhenCancellingOneChildrenMultipleTimes()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableNever());
-
-        $child1 = $adapter->promise()
-            ->then()
-            ->then();
-
-        $child2 = $adapter->promise()
-            ->then();
-
-        $child1->cancel();
-        $child1->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldTriggerCancellerOnlyOnceWhenCancellingMultipleTimes()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableOnce());
-
-        $adapter->promise()->cancel();
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function cancelShouldAlwaysTriggerCancellerWhenCalledOnRootPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableOnce());
-
-        $adapter->promise()
-            ->then()
-            ->then();
-
-        $adapter->promise()
-            ->then();
-
-        $adapter->promise()->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/FullTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/FullTestTrait.php
deleted file mode 100644
index 3ce45d61fae47689c45d79e55b4a781d74a488fc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/FullTestTrait.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-trait FullTestTrait
-{
-    use PromisePendingTestTrait,
-        PromiseSettledTestTrait,
-        PromiseFulfilledTestTrait,
-        PromiseRejectedTestTrait,
-        ResolveTestTrait,
-        RejectTestTrait,
-        NotifyTestTrait,
-        CancelTestTrait;
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/NotifyTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/NotifyTestTrait.php
deleted file mode 100644
index 4501df67683f2f1f0d2885c410311c4d733166c9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/NotifyTestTrait.php
+++ /dev/null
@@ -1,336 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-trait NotifyTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function notifyShouldProgress()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $this->expectCallableNever(), $mock);
-
-        $adapter->notify($sentinel);
-    }
-
-    /** @test */
-    public function notifyShouldPropagateProgressToDownstreamPromises()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnArgument(0));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock2
-            );
-
-        $adapter->notify($sentinel);
-    }
-
-    /** @test */
-    public function notifyShouldPropagateTransformedProgressToDownstreamPromises()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnValue($sentinel));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock2
-            );
-
-        $adapter->notify(1);
-    }
-
-    /** @test */
-    public function notifyShouldPropagateCaughtExceptionValueAsProgress()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->throwException($exception));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock2
-            );
-
-        $adapter->notify(1);
-    }
-
-    /** @test */
-    public function notifyShouldForwardProgressEventsWhenIntermediaryCallbackTiedToAResolvedPromiseReturnsAPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-        $adapter2 = $this->getPromiseTestAdapter();
-
-        $promise2 = $adapter2->promise();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        // resolve BEFORE attaching progress handler
-        $adapter->resolve();
-
-        $adapter->promise()
-            ->then(function () use ($promise2) {
-                return $promise2;
-            })
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        $adapter2->notify($sentinel);
-    }
-
-    /** @test */
-    public function notifyShouldForwardProgressEventsWhenIntermediaryCallbackTiedToAnUnresolvedPromiseReturnsAPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-        $adapter2 = $this->getPromiseTestAdapter();
-
-        $promise2 = $adapter2->promise();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $adapter->promise()
-            ->then(function () use ($promise2) {
-                return $promise2;
-            })
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        // resolve AFTER attaching progress handler
-        $adapter->resolve();
-        $adapter2->notify($sentinel);
-    }
-
-    /** @test */
-    public function notifyShouldForwardProgressWhenResolvedWithAnotherPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-        $adapter2 = $this->getPromiseTestAdapter();
-
-        $sentinel = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->returnValue($sentinel));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($sentinel);
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $this->expectCallableNever(),
-                $mock2
-            );
-
-        $adapter->resolve($adapter2->promise());
-        $adapter2->notify($sentinel);
-    }
-
-    /** @test */
-    public function notifyShouldAllowResolveAfterProgress()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->at(0))
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-        $mock
-            ->expects($this->at(1))
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->promise()
-            ->then(
-                $mock,
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        $adapter->notify(1);
-        $adapter->resolve(2);
-    }
-
-    /** @test */
-    public function notifyShouldAllowRejectAfterProgress()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->at(0))
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-        $mock
-            ->expects($this->at(1))
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $mock,
-                $mock
-            );
-
-        $adapter->notify(1);
-        $adapter->reject(2);
-    }
-
-    /** @test */
-    public function notifyShouldReturnSilentlyOnProgressWhenAlreadyRejected()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->reject(1);
-
-        $this->assertNull($adapter->notify());
-    }
-
-    /** @test */
-    public function notifyShouldInvokeProgressHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()->progress($mock);
-        $adapter->notify(1);
-    }
-
-    /** @test */
-    public function notifyShouldInvokeProgressHandlerFromDone()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $this->assertNull($adapter->promise()->done(null, null, $mock));
-        $adapter->notify(1);
-    }
-
-    /** @test */
-    public function notifyShouldThrowExceptionThrownProgressHandlerFromDone()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(null, null, function () {
-            throw new \Exception('UnhandledRejectionException');
-        }));
-        $adapter->notify(1);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseFulfilledTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseFulfilledTestTrait.php
deleted file mode 100644
index 428230b97ac1c7e9baac52a9d683545cb9ec58e3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseFulfilledTestTrait.php
+++ /dev/null
@@ -1,351 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-trait PromiseFulfilledTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function fulfilledPromiseShouldBeImmutable()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->resolve(1);
-        $adapter->resolve(2);
-
-        $adapter->promise()
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function fulfilledPromiseShouldInvokeNewlyAddedCallback()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->resolve(1);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($mock, $this->expectCallableNever());
-    }
-
-    /** @test */
-    public function thenShouldForwardResultWhenCallbackIsNull()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->then(
-                null,
-                $this->expectCallableNever()
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function thenShouldForwardCallbackResultToNextCallback()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->then(
-                function ($val) {
-                    return $val + 1;
-                },
-                $this->expectCallableNever()
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function thenShouldForwardPromisedCallbackResultValueToNextCallback()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->then(
-                function ($val) {
-                    return \React\Promise\resolve($val + 1);
-                },
-                $this->expectCallableNever()
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function thenShouldSwitchFromCallbacksToErrbacksWhenCallbackReturnsARejection()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->then(
-                function ($val) {
-                    return \React\Promise\reject($val + 1);
-                },
-                $this->expectCallableNever()
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function thenShouldSwitchFromCallbacksToErrbacksWhenCallbackThrows()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->throwException($exception));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $mock2
-            );
-    }
-
-    /** @test */
-    public function cancelShouldReturnNullForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->resolve();
-
-        $this->assertNull($adapter->promise()->cancel());
-    }
-
-    /** @test */
-    public function cancelShouldHaveNoEffectForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableNever());
-
-        $adapter->resolve();
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function doneShouldInvokeFulfillmentHandlerForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->resolve(1);
-        $this->assertNull($adapter->promise()->done($mock));
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionThrownFulfillmentHandlerForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $adapter->resolve(1);
-        $this->assertNull($adapter->promise()->done(function () {
-            throw new \Exception('UnhandledRejectionException');
-        }));
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenFulfillmentHandlerRejectsForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $adapter->resolve(1);
-        $this->assertNull($adapter->promise()->done(function () {
-            return \React\Promise\reject();
-        }));
-    }
-
-    /** @test */
-    public function otherwiseShouldNotInvokeRejectionHandlerForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->resolve(1);
-        $adapter->promise()->otherwise($this->expectCallableNever());
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValueForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->resolve($value);
-        $adapter->promise()
-            ->always(function () {})
-            ->then($mock);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValueWhenHandlerReturnsANonPromiseForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->resolve($value);
-        $adapter->promise()
-            ->always(function () {
-                return 1;
-            })
-            ->then($mock);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValueWhenHandlerReturnsAPromiseForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->resolve($value);
-        $adapter->promise()
-            ->always(function () {
-                return \React\Promise\resolve(1);
-            })
-            ->then($mock);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerThrowsForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                throw $exception;
-            })
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerRejectsForFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->resolve(1);
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                return \React\Promise\reject($exception);
-            })
-            ->then(null, $mock);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromisePendingTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromisePendingTestTrait.php
deleted file mode 100644
index a4f48ee2530456239bb1e9ba64c6712a95ac8b07..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromisePendingTestTrait.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-trait PromisePendingTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function thenShouldReturnAPromiseForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->then());
-    }
-
-    /** @test */
-    public function thenShouldReturnAllowNullForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->then(null, null, null));
-    }
-
-    /** @test */
-    public function cancelShouldReturnNullForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertNull($adapter->promise()->cancel());
-    }
-
-    /** @test */
-    public function doneShouldReturnNullForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertNull($adapter->promise()->done());
-    }
-
-    /** @test */
-    public function doneShouldReturnAllowNullForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertNull($adapter->promise()->done(null, null, null));
-    }
-
-    /** @test */
-    public function otherwiseShouldNotInvokeRejectionHandlerForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $adapter->promise()->otherwise($this->expectCallableNever());
-    }
-
-    /** @test */
-    public function alwaysShouldReturnAPromiseForPendingPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->always(function () {}));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseRejectedTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseRejectedTestTrait.php
deleted file mode 100644
index 98d1dcf933908057cc317e66b03ebd855bed99dc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseRejectedTestTrait.php
+++ /dev/null
@@ -1,512 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-use React\Promise\Deferred;
-use React\Promise\UnhandledRejectionException;
-
-trait PromiseRejectedTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function rejectedPromiseShouldBeImmutable()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->reject(1);
-        $adapter->reject(2);
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function rejectedPromiseShouldInvokeNewlyAddedCallback()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->reject(1);
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-    }
-
-    /** @test */
-    public function shouldForwardUndefinedRejectionValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with(null);
-
-        $adapter->reject(1);
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                function () {
-                    // Presence of rejection handler is enough to switch back
-                    // to resolve mode, even though it returns undefined.
-                    // The ONLY way to propagate a rejection is to re-throw or
-                    // return a rejected promise;
-                }
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldSwitchFromErrbacksToCallbacksWhenErrbackDoesNotExplicitlyPropagate()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->reject(1);
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                function ($val) {
-                    return $val + 1;
-                }
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldSwitchFromErrbacksToCallbacksWhenErrbackReturnsAResolution()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->reject(1);
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                function ($val) {
-                    return \React\Promise\resolve($val + 1);
-                }
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-    }
-
-    /** @test */
-    public function shouldPropagateRejectionsWhenErrbackThrows()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->will($this->throwException($exception));
-
-        $mock2 = $this->createCallableMock();
-        $mock2
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject(1);
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $mock2
-            );
-    }
-
-    /** @test */
-    public function shouldPropagateRejectionsWhenErrbackReturnsARejection()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(2));
-
-        $adapter->reject(1);
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                function ($val) {
-                    return \React\Promise\reject($val + 1);
-                }
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-    }
-
-    /** @test */
-    public function doneShouldInvokeRejectionHandlerForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->reject(1);
-        $this->assertNull($adapter->promise()->done(null, $mock));
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionThrownByRejectionHandlerForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $adapter->reject(1);
-        $this->assertNull($adapter->promise()->done(null, function () {
-            throw new \Exception('UnhandledRejectionException');
-        }));
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenRejectedWithNonExceptionForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $adapter->reject(1);
-        $this->assertNull($adapter->promise()->done());
-    }
-
-    /** @test */
-    public function unhandledRejectionExceptionThrownByDoneHoldsRejectionValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $expected = new \stdClass();
-
-        $adapter->reject($expected);
-
-        try {
-            $adapter->promise()->done();
-        } catch (UnhandledRejectionException $e) {
-            $this->assertSame($expected, $e->getReason());
-            return;
-        }
-
-        $this->fail();
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenRejectionHandlerRejectsForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $adapter->reject(1);
-        $this->assertNull($adapter->promise()->done(null, function () {
-            return \React\Promise\reject();
-        }));
-    }
-
-    /** @test */
-    public function doneShouldThrowRejectionExceptionWhenRejectionHandlerRejectsWithExceptionForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $adapter->reject(1);
-        $this->assertNull($adapter->promise()->done(null, function () {
-            return \React\Promise\reject(new \Exception('UnhandledRejectionException'));
-        }));
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionProvidedAsRejectionValueForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $adapter->reject(new \Exception('UnhandledRejectionException'));
-        $this->assertNull($adapter->promise()->done());
-    }
-
-    /** @test */
-    public function doneShouldThrowWithDeepNestingPromiseChainsForRejectedPromise()
-    {
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $exception = new \Exception('UnhandledRejectionException');
-
-        $d = new Deferred();
-        $d->resolve();
-
-        $result = \React\Promise\resolve(\React\Promise\resolve($d->promise()->then(function () use ($exception) {
-            $d = new Deferred();
-            $d->resolve();
-
-            return \React\Promise\resolve($d->promise()->then(function () {}))->then(
-                function () use ($exception) {
-                    throw $exception;
-                }
-            );
-        })));
-
-        $result->done();
-    }
-
-    /** @test */
-    public function doneShouldRecoverWhenRejectionHandlerCatchesExceptionForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->reject(new \Exception('UnhandledRejectionException'));
-        $this->assertNull($adapter->promise()->done(null, function (\Exception $e) {
-
-        }));
-    }
-
-    /** @test */
-    public function otherwiseShouldInvokeRejectionHandlerForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->reject(1);
-        $adapter->promise()->otherwise($mock);
-    }
-
-    /** @test */
-    public function otherwiseShouldInvokeNonTypeHintedRejectionHandlerIfReasonIsAnExceptionForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->otherwise(function ($reason) use ($mock) {
-                $mock($reason);
-            });
-    }
-
-    /** @test */
-    public function otherwiseShouldInvokeRejectionHandlerIfReasonMatchesTypehintForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \InvalidArgumentException();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->otherwise(function (\InvalidArgumentException $reason) use ($mock) {
-                $mock($reason);
-            });
-    }
-
-    /** @test */
-    public function otherwiseShouldNotInvokeRejectionHandlerIfReaonsDoesNotMatchTypehintForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->expectCallableNever();
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->otherwise(function (\InvalidArgumentException $reason) use ($mock) {
-                $mock($reason);
-            });
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejectionForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->always(function () {})
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejectionWhenHandlerReturnsANonPromiseForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->always(function () {
-                return 1;
-            })
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejectionWhenHandlerReturnsAPromiseForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->reject($exception);
-        $adapter->promise()
-            ->always(function () {
-                return \React\Promise\resolve(1);
-            })
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerThrowsForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception1 = new \Exception();
-        $exception2 = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception2));
-
-        $adapter->reject($exception1);
-        $adapter->promise()
-            ->always(function () use ($exception2) {
-                throw $exception2;
-            })
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerRejectsForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception1 = new \Exception();
-        $exception2 = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception2));
-
-        $adapter->reject($exception1);
-        $adapter->promise()
-            ->always(function () use ($exception2) {
-                return \React\Promise\reject($exception2);
-            })
-            ->then(null, $mock);
-    }
-
-    /** @test */
-    public function cancelShouldReturnNullForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->reject();
-
-        $this->assertNull($adapter->promise()->cancel());
-    }
-
-    /** @test */
-    public function cancelShouldHaveNoEffectForRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableNever());
-
-        $adapter->reject();
-
-        $adapter->promise()->cancel();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseSettledTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseSettledTestTrait.php
deleted file mode 100644
index e363b6d91c410baf93ed0c0827654a5c8f08944f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/PromiseSettledTestTrait.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-trait PromiseSettledTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function thenShouldReturnAPromiseForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->then());
-    }
-
-    /** @test */
-    public function thenShouldReturnAllowNullForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->then(null, null, null));
-    }
-
-    /** @test */
-    public function cancelShouldReturnNullForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-
-        $this->assertNull($adapter->promise()->cancel());
-    }
-
-    /** @test */
-    public function cancelShouldHaveNoEffectForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter($this->expectCallableNever());
-
-        $adapter->settle();
-
-        $adapter->promise()->cancel();
-    }
-
-    /** @test */
-    public function doneShouldReturnNullForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $this->assertNull($adapter->promise()->done(null, function () {}));
-    }
-
-    /** @test */
-    public function doneShouldReturnAllowNullForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $this->assertNull($adapter->promise()->done(null, function () {}, null));
-    }
-
-    /** @test */
-    public function progressShouldNotInvokeProgressHandlerForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $adapter->promise()->progress($this->expectCallableNever());
-        $adapter->notify();
-    }
-
-    /** @test */
-    public function alwaysShouldReturnAPromiseForSettledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $adapter->settle();
-        $this->assertInstanceOf('React\\Promise\\PromiseInterface', $adapter->promise()->always(function () {}));
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/RejectTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/RejectTestTrait.php
deleted file mode 100644
index 063f178ad4f0fa3ee996e98d2d986953fbaf79f5..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/RejectTestTrait.php
+++ /dev/null
@@ -1,368 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-use React\Promise;
-use React\Promise\Deferred;
-
-trait RejectTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function rejectShouldRejectWithAnImmediateValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function rejectShouldRejectWithFulfilledPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->reject(Promise\resolve(1));
-    }
-
-    /** @test */
-    public function rejectShouldRejectWithRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->reject(Promise\reject(1));
-    }
-
-    /** @test */
-    public function rejectShouldForwardReasonWhenCallbackIsNull()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever()
-            )
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function rejectShouldMakePromiseImmutable()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then(null, function ($value) use ($adapter) {
-                $adapter->reject(3);
-
-                return Promise\reject($value);
-            })
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        $adapter->reject(1);
-        $adapter->reject(2);
-    }
-
-    /** @test */
-    public function notifyShouldInvokeOtherwiseHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->otherwise($mock);
-
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldInvokeRejectionHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $this->assertNull($adapter->promise()->done(null, $mock));
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionThrownByRejectionHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(null, function () {
-            throw new \Exception('UnhandledRejectionException');
-        }));
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenRejectedWithNonException()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done());
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenRejectionHandlerRejects()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(null, function () {
-            return \React\Promise\reject();
-        }));
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowRejectionExceptionWhenRejectionHandlerRejectsWithException()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(null, function () {
-            return \React\Promise\reject(new \Exception('UnhandledRejectionException'));
-        }));
-        $adapter->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenRejectionHandlerRetunsPendingPromiseWhichRejectsLater()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $d = new Deferred();
-        $promise = $d->promise();
-
-        $this->assertNull($adapter->promise()->done(null, function () use ($promise) {
-            return $promise;
-        }));
-        $adapter->reject(1);
-        $d->reject(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionProvidedAsRejectionValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done());
-        $adapter->reject(new \Exception('UnhandledRejectionException'));
-    }
-
-    /** @test */
-    public function doneShouldThrowWithDeepNestingPromiseChains()
-    {
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $exception = new \Exception('UnhandledRejectionException');
-
-        $d = new Deferred();
-
-        $result = \React\Promise\resolve(\React\Promise\resolve($d->promise()->then(function () use ($exception) {
-            $d = new Deferred();
-            $d->resolve();
-
-            return \React\Promise\resolve($d->promise()->then(function () {}))->then(
-                function () use ($exception) {
-                    throw $exception;
-                }
-            );
-        })));
-
-        $result->done();
-
-        $d->resolve();
-    }
-
-    /** @test */
-    public function doneShouldRecoverWhenRejectionHandlerCatchesException()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->assertNull($adapter->promise()->done(null, function (\Exception $e) {
-
-        }));
-        $adapter->reject(new \Exception('UnhandledRejectionException'));
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejection()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () {})
-            ->then(null, $mock);
-
-        $adapter->reject($exception);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejectionWhenHandlerReturnsANonPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () {
-                return 1;
-            })
-            ->then(null, $mock);
-
-        $adapter->reject($exception);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressRejectionWhenHandlerReturnsAPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () {
-                return \React\Promise\resolve(1);
-            })
-            ->then(null, $mock);
-
-        $adapter->reject($exception);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerThrowsForRejection()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                throw $exception;
-            })
-            ->then(null, $mock);
-
-        $adapter->reject($exception);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerRejectsForRejection()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                return \React\Promise\reject($exception);
-            })
-            ->then(null, $mock);
-
-        $adapter->reject($exception);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/ResolveTestTrait.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/ResolveTestTrait.php
deleted file mode 100644
index 967d93c9c6dc3f3b6b8baab2257322fbbbdb5636..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/PromiseTest/ResolveTestTrait.php
+++ /dev/null
@@ -1,285 +0,0 @@
-<?php
-
-namespace React\Promise\PromiseTest;
-
-use React\Promise;
-
-trait ResolveTestTrait
-{
-    /**
-     * @return \React\Promise\PromiseAdapter\PromiseAdapterInterface
-     */
-    abstract public function getPromiseTestAdapter(callable $canceller = null);
-
-    /** @test */
-    public function resolveShouldResolve()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($mock);
-
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function resolveShouldResolveWithPromisedValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($mock);
-
-        $adapter->resolve(Promise\resolve(1));
-    }
-
-    /** @test */
-    public function resolveShouldRejectWhenResolvedWithRejectedPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then($this->expectCallableNever(), $mock);
-
-        $adapter->resolve(Promise\reject(1));
-    }
-
-    /** @test */
-    public function resolveShouldForwardValueWhenCallbackIsNull()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then(
-                null,
-                $this->expectCallableNever()
-            )
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function resolveShouldMakePromiseImmutable()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $adapter->promise()
-            ->then(function ($value) use ($adapter) {
-                $adapter->resolve(3);
-
-                return $value;
-            })
-            ->then(
-                $mock,
-                $this->expectCallableNever()
-            );
-
-        $adapter->resolve(1);
-        $adapter->resolve(2);
-    }
-
-    /**
-     * @test
-     */
-    public function resolveShouldRejectWhenResolvedWithItself()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with(new \LogicException('Cannot resolve a promise with itself.'));
-
-        $adapter->promise()
-            ->then(
-                $this->expectCallableNever(),
-                $mock
-            );
-
-        $adapter->resolve($adapter->promise());
-    }
-
-    /** @test */
-    public function doneShouldInvokeFulfillmentHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo(1));
-
-        $this->assertNull($adapter->promise()->done($mock));
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowExceptionThrownFulfillmentHandler()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('\Exception', 'UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(function () {
-            throw new \Exception('UnhandledRejectionException');
-        }));
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function doneShouldThrowUnhandledRejectionExceptionWhenFulfillmentHandlerRejects()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $this->setExpectedException('React\\Promise\\UnhandledRejectionException');
-
-        $this->assertNull($adapter->promise()->done(function () {
-            return \React\Promise\reject();
-        }));
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValue()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->promise()
-            ->always(function () {})
-            ->then($mock);
-
-        $adapter->resolve($value);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValueWhenHandlerReturnsANonPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->promise()
-            ->always(function () {
-                return 1;
-            })
-            ->then($mock);
-
-        $adapter->resolve($value);
-    }
-
-    /** @test */
-    public function alwaysShouldNotSuppressValueWhenHandlerReturnsAPromise()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $value = new \stdClass();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($value));
-
-        $adapter->promise()
-            ->always(function () {
-                return \React\Promise\resolve(1);
-            })
-            ->then($mock);
-
-        $adapter->resolve($value);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerThrowsForFulfillment()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                throw $exception;
-            })
-            ->then(null, $mock);
-
-        $adapter->resolve(1);
-    }
-
-    /** @test */
-    public function alwaysShouldRejectWhenHandlerRejectsForFulfillment()
-    {
-        $adapter = $this->getPromiseTestAdapter();
-
-        $exception = new \Exception();
-
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke')
-            ->with($this->identicalTo($exception));
-
-        $adapter->promise()
-            ->always(function () use ($exception) {
-                return \React\Promise\reject($exception);
-            })
-            ->then(null, $mock);
-
-        $adapter->resolve(1);
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/RejectedPromiseTest.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/RejectedPromiseTest.php
deleted file mode 100644
index c886b00954204aa28aeb8ea891c8f1f457204864..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/RejectedPromiseTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
-
-class RejectedPromiseTest extends TestCase
-{
-    use PromiseTest\PromiseSettledTestTrait,
-        PromiseTest\PromiseRejectedTestTrait;
-
-    public function getPromiseTestAdapter(callable $canceller = null)
-    {
-        $promise = null;
-
-        return new CallbackPromiseAdapter([
-            'promise' => function () use (&$promise) {
-                if (!$promise) {
-                    throw new \LogicException('RejectedPromise must be rejected before obtaining the promise');
-                }
-
-                return $promise;
-            },
-            'resolve' => function () {
-                throw new \LogicException('You cannot call resolve() for React\Promise\RejectedPromise');
-            },
-            'reject' => function ($reason = null) use (&$promise) {
-                if (!$promise) {
-                    $promise = new RejectedPromise($reason);
-                }
-            },
-            'notify' => function () {
-                // no-op
-            },
-            'settle' => function ($reason = null) use (&$promise) {
-                if (!$promise) {
-                    $promise = new RejectedPromise($reason);
-                }
-            },
-        ]);
-    }
-
-    /** @test */
-    public function shouldThrowExceptionIfConstructedWithAPromise()
-    {
-        $this->setExpectedException('\InvalidArgumentException');
-
-        return new RejectedPromise(new RejectedPromise());
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/Stub/CallableStub.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/Stub/CallableStub.php
deleted file mode 100644
index 0120893358c986052decc6655ef82523fd0c6f31..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/Stub/CallableStub.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace React\Promise\Stub;
-
-class CallableStub
-{
-    public function __invoke()
-    {
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/TestCase.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/TestCase.php
deleted file mode 100644
index c9274f445dd7676a8cd6a86c6a6fff15e4994a2d..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/TestCase.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class TestCase extends \PHPUnit_Framework_TestCase
-{
-    public function expectCallableExactly($amount)
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->exactly($amount))
-            ->method('__invoke');
-
-        return $mock;
-    }
-
-    public function expectCallableOnce()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->once())
-            ->method('__invoke');
-
-        return $mock;
-    }
-
-    public function expectCallableNever()
-    {
-        $mock = $this->createCallableMock();
-        $mock
-            ->expects($this->never())
-            ->method('__invoke');
-
-        return $mock;
-    }
-
-    public function createCallableMock()
-    {
-        return $this
-            ->getMockBuilder('React\\Promise\Stub\CallableStub')
-            ->getMock();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/bootstrap.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/bootstrap.php
deleted file mode 100644
index 9b7f872a5fc6732ef685bed412ed1ec6847ee3e4..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/bootstrap.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-$loader = @include __DIR__.'/../vendor/autoload.php';
-if (!$loader) {
-    $loader = require __DIR__.'/../../../../vendor/autoload.php';
-}
-$loader->addPsr4('React\\Promise\\', __DIR__);
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestPromise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestPromise.php
deleted file mode 100644
index ef4d5301c122403689ea091167d19e20288b37be..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestPromise.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class SimpleFulfilledTestPromise implements PromiseInterface
-{
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        try {
-            if ($onFulfilled) {
-                $onFulfilled('foo');
-            }
-
-            return new self();
-        } catch (\Throwable $exception) {
-            return new RejectedPromise($exception);
-        } catch (\Exception $exception) {
-            return new RejectedPromise($exception);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestThenable.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestThenable.php
deleted file mode 100644
index 3f66f6360fe096a4366434e78d8d0d718078b552..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleFulfilledTestThenable.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class SimpleFulfilledTestThenable
-{
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        try {
-            if ($onFulfilled) {
-                $onFulfilled('foo');
-            }
-
-            return new self();
-        } catch (\Throwable $exception) {
-            return new RejectedPromise($exception);
-        } catch (\Exception $exception) {
-            return new RejectedPromise($exception);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleRejectedTestPromise.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleRejectedTestPromise.php
deleted file mode 100644
index b30a2265dee2176cb4e0f54ae0140b8567ca4e85..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleRejectedTestPromise.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class SimpleRejectedTestPromise implements PromiseInterface
-{
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        try {
-            if ($onRejected) {
-                $onRejected('foo');
-            }
-
-            return new self();
-        } catch (\Throwable $exception) {
-            return new RejectedPromise($exception);
-        } catch (\Exception $exception) {
-            return new RejectedPromise($exception);
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellable.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellable.php
deleted file mode 100644
index f232a68f22f3ee8c5546eec19c448e4c89f33f3e..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellable.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class SimpleTestCancellable
-{
-    public $cancelCalled = false;
-
-    public function cancel()
-    {
-        $this->cancelCalled = true;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellableThenable.php b/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellableThenable.php
deleted file mode 100644
index c0f15933a3da11b3690b630a3640d6f4416d13ac..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/elasticsearch-php/vendor/react/promise/tests/fixtures/SimpleTestCancellableThenable.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace React\Promise;
-
-class SimpleTestCancellableThenable
-{
-    public $cancelCalled = false;
-
-    public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
-    {
-        return new self();
-    }
-
-    public function cancel()
-    {
-        $this->cancelCalled = true;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/.travis.yml b/apps/maarch_entreprise/tools/phpxmlrpc/.travis.yml
deleted file mode 100644
index 7bf9067f2d6421f3820822a7e10f4d2f243c2fd1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/.travis.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-language: php
-
-php:
-  - 5.3
-  - 5.4
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-matrix:
-    # current versions of hhvm do fail one test... see https://github.com/facebook/hhvm/issues/4837
-    allow_failures:
-        - php: hhvm
-
-before_install:
-  # This is mandatory or the 'apt-get install' calls following will fail
-  - sudo apt-get update -qq
-  - sudo apt-get install -y apache2 libapache2-mod-fastcgi
-  - sudo apt-get install -y privoxy
-
-install:
-  - composer self-update && composer install
-
-before_script:
-  # Disable xdebug for speed.
-  # NB: this should NOT be done for hhvm and php 7.0.
-  # Also we use the php 5.6 run to generate code coverage reports, and we need xdebug for that
-  - if [ "$TRAVIS_PHP_VERSION" != "hhvm" -a "$TRAVIS_PHP_VERSION" != "7.0" -a "$TRAVIS_PHP_VERSION" != "5.6" ]; then phpenv config-rm xdebug.ini; fi
-
-  # Set up Apache and Privoxy instances inside the Travis VM and use them for testing against
-  - if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then ./tests/ci/travis/setup_php_fpm.sh; ./tests/ci/travis/setup_apache.sh; fi
-  - if [ "$TRAVIS_PHP_VERSION" = "hhvm" ]; then ./tests/ci/travis/setup_hhvm.sh; ./tests/ci/travis/setup_apache_hhvm.sh; fi
-  - ./tests/ci/travis/setup_privoxy.sh
-
-script:
-  # Travis currently compiles PHP with an oldish cURL/GnuTLS combination;
-  # to make the tests pass when Apache has a bogus SSL cert whe need the full set of options below
-  vendor/bin/phpunit --coverage-clover=coverage.clover tests LOCALSERVER=localhost URI=/demo/server/server.php HTTPSSERVER=localhost HTTPSURI=/demo/server/server.php PROXY=localhost:8080 HTTPSVERIFYHOST=0 HTTPSIGNOREPEER=1 SSLVERSION=3 DEBUG=1
-
-after_failure:
-  # Save as much info as we can to help developers
-  - cat apache_error.log
-  - cat apache_access.log
-  #- cat /var/log/hhvm/error.log
-  #- if [ "$TRAVIS_PHP_VERSION" = "hhvm" ]; then php -i; fi
-
-after_script:
-  # Upload code-coverage to Scrutinizer
-  - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then wget https://scrutinizer-ci.com/ocular.phar; fi
-  - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi
-  # Upload code-coverage CodeClimate
-  - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then CODECLIMATE_REPO_TOKEN=7fa6ee01e345090e059e5e42f3bfbcc8692feb8340396382dd76390a3019ac13 ./vendor/bin/test-reporter --coverage-report=coverage.clover; fi
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc.inc b/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc.inc
deleted file mode 100644
index 28b47d38d0663047a0c835c154e4b2a1ab888790..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc.inc
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-// by Edd Dumbill (C) 1999-2002
-// <edd@usefulinc.com>
-
-// Copyright (c) 1999,2000,2002 Edd Dumbill.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    * Redistributions of source code must retain the above copyright
-//      notice, this list of conditions and the following disclaimer.
-//
-//    * Redistributions in binary form must reproduce the above
-//      copyright notice, this list of conditions and the following
-//      disclaimer in the documentation and/or other materials provided
-//      with the distribution.
-//
-//    * Neither the name of the "XML-RPC for PHP" nor the names of its
-//      contributors may be used to endorse or promote products derived
-//      from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-// OF THE POSSIBILITY OF SUCH DAMAGE.
-
-/******************************************************************************
- *
- * *** DEPRECATED ***
- *
- * This file is only used to insure backwards compatibility
- * with the API of the library <= rev. 3
- *
- * If it is included, the library will work without any further autoloading
- *****************************************************************************/
-
-include_once(__DIR__.'/../src/PhpXmlRpc.php');
-include_once(__DIR__.'/../src/Value.php');
-include_once(__DIR__.'/../src/Request.php');
-include_once(__DIR__.'/../src/Response.php');
-include_once(__DIR__.'/../src/Client.php');
-include_once(__DIR__.'/../src/Encoder.php');
-include_once(__DIR__.'/../src/Helper/Charset.php');
-include_once(__DIR__.'/../src/Helper/Date.php');
-include_once(__DIR__.'/../src/Helper/Http.php');
-include_once(__DIR__.'/../src/Helper/Logger.php');
-include_once(__DIR__.'/../src/Helper/XMLParser.php');
-
-
-/* Expose the global variables which used to be defined */
-PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding = 'ISO-8859-1'; // old default
-PhpXmlRpc\PhpXmlRpc::exportGlobals();
-
-/* some stuff deprecated enough that we do not want to put it in the new lib version */
-
-/// @deprecated
-$GLOBALS['xmlEntities'] = array(
-    'amp'  => '&',
-    'quot' => '"',
-    'lt'   => '<',
-    'gt'   => '>',
-    'apos' => "'"
-);
-
-// formulate backslashes for escaping regexp
-// Not in use anymore since 2.0. Shall we remove it?
-/// @deprecated
-$GLOBALS['xmlrpc_backslash'] = chr(92).chr(92);
-
-/* Expose with the old names the classes which have been namespaced */
-
-class xmlrpcval extends PhpXmlRpc\Value
-{
-    /**
-     * @deprecated
-     * @param xmlrpcval $o
-     * @return string
-     */
-    public function serializeval($o)
-    {
-        // add check? slower, but helps to avoid recursion in serializing broken xmlrpcvals...
-        //if (is_object($o) && (get_class($o) == 'xmlrpcval' || is_subclass_of($o, 'xmlrpcval')))
-        //{
-        $ar = $o->me;
-        reset($ar);
-        list($typ, $val) = each($ar);
-
-        return '<value>' . $this->serializedata($typ, $val) . "</value>\n";
-        //}
-    }
-
-    /**
-     * @deprecated this code looks like it is very fragile and has not been fixed
-     * for a long long time. Shall we remove it for 2.0?
-     */
-    public function getval()
-    {
-        // UNSTABLE
-        reset($this->me);
-        list($a, $b) = each($this->me);
-        // contributed by I Sofer, 2001-03-24
-        // add support for nested arrays to scalarval
-        // i've created a new method here, so as to
-        // preserve back compatibility
-
-        if (is_array($b)) {
-            @reset($b);
-            while (list($id, $cont) = @each($b)) {
-                $b[$id] = $cont->scalarval();
-            }
-        }
-
-        // add support for structures directly encoding php objects
-        if (is_object($b)) {
-            $t = get_object_vars($b);
-            @reset($t);
-            while (list($id, $cont) = @each($t)) {
-                $t[$id] = $cont->scalarval();
-            }
-            @reset($t);
-            while (list($id, $cont) = @each($t)) {
-                @$b->$id = $cont;
-            }
-        }
-        // end contrib
-        return $b;
-    }
-
-    /// reset functionality added by parent class: same as it would happen if no interface was declared
-    public function count()
-    {
-        return 1;
-    }
-
-    /// reset functionality added by parent class: same as it would happen if no interface was declared
-    public function getIterator() {
-        return new ArrayIterator($this);
-    }
-}
-
-class xmlrpcmsg extends PhpXmlRpc\Request
-{
-}
-
-class xmlrpcresp extends PhpXmlRpc\Response
-{
-}
-
-class xmlrpc_client extends PhpXmlRpc\Client
-{
-}
-
-/* Expose as global functions the ones which are now class methods */
-
-/// Wrong speling, but we are adamant on backwards compatibility!
-function xmlrpc_encode_entitites($data, $srcEncoding='', $destEncoding='')
-{
-    return PhpXmlRpc\Helper\Charset::instance()->encodeEntitites($data, $srcEncoding, $destEncoding);
-}
-
-function iso8601_encode($timeT, $utc=0)
-{
-    return PhpXmlRpc\Helper\Date::iso8601Encode($timeT, $utc);
-}
-
-function iso8601_decode($iDate, $utc=0)
-{
-    return PhpXmlRpc\Helper\Date::iso8601Decode($iDate, $utc);
-}
-
-function decode_chunked($buffer)
-{
-    return PhpXmlRpc\Helper\Http::decodeChunked($buffer);
-}
-
-function php_xmlrpc_decode($xmlrpcVal, $options=array())
-{
-    $encoder = new PhpXmlRpc\Encoder();
-    return $encoder->decode($xmlrpcVal, $options);
-}
-
-function php_xmlrpc_encode($phpVal, $options=array())
-{
-    $encoder = new PhpXmlRpc\Encoder();
-    return $encoder->encode($phpVal, $options);
-}
-
-function php_xmlrpc_decode_xml($xmlVal, $options=array())
-{
-    $encoder = new PhpXmlRpc\Encoder();
-    return $encoder->decodeXml($xmlVal, $options);
-}
-
-function guess_encoding($httpHeader='', $xmlChunk='', $encodingPrefs=null)
-{
-    return PhpXmlRpc\Helper\XMLParser::guessEncoding($httpHeader, $xmlChunk, $encodingPrefs);
-}
-
-function has_encoding($xmlChunk)
-{
-    return PhpXmlRpc\Helper\XMLParser::hasEncoding($xmlChunk);
-}
-
-function is_valid_charset($encoding, $validList)
-{
-    return PhpXmlRpc\Helper\Charset::instance()->isValidCharset($encoding, $validList);
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc_wrappers.inc b/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc_wrappers.inc
deleted file mode 100644
index 3c2390a21506e23f139209e6e4f50812aeb466f3..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpc_wrappers.inc
+++ /dev/null
@@ -1,243 +0,0 @@
-<?php
-
-/******************************************************************************
- *
- * *** DEPRECATED ***
- *
- * This file is only used to insure backwards compatibility
- * with the API of the library <= rev. 3
- *****************************************************************************/
-
-include_once(__DIR__.'/../src/Wrapper.php');
-
-/* Expose as global functions the ones which are now class methods */
-
-/**
- * @see PhpXmlRpc\Wrapper::php_2_xmlrpc_type
- * @param string $phpType
- * @return string
- */
-function php_2_xmlrpc_type($phpType)
-{
-    $wrapper = new PhpXmlRpc\Wrapper();
-    return $wrapper->php2XmlrpcType($phpType);
-}
-
-/**
- * @see PhpXmlRpc\Wrapper::xmlrpc_2_php_type
- * @param string $xmlrpcType
- * @return string
- */
-function xmlrpc_2_php_type($xmlrpcType)
-{
-    $wrapper = new PhpXmlRpc\Wrapper();
-    return $wrapper->xmlrpc2PhpType($xmlrpcType);
-}
-
-/**
- * @see PhpXmlRpc\Wrapper::wrap_php_function
- * @param callable $funcName
- * @param string $newFuncName
- * @param array $extraOptions
- * @return array|false
- */
-function wrap_php_function($funcName, $newFuncName='', $extraOptions=array())
-{
-    $wrapper = new PhpXmlRpc\Wrapper();
-    if (!isset($extraOptions['return_source'])  || $extraOptions['return_source'] == false) {
-        // backwards compat: return string instead of callable
-        $extraOptions['return_source'] = true;
-        $wrapped = $wrapper->wrapPhpFunction($funcName, $newFuncName, $extraOptions);
-        eval($wrapped['source']);
-    } else {
-        $wrapped = $wrapper->wrapPhpFunction($funcName, $newFuncName, $extraOptions);
-    }
-    return $wrapped;
-}
-
-/**
- * NB: this function returns an array in a format which is unsuitable for direct use in the server dispatch map, unlike
- * PhpXmlRpc\Wrapper::wrapPhpClass. This behaviour might seem like a bug, but has been kept for backwards compatibility.
- *
- * @see PhpXmlRpc\Wrapper::wrap_php_class
- * @param string|object $className
- * @param array $extraOptions
- * @return array|false
- */
-function wrap_php_class($className, $extraOptions=array())
-{
-    $wrapper = new PhpXmlRpc\Wrapper();
-    $fix = false;
-    if (!isset($extraOptions['return_source'])  || $extraOptions['return_source'] == false) {
-        // backwards compat: return string instead of callable
-        $extraOptions['return_source'] = true;
-        $fix = true;
-    }
-    $wrapped = $wrapper->wrapPhpClass($className, $extraOptions);
-    foreach($wrapped as $name => $value) {
-        if ($fix) {
-            eval($value['source']);
-        }
-        $wrapped[$name] = $value['function'];
-    }
-    return $wrapped;
-}
-
-/**
- * @see PhpXmlRpc\Wrapper::wrapXmlrpcMethod
- * @param xmlrpc_client $client
- * @param string $methodName
- * @param int|array $extraOptions the usage of an int as signature number is deprecated, use an option in $extraOptions
- * @param int $timeout            deprecated, use an option in $extraOptions
- * @param string $protocol        deprecated, use an option in $extraOptions
- * @param string $newFuncName     deprecated, use an option in $extraOptions
- * @return array|callable|false
- */
-function wrap_xmlrpc_method($client, $methodName, $extraOptions=0, $timeout=0, $protocol='', $newFuncName='')
-{
-    if (!is_array($extraOptions))
-    {
-        $sigNum = $extraOptions;
-        $extraOptions = array(
-            'signum' => $sigNum,
-            'timeout' => $timeout,
-            'protocol' => $protocol,
-            'new_function_name' => $newFuncName
-        );
-    }
-
-    $wrapper = new PhpXmlRpc\Wrapper();
-
-    if (!isset($extraOptions['return_source'])  || $extraOptions['return_source'] == false) {
-        // backwards compat: return string instead of callable
-        $extraOptions['return_source'] = true;
-        $wrapped = $wrapper->wrapXmlrpcMethod($client, $methodName, $extraOptions);
-        eval($wrapped['source']);
-        $wrapped = $wrapped['function'];
-    } else {
-        $wrapped = $wrapper->wrapXmlrpcMethod($client, $methodName, $extraOptions);
-    }
-    return $wrapped;
-}
-
-/**
- * @see PhpXmlRpc\Wrapper::wrap_xmlrpc_server
- * @param xmlrpc_client $client
- * @param array $extraOptions
- * @return mixed
- */
-function wrap_xmlrpc_server($client, $extraOptions=array())
-{
-    $wrapper = new PhpXmlRpc\Wrapper();
-    return $wrapper->wrapXmlrpcServer($client, $extraOptions);
-}
-
-/**
- * Given the necessary info, build php code that creates a new function to invoke a remote xmlrpc method.
- * Take care that no full checking of input parameters is done to ensure that valid php code is emitted.
- * Only kept for backwards compatibility
- * Note: real spaghetti code follows...
- *
- * @deprecated
- */
-function build_remote_method_wrapper_code($client, $methodName, $xmlrpcFuncName,
-     $mSig, $mDesc = '', $timeout = 0, $protocol = '', $clientCopyMode = 0, $prefix = 'xmlrpc',
-     $decodePhpObjects = false, $encodePhpObjects = false, $decodeFault = false,
-     $faultResponse = '', $namespace = '\\PhpXmlRpc\\')
-{
-    $code = "function $xmlrpcFuncName (";
-    if ($clientCopyMode < 2) {
-        // client copy mode 0 or 1 == partial / full client copy in emitted code
-        $innerCode = build_client_wrapper_code($client, $clientCopyMode, $prefix, $namespace);
-        $innerCode .= "\$client->setDebug(\$debug);\n";
-        $this_ = '';
-    } else {
-        // client copy mode 2 == no client copy in emitted code
-        $innerCode = '';
-        $this_ = 'this->';
-    }
-    $innerCode .= "\$req = new {$namespace}Request('$methodName');\n";
-
-    if ($mDesc != '') {
-        // take care that PHP comment is not terminated unwillingly by method description
-        $mDesc = "/**\n* " . str_replace('*/', '* /', $mDesc) . "\n";
-    } else {
-        $mDesc = "/**\nFunction $xmlrpcFuncName\n";
-    }
-
-    // param parsing
-    $innerCode .= "\$encoder = new {$namespace}Encoder();\n";
-    $plist = array();
-    $pCount = count($mSig);
-    for ($i = 1; $i < $pCount; $i++) {
-        $plist[] = "\$p$i";
-        $pType = $mSig[$i];
-        if ($pType == 'i4' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' ||
-            $pType == 'string' || $pType == 'dateTime.iso8601' || $pType == 'base64' || $pType == 'null'
-        ) {
-            // only build directly xmlrpc values when type is known and scalar
-            $innerCode .= "\$p$i = new {$namespace}Value(\$p$i, '$pType');\n";
-        } else {
-            if ($encodePhpObjects) {
-                $innerCode .= "\$p$i = \$encoder->encode(\$p$i, array('encode_php_objs'));\n";
-            } else {
-                $innerCode .= "\$p$i = \$encoder->encode(\$p$i);\n";
-            }
-        }
-        $innerCode .= "\$req->addparam(\$p$i);\n";
-        $mDesc .= '* @param ' . xmlrpc_2_php_type($pType) . " \$p$i\n";
-    }
-    if ($clientCopyMode < 2) {
-        $plist[] = '$debug=0';
-        $mDesc .= "* @param int \$debug when 1 (or 2) will enable debugging of the underlying {$prefix} call (defaults to 0)\n";
-    }
-    $plist = implode(', ', $plist);
-    $mDesc .= '* @return ' . xmlrpc_2_php_type($mSig[0]) . " (or an {$namespace}Response obj instance if call fails)\n*/\n";
-
-    $innerCode .= "\$res = \${$this_}client->send(\$req, $timeout, '$protocol');\n";
-    if ($decodeFault) {
-        if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) || (strpos($faultResponse, '%faultString%') !== false))) {
-            $respCode = "str_replace(array('%faultCode%', '%faultString%'), array(\$res->faultCode(), \$res->faultString()), '" . str_replace("'", "''", $faultResponse) . "')";
-        } else {
-            $respCode = var_export($faultResponse, true);
-        }
-    } else {
-        $respCode = '$res';
-    }
-    if ($decodePhpObjects) {
-        $innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value(), array('decode_php_objs'));";
-    } else {
-        $innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value());";
-    }
-
-    $code = $code . $plist . ") {\n" . $innerCode . "\n}\n";
-
-    return array('source' => $code, 'docstring' => $mDesc);
-}
-
-/**
- * @deprecated
- */
-function build_client_wrapper_code($client, $verbatim_client_copy, $prefix='xmlrpc')
-{
-    $code = "\$client = new {$prefix}_client('".str_replace("'", "\'", $client->path).
-        "', '" . str_replace("'", "\'", $client->server) . "', $client->port);\n";
-
-    // copy all client fields to the client that will be generated runtime
-    // (this provides for future expansion or subclassing of client obj)
-    if ($verbatim_client_copy)
-    {
-        foreach($client as $fld => $val)
-        {
-            if($fld != 'debug' && $fld != 'return_type')
-            {
-                $val = var_export($val, true);
-                $code .= "\$client->$fld = $val;\n";
-            }
-        }
-    }
-    // only make sure that client always returns the correct data type
-    $code .= "\$client->return_type = '{$prefix}vals';\n";
-    //$code .= "\$client->setDebug(\$debug);\n";
-    return $code;
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpcs.inc b/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpcs.inc
deleted file mode 100644
index 71cde1ff5da6ead7fe00cebfdb9e0fe6c8b72941..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/lib/xmlrpcs.inc
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-// by Edd Dumbill (C) 1999-2002
-// <edd@usefulinc.com>
-
-// Copyright (c) 1999,2000,2002 Edd Dumbill.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    * Redistributions of source code must retain the above copyright
-//      notice, this list of conditions and the following disclaimer.
-//
-//    * Redistributions in binary form must reproduce the above
-//      copyright notice, this list of conditions and the following
-//      disclaimer in the documentation and/or other materials provided
-//      with the distribution.
-//
-//    * Neither the name of the "XML-RPC for PHP" nor the names of its
-//      contributors may be used to endorse or promote products derived
-//      from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-// OF THE POSSIBILITY OF SUCH DAMAGE.
-
-/******************************************************************************
- *
- * *** DEPRECATED ***
- *
- * This file is only used to insure backwards compatibility
- * with the API of the library <= rev. 3
- *****************************************************************************/
-
-include_once(__DIR__.'/../src/Server.php');
-
-class xmlrpc_server extends PhpXmlRpc\Server
-{
-    /**
-     * A debugging routine: just echoes back the input packet as a string value
-     * @deprecated
-     */
-    public function echoInput()
-    {
-        $r = new Response(new PhpXmlRpc\Value("'Aha said I: '" . file_get_contents('php://input'), 'string'));
-        print $r->serialize();
-    }
-}
-
-/* Expose as global functions the ones which are now class methods */
-
-/**
- * @see PhpXmlRpc\Server::xmlrpc_debugmsg
- * @param string $m
- */
-function xmlrpc_debugmsg($m)
-{
-    PhpXmlRpc\Server::xmlrpc_debugmsg($m);
-}
-
-function _xmlrpcs_getCapabilities($server, $m=null)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_getCapabilities($server, $m);
-}
-
-$_xmlrpcs_listMethods_sig=array(array($GLOBALS['xmlrpcArray']));
-$_xmlrpcs_listMethods_doc='This method lists all the methods that the XML-RPC server knows how to dispatch';
-$_xmlrpcs_listMethods_sdoc=array(array('list of method names'));
-function _xmlrpcs_listMethods($server, $m=null) // if called in plain php values mode, second param is missing
-{
-    return PhpXmlRpc\Server::_xmlrpcs_listMethods($server, $m);
-}
-
-$_xmlrpcs_methodSignature_sig=array(array($GLOBALS['xmlrpcArray'], $GLOBALS['xmlrpcString']));
-$_xmlrpcs_methodSignature_doc='Returns an array of known signatures (an array of arrays) for the method name passed. If no signatures are known, returns a none-array (test for type != array to detect missing signature)';
-$_xmlrpcs_methodSignature_sdoc=array(array('list of known signatures, each sig being an array of xmlrpc type names', 'name of method to be described'));
-function _xmlrpcs_methodSignature($server, $m)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_methodSignature($server, $m);
-}
-
-$_xmlrpcs_methodHelp_sig=array(array($GLOBALS['xmlrpcString'], $GLOBALS['xmlrpcString']));
-$_xmlrpcs_methodHelp_doc='Returns help text if defined for the method passed, otherwise returns an empty string';
-$_xmlrpcs_methodHelp_sdoc=array(array('method description', 'name of the method to be described'));
-function _xmlrpcs_methodHelp($server, $m)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_methodHelp($server, $m);
-}
-
-function _xmlrpcs_multicall_error($err)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_multicall_error($err);
-}
-
-function _xmlrpcs_multicall_do_call($server, $call)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_multicall_do_call($server, $call);
-}
-
-function _xmlrpcs_multicall_do_call_phpvals($server, $call)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_multicall_do_call_phpvals($server, $call);
-}
-
-$_xmlrpcs_multicall_sig = array(array($GLOBALS['xmlrpcArray'], $GLOBALS['xmlrpcArray']));
-$_xmlrpcs_multicall_doc = 'Boxcar multiple RPC calls in one request. See http://www.xmlrpc.com/discuss/msgReader$1208 for details';
-$_xmlrpcs_multicall_sdoc = array(array('list of response structs, where each struct has the usual members', 'list of calls, with each call being represented as a struct, with members "methodname" and "params"'));
-function _xmlrpcs_multicall($server, $m)
-{
-    return PhpXmlRpc\Server::_xmlrpcs_multicall($server, $m);
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/license.txt b/apps/maarch_entreprise/tools/phpxmlrpc/license.txt
deleted file mode 100644
index 37313ac2dd7f503f9df541b93a3e9170b5aeca49..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/license.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Software License Agreement (BSD License)
-
-Copyright (c) 1999,2000,2001 Edd Dumbill, Useful Information Company
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this 
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name of the "XML-RPC for PHP" nor the names of its contributors
-   may be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Autoloader.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Autoloader.php
deleted file mode 100644
index 40ec2190c236c8e1428bfa20063d6ecf74aadaec..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Autoloader.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-/**
- * In the unlikely event that you are not using Composer to manage class autoloading, here's an autoloader for this lib.
- * For usage, see any file in the demo/client directory
- */
-class Autoloader
-{
-    /**
-     * Registers PhpXmlRpc\Autoloader as an SPL autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not.
-     */
-    public static function register($prepend = false)
-    {
-        spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
-    }
-
-    /**
-     * Handles autoloading of classes.
-     *
-     * @param string $class A class name.
-     */
-    public static function autoload($class)
-    {
-        if (0 !== strpos($class, 'PhpXmlRpc\\')) {
-            return;
-        }
-
-        if (is_file($file = __DIR__ . str_replace(array('PhpXmlRpc\\', '\\'), '/', $class).'.php')) {
-            require $file;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Client.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Client.php
deleted file mode 100644
index 8fce70452cea1f8d90dabb1fef91da8e8c63a8b8..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Client.php
+++ /dev/null
@@ -1,1090 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\Logger;
-
-class Client
-{
-    /// @todo: do these need to be public?
-    public $method = 'http';
-    public $server;
-    public $port = 0;
-    public $path;
-
-    public $errno;
-    public $errstr;
-    public $debug = 0;
-
-    public $username = '';
-    public $password = '';
-    public $authtype = 1;
-
-    public $cert = '';
-    public $certpass = '';
-    public $cacert = '';
-    public $cacertdir = '';
-    public $key = '';
-    public $keypass = '';
-    public $verifypeer = true;
-    public $verifyhost = 2;
-    public $sslversion = 0; // corresponds to CURL_SSLVERSION_DEFAULT
-
-    public $proxy = '';
-    public $proxyport = 0;
-    public $proxy_user = '';
-    public $proxy_pass = '';
-    public $proxy_authtype = 1;
-
-    public $cookies = array();
-    public $extracurlopts = array();
-
-    public $no_multicall = false;
-
-    /**
-     * List of http compression methods accepted by the client for responses.
-     * NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib.
-     *
-     * NNB: you can set it to any non-empty array for HTTP11 and HTTPS, since
-     * in those cases it will be up to CURL to decide the compression methods
-     * it supports. You might check for the presence of 'zlib' in the output of
-     * curl_version() to determine wheter compression is supported or not
-     */
-    public $accepted_compression = array();
-    /**
-     * Name of compression scheme to be used for sending requests.
-     * Either null, gzip or deflate.
-     */
-    public $request_compression = '';
-    /**
-     * CURL handle: used for keep-alive connections (PHP 4.3.8 up, see:
-     * http://curl.haxx.se/docs/faq.html#7.3).
-     */
-    public $xmlrpc_curl_handle = null;
-    /// Whether to use persistent connections for http 1.1 and https
-    public $keepalive = false;
-    /// Charset encodings that can be decoded without problems by the client
-    public $accepted_charset_encodings = array();
-    /// Charset encoding to be used in serializing request. NULL = use ASCII
-    public $request_charset_encoding = '';
-    /**
-     * Decides the content of Response objects returned by calls to send()
-     * valid strings are 'xmlrpcvals', 'phpvals' or 'xml'.
-     */
-    public $return_type = 'xmlrpcvals';
-    /**
-     * Sent to servers in http headers.
-     */
-    public $user_agent;
-
-    /**
-     * @param string $path either the complete server URL or the PATH part of the xmlrc server URL, e.g. /xmlrpc/server.php
-     * @param string $server the server name / ip address
-     * @param integer $port the port the server is listening on, defaults to 80 or 443 depending on protocol used
-     * @param string $method the http protocol variant: defaults to 'http', 'https' and 'http11' can be used if CURL is installed
-     */
-    public function __construct($path, $server = '', $port = '', $method = '')
-    {
-        // allow user to specify all params in $path
-        if ($server == '' and $port == '' and $method == '') {
-            $parts = parse_url($path);
-            $server = $parts['host'];
-            $path = isset($parts['path']) ? $parts['path'] : '';
-            if (isset($parts['query'])) {
-                $path .= '?' . $parts['query'];
-            }
-            if (isset($parts['fragment'])) {
-                $path .= '#' . $parts['fragment'];
-            }
-            if (isset($parts['port'])) {
-                $port = $parts['port'];
-            }
-            if (isset($parts['scheme'])) {
-                $method = $parts['scheme'];
-            }
-            if (isset($parts['user'])) {
-                $this->username = $parts['user'];
-            }
-            if (isset($parts['pass'])) {
-                $this->password = $parts['pass'];
-            }
-        }
-        if ($path == '' || $path[0] != '/') {
-            $this->path = '/' . $path;
-        } else {
-            $this->path = $path;
-        }
-        $this->server = $server;
-        if ($port != '') {
-            $this->port = $port;
-        }
-        if ($method != '') {
-            $this->method = $method;
-        }
-
-        // if ZLIB is enabled, let the client by default accept compressed responses
-        if (function_exists('gzinflate') || (
-                function_exists('curl_init') && (($info = curl_version()) &&
-                    ((is_string($info) && strpos($info, 'zlib') !== null) || isset($info['libz_version'])))
-            )
-        ) {
-            $this->accepted_compression = array('gzip', 'deflate');
-        }
-
-        // keepalives: enabled by default
-        $this->keepalive = true;
-
-        // by default the xml parser can support these 3 charset encodings
-        $this->accepted_charset_encodings = array('UTF-8', 'ISO-8859-1', 'US-ASCII');
-
-        // Add all charsets which mbstring can handle, but remove junk not found in IANA registry at
-        // in http://www.iana.org/assignments/character-sets/character-sets.xhtml
-        // NB: this is disabled to avoid making all the requests sent huge... mbstring supports more than 80 charsets!
-        /*if (function_exists('mb_list_encodings')) {
-
-            $encodings = array_diff(mb_list_encodings(), array('pass', 'auto', 'wchar', 'BASE64', 'UUENCODE', 'ASCII',
-                'HTML-ENTITIES', 'Quoted-Printable', '7bit','8bit', 'byte2be', 'byte2le', 'byte4be', 'byte4le'));
-            $this->accepted_charset_encodings = array_unique(array_merge($this->accepted_charset_encodings, $encodings));
-        }*/
-
-        // initialize user_agent string
-        $this->user_agent = PhpXmlRpc::$xmlrpcName . ' ' . PhpXmlRpc::$xmlrpcVersion;
-    }
-
-    /**
-     * Enables/disables the echoing to screen of the xmlrpc responses received.
-     *
-     * @param integer $in values 0, 1 and 2 are supported (2 = echo sent msg too, before received response)
-     */
-    public function setDebug($in)
-    {
-        $this->debug = $in;
-    }
-
-    /**
-     * Add some http BASIC AUTH credentials, used by the client to authenticate.
-     *
-     * @param string $u username
-     * @param string $p password
-     * @param integer $t auth type. See curl_setopt man page for supported auth types. Defaults to CURLAUTH_BASIC (basic auth)
-     */
-    public function setCredentials($u, $p, $t = 1)
-    {
-        $this->username = $u;
-        $this->password = $p;
-        $this->authtype = $t;
-    }
-
-    /**
-     * Add a client-side https certificate.
-     *
-     * @param string $cert
-     * @param string $certPass
-     */
-    public function setCertificate($cert, $certPass)
-    {
-        $this->cert = $cert;
-        $this->certpass = $certPass;
-    }
-
-    /**
-     * Add a CA certificate to verify server with (see man page about
-     * CURLOPT_CAINFO for more details).
-     *
-     * @param string $caCert certificate file name (or dir holding certificates)
-     * @param bool $isDir set to true to indicate cacert is a dir. defaults to false
-     */
-    public function setCaCertificate($caCert, $isDir = false)
-    {
-        if ($isDir) {
-            $this->cacertdir = $caCert;
-        } else {
-            $this->cacert = $caCert;
-        }
-    }
-
-    /**
-     * Set attributes for SSL communication: private SSL key
-     * NB: does not work in older php/curl installs
-     * Thanks to Daniel Convissor.
-     *
-     * @param string $key The name of a file containing a private SSL key
-     * @param string $keyPass The secret password needed to use the private SSL key
-     */
-    public function setKey($key, $keyPass)
-    {
-        $this->key = $key;
-        $this->keypass = $keyPass;
-    }
-
-    /**
-     * Set attributes for SSL communication: verify server certificate.
-     *
-     * @param bool $i enable/disable verification of peer certificate
-     */
-    public function setSSLVerifyPeer($i)
-    {
-        $this->verifypeer = $i;
-    }
-
-    /**
-     * Set attributes for SSL communication: verify match of server cert w. hostname.
-     *
-     * @param int $i
-     */
-    public function setSSLVerifyHost($i)
-    {
-        $this->verifyhost = $i;
-    }
-
-    /**
-     * Set attributes for SSL communication: SSL version to use. Best left at 0 (default value ): let cURL decide
-     *
-     * @param int $i
-     */
-    public function setSSLVersion($i)
-    {
-        $this->sslversion = $i;
-    }
-
-    /**
-     * Set proxy info.
-     *
-     * @param string $proxyHost
-     * @param string $proxyPort Defaults to 8080 for HTTP and 443 for HTTPS
-     * @param string $proxyUsername Leave blank if proxy has public access
-     * @param string $proxyPassword Leave blank if proxy has public access
-     * @param int $proxyAuthType set to constant CURLAUTH_NTLM to use NTLM auth with proxy
-     */
-    public function setProxy($proxyHost, $proxyPort, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1)
-    {
-        $this->proxy = $proxyHost;
-        $this->proxyport = $proxyPort;
-        $this->proxy_user = $proxyUsername;
-        $this->proxy_pass = $proxyPassword;
-        $this->proxy_authtype = $proxyAuthType;
-    }
-
-    /**
-     * Enables/disables reception of compressed xmlrpc responses.
-     * Note that enabling reception of compressed responses merely adds some standard
-     * http headers to xmlrpc requests. It is up to the xmlrpc server to return
-     * compressed responses when receiving such requests.
-     *
-     * @param string $compMethod either 'gzip', 'deflate', 'any' or ''
-     */
-    public function setAcceptedCompression($compMethod)
-    {
-        if ($compMethod == 'any') {
-            $this->accepted_compression = array('gzip', 'deflate');
-        } elseif ($compMethod == false) {
-            $this->accepted_compression = array();
-        } else {
-            $this->accepted_compression = array($compMethod);
-        }
-    }
-
-    /**
-     * Enables/disables http compression of xmlrpc request.
-     * Take care when sending compressed requests: servers might not support them
-     * (and automatic fallback to uncompressed requests is not yet implemented).
-     *
-     * @param string $compMethod either 'gzip', 'deflate' or ''
-     */
-    public function setRequestCompression($compMethod)
-    {
-        $this->request_compression = $compMethod;
-    }
-
-    /**
-     * Adds a cookie to list of cookies that will be sent to server.
-     * NB: setting any param but name and value will turn the cookie into a 'version 1' cookie:
-     * do not do it unless you know what you are doing.
-     *
-     * @param string $name
-     * @param string $value
-     * @param string $path
-     * @param string $domain
-     * @param int $port
-     *
-     * @todo check correctness of urlencoding cookie value (copied from php way of doing it...)
-     */
-    public function setCookie($name, $value = '', $path = '', $domain = '', $port = null)
-    {
-        $this->cookies[$name]['value'] = urlencode($value);
-        if ($path || $domain || $port) {
-            $this->cookies[$name]['path'] = $path;
-            $this->cookies[$name]['domain'] = $domain;
-            $this->cookies[$name]['port'] = $port;
-            $this->cookies[$name]['version'] = 1;
-        } else {
-            $this->cookies[$name]['version'] = 0;
-        }
-    }
-
-    /**
-     * Directly set cURL options, for extra flexibility
-     * It allows eg. to bind client to a specific IP interface / address.
-     *
-     * @param array $options
-     */
-    public function SetCurlOptions($options)
-    {
-        $this->extracurlopts = $options;
-    }
-
-    /**
-     * Set user-agent string that will be used by this client instance
-     * in http headers sent to the server.
-     *
-     * @param string $agentString
-     */
-    public function SetUserAgent($agentString)
-    {
-        $this->user_agent = $agentString;
-    }
-
-    /**
-     * Send an xmlrpc request.
-     *
-     * @param Request|Request[]|string $req The Request object, or an array of requests for using multicall, or the complete xml representation of a request
-     * @param integer $timeout Connection timeout, in seconds, If unspecified, a platform specific timeout will apply
-     * @param string $method if left unspecified, the http protocol chosen during creation of the object will be used
-     *
-     * @return Response|Response[]
-     */
-    public function send($req, $timeout = 0, $method = '')
-    {
-        // if user does not specify http protocol, use native method of this client
-        // (i.e. method set during call to constructor)
-        if ($method == '') {
-            $method = $this->method;
-        }
-
-        if (is_array($req)) {
-            // $req is an array of Requests
-            $r = $this->multicall($req, $timeout, $method);
-
-            return $r;
-        } elseif (is_string($req)) {
-            $n = new Request('');
-            $n->payload = $req;
-            $req = $n;
-        }
-
-        // where req is a Request
-        $req->setDebug($this->debug);
-
-        if ($method == 'https') {
-            $r = $this->sendPayloadHTTPS(
-                $req,
-                $this->server,
-                $this->port,
-                $timeout,
-                $this->username,
-                $this->password,
-                $this->authtype,
-                $this->cert,
-                $this->certpass,
-                $this->cacert,
-                $this->cacertdir,
-                $this->proxy,
-                $this->proxyport,
-                $this->proxy_user,
-                $this->proxy_pass,
-                $this->proxy_authtype,
-                $this->keepalive,
-                $this->key,
-                $this->keypass,
-                $this->sslversion
-            );
-        } elseif ($method == 'http11') {
-            $r = $this->sendPayloadCURL(
-                $req,
-                $this->server,
-                $this->port,
-                $timeout,
-                $this->username,
-                $this->password,
-                $this->authtype,
-                null,
-                null,
-                null,
-                null,
-                $this->proxy,
-                $this->proxyport,
-                $this->proxy_user,
-                $this->proxy_pass,
-                $this->proxy_authtype,
-                'http',
-                $this->keepalive
-            );
-        } else {
-            $r = $this->sendPayloadHTTP10(
-                $req,
-                $this->server,
-                $this->port,
-                $timeout,
-                $this->username,
-                $this->password,
-                $this->authtype,
-                $this->proxy,
-                $this->proxyport,
-                $this->proxy_user,
-                $this->proxy_pass,
-                $this->proxy_authtype,
-                $method
-            );
-        }
-
-        return $r;
-    }
-
-    /**
-     * @param Request $req
-     * @param string $server
-     * @param int $port
-     * @param int $timeout
-     * @param string $username
-     * @param string $password
-     * @param int $authType
-     * @param string $proxyHost
-     * @param int $proxyPort
-     * @param string $proxyUsername
-     * @param string $proxyPassword
-     * @param int $proxyAuthType
-     * @param string $method
-     * @return Response
-     */
-    protected function sendPayloadHTTP10($req, $server, $port, $timeout = 0,
-                                       $username = '', $password = '', $authType = 1, $proxyHost = '',
-                                       $proxyPort = 0, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1,
-                                       $method='http')
-    {
-        if ($port == 0) {
-            $port = ( $method === "https" ) ? 443 : 80;
-        }
-
-        // Only create the payload if it was not created previously
-        if (empty($req->payload)) {
-            $req->createPayload($this->request_charset_encoding);
-        }
-
-        $payload = $req->payload;
-        // Deflate request body and set appropriate request headers
-        if (function_exists('gzdeflate') && ($this->request_compression == 'gzip' || $this->request_compression == 'deflate')) {
-            if ($this->request_compression == 'gzip') {
-                $a = @gzencode($payload);
-                if ($a) {
-                    $payload = $a;
-                    $encodingHdr = "Content-Encoding: gzip\r\n";
-                }
-            } else {
-                $a = @gzcompress($payload);
-                if ($a) {
-                    $payload = $a;
-                    $encodingHdr = "Content-Encoding: deflate\r\n";
-                }
-            }
-        } else {
-            $encodingHdr = '';
-        }
-
-        // thanks to Grant Rauscher <grant7@firstworld.net> for this
-        $credentials = '';
-        if ($username != '') {
-            $credentials = 'Authorization: Basic ' . base64_encode($username . ':' . $password) . "\r\n";
-            if ($authType != 1) {
-                error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth is supported with HTTP 1.0');
-            }
-        }
-
-        $acceptedEncoding = '';
-        if (is_array($this->accepted_compression) && count($this->accepted_compression)) {
-            $acceptedEncoding = 'Accept-Encoding: ' . implode(', ', $this->accepted_compression) . "\r\n";
-        }
-
-        $proxyCredentials = '';
-        if ($proxyHost) {
-            if ($proxyPort == 0) {
-                $proxyPort = 8080;
-            }
-            $connectServer = $proxyHost;
-            $connectPort = $proxyPort;
-            $transport = "tcp";
-            $uri = 'http://' . $server . ':' . $port . $this->path;
-            if ($proxyUsername != '') {
-                if ($proxyAuthType != 1) {
-                    error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth to proxy is supported with HTTP 1.0');
-                }
-                $proxyCredentials = 'Proxy-Authorization: Basic ' . base64_encode($proxyUsername . ':' . $proxyPassword) . "\r\n";
-            }
-        } else {
-            $connectServer = $server;
-            $connectPort = $port;
-            /// @todo if supporting https, we should support all its current options as well: peer name verification etc...
-            $transport = ( $method === "https" ) ? "tls" : "tcp";
-            $uri = $this->path;
-        }
-
-        // Cookie generation, as per rfc2965 (version 1 cookies) or
-        // netscape's rules (version 0 cookies)
-        $cookieHeader = '';
-        if (count($this->cookies)) {
-            $version = '';
-            foreach ($this->cookies as $name => $cookie) {
-                if ($cookie['version']) {
-                    $version = ' $Version="' . $cookie['version'] . '";';
-                    $cookieHeader .= ' ' . $name . '="' . $cookie['value'] . '";';
-                    if ($cookie['path']) {
-                        $cookieHeader .= ' $Path="' . $cookie['path'] . '";';
-                    }
-                    if ($cookie['domain']) {
-                        $cookieHeader .= ' $Domain="' . $cookie['domain'] . '";';
-                    }
-                    if ($cookie['port']) {
-                        $cookieHeader .= ' $Port="' . $cookie['port'] . '";';
-                    }
-                } else {
-                    $cookieHeader .= ' ' . $name . '=' . $cookie['value'] . ";";
-                }
-            }
-            $cookieHeader = 'Cookie:' . $version . substr($cookieHeader, 0, -1) . "\r\n";
-        }
-
-        // omit port if 80
-        $port = ($port == 80) ? '' : (':' . $port);
-
-        $op = 'POST ' . $uri . " HTTP/1.0\r\n" .
-            'User-Agent: ' . $this->user_agent . "\r\n" .
-            'Host: ' . $server . $port . "\r\n" .
-            $credentials .
-            $proxyCredentials .
-            $acceptedEncoding .
-            $encodingHdr .
-            'Accept-Charset: ' . implode(',', $this->accepted_charset_encodings) . "\r\n" .
-            $cookieHeader .
-            'Content-Type: ' . $req->content_type . "\r\nContent-Length: " .
-            strlen($payload) . "\r\n\r\n" .
-            $payload;
-
-        if ($this->debug > 1) {
-            Logger::instance()->debugMessage("---SENDING---\n$op\n---END---");
-        }
-
-        if ($timeout > 0) {
-            $fp = @stream_socket_client("$transport://$connectServer:$connectPort", $this->errno, $this->errstr, $timeout);
-        } else {
-            $fp = @stream_socket_client("$transport://$connectServer:$connectPort", $this->errno, $this->errstr);
-        }
-        if ($fp) {
-            if ($timeout > 0) {
-                stream_set_timeout($fp, $timeout);
-            }
-        } else {
-            $this->errstr = 'Connect error: ' . $this->errstr;
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['http_error'], $this->errstr . ' (' . $this->errno . ')');
-
-            return $r;
-        }
-
-        if (!fputs($fp, $op, strlen($op))) {
-            fclose($fp);
-            $this->errstr = 'Write error';
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['http_error'], $this->errstr);
-
-            return $r;
-        } else {
-            // reset errno and errstr on successful socket connection
-            $this->errstr = '';
-        }
-        // G. Giunta 2005/10/24: close socket before parsing.
-        // should yield slightly better execution times, and make easier recursive calls (e.g. to follow http redirects)
-        $ipd = '';
-        do {
-            // shall we check for $data === FALSE?
-            // as per the manual, it signals an error
-            $ipd .= fread($fp, 32768);
-        } while (!feof($fp));
-        fclose($fp);
-        $r = $req->parseResponse($ipd, false, $this->return_type);
-
-        return $r;
-    }
-
-    /**
-     * @param Request $req
-     * @param string $server
-     * @param int $port
-     * @param int $timeout
-     * @param string $username
-     * @param string $password
-     * @param int $authType
-     * @param string $cert
-     * @param string $certPass
-     * @param string $caCert
-     * @param string $caCertDir
-     * @param string $proxyHost
-     * @param int $proxyPort
-     * @param string $proxyUsername
-     * @param string $proxyPassword
-     * @param int $proxyAuthType
-     * @param bool $keepAlive
-     * @param string $key
-     * @param string $keyPass
-     * @param int $sslVersion
-     * @return Response
-     */
-    protected function sendPayloadHTTPS($req, $server, $port, $timeout = 0, $username = '',
-                                      $password = '', $authType = 1, $cert = '', $certPass = '', $caCert = '', $caCertDir = '',
-                                      $proxyHost = '', $proxyPort = 0, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1,
-                                      $keepAlive = false, $key = '', $keyPass = '', $sslVersion = 0)
-    {
-        return $this->sendPayloadCURL($req, $server, $port, $timeout, $username,
-            $password, $authType, $cert, $certPass, $caCert, $caCertDir, $proxyHost, $proxyPort,
-            $proxyUsername, $proxyPassword, $proxyAuthType, 'https', $keepAlive, $key, $keyPass, $sslVersion);
-    }
-
-    /**
-     * Contributed by Justin Miller <justin@voxel.net>
-     * Requires curl to be built into PHP
-     * NB: CURL versions before 7.11.10 cannot use proxy to talk to https servers!
-     *
-     * @param Request $req
-     * @param string $server
-     * @param int $port
-     * @param int $timeout
-     * @param string $username
-     * @param string $password
-     * @param int $authType
-     * @param string $cert
-     * @param string $certPass
-     * @param string $caCert
-     * @param string $caCertDir
-     * @param string $proxyHost
-     * @param int $proxyPort
-     * @param string $proxyUsername
-     * @param string $proxyPassword
-     * @param int $proxyAuthType
-     * @param string $method
-     * @param bool $keepAlive
-     * @param string $key
-     * @param string $keyPass
-     * @param int $sslVersion
-     * @return Response
-     */
-    protected function sendPayloadCURL($req, $server, $port, $timeout = 0, $username = '',
-                                     $password = '', $authType = 1, $cert = '', $certPass = '', $caCert = '', $caCertDir = '',
-                                     $proxyHost = '', $proxyPort = 0, $proxyUsername = '', $proxyPassword = '', $proxyAuthType = 1, $method = 'https',
-                                     $keepAlive = false, $key = '', $keyPass = '', $sslVersion = 0)
-    {
-        if (!function_exists('curl_init')) {
-            $this->errstr = 'CURL unavailable on this install';
-            return new Response(0, PhpXmlRpc::$xmlrpcerr['no_curl'], PhpXmlRpc::$xmlrpcstr['no_curl']);
-        }
-        if ($method == 'https') {
-            if (($info = curl_version()) &&
-                ((is_string($info) && strpos($info, 'OpenSSL') === null) || (is_array($info) && !isset($info['ssl_version'])))
-            ) {
-                $this->errstr = 'SSL unavailable on this install';
-                return new Response(0, PhpXmlRpc::$xmlrpcerr['no_ssl'], PhpXmlRpc::$xmlrpcstr['no_ssl']);
-            }
-        }
-
-        if ($port == 0) {
-            if ($method == 'http') {
-                $port = 80;
-            } else {
-                $port = 443;
-            }
-        }
-
-        // Only create the payload if it was not created previously
-        if (empty($req->payload)) {
-            $req->createPayload($this->request_charset_encoding);
-        }
-
-        // Deflate request body and set appropriate request headers
-        $payload = $req->payload;
-        if (function_exists('gzdeflate') && ($this->request_compression == 'gzip' || $this->request_compression == 'deflate')) {
-            if ($this->request_compression == 'gzip') {
-                $a = @gzencode($payload);
-                if ($a) {
-                    $payload = $a;
-                    $encodingHdr = 'Content-Encoding: gzip';
-                }
-            } else {
-                $a = @gzcompress($payload);
-                if ($a) {
-                    $payload = $a;
-                    $encodingHdr = 'Content-Encoding: deflate';
-                }
-            }
-        } else {
-            $encodingHdr = '';
-        }
-
-        if ($this->debug > 1) {
-            Logger::instance()->debugMessage("---SENDING---\n$payload\n---END---");
-        }
-
-        if (!$keepAlive || !$this->xmlrpc_curl_handle) {
-            $curl = curl_init($method . '://' . $server . ':' . $port . $this->path);
-            if ($keepAlive) {
-                $this->xmlrpc_curl_handle = $curl;
-            }
-        } else {
-            $curl = $this->xmlrpc_curl_handle;
-        }
-
-        // results into variable
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
-
-        if ($this->debug > 1) {
-            curl_setopt($curl, CURLOPT_VERBOSE, true);
-            /// @todo allow callers to redirect curlopt_stderr to some stream which can be buffered
-        }
-        curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
-        // required for XMLRPC: post the data
-        curl_setopt($curl, CURLOPT_POST, 1);
-        // the data
-        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
-
-        // return the header too
-        curl_setopt($curl, CURLOPT_HEADER, 1);
-
-        // NB: if we set an empty string, CURL will add http header indicating
-        // ALL methods it is supporting. This is possibly a better option than
-        // letting the user tell what curl can / cannot do...
-        if (is_array($this->accepted_compression) && count($this->accepted_compression)) {
-            //curl_setopt($curl, CURLOPT_ENCODING, implode(',', $this->accepted_compression));
-            // empty string means 'any supported by CURL' (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
-            if (count($this->accepted_compression) == 1) {
-                curl_setopt($curl, CURLOPT_ENCODING, $this->accepted_compression[0]);
-            } else {
-                curl_setopt($curl, CURLOPT_ENCODING, '');
-            }
-        }
-        // extra headers
-        $headers = array('Content-Type: ' . $req->content_type, 'Accept-Charset: ' . implode(',', $this->accepted_charset_encodings));
-        // if no keepalive is wanted, let the server know it in advance
-        if (!$keepAlive) {
-            $headers[] = 'Connection: close';
-        }
-        // request compression header
-        if ($encodingHdr) {
-            $headers[] = $encodingHdr;
-        }
-
-        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
-        // timeout is borked
-        if ($timeout) {
-            curl_setopt($curl, CURLOPT_TIMEOUT, $timeout == 1 ? 1 : $timeout - 1);
-        }
-
-        if ($username && $password) {
-            curl_setopt($curl, CURLOPT_USERPWD, $username . ':' . $password);
-            if (defined('CURLOPT_HTTPAUTH')) {
-                curl_setopt($curl, CURLOPT_HTTPAUTH, $authType);
-            } elseif ($authType != 1) {
-                error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth is supported by the current PHP/curl install');
-            }
-        }
-
-        if ($method == 'https') {
-            // set cert file
-            if ($cert) {
-                curl_setopt($curl, CURLOPT_SSLCERT, $cert);
-            }
-            // set cert password
-            if ($certPass) {
-                curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $certPass);
-            }
-            // whether to verify remote host's cert
-            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verifypeer);
-            // set ca certificates file/dir
-            if ($caCert) {
-                curl_setopt($curl, CURLOPT_CAINFO, $caCert);
-            }
-            if ($caCertDir) {
-                curl_setopt($curl, CURLOPT_CAPATH, $caCertDir);
-            }
-            // set key file (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
-            if ($key) {
-                curl_setopt($curl, CURLOPT_SSLKEY, $key);
-            }
-            // set key password (shall we catch errors in case CURLOPT_SSLKEY undefined ?)
-            if ($keyPass) {
-                curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $keyPass);
-            }
-            // whether to verify cert's common name (CN); 0 for no, 1 to verify that it exists, and 2 to verify that it matches the hostname used
-            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $this->verifyhost);
-            // allow usage of different SSL versions
-            curl_setopt($curl, CURLOPT_SSLVERSION, $sslVersion);
-        }
-
-        // proxy info
-        if ($proxyHost) {
-            if ($proxyPort == 0) {
-                $proxyPort = 8080; // NB: even for HTTPS, local connection is on port 8080
-            }
-            curl_setopt($curl, CURLOPT_PROXY, $proxyHost . ':' . $proxyPort);
-            if ($proxyUsername) {
-                curl_setopt($curl, CURLOPT_PROXYUSERPWD, $proxyUsername . ':' . $proxyPassword);
-                if (defined('CURLOPT_PROXYAUTH')) {
-                    curl_setopt($curl, CURLOPT_PROXYAUTH, $proxyAuthType);
-                } elseif ($proxyAuthType != 1) {
-                    error_log('XML-RPC: ' . __METHOD__ . ': warning. Only Basic auth to proxy is supported by the current PHP/curl install');
-                }
-            }
-        }
-
-        // NB: should we build cookie http headers by hand rather than let CURL do it?
-        // the following code does not honour 'expires', 'path' and 'domain' cookie attributes
-        // set to client obj the the user...
-        if (count($this->cookies)) {
-            $cookieHeader = '';
-            foreach ($this->cookies as $name => $cookie) {
-                $cookieHeader .= $name . '=' . $cookie['value'] . '; ';
-            }
-            curl_setopt($curl, CURLOPT_COOKIE, substr($cookieHeader, 0, -2));
-        }
-
-        foreach ($this->extracurlopts as $opt => $val) {
-            curl_setopt($curl, $opt, $val);
-        }
-
-        $result = curl_exec($curl);
-
-        if ($this->debug > 1) {
-            $message = "---CURL INFO---\n";
-            foreach (curl_getinfo($curl) as $name => $val) {
-                if (is_array($val)) {
-                    $val = implode("\n", $val);
-                }
-                $message .= $name . ': ' . $val . "\n";
-            }
-            $message .= "---END---";
-            Logger::instance()->debugMessage($message);
-        }
-
-        if (!$result) {
-            /// @todo we should use a better check here - what if we get back '' or '0'?
-
-            $this->errstr = 'no response';
-            $resp = new Response(0, PhpXmlRpc::$xmlrpcerr['curl_fail'], PhpXmlRpc::$xmlrpcstr['curl_fail'] . ': ' . curl_error($curl));
-            curl_close($curl);
-            if ($keepAlive) {
-                $this->xmlrpc_curl_handle = null;
-            }
-        } else {
-            if (!$keepAlive) {
-                curl_close($curl);
-            }
-            $resp = $req->parseResponse($result, true, $this->return_type);
-            // if we got back a 302, we can not reuse the curl handle for later calls
-            if ($resp->faultCode() == PhpXmlRpc::$xmlrpcerr['http_error'] && $keepAlive) {
-                curl_close($curl);
-                $this->xmlrpc_curl_handle = null;
-            }
-        }
-
-        return $resp;
-    }
-
-    /**
-     * Send an array of requests and return an array of responses.
-     * Unless $this->no_multicall has been set to true, it will try first
-     * to use one single xmlrpc call to server method system.multicall, and
-     * revert to sending many successive calls in case of failure.
-     * This failure is also stored in $this->no_multicall for subsequent calls.
-     * Unfortunately, there is no server error code universally used to denote
-     * the fact that multicall is unsupported, so there is no way to reliably
-     * distinguish between that and a temporary failure.
-     * If you are sure that server supports multicall and do not want to
-     * fallback to using many single calls, set the fourth parameter to FALSE.
-     *
-     * NB: trying to shoehorn extra functionality into existing syntax has resulted
-     * in pretty much convoluted code...
-     *
-     * @param Request[] $reqs an array of Request objects
-     * @param integer $timeout connection timeout (in seconds)
-     * @param string $method the http protocol variant to be used
-     * @param boolean fallback When true, upon receiving an error during multicall, multiple single calls will be attempted
-     *
-     * @return array
-     */
-    public function multicall($reqs, $timeout = 0, $method = '', $fallback = true)
-    {
-        if ($method == '') {
-            $method = $this->method;
-        }
-        if (!$this->no_multicall) {
-            $results = $this->_try_multicall($reqs, $timeout, $method);
-            if (is_array($results)) {
-                // System.multicall succeeded
-                return $results;
-            } else {
-                // either system.multicall is unsupported by server,
-                // or call failed for some other reason.
-                if ($fallback) {
-                    // Don't try it next time...
-                    $this->no_multicall = true;
-                } else {
-                    if (is_a($results, '\PhpXmlRpc\Response')) {
-                        $result = $results;
-                    } else {
-                        $result = new Response(0, PhpXmlRpc::$xmlrpcerr['multicall_error'], PhpXmlRpc::$xmlrpcstr['multicall_error']);
-                    }
-                }
-            }
-        } else {
-            // override fallback, in case careless user tries to do two
-            // opposite things at the same time
-            $fallback = true;
-        }
-
-        $results = array();
-        if ($fallback) {
-            // system.multicall is (probably) unsupported by server:
-            // emulate multicall via multiple requests
-            foreach ($reqs as $req) {
-                $results[] = $this->send($req, $timeout, $method);
-            }
-        } else {
-            // user does NOT want to fallback on many single calls:
-            // since we should always return an array of responses,
-            // return an array with the same error repeated n times
-            foreach ($reqs as $req) {
-                $results[] = $result;
-            }
-        }
-
-        return $results;
-    }
-
-    /**
-     * Attempt to boxcar $reqs via system.multicall.
-     * Returns either an array of xmlrpc reponses, an xmlrpc error response
-     * or false (when received response does not respect valid multicall syntax).
-     *
-     * @param Request[] $reqs
-     * @param int $timeout
-     * @param string $method
-     * @return array|bool|mixed|Response
-     */
-    private function _try_multicall($reqs, $timeout, $method)
-    {
-        // Construct multicall request
-        $calls = array();
-        foreach ($reqs as $req) {
-            $call['methodName'] = new Value($req->method(), 'string');
-            $numParams = $req->getNumParams();
-            $params = array();
-            for ($i = 0; $i < $numParams; $i++) {
-                $params[$i] = $req->getParam($i);
-            }
-            $call['params'] = new Value($params, 'array');
-            $calls[] = new Value($call, 'struct');
-        }
-        $multiCall = new Request('system.multicall');
-        $multiCall->addParam(new Value($calls, 'array'));
-
-        // Attempt RPC call
-        $result = $this->send($multiCall, $timeout, $method);
-
-        if ($result->faultCode() != 0) {
-            // call to system.multicall failed
-            return $result;
-        }
-
-        // Unpack responses.
-        $rets = $result->value();
-
-        if ($this->return_type == 'xml') {
-            return $rets;
-        } elseif ($this->return_type == 'phpvals') {
-            /// @todo test this code branch...
-            $rets = $result->value();
-            if (!is_array($rets)) {
-                return false;       // bad return type from system.multicall
-            }
-            $numRets = count($rets);
-            if ($numRets != count($reqs)) {
-                return false;       // wrong number of return values.
-            }
-
-            $response = array();
-            for ($i = 0; $i < $numRets; $i++) {
-                $val = $rets[$i];
-                if (!is_array($val)) {
-                    return false;
-                }
-                switch (count($val)) {
-                    case 1:
-                        if (!isset($val[0])) {
-                            return false;       // Bad value
-                        }
-                        // Normal return value
-                        $response[$i] = new Response($val[0], 0, '', 'phpvals');
-                        break;
-                    case 2:
-                        /// @todo remove usage of @: it is apparently quite slow
-                        $code = @$val['faultCode'];
-                        if (!is_int($code)) {
-                            return false;
-                        }
-                        $str = @$val['faultString'];
-                        if (!is_string($str)) {
-                            return false;
-                        }
-                        $response[$i] = new Response(0, $code, $str);
-                        break;
-                    default:
-                        return false;
-                }
-            }
-
-            return $response;
-        } else {
-            // return type == 'xmlrpcvals'
-
-            $rets = $result->value();
-            if ($rets->kindOf() != 'array') {
-                return false;       // bad return type from system.multicall
-            }
-            $numRets = $rets->count();
-            if ($numRets != count($reqs)) {
-                return false;       // wrong number of return values.
-            }
-
-            $response = array();
-            foreach($rets as $val) {
-                switch ($val->kindOf()) {
-                    case 'array':
-                        if ($val->count() != 1) {
-                            return false;       // Bad value
-                        }
-                        // Normal return value
-                        $response[] = new Response($val[0]);
-                        break;
-                    case 'struct':
-                        $code = $val['faultCode'];
-                        if ($code->kindOf() != 'scalar' || $code->scalartyp() != 'int') {
-                            return false;
-                        }
-                        $str = $val['faultString'];
-                        if ($str->kindOf() != 'scalar' || $str->scalartyp() != 'string') {
-                            return false;
-                        }
-                        $response[] = new Response(0, $code->scalarval(), $str->scalarval());
-                        break;
-                    default:
-                        return false;
-                }
-            }
-
-            return $response;
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Encoder.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Encoder.php
deleted file mode 100644
index b9bdb08f994c01fc6bfe94681de6efbb4813c309..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Encoder.php
+++ /dev/null
@@ -1,314 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\XMLParser;
-
-class Encoder
-{
-    /**
-     * Takes an xmlrpc value in object format and translates it into native PHP types.
-     *
-     * Works with xmlrpc requests objects as input, too.
-     *
-     * Given proper options parameter, can rebuild generic php object instances
-     * (provided those have been encoded to xmlrpc format using a corresponding
-     * option in php_xmlrpc_encode())
-     * PLEASE NOTE that rebuilding php objects involves calling their constructor function.
-     * This means that the remote communication end can decide which php code will
-     * get executed on your server, leaving the door possibly open to 'php-injection'
-     * style of attacks (provided you have some classes defined on your server that
-     * might wreak havoc if instances are built outside an appropriate context).
-     * Make sure you trust the remote server/client before eanbling this!
-     *
-     * @author Dan Libby (dan@libby.com)
-     *
-     * @param Value|Request $xmlrpcVal
-     * @param array $options if 'decode_php_objs' is set in the options array, xmlrpc structs can be decoded into php objects; if 'dates_as_objects' is set xmlrpc datetimes are decoded as php DateTime objects (standard is
-     *
-     * @return mixed
-     */
-    public function decode($xmlrpcVal, $options = array())
-    {
-        switch ($xmlrpcVal->kindOf()) {
-            case 'scalar':
-                if (in_array('extension_api', $options)) {
-                    reset($xmlrpcVal->me);
-                    list($typ, $val) = each($xmlrpcVal->me);
-                    switch ($typ) {
-                        case 'dateTime.iso8601':
-                            $xmlrpcVal->scalar = $val;
-                            $xmlrpcVal->type = 'datetime';
-                            $xmlrpcVal->timestamp = \PhpXmlRpc\Helper\Date::iso8601Decode($val);
-
-                            return $xmlrpcVal;
-                        case 'base64':
-                            $xmlrpcVal->scalar = $val;
-                            $xmlrpcVal->type = $typ;
-
-                            return $xmlrpcVal;
-                        default:
-                            return $xmlrpcVal->scalarval();
-                    }
-                }
-                if (in_array('dates_as_objects', $options) && $xmlrpcVal->scalartyp() == 'dateTime.iso8601') {
-                    // we return a Datetime object instead of a string
-                    // since now the constructor of xmlrpc value accepts safely strings, ints and datetimes,
-                    // we cater to all 3 cases here
-                    $out = $xmlrpcVal->scalarval();
-                    if (is_string($out)) {
-                        $out = strtotime($out);
-                    }
-                    if (is_int($out)) {
-                        $result = new \Datetime();
-                        $result->setTimestamp($out);
-
-                        return $result;
-                    } elseif (is_a($out, 'Datetime')) {
-                        return $out;
-                    }
-                }
-
-                return $xmlrpcVal->scalarval();
-            case 'array':
-                $arr = array();
-                foreach($xmlrpcVal as $value) {
-                    $arr[] = $this->decode($value, $options);
-                }
-
-                return $arr;
-            case 'struct':
-                // If user said so, try to rebuild php objects for specific struct vals.
-                /// @todo should we raise a warning for class not found?
-                // shall we check for proper subclass of xmlrpc value instead of
-                // presence of _php_class to detect what we can do?
-                if (in_array('decode_php_objs', $options) && $xmlrpcVal->_php_class != ''
-                    && class_exists($xmlrpcVal->_php_class)
-                ) {
-                    $obj = @new $xmlrpcVal->_php_class();
-                    foreach ($xmlrpcVal as $key => $value) {
-                        $obj->$key = $this->decode($value, $options);
-                    }
-
-                    return $obj;
-                } else {
-                    $arr = array();
-                    foreach ($xmlrpcVal as $key => $value) {
-                        $arr[$key] = $this->decode($value, $options);
-                    }
-
-                    return $arr;
-                }
-            case 'msg':
-                $paramCount = $xmlrpcVal->getNumParams();
-                $arr = array();
-                for ($i = 0; $i < $paramCount; $i++) {
-                    $arr[] = $this->decode($xmlrpcVal->getParam($i), $options);
-                }
-
-                return $arr;
-        }
-    }
-
-    /**
-     * Takes native php types and encodes them into xmlrpc PHP object format.
-     * It will not re-encode xmlrpc value objects.
-     *
-     * Feature creep -- could support more types via optional type argument
-     * (string => datetime support has been added, ??? => base64 not yet)
-     *
-     * If given a proper options parameter, php object instances will be encoded
-     * into 'special' xmlrpc values, that can later be decoded into php objects
-     * by calling php_xmlrpc_decode() with a corresponding option
-     *
-     * @author Dan Libby (dan@libby.com)
-     *
-     * @param mixed $phpVal the value to be converted into an xmlrpc value object
-     * @param array $options can include 'encode_php_objs', 'auto_dates', 'null_extension' or 'extension_api'
-     *
-     * @return \PhpXmlrpc\Value
-     */
-    public function encode($phpVal, $options = array())
-    {
-        $type = gettype($phpVal);
-        switch ($type) {
-            case 'string':
-                if (in_array('auto_dates', $options) && preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $phpVal)) {
-                    $xmlrpcVal = new Value($phpVal, Value::$xmlrpcDateTime);
-                } else {
-                    $xmlrpcVal = new Value($phpVal, Value::$xmlrpcString);
-                }
-                break;
-            case 'integer':
-                $xmlrpcVal = new Value($phpVal, Value::$xmlrpcInt);
-                break;
-            case 'double':
-                $xmlrpcVal = new Value($phpVal, Value::$xmlrpcDouble);
-                break;
-            // <G_Giunta_2001-02-29>
-            // Add support for encoding/decoding of booleans, since they are supported in PHP
-            case 'boolean':
-                $xmlrpcVal = new Value($phpVal, Value::$xmlrpcBoolean);
-                break;
-            // </G_Giunta_2001-02-29>
-            case 'array':
-                // PHP arrays can be encoded to either xmlrpc structs or arrays,
-                // depending on wheter they are hashes or plain 0..n integer indexed
-                // A shorter one-liner would be
-                // $tmp = array_diff(array_keys($phpVal), range(0, count($phpVal)-1));
-                // but execution time skyrockets!
-                $j = 0;
-                $arr = array();
-                $ko = false;
-                foreach ($phpVal as $key => $val) {
-                    $arr[$key] = $this->encode($val, $options);
-                    if (!$ko && $key !== $j) {
-                        $ko = true;
-                    }
-                    $j++;
-                }
-                if ($ko) {
-                    $xmlrpcVal = new Value($arr, Value::$xmlrpcStruct);
-                } else {
-                    $xmlrpcVal = new Value($arr, Value::$xmlrpcArray);
-                }
-                break;
-            case 'object':
-                if (is_a($phpVal, 'PhpXmlRpc\Value')) {
-                    $xmlrpcVal = $phpVal;
-                } elseif (is_a($phpVal, 'DateTime')) {
-                    $xmlrpcVal = new Value($phpVal->format('Ymd\TH:i:s'), Value::$xmlrpcStruct);
-                } else {
-                    $arr = array();
-                    reset($phpVal);
-                    while (list($k, $v) = each($phpVal)) {
-                        $arr[$k] = $this->encode($v, $options);
-                    }
-                    $xmlrpcVal = new Value($arr, Value::$xmlrpcStruct);
-                    if (in_array('encode_php_objs', $options)) {
-                        // let's save original class name into xmlrpc value:
-                        // might be useful later on...
-                        $xmlrpcVal->_php_class = get_class($phpVal);
-                    }
-                }
-                break;
-            case 'NULL':
-                if (in_array('extension_api', $options)) {
-                    $xmlrpcVal = new Value('', Value::$xmlrpcString);
-                } elseif (in_array('null_extension', $options)) {
-                    $xmlrpcVal = new Value('', Value::$xmlrpcNull);
-                } else {
-                    $xmlrpcVal = new Value();
-                }
-                break;
-            case 'resource':
-                if (in_array('extension_api', $options)) {
-                    $xmlrpcVal = new Value((int)$phpVal, Value::$xmlrpcInt);
-                } else {
-                    $xmlrpcVal = new Value();
-                }
-            // catch "user function", "unknown type"
-            default:
-                // giancarlo pinerolo <ping@alt.it>
-                // it has to return
-                // an empty object in case, not a boolean.
-                $xmlrpcVal = new Value();
-                break;
-        }
-
-        return $xmlrpcVal;
-    }
-
-    /**
-     * Convert the xml representation of a method response, method request or single
-     * xmlrpc value into the appropriate object (a.k.a. deserialize).
-     *
-     * @param string $xmlVal
-     * @param array $options
-     *
-     * @return mixed false on error, or an instance of either Value, Request or Response
-     */
-    public function decodeXml($xmlVal, $options = array())
-    {
-        // 'guestimate' encoding
-        $valEncoding = XMLParser::guessEncoding('', $xmlVal);
-        if ($valEncoding != '') {
-
-            // Since parsing will fail if charset is not specified in the xml prologue,
-            // the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that...
-            // The following code might be better for mb_string enabled installs, but
-            // makes the lib about 200% slower...
-            //if (!is_valid_charset($valEncoding, array('UTF-8'))
-            if (!in_array($valEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($xmlVal)) {
-                if ($valEncoding == 'ISO-8859-1') {
-                    $xmlVal = utf8_encode($xmlVal);
-                } else {
-                    if (extension_loaded('mbstring')) {
-                        $xmlVal = mb_convert_encoding($xmlVal, 'UTF-8', $valEncoding);
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of xml text: ' . $valEncoding);
-                    }
-                }
-            }
-        }
-
-        $parser = xml_parser_create();
-        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
-        // What if internal encoding is not in one of the 3 allowed?
-        // we use the broadest one, ie. utf8!
-        if (!in_array(PhpXmlRpc::$xmlrpc_internalencoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
-        } else {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, PhpXmlRpc::$xmlrpc_internalencoding);
-        }
-
-        $xmlRpcParser = new XMLParser();
-        xml_set_object($parser, $xmlRpcParser);
-
-        xml_set_element_handler($parser, 'xmlrpc_se_any', 'xmlrpc_ee');
-        xml_set_character_data_handler($parser, 'xmlrpc_cd');
-        xml_set_default_handler($parser, 'xmlrpc_dh');
-        if (!xml_parse($parser, $xmlVal, 1)) {
-            $errstr = sprintf('XML error: %s at line %d, column %d',
-                xml_error_string(xml_get_error_code($parser)),
-                xml_get_current_line_number($parser), xml_get_current_column_number($parser));
-            error_log($errstr);
-            xml_parser_free($parser);
-
-            return false;
-        }
-        xml_parser_free($parser);
-        if ($xmlRpcParser->_xh['isf'] > 1) {
-            // test that $xmlrpc->_xh['value'] is an obj, too???
-
-            error_log($xmlRpcParser->_xh['isf_reason']);
-
-            return false;
-        }
-        switch ($xmlRpcParser->_xh['rt']) {
-            case 'methodresponse':
-                $v = &$xmlRpcParser->_xh['value'];
-                if ($xmlRpcParser->_xh['isf'] == 1) {
-                    $vc = $v['faultCode'];
-                    $vs = $v['faultString'];
-                    $r = new Response(0, $vc->scalarval(), $vs->scalarval());
-                } else {
-                    $r = new Response($v);
-                }
-
-                return $r;
-            case 'methodcall':
-                $req = new Request($xmlRpcParser->_xh['method']);
-                for ($i = 0; $i < count($xmlRpcParser->_xh['params']); $i++) {
-                    $req->addParam($xmlRpcParser->_xh['params'][$i]);
-                }
-
-                return $req;
-            case 'value':
-                return $xmlRpcParser->_xh['value'];
-            default:
-                return false;
-        }
-    }
-
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Charset.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Charset.php
deleted file mode 100644
index 9000ffb3f255d9d65a609cd97dea8da388bf090c..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Charset.php
+++ /dev/null
@@ -1,262 +0,0 @@
-<?php
-
-namespace PhpXmlRpc\Helper;
-
-use PhpXmlRpc\PhpXmlRpc;
-
-class Charset
-{
-    // tables used for transcoding different charsets into us-ascii xml
-    protected $xml_iso88591_Entities = array("in" => array(), "out" => array());
-
-    /// @todo add to iso table the characters from cp_1252 range, i.e. 128 to 159?
-    /// These will NOT be present in true ISO-8859-1, but will save the unwary
-    /// windows user from sending junk (though no luck when receiving them...)
-    /*
-    protected $xml_cp1252_Entities = array('in' => array(), out' => array(
-        '&#x20AC;', '?',        '&#x201A;', '&#x0192;',
-        '&#x201E;', '&#x2026;', '&#x2020;', '&#x2021;',
-        '&#x02C6;', '&#x2030;', '&#x0160;', '&#x2039;',
-        '&#x0152;', '?',        '&#x017D;', '?',
-        '?',        '&#x2018;', '&#x2019;', '&#x201C;',
-        '&#x201D;', '&#x2022;', '&#x2013;', '&#x2014;',
-        '&#x02DC;', '&#x2122;', '&#x0161;', '&#x203A;',
-        '&#x0153;', '?',        '&#x017E;', '&#x0178;'
-    ));
-    */
-
-    protected $charset_supersets = array(
-        'US-ASCII' => array('ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
-            'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8',
-            'ISO-8859-9', 'ISO-8859-10', 'ISO-8859-11', 'ISO-8859-12',
-            'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'UTF-8',
-            'EUC-JP', 'EUC-', 'EUC-KR', 'EUC-CN',),
-    );
-
-    protected static $instance = null;
-
-    /**
-     * This class is singleton for performance reasons.
-     *
-     * @return Charset
-     */
-    public static function instance()
-    {
-        if (self::$instance === null) {
-            self::$instance = new self();
-        }
-
-        return self::$instance;
-    }
-
-    private function __construct()
-    {
-        for ($i = 0; $i < 32; $i++) {
-            $this->xml_iso88591_Entities["in"][] = chr($i);
-            $this->xml_iso88591_Entities["out"][] = "&#{$i};";
-        }
-
-        for ($i = 160; $i < 256; $i++) {
-            $this->xml_iso88591_Entities["in"][] = chr($i);
-            $this->xml_iso88591_Entities["out"][] = "&#{$i};";
-        }
-
-        /*for ($i = 128; $i < 160; $i++)
-        {
-            $this->xml_cp1252_Entities['in'][] = chr($i);
-        }*/
-    }
-
-    /**
-     * Convert a string to the correct XML representation in a target charset
-     * To help correct communication of non-ascii chars inside strings, regardless
-     * of the charset used when sending requests, parsing them, sending responses
-     * and parsing responses, an option is to convert all non-ascii chars present in the message
-     * into their equivalent 'charset entity'. Charset entities enumerated this way
-     * are independent of the charset encoding used to transmit them, and all XML
-     * parsers are bound to understand them.
-     * Note that in the std case we are not sending a charset encoding mime type
-     * along with http headers, so we are bound by RFC 3023 to emit strict us-ascii.
-     *
-     * @todo do a bit of basic benchmarking (strtr vs. str_replace)
-     * @todo make usage of iconv() or recode_string() or mb_string() where available
-     *
-     * @param string $data
-     * @param string $srcEncoding
-     * @param string $destEncoding
-     *
-     * @return string
-     */
-    public function encodeEntities($data, $srcEncoding = '', $destEncoding = '')
-    {
-        if ($srcEncoding == '') {
-            // lame, but we know no better...
-            $srcEncoding = PhpXmlRpc::$xmlrpc_internalencoding;
-        }
-
-        switch (strtoupper($srcEncoding . '_' . $destEncoding)) {
-            case 'ISO-8859-1_':
-            case 'ISO-8859-1_US-ASCII':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                $escapedData = str_replace($this->xml_iso88591_Entities['in'], $this->xml_iso88591_Entities['out'], $escapedData);
-                break;
-            case 'ISO-8859-1_UTF-8':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                $escapedData = utf8_encode($escapedData);
-                break;
-            case 'ISO-8859-1_ISO-8859-1':
-            case 'US-ASCII_US-ASCII':
-            case 'US-ASCII_UTF-8':
-            case 'US-ASCII_':
-            case 'US-ASCII_ISO-8859-1':
-            case 'UTF-8_UTF-8':
-            //case 'CP1252_CP1252':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                break;
-            case 'UTF-8_':
-            case 'UTF-8_US-ASCII':
-            case 'UTF-8_ISO-8859-1':
-                // NB: this will choke on invalid UTF-8, going most likely beyond EOF
-                $escapedData = '';
-                // be kind to users creating string xmlrpc values out of different php types
-                $data = (string)$data;
-                $ns = strlen($data);
-                for ($nn = 0; $nn < $ns; $nn++) {
-                    $ch = $data[$nn];
-                    $ii = ord($ch);
-                    //1 7 0bbbbbbb (127)
-                    if ($ii < 128) {
-                        /// @todo shall we replace this with a (supposedly) faster str_replace?
-                        switch ($ii) {
-                            case 34:
-                                $escapedData .= '&quot;';
-                                break;
-                            case 38:
-                                $escapedData .= '&amp;';
-                                break;
-                            case 39:
-                                $escapedData .= '&apos;';
-                                break;
-                            case 60:
-                                $escapedData .= '&lt;';
-                                break;
-                            case 62:
-                                $escapedData .= '&gt;';
-                                break;
-                            default:
-                                $escapedData .= $ch;
-                        } // switch
-                    } //2 11 110bbbbb 10bbbbbb (2047)
-                    elseif ($ii >> 5 == 6) {
-                        $b1 = ($ii & 31);
-                        $ii = ord($data[$nn + 1]);
-                        $b2 = ($ii & 63);
-                        $ii = ($b1 * 64) + $b2;
-                        $ent = sprintf('&#%d;', $ii);
-                        $escapedData .= $ent;
-                        $nn += 1;
-                    } //3 16 1110bbbb 10bbbbbb 10bbbbbb
-                    elseif ($ii >> 4 == 14) {
-                        $b1 = ($ii & 15);
-                        $ii = ord($data[$nn + 1]);
-                        $b2 = ($ii & 63);
-                        $ii = ord($data[$nn + 2]);
-                        $b3 = ($ii & 63);
-                        $ii = ((($b1 * 64) + $b2) * 64) + $b3;
-                        $ent = sprintf('&#%d;', $ii);
-                        $escapedData .= $ent;
-                        $nn += 2;
-                    } //4 21 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
-                    elseif ($ii >> 3 == 30) {
-                        $b1 = ($ii & 7);
-                        $ii = ord($data[$nn + 1]);
-                        $b2 = ($ii & 63);
-                        $ii = ord($data[$nn + 2]);
-                        $b3 = ($ii & 63);
-                        $ii = ord($data[$nn + 3]);
-                        $b4 = ($ii & 63);
-                        $ii = ((((($b1 * 64) + $b2) * 64) + $b3) * 64) + $b4;
-                        $ent = sprintf('&#%d;', $ii);
-                        $escapedData .= $ent;
-                        $nn += 3;
-                    }
-                }
-                break;
-            /*
-            case 'CP1252_':
-            case 'CP1252_US-ASCII':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                $escapedData = str_replace($this->xml_iso88591_Entities']['in'], $this->xml_iso88591_Entities['out'], $escapedData);
-                $escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
-                break;
-            case 'CP1252_UTF-8':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                /// @todo we could use real UTF8 chars here instead of xml entities... (note that utf_8 encode all allone will NOT convert them)
-                $escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
-                $escapedData = utf8_encode($escapedData);
-                break;
-            case 'CP1252_ISO-8859-1':
-                $escapedData = str_replace(array('&', '"', "'", '<', '>'), array('&amp;', '&quot;', '&apos;', '&lt;', '&gt;'), $data);
-                // we might as well replace all funky chars with a '?' here, but we are kind and leave it to the receiving application layer to decide what to do with these weird entities...
-                $escapedData = str_replace($this->xml_cp1252_Entities['in'], $this->xml_cp1252_Entities['out'], $escapedData);
-                break;
-            */
-            default:
-                $escapedData = '';
-                error_log('XML-RPC: ' . __METHOD__ . ": Converting from $srcEncoding to $destEncoding: not supported...");
-        }
-
-        return $escapedData;
-    }
-
-    /**
-     * Checks if a given charset encoding is present in a list of encodings or
-     * if it is a valid subset of any encoding in the list.
-     *
-     * @param string $encoding charset to be tested
-     * @param string|array $validList comma separated list of valid charsets (or array of charsets)
-     *
-     * @return bool
-     */
-    public function isValidCharset($encoding, $validList)
-    {
-        if (is_string($validList)) {
-            $validList = explode(',', $validList);
-        }
-        if (@in_array(strtoupper($encoding), $validList)) {
-            return true;
-        } else {
-            if (array_key_exists($encoding, $this->charset_supersets)) {
-                foreach ($validList as $allowed) {
-                    if (in_array($allowed, $this->charset_supersets[$encoding])) {
-                        return true;
-                    }
-                }
-            }
-
-            return false;
-        }
-    }
-
-    /**
-     * Used only for backwards compatibility
-     * @deprecated
-     *
-     * @param string $charset
-     *
-     * @return array
-     *
-     * @throws \Exception for unknown/unsupported charsets
-     */
-    public function getEntities($charset)
-    {
-        switch ($charset)
-        {
-            case 'iso88591':
-                return $this->xml_iso88591_Entities;
-            default:
-                throw new \Exception('Unsupported charset: ' . $charset);
-        }
-    }
-
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Date.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Date.php
deleted file mode 100644
index f97f52cdbe60c691d9e91d97bf2dcf34c60da12b..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Date.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace PhpXmlRpc\Helper;
-
-class Date
-{
-    /**
-     * Given a timestamp, return the corresponding ISO8601 encoded string.
-     *
-     * Really, timezones ought to be supported
-     * but the XML-RPC spec says:
-     *
-     * "Don't assume a timezone. It should be specified by the server in its
-     * documentation what assumptions it makes about timezones."
-     *
-     * These routines always assume localtime unless
-     * $utc is set to 1, in which case UTC is assumed
-     * and an adjustment for locale is made when encoding
-     *
-     * @param int $timet (timestamp)
-     * @param int $utc (0 or 1)
-     *
-     * @return string
-     */
-    public static function iso8601Encode($timet, $utc = 0)
-    {
-        if (!$utc) {
-            $t = strftime("%Y%m%dT%H:%M:%S", $timet);
-        } else {
-            if (function_exists('gmstrftime')) {
-                // gmstrftime doesn't exist in some versions
-                // of PHP
-                $t = gmstrftime("%Y%m%dT%H:%M:%S", $timet);
-            } else {
-                $t = strftime("%Y%m%dT%H:%M:%S", $timet - date('Z'));
-            }
-        }
-
-        return $t;
-    }
-
-    /**
-     * Given an ISO8601 date string, return a timet in the localtime, or UTC.
-     *
-     * @param string $idate
-     * @param int $utc either 0 or 1
-     *
-     * @return int (datetime)
-     */
-    public static function iso8601Decode($idate, $utc = 0)
-    {
-        $t = 0;
-        if (preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})/', $idate, $regs)) {
-            if ($utc) {
-                $t = gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
-            } else {
-                $t = mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]);
-            }
-        }
-
-        return $t;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Http.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Http.php
deleted file mode 100644
index 2faf58333f614c62b28f3425a193fdf09c9b0886..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Http.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-
-namespace PhpXmlRpc\Helper;
-
-use PhpXmlRpc\PhpXmlRpc;
-
-class Http
-{
-    /**
-     * Decode a string that is encoded with "chunked" transfer encoding as defined in rfc2068 par. 19.4.6
-     * Code shamelessly stolen from nusoap library by Dietrich Ayala.
-     *
-     * @param string $buffer the string to be decoded
-     *
-     * @return string
-     */
-    public static function decodeChunked($buffer)
-    {
-        // length := 0
-        $length = 0;
-        $new = '';
-
-        // read chunk-size, chunk-extension (if any) and crlf
-        // get the position of the linebreak
-        $chunkEnd = strpos($buffer, "\r\n") + 2;
-        $temp = substr($buffer, 0, $chunkEnd);
-        $chunkSize = hexdec(trim($temp));
-        $chunkStart = $chunkEnd;
-        while ($chunkSize > 0) {
-            $chunkEnd = strpos($buffer, "\r\n", $chunkStart + $chunkSize);
-
-            // just in case we got a broken connection
-            if ($chunkEnd == false) {
-                $chunk = substr($buffer, $chunkStart);
-                // append chunk-data to entity-body
-                $new .= $chunk;
-                $length += strlen($chunk);
-                break;
-            }
-
-            // read chunk-data and crlf
-            $chunk = substr($buffer, $chunkStart, $chunkEnd - $chunkStart);
-            // append chunk-data to entity-body
-            $new .= $chunk;
-            // length := length + chunk-size
-            $length += strlen($chunk);
-            // read chunk-size and crlf
-            $chunkStart = $chunkEnd + 2;
-
-            $chunkEnd = strpos($buffer, "\r\n", $chunkStart) + 2;
-            if ($chunkEnd == false) {
-                break; //just in case we got a broken connection
-            }
-            $temp = substr($buffer, $chunkStart, $chunkEnd - $chunkStart);
-            $chunkSize = hexdec(trim($temp));
-            $chunkStart = $chunkEnd;
-        }
-
-        return $new;
-    }
-
-    /**
-     * Parses HTTP an http response headers and separates them from the body.
-     *
-     * @param string $data the http response,headers and body. It will be stripped of headers
-     * @param bool $headersProcessed when true, we assume that response inflating and dechunking has been already carried out
-     *
-     * @return array with keys 'headers' and 'cookies'
-     * @throws \Exception
-     */
-    public function parseResponseHeaders(&$data, $headersProcessed = false, $debug=0)
-    {
-        $httpResponse = array('raw_data' => $data, 'headers'=> array(), 'cookies' => array());
-
-        // Support "web-proxy-tunelling" connections for https through proxies
-        if (preg_match('/^HTTP\/1\.[0-1] 200 Connection established/', $data)) {
-            // Look for CR/LF or simple LF as line separator,
-            // (even though it is not valid http)
-            $pos = strpos($data, "\r\n\r\n");
-            if ($pos || is_int($pos)) {
-                $bd = $pos + 4;
-            } else {
-                $pos = strpos($data, "\n\n");
-                if ($pos || is_int($pos)) {
-                    $bd = $pos + 2;
-                } else {
-                    // No separation between response headers and body: fault?
-                    $bd = 0;
-                }
-            }
-            if ($bd) {
-                // this filters out all http headers from proxy.
-                // maybe we could take them into account, too?
-                $data = substr($data, $bd);
-            } else {
-                error_log('XML-RPC: ' . __METHOD__ . ': HTTPS via proxy error, tunnel connection possibly failed');
-                throw new \Exception(PhpXmlRpc::$xmlrpcstr['http_error'] . ' (HTTPS via proxy error, tunnel connection possibly failed)', PhpXmlRpc::$xmlrpcerr['http_error']);
-            }
-        }
-
-        // Strip HTTP 1.1 100 Continue header if present
-        while (preg_match('/^HTTP\/1\.1 1[0-9]{2} /', $data)) {
-            $pos = strpos($data, 'HTTP', 12);
-            // server sent a Continue header without any (valid) content following...
-            // give the client a chance to know it
-            if (!$pos && !is_int($pos)) {
-                // works fine in php 3, 4 and 5
-
-                break;
-            }
-            $data = substr($data, $pos);
-        }
-        if (!preg_match('/^HTTP\/[0-9.]+ 200 /', $data)) {
-            $errstr = substr($data, 0, strpos($data, "\n") - 1);
-            error_log('XML-RPC: ' . __METHOD__ . ': HTTP error, got response: ' . $errstr);
-            throw new \Exception(PhpXmlRpc::$xmlrpcstr['http_error'] . ' (' . $errstr . ')', PhpXmlRpc::$xmlrpcerr['http_error']);
-        }
-
-        // be tolerant to usage of \n instead of \r\n to separate headers and data
-        // (even though it is not valid http)
-        $pos = strpos($data, "\r\n\r\n");
-        if ($pos || is_int($pos)) {
-            $bd = $pos + 4;
-        } else {
-            $pos = strpos($data, "\n\n");
-            if ($pos || is_int($pos)) {
-                $bd = $pos + 2;
-            } else {
-                // No separation between response headers and body: fault?
-                // we could take some action here instead of going on...
-                $bd = 0;
-            }
-        }
-        // be tolerant to line endings, and extra empty lines
-        $ar = preg_split("/\r?\n/", trim(substr($data, 0, $pos)));
-        while (list(, $line) = @each($ar)) {
-            // take care of multi-line headers and cookies
-            $arr = explode(':', $line, 2);
-            if (count($arr) > 1) {
-                $headerName = strtolower(trim($arr[0]));
-                /// @todo some other headers (the ones that allow a CSV list of values)
-                /// do allow many values to be passed using multiple header lines.
-                /// We should add content to $xmlrpc->_xh['headers'][$headerName]
-                /// instead of replacing it for those...
-                if ($headerName == 'set-cookie' || $headerName == 'set-cookie2') {
-                    if ($headerName == 'set-cookie2') {
-                        // version 2 cookies:
-                        // there could be many cookies on one line, comma separated
-                        $cookies = explode(',', $arr[1]);
-                    } else {
-                        $cookies = array($arr[1]);
-                    }
-                    foreach ($cookies as $cookie) {
-                        // glue together all received cookies, using a comma to separate them
-                        // (same as php does with getallheaders())
-                        if (isset($httpResponse['headers'][$headerName])) {
-                            $httpResponse['headers'][$headerName] .= ', ' . trim($cookie);
-                        } else {
-                            $httpResponse['headers'][$headerName] = trim($cookie);
-                        }
-                        // parse cookie attributes, in case user wants to correctly honour them
-                        // feature creep: only allow rfc-compliant cookie attributes?
-                        // @todo support for server sending multiple time cookie with same name, but using different PATHs
-                        $cookie = explode(';', $cookie);
-                        foreach ($cookie as $pos => $val) {
-                            $val = explode('=', $val, 2);
-                            $tag = trim($val[0]);
-                            $val = trim(@$val[1]);
-                            /// @todo with version 1 cookies, we should strip leading and trailing " chars
-                            if ($pos == 0) {
-                                $cookiename = $tag;
-                                $httpResponse['cookies'][$tag] = array();
-                                $httpResponse['cookies'][$cookiename]['value'] = urldecode($val);
-                            } else {
-                                if ($tag != 'value') {
-                                    $httpResponse['cookies'][$cookiename][$tag] = $val;
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    $httpResponse['headers'][$headerName] = trim($arr[1]);
-                }
-            } elseif (isset($headerName)) {
-                /// @todo version1 cookies might span multiple lines, thus breaking the parsing above
-                $httpResponse['headers'][$headerName] .= ' ' . trim($line);
-            }
-        }
-
-        $data = substr($data, $bd);
-
-        if ($debug && count($httpResponse['headers'])) {
-            $msg = '';
-            foreach ($httpResponse['headers'] as $header => $value) {
-                $msg .= "HEADER: $header: $value\n";
-            }
-            foreach ($httpResponse['cookies'] as $header => $value) {
-                $msg .= "COOKIE: $header={$value['value']}\n";
-            }
-            Logger::instance()->debugMessage($msg);
-        }
-
-        // if CURL was used for the call, http headers have been processed,
-        // and dechunking + reinflating have been carried out
-        if (!$headersProcessed) {
-            // Decode chunked encoding sent by http 1.1 servers
-            if (isset($httpResponse['headers']['transfer-encoding']) && $httpResponse['headers']['transfer-encoding'] == 'chunked') {
-                if (!$data = Http::decodeChunked($data)) {
-                    error_log('XML-RPC: ' . __METHOD__ . ': errors occurred when trying to rebuild the chunked data received from server');
-                    throw new \Exception(PhpXmlRpc::$xmlrpcstr['dechunk_fail'], PhpXmlRpc::$xmlrpcerr['dechunk_fail']);
-                }
-            }
-
-            // Decode gzip-compressed stuff
-            // code shamelessly inspired from nusoap library by Dietrich Ayala
-            if (isset($httpResponse['headers']['content-encoding'])) {
-                $httpResponse['headers']['content-encoding'] = str_replace('x-', '', $httpResponse['headers']['content-encoding']);
-                if ($httpResponse['headers']['content-encoding'] == 'deflate' || $httpResponse['headers']['content-encoding'] == 'gzip') {
-                    // if decoding works, use it. else assume data wasn't gzencoded
-                    if (function_exists('gzinflate')) {
-                        if ($httpResponse['headers']['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) {
-                            $data = $degzdata;
-                            if ($debug) {
-                                Logger::instance()->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---");
-                            }
-                        } elseif ($httpResponse['headers']['content-encoding'] == 'gzip' && $degzdata = @gzinflate(substr($data, 10))) {
-                            $data = $degzdata;
-                            if ($debug) {
-                                Logger::instance()->debugMessage("---INFLATED RESPONSE---[" . strlen($data) . " chars]---\n$data\n---END---");
-                            }
-                        } else {
-                            error_log('XML-RPC: ' . __METHOD__ . ': errors occurred when trying to decode the deflated data received from server');
-                            throw new \Exception(PhpXmlRpc::$xmlrpcstr['decompress_fail'], PhpXmlRpc::$xmlrpcerr['decompress_fail']);
-                        }
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': the server sent deflated data. Your php install must have the Zlib extension compiled in to support this.');
-                        throw new \Exception(PhpXmlRpc::$xmlrpcstr['cannot_decompress'], PhpXmlRpc::$xmlrpcerr['cannot_decompress']);
-                    }
-                }
-            }
-        } // end of 'if needed, de-chunk, re-inflate response'
-
-        return $httpResponse;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Logger.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Logger.php
deleted file mode 100644
index 77e0e149aaafd537af9cc7806a5935597007d9c9..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/Logger.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace PhpXmlRpc\Helper;
-
-class Logger
-{
-    protected static $instance = null;
-
-    /**
-     * This class is singleton, so that later we can move to DI patterns.
-     *
-     * @return Logger
-     */
-    public static function instance()
-    {
-        if (self::$instance === null) {
-            self::$instance = new self();
-        }
-
-        return self::$instance;
-    }
-
-    /**
-     * Echoes a debug message, taking care of escaping it when not in console mode.
-     * NB: if the encoding of the message is not known or wrong, and we are working in web mode, there is no guarantee
-     *     of 100% accuracy, which kind of defeats the purpose of debugging
-     *
-     * @param string $message
-     * @param string $encoding
-     */
-    public function debugMessage($message, $encoding=null)
-    {
-        // US-ASCII is a warning for PHP and a fatal for HHVM
-        if ($encoding == 'US-ASCII') {
-            $encoding = 'UTF-8';
-        }
-
-        if (PHP_SAPI != 'cli') {
-            $flags = ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE;
-            if ($encoding != null) {
-                print "<PRE>\n".htmlentities($message, $flags, $encoding)."\n</PRE>";
-            } else {
-                print "<PRE>\n".htmlentities($message, $flags)."\n</PRE>";
-            }
-        } else {
-            print "\n$message\n";
-        }
-
-        // let the user see this now in case there's a time out later...
-        flush();
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/XMLParser.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/XMLParser.php
deleted file mode 100644
index d5c71766e8c09739e4a4850adb65bf8d0cec8825..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Helper/XMLParser.php
+++ /dev/null
@@ -1,547 +0,0 @@
-<?php
-
-namespace PhpXmlRpc\Helper;
-
-use PhpXmlRpc\PhpXmlRpc;
-use PhpXmlRpc\Value;
-
-/**
- * Deals with parsing the XML.
- */
-class XMLParser
-{
-    // used to store state during parsing
-    // quick explanation of components:
-    //   ac - used to accumulate values
-    //   stack - array with genealogy of xml elements names:
-    //           used to validate nesting of xmlrpc elements
-    //   valuestack - array used for parsing arrays and structs
-    //   lv - used to indicate "looking for a value": implements
-    //        the logic to allow values with no types to be strings
-    //   isf - used to indicate a parsing fault (2) or xmlrpc response fault (1)
-    //   isf_reason - used for storing xmlrpc response fault string
-    //   method - used to store method name
-    //   params - used to store parameters in method calls
-    //   pt - used to store the type of each received parameter. Useful if parameters are automatically decoded to php values
-    //   rt  - 'methodcall or 'methodresponse'
-    public $_xh = array(
-        'ac' => '',
-        'stack' => array(),
-        'valuestack' => array(),
-        'isf' => 0,
-        'isf_reason' => '',
-        'method' => false, // so we can check later if we got a methodname or not
-        'params' => array(),
-        'pt' => array(),
-        'rt' => '',
-    );
-
-    public $xmlrpc_valid_parents = array(
-        'VALUE' => array('MEMBER', 'DATA', 'PARAM', 'FAULT'),
-        'BOOLEAN' => array('VALUE'),
-        'I4' => array('VALUE'),
-        'INT' => array('VALUE'),
-        'STRING' => array('VALUE'),
-        'DOUBLE' => array('VALUE'),
-        'DATETIME.ISO8601' => array('VALUE'),
-        'BASE64' => array('VALUE'),
-        'MEMBER' => array('STRUCT'),
-        'NAME' => array('MEMBER'),
-        'DATA' => array('ARRAY'),
-        'ARRAY' => array('VALUE'),
-        'STRUCT' => array('VALUE'),
-        'PARAM' => array('PARAMS'),
-        'METHODNAME' => array('METHODCALL'),
-        'PARAMS' => array('METHODCALL', 'METHODRESPONSE'),
-        'FAULT' => array('METHODRESPONSE'),
-        'NIL' => array('VALUE'), // only used when extension activated
-        'EX:NIL' => array('VALUE'), // only used when extension activated
-    );
-
-    /**
-     * xml parser handler function for opening element tags.
-     */
-    public function xmlrpc_se($parser, $name, $attrs, $acceptSingleVals = false)
-    {
-        // if invalid xmlrpc already detected, skip all processing
-        if ($this->_xh['isf'] < 2) {
-            // check for correct element nesting
-            // top level element can only be of 2 types
-            /// @todo optimization creep: save this check into a bool variable, instead of using count() every time:
-            ///       there is only a single top level element in xml anyway
-            if (count($this->_xh['stack']) == 0) {
-                if ($name != 'METHODRESPONSE' && $name != 'METHODCALL' && (
-                        $name != 'VALUE' && !$acceptSingleVals)
-                ) {
-                    $this->_xh['isf'] = 2;
-                    $this->_xh['isf_reason'] = 'missing top level xmlrpc element';
-
-                    return;
-                } else {
-                    $this->_xh['rt'] = strtolower($name);
-                }
-            } else {
-                // not top level element: see if parent is OK
-                $parent = end($this->_xh['stack']);
-                if (!array_key_exists($name, $this->xmlrpc_valid_parents) || !in_array($parent, $this->xmlrpc_valid_parents[$name])) {
-                    $this->_xh['isf'] = 2;
-                    $this->_xh['isf_reason'] = "xmlrpc element $name cannot be child of $parent";
-
-                    return;
-                }
-            }
-
-            switch ($name) {
-                // optimize for speed switch cases: most common cases first
-                case 'VALUE':
-                    /// @todo we could check for 2 VALUE elements inside a MEMBER or PARAM element
-                    $this->_xh['vt'] = 'value'; // indicator: no value found yet
-                    $this->_xh['ac'] = '';
-                    $this->_xh['lv'] = 1;
-                    $this->_xh['php_class'] = null;
-                    break;
-                case 'I4':
-                case 'INT':
-                case 'STRING':
-                case 'BOOLEAN':
-                case 'DOUBLE':
-                case 'DATETIME.ISO8601':
-                case 'BASE64':
-                    if ($this->_xh['vt'] != 'value') {
-                        //two data elements inside a value: an error occurred!
-                        $this->_xh['isf'] = 2;
-                        $this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
-
-                        return;
-                    }
-                    $this->_xh['ac'] = ''; // reset the accumulator
-                    break;
-                case 'STRUCT':
-                case 'ARRAY':
-                    if ($this->_xh['vt'] != 'value') {
-                        //two data elements inside a value: an error occurred!
-                        $this->_xh['isf'] = 2;
-                        $this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
-
-                        return;
-                    }
-                    // create an empty array to hold child values, and push it onto appropriate stack
-                    $curVal = array();
-                    $curVal['values'] = array();
-                    $curVal['type'] = $name;
-                    // check for out-of-band information to rebuild php objs
-                    // and in case it is found, save it
-                    if (@isset($attrs['PHP_CLASS'])) {
-                        $curVal['php_class'] = $attrs['PHP_CLASS'];
-                    }
-                    $this->_xh['valuestack'][] = $curVal;
-                    $this->_xh['vt'] = 'data'; // be prepared for a data element next
-                    break;
-                case 'DATA':
-                    if ($this->_xh['vt'] != 'data') {
-                        //two data elements inside a value: an error occurred!
-                        $this->_xh['isf'] = 2;
-                        $this->_xh['isf_reason'] = "found two data elements inside an array element";
-
-                        return;
-                    }
-                case 'METHODCALL':
-                case 'METHODRESPONSE':
-                case 'PARAMS':
-                    // valid elements that add little to processing
-                    break;
-                case 'METHODNAME':
-                case 'NAME':
-                    /// @todo we could check for 2 NAME elements inside a MEMBER element
-                    $this->_xh['ac'] = '';
-                    break;
-                case 'FAULT':
-                    $this->_xh['isf'] = 1;
-                    break;
-                case 'MEMBER':
-                    $this->_xh['valuestack'][count($this->_xh['valuestack']) - 1]['name'] = ''; // set member name to null, in case we do not find in the xml later on
-                    //$this->_xh['ac']='';
-                // Drop trough intentionally
-                case 'PARAM':
-                    // clear value type, so we can check later if no value has been passed for this param/member
-                    $this->_xh['vt'] = null;
-                    break;
-                case 'NIL':
-                case 'EX:NIL':
-                    if (PhpXmlRpc::$xmlrpc_null_extension) {
-                        if ($this->_xh['vt'] != 'value') {
-                            //two data elements inside a value: an error occurred!
-                            $this->_xh['isf'] = 2;
-                            $this->_xh['isf_reason'] = "$name element following a {$this->_xh['vt']} element inside a single value";
-
-                            return;
-                        }
-                        $this->_xh['ac'] = ''; // reset the accumulator
-                        break;
-                    }
-                // we do not support the <NIL/> extension, so
-                // drop through intentionally
-                default:
-                    /// INVALID ELEMENT: RAISE ISF so that it is later recognized!!!
-                    $this->_xh['isf'] = 2;
-                    $this->_xh['isf_reason'] = "found not-xmlrpc xml element $name";
-                    break;
-            }
-
-            // Save current element name to stack, to validate nesting
-            $this->_xh['stack'][] = $name;
-
-            /// @todo optimization creep: move this inside the big switch() above
-            if ($name != 'VALUE') {
-                $this->_xh['lv'] = 0;
-            }
-        }
-    }
-
-    /**
-     * Used in decoding xml chunks that might represent single xmlrpc values.
-     */
-    public function xmlrpc_se_any($parser, $name, $attrs)
-    {
-        $this->xmlrpc_se($parser, $name, $attrs, true);
-    }
-
-    /**
-     * xml parser handler function for close element tags.
-     */
-    public function xmlrpc_ee($parser, $name, $rebuildXmlrpcvals = true)
-    {
-        if ($this->_xh['isf'] < 2) {
-            // push this element name from stack
-            // NB: if XML validates, correct opening/closing is guaranteed and
-            // we do not have to check for $name == $currElem.
-            // we also checked for proper nesting at start of elements...
-            $currElem = array_pop($this->_xh['stack']);
-
-            switch ($name) {
-                case 'VALUE':
-                    // This if() detects if no scalar was inside <VALUE></VALUE>
-                    if ($this->_xh['vt'] == 'value') {
-                        $this->_xh['value'] = $this->_xh['ac'];
-                        $this->_xh['vt'] = Value::$xmlrpcString;
-                    }
-
-                    if ($rebuildXmlrpcvals) {
-                        // build the xmlrpc val out of the data received, and substitute it
-                        $temp = new Value($this->_xh['value'], $this->_xh['vt']);
-                        // in case we got info about underlying php class, save it
-                        // in the object we're rebuilding
-                        if (isset($this->_xh['php_class'])) {
-                            $temp->_php_class = $this->_xh['php_class'];
-                        }
-                        // check if we are inside an array or struct:
-                        // if value just built is inside an array, let's move it into array on the stack
-                        $vscount = count($this->_xh['valuestack']);
-                        if ($vscount && $this->_xh['valuestack'][$vscount - 1]['type'] == 'ARRAY') {
-                            $this->_xh['valuestack'][$vscount - 1]['values'][] = $temp;
-                        } else {
-                            $this->_xh['value'] = $temp;
-                        }
-                    } else {
-                        /// @todo this needs to treat correctly php-serialized objects,
-                        /// since std deserializing is done by php_xmlrpc_decode,
-                        /// which we will not be calling...
-                        if (isset($this->_xh['php_class'])) {
-                        }
-
-                        // check if we are inside an array or struct:
-                        // if value just built is inside an array, let's move it into array on the stack
-                        $vscount = count($this->_xh['valuestack']);
-                        if ($vscount && $this->_xh['valuestack'][$vscount - 1]['type'] == 'ARRAY') {
-                            $this->_xh['valuestack'][$vscount - 1]['values'][] = $this->_xh['value'];
-                        }
-                    }
-                    break;
-                case 'BOOLEAN':
-                case 'I4':
-                case 'INT':
-                case 'STRING':
-                case 'DOUBLE':
-                case 'DATETIME.ISO8601':
-                case 'BASE64':
-                    $this->_xh['vt'] = strtolower($name);
-                    /// @todo: optimization creep - remove the if/elseif cycle below
-                    /// since the case() in which we are already did that
-                    if ($name == 'STRING') {
-                        $this->_xh['value'] = $this->_xh['ac'];
-                    } elseif ($name == 'DATETIME.ISO8601') {
-                        if (!preg_match('/^[0-9]{8}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/', $this->_xh['ac'])) {
-                            error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in DATETIME: ' . $this->_xh['ac']);
-                        }
-                        $this->_xh['vt'] = Value::$xmlrpcDateTime;
-                        $this->_xh['value'] = $this->_xh['ac'];
-                    } elseif ($name == 'BASE64') {
-                        /// @todo check for failure of base64 decoding / catch warnings
-                        $this->_xh['value'] = base64_decode($this->_xh['ac']);
-                    } elseif ($name == 'BOOLEAN') {
-                        // special case here: we translate boolean 1 or 0 into PHP
-                        // constants true or false.
-                        // Strings 'true' and 'false' are accepted, even though the
-                        // spec never mentions them (see eg. Blogger api docs)
-                        // NB: this simple checks helps a lot sanitizing input, ie no
-                        // security problems around here
-                        if ($this->_xh['ac'] == '1' || strcasecmp($this->_xh['ac'], 'true') == 0) {
-                            $this->_xh['value'] = true;
-                        } else {
-                            // log if receiving something strange, even though we set the value to false anyway
-                            if ($this->_xh['ac'] != '0' && strcasecmp($this->_xh['ac'], 'false') != 0) {
-                                error_log('XML-RPC: ' . __METHOD__ . ': invalid value received in BOOLEAN: ' . $this->_xh['ac']);
-                            }
-                            $this->_xh['value'] = false;
-                        }
-                    } elseif ($name == 'DOUBLE') {
-                        // we have a DOUBLE
-                        // we must check that only 0123456789-.<space> are characters here
-                        // NOTE: regexp could be much stricter than this...
-                        if (!preg_match('/^[+-eE0123456789 \t.]+$/', $this->_xh['ac'])) {
-                            /// @todo: find a better way of throwing an error than this!
-                            error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in DOUBLE: ' . $this->_xh['ac']);
-                            $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND';
-                        } else {
-                            // it's ok, add it on
-                            $this->_xh['value'] = (double)$this->_xh['ac'];
-                        }
-                    } else {
-                        // we have an I4/INT
-                        // we must check that only 0123456789-<space> are characters here
-                        if (!preg_match('/^[+-]?[0123456789 \t]+$/', $this->_xh['ac'])) {
-                            /// @todo find a better way of throwing an error than this!
-                            error_log('XML-RPC: ' . __METHOD__ . ': non numeric value received in INT: ' . $this->_xh['ac']);
-                            $this->_xh['value'] = 'ERROR_NON_NUMERIC_FOUND';
-                        } else {
-                            // it's ok, add it on
-                            $this->_xh['value'] = (int)$this->_xh['ac'];
-                        }
-                    }
-                    $this->_xh['lv'] = 3; // indicate we've found a value
-                    break;
-                case 'NAME':
-                    $this->_xh['valuestack'][count($this->_xh['valuestack']) - 1]['name'] = $this->_xh['ac'];
-                    break;
-                case 'MEMBER':
-                    // add to array in the stack the last element built,
-                    // unless no VALUE was found
-                    if ($this->_xh['vt']) {
-                        $vscount = count($this->_xh['valuestack']);
-                        $this->_xh['valuestack'][$vscount - 1]['values'][$this->_xh['valuestack'][$vscount - 1]['name']] = $this->_xh['value'];
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': missing VALUE inside STRUCT in received xml');
-                    }
-                    break;
-                case 'DATA':
-                    $this->_xh['vt'] = null; // reset this to check for 2 data elements in a row - even if they're empty
-                    break;
-                case 'STRUCT':
-                case 'ARRAY':
-                    // fetch out of stack array of values, and promote it to current value
-                    $currVal = array_pop($this->_xh['valuestack']);
-                    $this->_xh['value'] = $currVal['values'];
-                    $this->_xh['vt'] = strtolower($name);
-                    if (isset($currVal['php_class'])) {
-                        $this->_xh['php_class'] = $currVal['php_class'];
-                    }
-                    break;
-                case 'PARAM':
-                    // add to array of params the current value,
-                    // unless no VALUE was found
-                    if ($this->_xh['vt']) {
-                        $this->_xh['params'][] = $this->_xh['value'];
-                        $this->_xh['pt'][] = $this->_xh['vt'];
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': missing VALUE inside PARAM in received xml');
-                    }
-                    break;
-                case 'METHODNAME':
-                    $this->_xh['method'] = preg_replace('/^[\n\r\t ]+/', '', $this->_xh['ac']);
-                    break;
-                case 'NIL':
-                case 'EX:NIL':
-                    if (PhpXmlRpc::$xmlrpc_null_extension) {
-                        $this->_xh['vt'] = 'null';
-                        $this->_xh['value'] = null;
-                        $this->_xh['lv'] = 3;
-                        break;
-                    }
-                // drop through intentionally if nil extension not enabled
-                case 'PARAMS':
-                case 'FAULT':
-                case 'METHODCALL':
-                case 'METHORESPONSE':
-                    break;
-                default:
-                    // End of INVALID ELEMENT!
-                    // shall we add an assert here for unreachable code???
-                    break;
-            }
-        }
-    }
-
-    /**
-     * Used in decoding xmlrpc requests/responses without rebuilding xmlrpc Values.
-     */
-    public function xmlrpc_ee_fast($parser, $name)
-    {
-        $this->xmlrpc_ee($parser, $name, false);
-    }
-
-    /**
-     * xml parser handler function for character data.
-     */
-    public function xmlrpc_cd($parser, $data)
-    {
-        // skip processing if xml fault already detected
-        if ($this->_xh['isf'] < 2) {
-            // "lookforvalue==3" means that we've found an entire value
-            // and should discard any further character data
-            if ($this->_xh['lv'] != 3) {
-                $this->_xh['ac'] .= $data;
-            }
-        }
-    }
-
-    /**
-     * xml parser handler function for 'other stuff', ie. not char data or
-     * element start/end tag. In fact it only gets called on unknown entities...
-     */
-    public function xmlrpc_dh($parser, $data)
-    {
-        // skip processing if xml fault already detected
-        if ($this->_xh['isf'] < 2) {
-            if (substr($data, 0, 1) == '&' && substr($data, -1, 1) == ';') {
-                $this->_xh['ac'] .= $data;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * xml charset encoding guessing helper function.
-     * Tries to determine the charset encoding of an XML chunk received over HTTP.
-     * NB: according to the spec (RFC 3023), if text/xml content-type is received over HTTP without a content-type,
-     * we SHOULD assume it is strictly US-ASCII. But we try to be more tolerant of non conforming (legacy?) clients/servers,
-     * which will be most probably using UTF-8 anyway...
-     * In order of importance checks:
-     * 1. http headers
-     * 2. BOM
-     * 3. XML declaration
-     * 4. guesses using mb_detect_encoding()
-     *
-     * @param string $httpHeader the http Content-type header
-     * @param string $xmlChunk xml content buffer
-     * @param string $encodingPrefs comma separated list of character encodings to be used as default (when mb extension is enabled).
-     *                              This can also be set globally using PhpXmlRpc::$xmlrpc_detectencodings
-     * @return string the encoding determined. Null if it can't be determined and mbstring is enabled,
-     *                PhpXmlRpc::$xmlrpc_defencoding if it can't be determined and mbstring is not enabled
-     *
-     * @todo explore usage of mb_http_input(): does it detect http headers + post data? if so, use it instead of hand-detection!!!
-     */
-    public static function guessEncoding($httpHeader = '', $xmlChunk = '', $encodingPrefs = null)
-    {
-        // discussion: see http://www.yale.edu/pclt/encoding/
-        // 1 - test if encoding is specified in HTTP HEADERS
-
-        // Details:
-        // LWS:           (\13\10)?( |\t)+
-        // token:         (any char but excluded stuff)+
-        // quoted string: " (any char but double quotes and control chars)* "
-        // header:        Content-type = ...; charset=value(; ...)*
-        //   where value is of type token, no LWS allowed between 'charset' and value
-        // Note: we do not check for invalid chars in VALUE:
-        //   this had better be done using pure ereg as below
-        // Note 2: we might be removing whitespace/tabs that ought to be left in if
-        //   the received charset is a quoted string. But nobody uses such charset names...
-
-        /// @todo this test will pass if ANY header has charset specification, not only Content-Type. Fix it?
-        $matches = array();
-        if (preg_match('/;\s*charset\s*=([^;]+)/i', $httpHeader, $matches)) {
-            return strtoupper(trim($matches[1], " \t\""));
-        }
-
-        // 2 - scan the first bytes of the data for a UTF-16 (or other) BOM pattern
-        //     (source: http://www.w3.org/TR/2000/REC-xml-20001006)
-        //     NOTE: actually, according to the spec, even if we find the BOM and determine
-        //     an encoding, we should check if there is an encoding specified
-        //     in the xml declaration, and verify if they match.
-        /// @todo implement check as described above?
-        /// @todo implement check for first bytes of string even without a BOM? (It sure looks harder than for cases WITH a BOM)
-        if (preg_match('/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\x00\x00\xFF\xFE|\xFE\xFF\x00\x00)/', $xmlChunk)) {
-            return 'UCS-4';
-        } elseif (preg_match('/^(\xFE\xFF|\xFF\xFE)/', $xmlChunk)) {
-            return 'UTF-16';
-        } elseif (preg_match('/^(\xEF\xBB\xBF)/', $xmlChunk)) {
-            return 'UTF-8';
-        }
-
-        // 3 - test if encoding is specified in the xml declaration
-        // Details:
-        // SPACE:         (#x20 | #x9 | #xD | #xA)+ === [ \x9\xD\xA]+
-        // EQ:            SPACE?=SPACE? === [ \x9\xD\xA]*=[ \x9\xD\xA]*
-        if (preg_match('/^<\?xml\s+version\s*=\s*' . "((?:\"[a-zA-Z0-9_.:-]+\")|(?:'[a-zA-Z0-9_.:-]+'))" .
-            '\s+encoding\s*=\s*' . "((?:\"[A-Za-z][A-Za-z0-9._-]*\")|(?:'[A-Za-z][A-Za-z0-9._-]*'))/",
-            $xmlChunk, $matches)) {
-            return strtoupper(substr($matches[2], 1, -1));
-        }
-
-        // 4 - if mbstring is available, let it do the guesswork
-        if (extension_loaded('mbstring')) {
-            if ($encodingPrefs == null && PhpXmlRpc::$xmlrpc_detectencodings != null) {
-                $encodingPrefs = PhpXmlRpc::$xmlrpc_detectencodings;
-            }
-            if ($encodingPrefs) {
-                $enc = mb_detect_encoding($xmlChunk, $encodingPrefs);
-            } else {
-                $enc = mb_detect_encoding($xmlChunk);
-            }
-            // NB: mb_detect likes to call it ascii, xml parser likes to call it US_ASCII...
-            // IANA also likes better US-ASCII, so go with it
-            if ($enc == 'ASCII') {
-                $enc = 'US-' . $enc;
-            }
-
-            return $enc;
-        } else {
-            // no encoding specified: as per HTTP1.1 assume it is iso-8859-1?
-            // Both RFC 2616 (HTTP 1.1) and 1945 (HTTP 1.0) clearly state that for text/xxx content types
-            // this should be the standard. And we should be getting text/xml as request and response.
-            // BUT we have to be backward compatible with the lib, which always used UTF-8 as default...
-            return PhpXmlRpc::$xmlrpc_defencoding;
-        }
-    }
-
-    /**
-     * Helper function: checks if an xml chunk as a charset declaration (BOM or in the xml declaration)
-     *
-     * @param string $xmlChunk
-     * @return bool
-     */
-    public static function hasEncoding($xmlChunk)
-    {
-        // scan the first bytes of the data for a UTF-16 (or other) BOM pattern
-        //     (source: http://www.w3.org/TR/2000/REC-xml-20001006)
-        if (preg_match('/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\x00\x00\xFF\xFE|\xFE\xFF\x00\x00)/', $xmlChunk)) {
-            return true;
-        } elseif (preg_match('/^(\xFE\xFF|\xFF\xFE)/', $xmlChunk)) {
-            return true;
-        } elseif (preg_match('/^(\xEF\xBB\xBF)/', $xmlChunk)) {
-            return true;
-        }
-
-        // test if encoding is specified in the xml declaration
-        // Details:
-        // SPACE:         (#x20 | #x9 | #xD | #xA)+ === [ \x9\xD\xA]+
-        // EQ:            SPACE?=SPACE? === [ \x9\xD\xA]*=[ \x9\xD\xA]*
-        if (preg_match('/^<\?xml\s+version\s*=\s*' . "((?:\"[a-zA-Z0-9_.:-]+\")|(?:'[a-zA-Z0-9_.:-]+'))" .
-            '\s+encoding\s*=\s*' . "((?:\"[A-Za-z][A-Za-z0-9._-]*\")|(?:'[A-Za-z][A-Za-z0-9._-]*'))/",
-            $xmlChunk, $matches)) {
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/PhpXmlRpc.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/PhpXmlRpc.php
deleted file mode 100644
index 086a90a5c5daa735baf8ca7636e9f3ff459fea59..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/PhpXmlRpc.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-class PhpXmlRpc
-{
-    static public $xmlrpcerr = array(
-        'unknown_method' => 1,
-        'invalid_return' => 2,
-        'incorrect_params' => 3,
-        'introspect_unknown' => 4,
-        'http_error' => 5,
-        'no_data' => 6,
-        'no_ssl' => 7,
-        'curl_fail' => 8,
-        'invalid_request' => 15,
-        'no_curl' => 16,
-        'server_error' => 17,
-        'multicall_error' => 18,
-        'multicall_notstruct' => 9,
-        'multicall_nomethod' => 10,
-        'multicall_notstring' => 11,
-        'multicall_recursion' => 12,
-        'multicall_noparams' => 13,
-        'multicall_notarray' => 14,
-
-        'cannot_decompress' => 103,
-        'decompress_fail' => 104,
-        'dechunk_fail' => 105,
-        'server_cannot_decompress' => 106,
-        'server_decompress_fail' => 107,
-    );
-
-    static public $xmlrpcstr = array(
-        'unknown_method' => 'Unknown method',
-        'invalid_return' => 'Invalid return payload: enable debugging to examine incoming payload',
-        'incorrect_params' => 'Incorrect parameters passed to method',
-        'introspect_unknown' => "Can't introspect: method unknown",
-        'http_error' => "Didn't receive 200 OK from remote server.",
-        'no_data' => 'No data received from server.',
-        'no_ssl' => 'No SSL support compiled in.',
-        'curl_fail' => 'CURL error',
-        'invalid_request' => 'Invalid request payload',
-        'no_curl' => 'No CURL support compiled in.',
-        'server_error' => 'Internal server error',
-        'multicall_error' => 'Received from server invalid multicall response',
-        'multicall_notstruct' => 'system.multicall expected struct',
-        'multicall_nomethod' => 'missing methodName',
-        'multicall_notstring' => 'methodName is not a string',
-        'multicall_recursion' => 'recursive system.multicall forbidden',
-        'multicall_noparams' => 'missing params',
-        'multicall_notarray' => 'params is not an array',
-
-        'cannot_decompress' => 'Received from server compressed HTTP and cannot decompress',
-        'decompress_fail' => 'Received from server invalid compressed HTTP',
-        'dechunk_fail' => 'Received from server invalid chunked HTTP',
-        'server_cannot_decompress' => 'Received from client compressed HTTP request and cannot decompress',
-        'server_decompress_fail' => 'Received from client invalid compressed HTTP request',
-    );
-
-    // The charset encoding used by the server for received requests and
-    // by the client for received responses when received charset cannot be determined
-    // and mbstring extension is not enabled
-    public static $xmlrpc_defencoding = "UTF-8";
-
-    // The list of encodings used by the server for requests and by the client for responses
-    // to detect the charset of the received payload when
-    // - the charset cannot be determined by looking at http headers, xml declaration or BOM
-    // - mbstring extension is enabled
-    public static $xmlrpc_detectencodings = array();
-
-    // The encoding used internally by PHP.
-    // String values received as xml will be converted to this, and php strings will be converted to xml
-    // as if having been coded with this.
-    // Valid also when defining names of xmlrpc methods
-    public static $xmlrpc_internalencoding = "UTF-8";
-
-    public static $xmlrpcName = "XML-RPC for PHP";
-    public static $xmlrpcVersion = "4.0.0.alpha";
-
-    // let user errors start at 800
-    public static $xmlrpcerruser = 800;
-    // let XML parse errors start at 100
-    public static $xmlrpcerrxml = 100;
-
-    // set to TRUE to enable correct decoding of <NIL/> and <EX:NIL/> values
-    public static $xmlrpc_null_extension = false;
-
-    // set to TRUE to enable encoding of php NULL values to <EX:NIL/> instead of <NIL/>
-    public static $xmlrpc_null_apache_encoding = false;
-
-    public static $xmlrpc_null_apache_encoding_ns = "http://ws.apache.org/xmlrpc/namespaces/extensions";
-
-    /**
-     * A function to be used for compatibility with legacy code: it creates all global variables which used to be declared,
-     * such as library version etc...
-     */
-    public static function exportGlobals()
-    {
-        $reflection = new \ReflectionClass('PhpXmlRpc\PhpXmlRpc');
-        foreach ($reflection->getStaticProperties() as $name => $value) {
-            $GLOBALS[$name] = $value;
-        }
-
-        // NB: all the variables exported into the global namespace below here do NOT guarantee 100%
-        // compatibility, as they are NOT reimported back during calls to importGlobals()
-
-        $reflection = new \ReflectionClass('PhpXmlRpc\Value');
-        foreach ($reflection->getStaticProperties() as $name => $value) {
-            $GLOBALS[$name] = $value;
-        }
-
-        $parser = new Helper\XMLParser();
-        $reflection = new \ReflectionClass('PhpXmlRpc\Helper\XMLParser');
-        foreach ($reflection->getProperties(\ReflectionProperty::IS_PUBLIC) as $name => $value) {
-            if (in_array($value->getName(), array('xmlrpc_valid_parents')))
-            {
-                $GLOBALS[$value->getName()] = $value->getValue($parser);
-            }
-        }
-
-        $charset = Helper\Charset::instance();
-        $GLOBALS['xml_iso88591_Entities'] = $charset->getEntities('iso88591');
-    }
-
-    /**
-     * A function to be used for compatibility with legacy code: it gets the values of all global variables which used
-     * to be declared, such as library version etc... and sets them to php classes.
-     * It should be used by code which changed the values of those global variables to alter the working of the library.
-     * Example code:
-     * 1. include xmlrpc.inc
-     * 2. set the values, e.g. $GLOBALS['xmlrpc_internalencoding'] = 'UTF-8';
-     * 3. import them: PhpXmlRpc\PhpXmlRpc::importGlobals();
-     * 4. run your own code.
-     */
-    public static function importGlobals()
-    {
-        $reflection = new \ReflectionClass('PhpXmlRpc\PhpXmlRpc');
-        $staticProperties = $reflection->getStaticProperties();
-        foreach ($staticProperties as $name => $value) {
-            if (isset($GLOBALS[$name])) {
-                self::$$name = $GLOBALS[$name];
-            }
-        }
-    }
-
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Request.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Request.php
deleted file mode 100644
index 52a3b975db8e512ac3b2dc7e063ad93e9e3c53be..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Request.php
+++ /dev/null
@@ -1,379 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\Charset;
-use PhpXmlRpc\Helper\Http;
-use PhpXmlRpc\Helper\Logger;
-use PhpXmlRpc\Helper\XMLParser;
-
-class Request
-{
-    /// @todo: do these need to be public?
-    public $payload;
-    public $methodname;
-    public $params = array();
-    public $debug = 0;
-    public $content_type = 'text/xml';
-
-    // holds data while parsing the response. NB: Not a full Response object
-    protected $httpResponse = array();
-
-    /**
-     * @param string $methodName the name of the method to invoke
-     * @param Value[] $params array of parameters to be passed to the method (Value objects)
-     */
-    public function __construct($methodName, $params = array())
-    {
-        $this->methodname = $methodName;
-        foreach ($params as $param) {
-            $this->addParam($param);
-        }
-    }
-
-    public function xml_header($charsetEncoding = '')
-    {
-        if ($charsetEncoding != '') {
-            return "<?xml version=\"1.0\" encoding=\"$charsetEncoding\" ?" . ">\n<methodCall>\n";
-        } else {
-            return "<?xml version=\"1.0\"?" . ">\n<methodCall>\n";
-        }
-    }
-
-    public function xml_footer()
-    {
-        return '</methodCall>';
-    }
-
-    public function createPayload($charsetEncoding = '')
-    {
-        if ($charsetEncoding != '') {
-            $this->content_type = 'text/xml; charset=' . $charsetEncoding;
-        } else {
-            $this->content_type = 'text/xml';
-        }
-        $this->payload = $this->xml_header($charsetEncoding);
-        $this->payload .= '<methodName>' . Charset::instance()->encodeEntities($this->methodname, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</methodName>\n";
-        $this->payload .= "<params>\n";
-        foreach ($this->params as $p) {
-            $this->payload .= "<param>\n" . $p->serialize($charsetEncoding) .
-                "</param>\n";
-        }
-        $this->payload .= "</params>\n";
-        $this->payload .= $this->xml_footer();
-    }
-
-    /**
-     * Gets/sets the xmlrpc method to be invoked.
-     *
-     * @param string $methodName the method to be set (leave empty not to set it)
-     *
-     * @return string the method that will be invoked
-     */
-    public function method($methodName = '')
-    {
-        if ($methodName != '') {
-            $this->methodname = $methodName;
-        }
-
-        return $this->methodname;
-    }
-
-    /**
-     * Returns xml representation of the message. XML prologue included.
-     *
-     * @param string $charsetEncoding
-     *
-     * @return string the xml representation of the message, xml prologue included
-     */
-    public function serialize($charsetEncoding = '')
-    {
-        $this->createPayload($charsetEncoding);
-
-        return $this->payload;
-    }
-
-    /**
-     * Add a parameter to the list of parameters to be used upon method invocation.
-     *
-     * @param Value $param
-     *
-     * @return boolean false on failure
-     */
-    public function addParam($param)
-    {
-        // add check: do not add to self params which are not xmlrpc values
-        if (is_object($param) && is_a($param, 'PhpXmlRpc\Value')) {
-            $this->params[] = $param;
-
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns the nth parameter in the request. The index zero-based.
-     *
-     * @param integer $i the index of the parameter to fetch (zero based)
-     *
-     * @return Value the i-th parameter
-     */
-    public function getParam($i)
-    {
-        return $this->params[$i];
-    }
-
-    /**
-     * Returns the number of parameters in the message.
-     *
-     * @return integer the number of parameters currently set
-     */
-    public function getNumParams()
-    {
-        return count($this->params);
-    }
-
-    /**
-     * Given an open file handle, read all data available and parse it as an xmlrpc response.
-     * NB: the file handle is not closed by this function.
-     * NNB: might have trouble in rare cases to work on network streams, as we
-     *      check for a read of 0 bytes instead of feof($fp).
-     *      But since checking for feof(null) returns false, we would risk an
-     *      infinite loop in that case, because we cannot trust the caller
-     *      to give us a valid pointer to an open file...
-     *
-     * @param resource $fp stream pointer
-     *
-     * @return Response
-     *
-     * @todo add 2nd & 3rd param to be passed to ParseResponse() ???
-     */
-    public function parseResponseFile($fp)
-    {
-        $ipd = '';
-        while ($data = fread($fp, 32768)) {
-            $ipd .= $data;
-        }
-        return $this->parseResponse($ipd);
-    }
-
-    /**
-     * Parse the xmlrpc response contained in the string $data and return a Response object.
-     *
-     * @param string $data the xmlrpc response, eventually including http headers
-     * @param bool $headersProcessed when true prevents parsing HTTP headers for interpretation of content-encoding and consequent decoding
-     * @param string $returnType decides return type, i.e. content of response->value(). Either 'xmlrpcvals', 'xml' or 'phpvals'
-     *
-     * @return Response
-     */
-    public function parseResponse($data = '', $headersProcessed = false, $returnType = 'xmlrpcvals')
-    {
-        if ($this->debug) {
-            Logger::instance()->debugMessage("---GOT---\n$data\n---END---");
-        }
-
-        $this->httpResponse = array('raw_data' => $data, 'headers' => array(), 'cookies' => array());
-
-        if ($data == '') {
-            error_log('XML-RPC: ' . __METHOD__ . ': no response received from server.');
-            return new Response(0, PhpXmlRpc::$xmlrpcerr['no_data'], PhpXmlRpc::$xmlrpcstr['no_data']);
-        }
-
-        // parse the HTTP headers of the response, if present, and separate them from data
-        if (substr($data, 0, 4) == 'HTTP') {
-            $httpParser = new Http();
-            try {
-                $this->httpResponse = $httpParser->parseResponseHeaders($data, $headersProcessed, $this->debug);
-            } catch(\Exception $e) {
-                $r = new Response(0, $e->getCode(), $e->getMessage());
-                // failed processing of HTTP response headers
-                // save into response obj the full payload received, for debugging
-                $r->raw_data = $data;
-
-                return $r;
-            }
-        }
-
-        // be tolerant of extra whitespace in response body
-        $data = trim($data);
-
-        /// @todo return an error msg if $data=='' ?
-
-        // be tolerant of junk after methodResponse (e.g. javascript ads automatically inserted by free hosts)
-        // idea from Luca Mariano <luca.mariano@email.it> originally in PEARified version of the lib
-        $pos = strrpos($data, '</methodResponse>');
-        if ($pos !== false) {
-            $data = substr($data, 0, $pos + 17);
-        }
-
-        // try to 'guestimate' the character encoding of the received response
-        $respEncoding = XMLParser::guessEncoding(@$this->httpResponse['headers']['content-type'], $data);
-
-        if ($this->debug) {
-            $start = strpos($data, '<!-- SERVER DEBUG INFO (BASE64 ENCODED):');
-            if ($start) {
-                $start += strlen('<!-- SERVER DEBUG INFO (BASE64 ENCODED):');
-                $end = strpos($data, '-->', $start);
-                $comments = substr($data, $start, $end - $start);
-                Logger::instance()->debugMessage("---SERVER DEBUG INFO (DECODED) ---\n\t" .
-                    str_replace("\n", "\n\t", base64_decode($comments)) . "\n---END---", $respEncoding);
-            }
-        }
-
-        // if user wants back raw xml, give it to him
-        if ($returnType == 'xml') {
-            $r = new Response($data, 0, '', 'xml');
-            $r->hdrs = $this->httpResponse['headers'];
-            $r->_cookies = $this->httpResponse['cookies'];
-            $r->raw_data = $this->httpResponse['raw_data'];
-
-            return $r;
-        }
-
-        if ($respEncoding != '') {
-
-            // Since parsing will fail if charset is not specified in the xml prologue,
-            // the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that...
-            // The following code might be better for mb_string enabled installs, but
-            // makes the lib about 200% slower...
-            //if (!is_valid_charset($respEncoding, array('UTF-8')))
-            if (!in_array($respEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($data)) {
-                if ($respEncoding == 'ISO-8859-1') {
-                    $data = utf8_encode($data);
-                } else {
-                    if (extension_loaded('mbstring')) {
-                        $data = mb_convert_encoding($data, 'UTF-8', $respEncoding);
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received response: ' . $respEncoding);
-                    }
-                }
-            }
-        }
-
-        $parser = xml_parser_create();
-        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
-        // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
-        // the xml parser to give us back data in the expected charset.
-        // What if internal encoding is not in one of the 3 allowed?
-        // we use the broadest one, ie. utf8
-        // This allows to send data which is native in various charset,
-        // by extending xmlrpc_encode_entities() and setting xmlrpc_internalencoding
-        if (!in_array(PhpXmlRpc::$xmlrpc_internalencoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
-        } else {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, PhpXmlRpc::$xmlrpc_internalencoding);
-        }
-
-        $xmlRpcParser = new XMLParser();
-        xml_set_object($parser, $xmlRpcParser);
-
-        if ($returnType == 'phpvals') {
-            xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee_fast');
-        } else {
-            xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee');
-        }
-
-        xml_set_character_data_handler($parser, 'xmlrpc_cd');
-        xml_set_default_handler($parser, 'xmlrpc_dh');
-
-        // first error check: xml not well formed
-        if (!xml_parse($parser, $data, count($data))) {
-            // thanks to Peter Kocks <peter.kocks@baygate.com>
-            if ((xml_get_current_line_number($parser)) == 1) {
-                $errStr = 'XML error at line 1, check URL';
-            } else {
-                $errStr = sprintf('XML error: %s at line %d, column %d',
-                    xml_error_string(xml_get_error_code($parser)),
-                    xml_get_current_line_number($parser), xml_get_current_column_number($parser));
-            }
-            error_log($errStr);
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'], PhpXmlRpc::$xmlrpcstr['invalid_return'] . ' (' . $errStr . ')');
-            xml_parser_free($parser);
-            if ($this->debug) {
-                print $errStr;
-            }
-            $r->hdrs = $this->httpResponse['headers'];
-            $r->_cookies = $this->httpResponse['cookies'];
-            $r->raw_data = $this->httpResponse['raw_data'];
-
-            return $r;
-        }
-        xml_parser_free($parser);
-        // second error check: xml well formed but not xml-rpc compliant
-        if ($xmlRpcParser->_xh['isf'] > 1) {
-            if ($this->debug) {
-                /// @todo echo something for user?
-            }
-
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'],
-                PhpXmlRpc::$xmlrpcstr['invalid_return'] . ' ' . $xmlRpcParser->_xh['isf_reason']);
-        }
-        // third error check: parsing of the response has somehow gone boink.
-        // NB: shall we omit this check, since we trust the parsing code?
-        elseif ($returnType == 'xmlrpcvals' && !is_object($xmlRpcParser->_xh['value'])) {
-            // something odd has happened
-            // and it's time to generate a client side error
-            // indicating something odd went on
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['invalid_return'],
-                PhpXmlRpc::$xmlrpcstr['invalid_return']);
-        } else {
-            if ($this->debug > 1) {
-                Logger::instance()->debugMessage(
-                    "---PARSED---\n".var_export($xmlRpcParser->_xh['value'], true)."\n---END---"
-                );
-            }
-
-            // note that using =& will raise an error if $xmlRpcParser->_xh['st'] does not generate an object.
-            $v = &$xmlRpcParser->_xh['value'];
-
-            if ($xmlRpcParser->_xh['isf']) {
-                /// @todo we should test here if server sent an int and a string, and/or coerce them into such...
-                if ($returnType == 'xmlrpcvals') {
-                    $errNo_v = $v['faultCode'];
-                    $errStr_v = $v['faultString'];
-                    $errNo = $errNo_v->scalarval();
-                    $errStr = $errStr_v->scalarval();
-                } else {
-                    $errNo = $v['faultCode'];
-                    $errStr = $v['faultString'];
-                }
-
-                if ($errNo == 0) {
-                    // FAULT returned, errno needs to reflect that
-                    $errNo = -1;
-                }
-
-                $r = new Response(0, $errNo, $errStr);
-            } else {
-                $r = new Response($v, 0, '', $returnType);
-            }
-        }
-
-        $r->hdrs = $this->httpResponse['headers'];
-        $r->_cookies = $this->httpResponse['cookies'];
-        $r->raw_data = $this->httpResponse['raw_data'];
-
-        return $r;
-    }
-
-    /**
-     * Kept the old name even if Request class was renamed, for compatibility.
-     *
-     * @return string
-     */
-    public function kindOf()
-    {
-        return 'msg';
-    }
-
-    /**
-     * Enables/disables the echoing to screen of the xmlrpc responses received.
-     *
-     * @param integer $in values 0, 1, 2 are supported
-     */
-    public function setDebug($in)
-    {
-        $this->debug = $in;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Response.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Response.php
deleted file mode 100644
index 7e2ebb66bb38ef312337bfeab58a882a915910fc..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Response.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\Charset;
-
-class Response
-{
-    /// @todo: do these need to be public?
-    public $val = 0;
-    public $valType;
-    public $errno = 0;
-    public $errstr = '';
-    public $payload;
-    public $hdrs = array();
-    public $_cookies = array();
-    public $content_type = 'text/xml';
-    public $raw_data = '';
-
-    /**
-     * @param mixed $val either an xmlrpc value obj, a php value or the xml serialization of an xmlrpc value (a string)
-     * @param integer $fCode set it to anything but 0 to create an error response
-     * @param string $fString the error string, in case of an error response
-     * @param string $valType either 'xmlrpcvals', 'phpvals' or 'xml'
-     *
-     * @todo add check that $val / $fCode / $fString is of correct type???
-     * NB: as of now we do not do it, since it might be either an xmlrpc value or a plain
-     * php val, or a complete xml chunk, depending on usage of Client::send() inside which creator is called...
-     */
-    public function __construct($val, $fCode = 0, $fString = '', $valType = '')
-    {
-        if ($fCode != 0) {
-            // error response
-            $this->errno = $fCode;
-            $this->errstr = $fString;
-        } else {
-            // successful response
-            $this->val = $val;
-            if ($valType == '') {
-                // user did not declare type of response value: try to guess it
-                if (is_object($this->val) && is_a($this->val, 'PhpXmlRpc\Value')) {
-                    $this->valtyp = 'xmlrpcvals';
-                } elseif (is_string($this->val)) {
-                    $this->valtyp = 'xml';
-                } else {
-                    $this->valtyp = 'phpvals';
-                }
-            } else {
-                // user declares type of resp value: believe him
-                $this->valtyp = $valType;
-            }
-        }
-    }
-
-    /**
-     * Returns the error code of the response.
-     *
-     * @return integer the error code of this response (0 for not-error responses)
-     */
-    public function faultCode()
-    {
-        return $this->errno;
-    }
-
-    /**
-     * Returns the error code of the response.
-     *
-     * @return string the error string of this response ('' for not-error responses)
-     */
-    public function faultString()
-    {
-        return $this->errstr;
-    }
-
-    /**
-     * Returns the value received by the server.
-     *
-     * @return Value|string|mixed the xmlrpc value object returned by the server. Might be an xml string or php value if the response has been created by specially configured Client objects
-     */
-    public function value()
-    {
-        return $this->val;
-    }
-
-    /**
-     * Returns an array with the cookies received from the server.
-     * Array has the form: $cookiename => array ('value' => $val, $attr1 => $val1, $attr2 = $val2, ...)
-     * with attributes being e.g. 'expires', 'path', domain'.
-     * NB: cookies sent as 'expired' by the server (i.e. with an expiry date in the past)
-     * are still present in the array. It is up to the user-defined code to decide
-     * how to use the received cookies, and whether they have to be sent back with the next
-     * request to the server (using Client::setCookie) or not.
-     *
-     * @return array array of cookies received from the server
-     */
-    public function cookies()
-    {
-        return $this->_cookies;
-    }
-
-    /**
-     * Returns xml representation of the response. XML prologue not included.
-     *
-     * @param string $charsetEncoding the charset to be used for serialization. if null, US-ASCII is assumed
-     *
-     * @return string the xml representation of the response
-     *
-     * @throws \Exception
-     */
-    public function serialize($charsetEncoding = '')
-    {
-        if ($charsetEncoding != '') {
-            $this->content_type = 'text/xml; charset=' . $charsetEncoding;
-        } else {
-            $this->content_type = 'text/xml';
-        }
-        if (PhpXmlRpc::$xmlrpc_null_apache_encoding) {
-            $result = "<methodResponse xmlns:ex=\"" . PhpXmlRpc::$xmlrpc_null_apache_encoding_ns . "\">\n";
-        } else {
-            $result = "<methodResponse>\n";
-        }
-        if ($this->errno) {
-            // G. Giunta 2005/2/13: let non-ASCII response messages be tolerated by clients
-            // by xml-encoding non ascii chars
-            $result .= "<fault>\n" .
-                "<value>\n<struct><member><name>faultCode</name>\n<value><int>" . $this->errno .
-                "</int></value>\n</member>\n<member>\n<name>faultString</name>\n<value><string>" .
-                Charset::instance()->encodeEntities($this->errstr, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</string></value>\n</member>\n" .
-                "</struct>\n</value>\n</fault>";
-        } else {
-            if (!is_object($this->val) || !is_a($this->val, 'PhpXmlRpc\Value')) {
-                if (is_string($this->val) && $this->valtyp == 'xml') {
-                    $result .= "<params>\n<param>\n" .
-                        $this->val .
-                        "</param>\n</params>";
-                } else {
-                    /// @todo try to build something serializable?
-                    throw new \Exception('cannot serialize xmlrpc response objects whose content is native php values');
-                }
-            } else {
-                $result .= "<params>\n<param>\n" .
-                    $this->val->serialize($charsetEncoding) .
-                    "</param>\n</params>";
-            }
-        }
-        $result .= "\n</methodResponse>";
-        $this->payload = $result;
-
-        return $result;
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Server.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Server.php
deleted file mode 100644
index 07cfb9b4e4005a8418608519888bc480d23560b1..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Server.php
+++ /dev/null
@@ -1,1054 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\XMLParser;
-use PhpXmlRpc\Helper\Charset;
-
-class Server
-{
-    /**
-     * Array defining php functions exposed as xmlrpc methods by this server.
-     */
-    protected $dmap = array();
-    /**
-     * Defines how functions in dmap will be invoked: either using an xmlrpc request object
-     * or plain php values.
-     * Valid strings are 'xmlrpcvals', 'phpvals' or 'epivals'
-     */
-    public $functions_parameters_type = 'xmlrpcvals';
-    /**
-     * Option used for fine-tuning the encoding the php values returned from
-     * functions registered in the dispatch map when the functions_parameters_types
-     * member is set to 'phpvals'
-     * @see Encoder::encode for a list of values
-     */
-    public $phpvals_encoding_options = array('auto_dates');
-    /**
-     * Controls whether the server is going to echo debugging messages back to the client as comments in response body.
-     * Valid values: 0,1,2,3
-     */
-    public $debug = 1;
-    /**
-     * Controls behaviour of server when the invoked user function throws an exception:
-     * 0 = catch it and return an 'internal error' xmlrpc response (default)
-     * 1 = catch it and return an xmlrpc response with the error corresponding to the exception
-     * 2 = allow the exception to float to the upper layers
-     */
-    public $exception_handling = 0;
-    /**
-     * When set to true, it will enable HTTP compression of the response, in case
-     * the client has declared its support for compression in the request.
-     * Set at constructor time.
-     */
-    public $compress_response = false;
-    /**
-     * List of http compression methods accepted by the server for requests. Set at constructor time.
-     * NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib
-     */
-    public $accepted_compression = array();
-    /// shall we serve calls to system.* methods?
-    public $allow_system_funcs = true;
-    /**
-     * List of charset encodings natively accepted for requests.
-     * Set at constructor time.
-     * UNUSED so far...
-     */
-    public $accepted_charset_encodings = array();
-    /**
-     * charset encoding to be used for response.
-     * NB: if we can, we will convert the generated response from internal_encoding to the intended one.
-     * Can be: a supported xml encoding (only UTF-8 and ISO-8859-1 at present, unless mbstring is enabled),
-     * null (leave unspecified in response, convert output stream to US_ASCII),
-     * 'default' (use xmlrpc library default as specified in xmlrpc.inc, convert output stream if needed),
-     * or 'auto' (use client-specified charset encoding or same as request if request headers do not specify it (unless request is US-ASCII: then use library default anyway).
-     * NB: pretty dangerous if you accept every charset and do not have mbstring enabled)
-     */
-    public $response_charset_encoding = '';
-    /**
-     * Storage for internal debug info.
-     */
-    protected $debug_info = '';
-    /**
-     * Extra data passed at runtime to method handling functions. Used only by EPI layer
-     */
-    public $user_data = null;
-
-    protected static $_xmlrpc_debuginfo = '';
-    protected static $_xmlrpcs_occurred_errors = '';
-    protected static $_xmlrpcs_prev_ehandler = '';
-
-    /**
-     * @param array $dispatchMap the dispatch map with definition of exposed services
-     * @param boolean $serviceNow set to false to prevent the server from running upon construction
-     */
-    public function __construct($dispatchMap = null, $serviceNow = true)
-    {
-        // if ZLIB is enabled, let the server by default accept compressed requests,
-        // and compress responses sent to clients that support them
-        if (function_exists('gzinflate')) {
-            $this->accepted_compression = array('gzip', 'deflate');
-            $this->compress_response = true;
-        }
-
-        // by default the xml parser can support these 3 charset encodings
-        $this->accepted_charset_encodings = array('UTF-8', 'ISO-8859-1', 'US-ASCII');
-
-        // dispMap is a dispatch array of methods mapped to function names and signatures.
-        // If a method doesn't appear in the map then an unknown method error is generated
-        /* milosch - changed to make passing dispMap optional.
-        * instead, you can use the class add_to_map() function
-        * to add functions manually (borrowed from SOAPX4)
-        */
-        if ($dispatchMap) {
-            $this->dmap = $dispatchMap;
-            if ($serviceNow) {
-                $this->service();
-            }
-        }
-    }
-
-    /**
-     * Set debug level of server.
-     *
-     * @param integer $level debug lvl: determines info added to xmlrpc responses (as xml comments)
-     *                    0 = no debug info,
-     *                    1 = msgs set from user with debugmsg(),
-     *                    2 = add complete xmlrpc request (headers and body),
-     *                    3 = add also all processing warnings happened during method processing
-     *                    (NB: this involves setting a custom error handler, and might interfere
-     *                    with the standard processing of the php function exposed as method. In
-     *                    particular, triggering an USER_ERROR level error will not halt script
-     *                    execution anymore, but just end up logged in the xmlrpc response)
-     *                    Note that info added at level 2 and 3 will be base64 encoded
-     */
-    public function setDebug($level)
-    {
-        $this->debug = $level;
-    }
-
-    /**
-     * Add a string to the debug info that can be later serialized by the server
-     * as part of the response message.
-     * Note that for best compatibility, the debug string should be encoded using
-     * the PhpXmlRpc::$xmlrpc_internalencoding character set.
-     *
-     * @param string $msg
-     * @access public
-     */
-    public static function xmlrpc_debugmsg($msg)
-    {
-        static::$_xmlrpc_debuginfo .= $msg . "\n";
-    }
-
-    public static function error_occurred($msg)
-    {
-        static::$_xmlrpcs_occurred_errors .= $msg . "\n";
-    }
-
-    /**
-     * Return a string with the serialized representation of all debug info.
-     *
-     * @param string $charsetEncoding the target charset encoding for the serialization
-     *
-     * @return string an XML comment (or two)
-     */
-    public function serializeDebug($charsetEncoding = '')
-    {
-        // Tough encoding problem: which internal charset should we assume for debug info?
-        // It might contain a copy of raw data received from client, ie with unknown encoding,
-        // intermixed with php generated data and user generated data...
-        // so we split it: system debug is base 64 encoded,
-        // user debug info should be encoded by the end user using the INTERNAL_ENCODING
-        $out = '';
-        if ($this->debug_info != '') {
-            $out .= "<!-- SERVER DEBUG INFO (BASE64 ENCODED):\n" . base64_encode($this->debug_info) . "\n-->\n";
-        }
-        if (static::$_xmlrpc_debuginfo != '') {
-            $out .= "<!-- DEBUG INFO:\n" . Charset::instance()->encodeEntities(str_replace('--', '_-', static::$_xmlrpc_debuginfo), PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "\n-->\n";
-            // NB: a better solution MIGHT be to use CDATA, but we need to insert it
-            // into return payload AFTER the beginning tag
-            //$out .= "<![CDATA[ DEBUG INFO:\n\n" . str_replace(']]>', ']_]_>', static::$_xmlrpc_debuginfo) . "\n]]>\n";
-        }
-
-        return $out;
-    }
-
-    /**
-     * Execute the xmlrpc request, printing the response.
-     *
-     * @param string $data the request body. If null, the http POST request will be examined
-     * @param bool $returnPayload When true, return the response but do not echo it or any http header
-     *
-     * @return Response|string the response object (usually not used by caller...) or its xml serialization
-     *
-     * @throws \Exception in case the executed method does throw an exception (and depending on server configuration)
-     */
-    public function service($data = null, $returnPayload = false)
-    {
-        if ($data === null) {
-            $data = file_get_contents('php://input');
-        }
-        $rawData = $data;
-
-        // reset internal debug info
-        $this->debug_info = '';
-
-        // Save what we received, before parsing it
-        if ($this->debug > 1) {
-            $this->debugmsg("+++GOT+++\n" . $data . "\n+++END+++");
-        }
-
-        $r = $this->parseRequestHeaders($data, $reqCharset, $respCharset, $respEncoding);
-        if (!$r) {
-            // this actually executes the request
-            $r = $this->parseRequest($data, $reqCharset);
-        }
-
-        // save full body of request into response, for more debugging usages
-        $r->raw_data = $rawData;
-
-        if ($this->debug > 2 && static::$_xmlrpcs_occurred_errors) {
-            $this->debugmsg("+++PROCESSING ERRORS AND WARNINGS+++\n" .
-                static::$_xmlrpcs_occurred_errors . "+++END+++");
-        }
-
-        $payload = $this->xml_header($respCharset);
-        if ($this->debug > 0) {
-            $payload = $payload . $this->serializeDebug($respCharset);
-        }
-
-        // G. Giunta 2006-01-27: do not create response serialization if it has
-        // already happened. Helps building json magic
-        if (empty($r->payload)) {
-            $r->serialize($respCharset);
-        }
-        $payload = $payload . $r->payload;
-
-        if ($returnPayload) {
-            return $payload;
-        }
-
-        // if we get a warning/error that has output some text before here, then we cannot
-        // add a new header. We cannot say we are sending xml, either...
-        if (!headers_sent()) {
-            header('Content-Type: ' . $r->content_type);
-            // we do not know if client actually told us an accepted charset, but if he did
-            // we have to tell him what we did
-            header("Vary: Accept-Charset");
-
-            // http compression of output: only
-            // if we can do it, and we want to do it, and client asked us to,
-            // and php ini settings do not force it already
-            $phpNoSelfCompress = !ini_get('zlib.output_compression') && (ini_get('output_handler') != 'ob_gzhandler');
-            if ($this->compress_response && function_exists('gzencode') && $respEncoding != ''
-                && $phpNoSelfCompress
-            ) {
-                if (strpos($respEncoding, 'gzip') !== false) {
-                    $payload = gzencode($payload);
-                    header("Content-Encoding: gzip");
-                    header("Vary: Accept-Encoding");
-                } elseif (strpos($respEncoding, 'deflate') !== false) {
-                    $payload = gzcompress($payload);
-                    header("Content-Encoding: deflate");
-                    header("Vary: Accept-Encoding");
-                }
-            }
-
-            // do not output content-length header if php is compressing output for us:
-            // it will mess up measurements
-            if ($phpNoSelfCompress) {
-                header('Content-Length: ' . (int)strlen($payload));
-            }
-        } else {
-            error_log('XML-RPC: ' . __METHOD__ . ': http headers already sent before response is fully generated. Check for php warning or error messages');
-        }
-
-        print $payload;
-
-        // return request, in case subclasses want it
-        return $r;
-    }
-
-    /**
-     * Add a method to the dispatch map.
-     *
-     * @param string $methodName the name with which the method will be made available
-     * @param string $function the php function that will get invoked
-     * @param array $sig the array of valid method signatures
-     * @param string $doc method documentation
-     * @param array $sigDoc the array of valid method signatures docs (one string per param, one for return type)
-     */
-    public function add_to_map($methodName, $function, $sig = null, $doc = false, $sigDoc = false)
-    {
-        $this->dmap[$methodName] = array(
-            'function' => $function,
-            'docstring' => $doc,
-        );
-        if ($sig) {
-            $this->dmap[$methodName]['signature'] = $sig;
-        }
-        if ($sigDoc) {
-            $this->dmap[$methodName]['signature_docs'] = $sigDoc;
-        }
-    }
-
-    /**
-     * Verify type and number of parameters received against a list of known signatures.
-     *
-     * @param array|Request $in array of either xmlrpc value objects or xmlrpc type definitions
-     * @param array $sigs array of known signatures to match against
-     *
-     * @return array
-     */
-    protected function verifySignature($in, $sigs)
-    {
-        // check each possible signature in turn
-        if (is_object($in)) {
-            $numParams = $in->getNumParams();
-        } else {
-            $numParams = count($in);
-        }
-        foreach ($sigs as $curSig) {
-            if (count($curSig) == $numParams + 1) {
-                $itsOK = 1;
-                for ($n = 0; $n < $numParams; $n++) {
-                    if (is_object($in)) {
-                        $p = $in->getParam($n);
-                        if ($p->kindOf() == 'scalar') {
-                            $pt = $p->scalartyp();
-                        } else {
-                            $pt = $p->kindOf();
-                        }
-                    } else {
-                        $pt = $in[$n] == 'i4' ? 'int' : strtolower($in[$n]); // dispatch maps never use i4...
-                    }
-
-                    // param index is $n+1, as first member of sig is return type
-                    if ($pt != $curSig[$n + 1] && $curSig[$n + 1] != Value::$xmlrpcValue) {
-                        $itsOK = 0;
-                        $pno = $n + 1;
-                        $wanted = $curSig[$n + 1];
-                        $got = $pt;
-                        break;
-                    }
-                }
-                if ($itsOK) {
-                    return array(1, '');
-                }
-            }
-        }
-        if (isset($wanted)) {
-            return array(0, "Wanted ${wanted}, got ${got} at param ${pno}");
-        } else {
-            return array(0, "No method signature matches number of parameters");
-        }
-    }
-
-    /**
-     * Parse http headers received along with xmlrpc request. If needed, inflate request.
-     *
-     * @return mixed Response|null on success or an error Response
-     */
-    protected function parseRequestHeaders(&$data, &$reqEncoding, &$respEncoding, &$respCompression)
-    {
-        // check if $_SERVER is populated: it might have been disabled via ini file
-        // (this is true even when in CLI mode)
-        if (count($_SERVER) == 0) {
-            error_log('XML-RPC: ' . __METHOD__ . ': cannot parse request headers as $_SERVER is not populated');
-        }
-
-        if ($this->debug > 1) {
-            if (function_exists('getallheaders')) {
-                $this->debugmsg(''); // empty line
-                foreach (getallheaders() as $name => $val) {
-                    $this->debugmsg("HEADER: $name: $val");
-                }
-            }
-        }
-
-        if (isset($_SERVER['HTTP_CONTENT_ENCODING'])) {
-            $contentEncoding = str_replace('x-', '', $_SERVER['HTTP_CONTENT_ENCODING']);
-        } else {
-            $contentEncoding = '';
-        }
-
-        // check if request body has been compressed and decompress it
-        if ($contentEncoding != '' && strlen($data)) {
-            if ($contentEncoding == 'deflate' || $contentEncoding == 'gzip') {
-                // if decoding works, use it. else assume data wasn't gzencoded
-                if (function_exists('gzinflate') && in_array($contentEncoding, $this->accepted_compression)) {
-                    if ($contentEncoding == 'deflate' && $degzdata = @gzuncompress($data)) {
-                        $data = $degzdata;
-                        if ($this->debug > 1) {
-                            $this->debugmsg("\n+++INFLATED REQUEST+++[" . strlen($data) . " chars]+++\n" . $data . "\n+++END+++");
-                        }
-                    } elseif ($contentEncoding == 'gzip' && $degzdata = @gzinflate(substr($data, 10))) {
-                        $data = $degzdata;
-                        if ($this->debug > 1) {
-                            $this->debugmsg("+++INFLATED REQUEST+++[" . strlen($data) . " chars]+++\n" . $data . "\n+++END+++");
-                        }
-                    } else {
-                        $r = new Response(0, PhpXmlRpc::$xmlrpcerr['server_decompress_fail'], PhpXmlRpc::$xmlrpcstr['server_decompress_fail']);
-
-                        return $r;
-                    }
-                } else {
-                    $r = new Response(0, PhpXmlRpc::$xmlrpcerr['server_cannot_decompress'], PhpXmlRpc::$xmlrpcstr['server_cannot_decompress']);
-
-                    return $r;
-                }
-            }
-        }
-
-        // check if client specified accepted charsets, and if we know how to fulfill
-        // the request
-        if ($this->response_charset_encoding == 'auto') {
-            $respEncoding = '';
-            if (isset($_SERVER['HTTP_ACCEPT_CHARSET'])) {
-                // here we should check if we can match the client-requested encoding
-                // with the encodings we know we can generate.
-                /// @todo we should parse q=0.x preferences instead of getting first charset specified...
-                $clientAcceptedCharsets = explode(',', strtoupper($_SERVER['HTTP_ACCEPT_CHARSET']));
-                // Give preference to internal encoding
-                $knownCharsets = array(PhpXmlRpc::$xmlrpc_internalencoding, 'UTF-8', 'ISO-8859-1', 'US-ASCII');
-                foreach ($knownCharsets as $charset) {
-                    foreach ($clientAcceptedCharsets as $accepted) {
-                        if (strpos($accepted, $charset) === 0) {
-                            $respEncoding = $charset;
-                            break;
-                        }
-                    }
-                    if ($respEncoding) {
-                        break;
-                    }
-                }
-            }
-        } else {
-            $respEncoding = $this->response_charset_encoding;
-        }
-
-        if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
-            $respCompression = $_SERVER['HTTP_ACCEPT_ENCODING'];
-        } else {
-            $respCompression = '';
-        }
-
-        // 'guestimate' request encoding
-        /// @todo check if mbstring is enabled and automagic input conversion is on: it might mingle with this check???
-        $reqEncoding = XMLParser::guessEncoding(isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : '',
-            $data);
-
-        return;
-    }
-
-    /**
-     * Parse an xml chunk containing an xmlrpc request and execute the corresponding
-     * php function registered with the server.
-     *
-     * @param string $data the xml request
-     * @param string $reqEncoding (optional) the charset encoding of the xml request
-     *
-     * @return Response
-     *
-     * @throws \Exception in case the executed method does throw an exception (and depending on server configuration)
-     */
-    public function parseRequest($data, $reqEncoding = '')
-    {
-        // decompose incoming XML into request structure
-
-        if ($reqEncoding != '') {
-            // Since parsing will fail if charset is not specified in the xml prologue,
-            // the encoding is not UTF8 and there are non-ascii chars in the text, we try to work round that...
-            // The following code might be better for mb_string enabled installs, but
-            // makes the lib about 200% slower...
-            //if (!is_valid_charset($reqEncoding, array('UTF-8')))
-            if (!in_array($reqEncoding, array('UTF-8', 'US-ASCII')) && !XMLParser::hasEncoding($data)) {
-                if ($reqEncoding == 'ISO-8859-1') {
-                    $data = utf8_encode($data);
-                } else {
-                    if (extension_loaded('mbstring')) {
-                        $data = mb_convert_encoding($data, 'UTF-8', $reqEncoding);
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': invalid charset encoding of received request: ' . $reqEncoding);
-                    }
-                }
-            }
-        }
-
-        $parser = xml_parser_create();
-        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true);
-        // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
-        // the xml parser to give us back data in the expected charset
-        // What if internal encoding is not in one of the 3 allowed?
-        // we use the broadest one, ie. utf8
-        // This allows to send data which is native in various charset,
-        // by extending xmlrpc_encode_entities() and setting xmlrpc_internalencoding
-        if (!in_array(PhpXmlRpc::$xmlrpc_internalencoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII'))) {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
-        } else {
-            xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, PhpXmlRpc::$xmlrpc_internalencoding);
-        }
-
-        $xmlRpcParser = new XMLParser();
-        xml_set_object($parser, $xmlRpcParser);
-
-        if ($this->functions_parameters_type != 'xmlrpcvals') {
-            xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee_fast');
-        } else {
-            xml_set_element_handler($parser, 'xmlrpc_se', 'xmlrpc_ee');
-        }
-        xml_set_character_data_handler($parser, 'xmlrpc_cd');
-        xml_set_default_handler($parser, 'xmlrpc_dh');
-        if (!xml_parse($parser, $data, 1)) {
-            // return XML error as a faultCode
-            $r = new Response(0,
-                PhpXmlRpc::$xmlrpcerrxml + xml_get_error_code($parser),
-                sprintf('XML error: %s at line %d, column %d',
-                    xml_error_string(xml_get_error_code($parser)),
-                    xml_get_current_line_number($parser), xml_get_current_column_number($parser)));
-            xml_parser_free($parser);
-        } elseif ($xmlRpcParser->_xh['isf']) {
-            xml_parser_free($parser);
-            $r = new Response(0,
-                PhpXmlRpc::$xmlrpcerr['invalid_request'],
-                PhpXmlRpc::$xmlrpcstr['invalid_request'] . ' ' . $xmlRpcParser->_xh['isf_reason']);
-        } else {
-            xml_parser_free($parser);
-            // small layering violation in favor of speed and memory usage:
-            // we should allow the 'execute' method handle this, but in the
-            // most common scenario (xmlrpc values type server with some methods
-            // registered as phpvals) that would mean a useless encode+decode pass
-            if ($this->functions_parameters_type != 'xmlrpcvals' || (isset($this->dmap[$xmlRpcParser->_xh['method']]['parameters_type']) && ($this->dmap[$xmlRpcParser->_xh['method']]['parameters_type'] == 'phpvals'))) {
-                if ($this->debug > 1) {
-                    $this->debugmsg("\n+++PARSED+++\n" . var_export($xmlRpcParser->_xh['params'], true) . "\n+++END+++");
-                }
-                $r = $this->execute($xmlRpcParser->_xh['method'], $xmlRpcParser->_xh['params'], $xmlRpcParser->_xh['pt']);
-            } else {
-                // build a Request object with data parsed from xml
-                $req = new Request($xmlRpcParser->_xh['method']);
-                // now add parameters in
-                for ($i = 0; $i < count($xmlRpcParser->_xh['params']); $i++) {
-                    $req->addParam($xmlRpcParser->_xh['params'][$i]);
-                }
-
-                if ($this->debug > 1) {
-                    $this->debugmsg("\n+++PARSED+++\n" . var_export($req, true) . "\n+++END+++");
-                }
-                $r = $this->execute($req);
-            }
-        }
-
-        return $r;
-    }
-
-    /**
-     * Execute a method invoked by the client, checking parameters used.
-     *
-     * @param mixed $req either a Request obj or a method name
-     * @param array $params array with method parameters as php types (if m is method name only)
-     * @param array $paramTypes array with xmlrpc types of method parameters (if m is method name only)
-     *
-     * @return Response
-     *
-     * @throws \Exception in case the executed method does throw an exception (and depending on server configuration)
-     */
-    protected function execute($req, $params = null, $paramTypes = null)
-    {
-        static::$_xmlrpcs_occurred_errors = '';
-        static::$_xmlrpc_debuginfo = '';
-
-        if (is_object($req)) {
-            $methName = $req->method();
-        } else {
-            $methName = $req;
-        }
-        $sysCall = $this->allow_system_funcs && (strpos($methName, "system.") === 0);
-        $dmap = $sysCall ? $this->getSystemDispatchMap() : $this->dmap;
-
-        if (!isset($dmap[$methName]['function'])) {
-            // No such method
-            return new Response(0,
-                PhpXmlRpc::$xmlrpcerr['unknown_method'],
-                PhpXmlRpc::$xmlrpcstr['unknown_method']);
-        }
-
-        // Check signature
-        if (isset($dmap[$methName]['signature'])) {
-            $sig = $dmap[$methName]['signature'];
-            if (is_object($req)) {
-                list($ok, $errStr) = $this->verifySignature($req, $sig);
-            } else {
-                list($ok, $errStr) = $this->verifySignature($paramTypes, $sig);
-            }
-            if (!$ok) {
-                // Didn't match.
-                return new Response(
-                    0,
-                    PhpXmlRpc::$xmlrpcerr['incorrect_params'],
-                    PhpXmlRpc::$xmlrpcstr['incorrect_params'] . ": ${errStr}"
-                );
-            }
-        }
-
-        $func = $dmap[$methName]['function'];
-        // let the 'class::function' syntax be accepted in dispatch maps
-        if (is_string($func) && strpos($func, '::')) {
-            $func = explode('::', $func);
-        }
-
-        if (is_array($func)) {
-            if (is_object($func[0])) {
-                $funcName = get_class($func[0]) . '->' . $func[1];
-            } else {
-                $funcName = implode('::', $func);
-            }
-        } else if ($func instanceof \Closure) {
-            $funcName = 'Closure';
-        } else {
-            $funcName = $func;
-        }
-
-        // verify that function to be invoked is in fact callable
-        if (!is_callable($func)) {
-            error_log("XML-RPC: " . __METHOD__ . ": function '$funcName' registered as method handler is not callable");
-            return new Response(
-                0,
-                PhpXmlRpc::$xmlrpcerr['server_error'],
-                PhpXmlRpc::$xmlrpcstr['server_error'] . ": no function matches method"
-            );
-        }
-
-        // If debug level is 3, we should catch all errors generated during
-        // processing of user function, and log them as part of response
-        if ($this->debug > 2) {
-            self::$_xmlrpcs_prev_ehandler = set_error_handler(array('\PhpXmlRpc\Server', '_xmlrpcs_errorHandler'));
-        }
-
-        try {
-            // Allow mixed-convention servers
-            if (is_object($req)) {
-                if ($sysCall) {
-                    $r = call_user_func($func, $this, $req);
-                } else {
-                    $r = call_user_func($func, $req);
-                }
-                if (!is_a($r, 'PhpXmlRpc\Response')) {
-                    error_log("XML-RPC: " . __METHOD__ . ": function '$funcName' registered as method handler does not return an xmlrpc response object but a " . gettype($r));
-                    if (is_a($r, 'PhpXmlRpc\Value')) {
-                        $r = new Response($r);
-                    } else {
-                        $r = new Response(
-                            0,
-                            PhpXmlRpc::$xmlrpcerr['server_error'],
-                            PhpXmlRpc::$xmlrpcstr['server_error'] . ": function does not return xmlrpc response object"
-                        );
-                    }
-                }
-            } else {
-                // call a 'plain php' function
-                if ($sysCall) {
-                    array_unshift($params, $this);
-                    $r = call_user_func_array($func, $params);
-                } else {
-                    // 3rd API convention for method-handling functions: EPI-style
-                    if ($this->functions_parameters_type == 'epivals') {
-                        $r = call_user_func_array($func, array($methName, $params, $this->user_data));
-                        // mimic EPI behaviour: if we get an array that looks like an error, make it
-                        // an eror response
-                        if (is_array($r) && array_key_exists('faultCode', $r) && array_key_exists('faultString', $r)) {
-                            $r = new Response(0, (integer)$r['faultCode'], (string)$r['faultString']);
-                        } else {
-                            // functions using EPI api should NOT return resp objects,
-                            // so make sure we encode the return type correctly
-                            $r = new Response(php_xmlrpc_encode($r, array('extension_api')));
-                        }
-                    } else {
-                        $r = call_user_func_array($func, $params);
-                    }
-                }
-                // the return type can be either a Response object or a plain php value...
-                if (!is_a($r, '\PhpXmlRpc\Response')) {
-                    // what should we assume here about automatic encoding of datetimes
-                    // and php classes instances???
-                    $r = new Response(php_xmlrpc_encode($r, $this->phpvals_encoding_options));
-                }
-            }
-        } catch (\Exception $e) {
-            // (barring errors in the lib) an uncatched exception happened
-            // in the called function, we wrap it in a proper error-response
-            switch ($this->exception_handling) {
-                case 2:
-                    if ($this->debug > 2) {
-                        if (self::$_xmlrpcs_prev_ehandler) {
-                            set_error_handler(self::$_xmlrpcs_prev_ehandler);
-                        } else {
-                            restore_error_handler();
-                        }
-                    }
-                    throw $e;
-                    break;
-                case 1:
-                    $r = new Response(0, $e->getCode(), $e->getMessage());
-                    break;
-                default:
-                    $r = new Response(0, PhpXmlRpc::$xmlrpcerr['server_error'], PhpXmlRpc::$xmlrpcstr['server_error']);
-            }
-        }
-        if ($this->debug > 2) {
-            // note: restore the error handler we found before calling the
-            // user func, even if it has been changed inside the func itself
-            if (self::$_xmlrpcs_prev_ehandler) {
-                set_error_handler(self::$_xmlrpcs_prev_ehandler);
-            } else {
-                restore_error_handler();
-            }
-        }
-
-        return $r;
-    }
-
-    /**
-     * add a string to the 'internal debug message' (separate from 'user debug message').
-     *
-     * @param string $string
-     */
-    protected function debugmsg($string)
-    {
-        $this->debug_info .= $string . "\n";
-    }
-
-    /**
-     * @param string $charsetEncoding
-     * @return string
-     */
-    protected function xml_header($charsetEncoding = '')
-    {
-        if ($charsetEncoding != '') {
-            return "<?xml version=\"1.0\" encoding=\"$charsetEncoding\"?" . ">\n";
-        } else {
-            return "<?xml version=\"1.0\"?" . ">\n";
-        }
-    }
-
-    /* Functions that implement system.XXX methods of xmlrpc servers */
-
-    /**
-     * @return array
-     */
-    public function getSystemDispatchMap()
-    {
-        return array(
-            'system.listMethods' => array(
-                'function' => 'PhpXmlRpc\Server::_xmlrpcs_listMethods',
-                // listMethods: signature was either a string, or nothing.
-                // The useless string variant has been removed
-                'signature' => array(array(Value::$xmlrpcArray)),
-                'docstring' => 'This method lists all the methods that the XML-RPC server knows how to dispatch',
-                'signature_docs' => array(array('list of method names')),
-            ),
-            'system.methodHelp' => array(
-                'function' => 'PhpXmlRpc\Server::_xmlrpcs_methodHelp',
-                'signature' => array(array(Value::$xmlrpcString, Value::$xmlrpcString)),
-                'docstring' => 'Returns help text if defined for the method passed, otherwise returns an empty string',
-                'signature_docs' => array(array('method description', 'name of the method to be described')),
-            ),
-            'system.methodSignature' => array(
-                'function' => 'PhpXmlRpc\Server::_xmlrpcs_methodSignature',
-                'signature' => array(array(Value::$xmlrpcArray, Value::$xmlrpcString)),
-                'docstring' => 'Returns an array of known signatures (an array of arrays) for the method name passed. If no signatures are known, returns a none-array (test for type != array to detect missing signature)',
-                'signature_docs' => array(array('list of known signatures, each sig being an array of xmlrpc type names', 'name of method to be described')),
-            ),
-            'system.multicall' => array(
-                'function' => 'PhpXmlRpc\Server::_xmlrpcs_multicall',
-                'signature' => array(array(Value::$xmlrpcArray, Value::$xmlrpcArray)),
-                'docstring' => 'Boxcar multiple RPC calls in one request. See http://www.xmlrpc.com/discuss/msgReader$1208 for details',
-                'signature_docs' => array(array('list of response structs, where each struct has the usual members', 'list of calls, with each call being represented as a struct, with members "methodname" and "params"')),
-            ),
-            'system.getCapabilities' => array(
-                'function' => 'PhpXmlRpc\Server::_xmlrpcs_getCapabilities',
-                'signature' => array(array(Value::$xmlrpcStruct)),
-                'docstring' => 'This method lists all the capabilites that the XML-RPC server has: the (more or less standard) extensions to the xmlrpc spec that it adheres to',
-                'signature_docs' => array(array('list of capabilities, described as structs with a version number and url for the spec')),
-            ),
-        );
-    }
-
-    /**
-     * @return array
-     */
-    public function getCapabilities()
-    {
-        $outAr = array(
-            // xmlrpc spec: always supported
-            'xmlrpc' => array(
-                'specUrl' => 'http://www.xmlrpc.com/spec',
-                'specVersion' => 1
-            ),
-            // if we support system.xxx functions, we always support multicall, too...
-            // Note that, as of 2006/09/17, the following URL does not respond anymore
-            'system.multicall' => array(
-                'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208',
-                'specVersion' => 1
-            ),
-            // introspection: version 2! we support 'mixed', too
-            'introspection' => array(
-                'specUrl' => 'http://phpxmlrpc.sourceforge.net/doc-2/ch10.html',
-                'specVersion' => 2,
-            ),
-        );
-
-        // NIL extension
-        if (PhpXmlRpc::$xmlrpc_null_extension) {
-            $outAr['nil'] = array(
-                'specUrl' => 'http://www.ontosys.com/xml-rpc/extensions.php',
-                'specVersion' => 1
-            );
-        }
-
-        return $outAr;
-    }
-
-    public static function _xmlrpcs_getCapabilities($server, $req = null)
-    {
-        $encoder = new Encoder();
-        return new Response($encoder->encode($server->getCapabilities()));
-    }
-
-    public static function _xmlrpcs_listMethods($server, $req = null) // if called in plain php values mode, second param is missing
-    {
-        $outAr = array();
-        foreach ($server->dmap as $key => $val) {
-            $outAr[] = new Value($key, 'string');
-        }
-        if ($server->allow_system_funcs) {
-            foreach ($server->getSystemDispatchMap() as $key => $val) {
-                $outAr[] = new Value($key, 'string');
-            }
-        }
-
-        return new Response(new Value($outAr, 'array'));
-    }
-
-    public static function _xmlrpcs_methodSignature($server, $req)
-    {
-        // let accept as parameter both an xmlrpc value or string
-        if (is_object($req)) {
-            $methName = $req->getParam(0);
-            $methName = $methName->scalarval();
-        } else {
-            $methName = $req;
-        }
-        if (strpos($methName, "system.") === 0) {
-            $dmap = $server->getSystemDispatchMap();
-        } else {
-            $dmap = $server->dmap;
-        }
-        if (isset($dmap[$methName])) {
-            if (isset($dmap[$methName]['signature'])) {
-                $sigs = array();
-                foreach ($dmap[$methName]['signature'] as $inSig) {
-                    $curSig = array();
-                    foreach ($inSig as $sig) {
-                        $curSig[] = new Value($sig, 'string');
-                    }
-                    $sigs[] = new Value($curSig, 'array');
-                }
-                $r = new Response(new Value($sigs, 'array'));
-            } else {
-                // NB: according to the official docs, we should be returning a
-                // "none-array" here, which means not-an-array
-                $r = new Response(new Value('undef', 'string'));
-            }
-        } else {
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['introspect_unknown'], PhpXmlRpc::$xmlrpcstr['introspect_unknown']);
-        }
-
-        return $r;
-    }
-
-    public static function _xmlrpcs_methodHelp($server, $req)
-    {
-        // let accept as parameter both an xmlrpc value or string
-        if (is_object($req)) {
-            $methName = $req->getParam(0);
-            $methName = $methName->scalarval();
-        } else {
-            $methName = $req;
-        }
-        if (strpos($methName, "system.") === 0) {
-            $dmap = $server->getSystemDispatchMap();
-        } else {
-            $dmap = $server->dmap;
-        }
-        if (isset($dmap[$methName])) {
-            if (isset($dmap[$methName]['docstring'])) {
-                $r = new Response(new Value($dmap[$methName]['docstring']), 'string');
-            } else {
-                $r = new Response(new Value('', 'string'));
-            }
-        } else {
-            $r = new Response(0, PhpXmlRpc::$xmlrpcerr['introspect_unknown'], PhpXmlRpc::$xmlrpcstr['introspect_unknown']);
-        }
-
-        return $r;
-    }
-
-    public static function _xmlrpcs_multicall_error($err)
-    {
-        if (is_string($err)) {
-            $str = PhpXmlRpc::$xmlrpcstr["multicall_${err}"];
-            $code = PhpXmlRpc::$xmlrpcerr["multicall_${err}"];
-        } else {
-            $code = $err->faultCode();
-            $str = $err->faultString();
-        }
-        $struct = array();
-        $struct['faultCode'] = new Value($code, 'int');
-        $struct['faultString'] = new Value($str, 'string');
-
-        return new Value($struct, 'struct');
-    }
-
-    public static function _xmlrpcs_multicall_do_call($server, $call)
-    {
-        if ($call->kindOf() != 'struct') {
-            return static::_xmlrpcs_multicall_error('notstruct');
-        }
-        $methName = @$call['methodName'];
-        if (!$methName) {
-            return static::_xmlrpcs_multicall_error('nomethod');
-        }
-        if ($methName->kindOf() != 'scalar' || $methName->scalartyp() != 'string') {
-            return static::_xmlrpcs_multicall_error('notstring');
-        }
-        if ($methName->scalarval() == 'system.multicall') {
-            return static::_xmlrpcs_multicall_error('recursion');
-        }
-
-        $params = @$call['params'];
-        if (!$params) {
-            return static::_xmlrpcs_multicall_error('noparams');
-        }
-        if ($params->kindOf() != 'array') {
-            return static::_xmlrpcs_multicall_error('notarray');
-        }
-
-        $req = new Request($methName->scalarval());
-        foreach($params as $i => $param) {
-            if (!$req->addParam($param)) {
-                $i++; // for error message, we count params from 1
-                return static::_xmlrpcs_multicall_error(new Response(0,
-                    PhpXmlRpc::$xmlrpcerr['incorrect_params'],
-                    PhpXmlRpc::$xmlrpcstr['incorrect_params'] . ": probable xml error in param " . $i));
-            }
-        }
-
-        $result = $server->execute($req);
-
-        if ($result->faultCode() != 0) {
-            return static::_xmlrpcs_multicall_error($result); // Method returned fault.
-        }
-
-        return new Value(array($result->value()), 'array');
-    }
-
-    public static function _xmlrpcs_multicall_do_call_phpvals($server, $call)
-    {
-        if (!is_array($call)) {
-            return static::_xmlrpcs_multicall_error('notstruct');
-        }
-        if (!array_key_exists('methodName', $call)) {
-            return static::_xmlrpcs_multicall_error('nomethod');
-        }
-        if (!is_string($call['methodName'])) {
-            return static::_xmlrpcs_multicall_error('notstring');
-        }
-        if ($call['methodName'] == 'system.multicall') {
-            return static::_xmlrpcs_multicall_error('recursion');
-        }
-        if (!array_key_exists('params', $call)) {
-            return static::_xmlrpcs_multicall_error('noparams');
-        }
-        if (!is_array($call['params'])) {
-            return static::_xmlrpcs_multicall_error('notarray');
-        }
-
-        // this is a real dirty and simplistic hack, since we might have received a
-        // base64 or datetime values, but they will be listed as strings here...
-        $numParams = count($call['params']);
-        $pt = array();
-        $wrapper = new Wrapper();
-        foreach ($call['params'] as $val) {
-            $pt[] = $wrapper->php2XmlrpcType(gettype($val));
-        }
-
-        $result = $server->execute($call['methodName'], $call['params'], $pt);
-
-        if ($result->faultCode() != 0) {
-            return static::_xmlrpcs_multicall_error($result); // Method returned fault.
-        }
-
-        return new Value(array($result->value()), 'array');
-    }
-
-    public static function _xmlrpcs_multicall($server, $req)
-    {
-        $result = array();
-        // let accept a plain list of php parameters, beside a single xmlrpc msg object
-        if (is_object($req)) {
-            $calls = $req->getParam(0);
-            foreach($calls as $call) {
-                $result[] = static::_xmlrpcs_multicall_do_call($server, $call);
-            }
-        } else {
-            $numCalls = count($req);
-            for ($i = 0; $i < $numCalls; $i++) {
-                $result[$i] = static::_xmlrpcs_multicall_do_call_phpvals($server, $req[$i]);
-            }
-        }
-
-        return new Response(new Value($result, 'array'));
-    }
-
-    /**
-     * Error handler used to track errors that occur during server-side execution of PHP code.
-     * This allows to report back to the client whether an internal error has occurred or not
-     * using an xmlrpc response object, instead of letting the client deal with the html junk
-     * that a PHP execution error on the server generally entails.
-     *
-     * NB: in fact a user defined error handler can only handle WARNING, NOTICE and USER_* errors.
-     */
-    public static function _xmlrpcs_errorHandler($errCode, $errString, $filename = null, $lineNo = null, $context = null)
-    {
-        // obey the @ protocol
-        if (error_reporting() == 0) {
-            return;
-        }
-
-        //if($errCode != E_NOTICE && $errCode != E_WARNING && $errCode != E_USER_NOTICE && $errCode != E_USER_WARNING)
-        if ($errCode != E_STRICT) {
-            \PhpXmlRpc\Server::error_occurred($errString);
-        }
-        // Try to avoid as much as possible disruption to the previous error handling
-        // mechanism in place
-        if (self::$_xmlrpcs_prev_ehandler == '') {
-            // The previous error handler was the default: all we should do is log error
-            // to the default error log (if level high enough)
-            if (ini_get('log_errors') && (intval(ini_get('error_reporting')) & $errCode)) {
-                error_log($errString);
-            }
-        } else {
-            // Pass control on to previous error handler, trying to avoid loops...
-            if (self::$_xmlrpcs_prev_ehandler != array('\PhpXmlRpc\Server', '_xmlrpcs_errorHandler')) {
-                if (is_array(self::$_xmlrpcs_prev_ehandler)) {
-                    // the following works both with static class methods and plain object methods as error handler
-                    call_user_func_array(self::$_xmlrpcs_prev_ehandler, array($errCode, $errString, $filename, $lineNo, $context));
-                } else {
-                    $method = self::$_xmlrpcs_prev_ehandler;
-                    $method($errCode, $errString, $filename, $lineNo, $context);
-                }
-            }
-        }
-    }
-}
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Value.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Value.php
deleted file mode 100644
index f0d331af244c4aa1c43a2a933e7a02b6343aeb58..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Value.php
+++ /dev/null
@@ -1,566 +0,0 @@
-<?php
-
-namespace PhpXmlRpc;
-
-use PhpXmlRpc\Helper\Charset;
-
-class Value implements \Countable, \IteratorAggregate, \ArrayAccess
-{
-    public static $xmlrpcI4 = "i4";
-    public static $xmlrpcInt = "int";
-    public static $xmlrpcBoolean = "boolean";
-    public static $xmlrpcDouble = "double";
-    public static $xmlrpcString = "string";
-    public static $xmlrpcDateTime = "dateTime.iso8601";
-    public static $xmlrpcBase64 = "base64";
-    public static $xmlrpcArray = "array";
-    public static $xmlrpcStruct = "struct";
-    public static $xmlrpcValue = "undefined";
-    public static $xmlrpcNull = "null";
-
-    public static $xmlrpcTypes = array(
-        "i4" => 1,
-        "int" => 1,
-        "boolean" => 1,
-        "double" => 1,
-        "string" => 1,
-        "dateTime.iso8601" => 1,
-        "base64" => 1,
-        "array" => 2,
-        "struct" => 3,
-        "null" => 1,
-    );
-
-    /// @todo: do these need to be public?
-    public $me = array();
-    public $mytype = 0;
-    public $_php_class = null;
-
-    /**
-     * Build an xmlrpc value.
-     * When no value or type is passed in, the value is left uninitialized, and the value can be added later
-     *
-     * @param mixed $val
-     * @param string $type any valid xmlrpc type name (lowercase). If null, 'string' is assumed
-     */
-    public function __construct($val = -1, $type = '')
-    {
-        // optimization creep - do not call addXX, do it all inline.
-        // downside: booleans will not be coerced anymore
-        if ($val !== -1 || $type != '') {
-            switch ($type) {
-                case '':
-                    $this->mytype = 1;
-                    $this->me['string'] = $val;
-                    break;
-                case 'i4':
-                case 'int':
-                case 'double':
-                case 'string':
-                case 'boolean':
-                case 'dateTime.iso8601':
-                case 'base64':
-                case 'null':
-                    $this->mytype = 1;
-                    $this->me[$type] = $val;
-                    break;
-                case 'array':
-                    $this->mytype = 2;
-                    $this->me['array'] = $val;
-                    break;
-                case 'struct':
-                    $this->mytype = 3;
-                    $this->me['struct'] = $val;
-                    break;
-                default:
-                    error_log("XML-RPC: " . __METHOD__ . ": not a known type ($type)");
-            }
-        }
-    }
-
-    /**
-     * Add a single php value to an (uninitialized) xmlrpc value.
-     *
-     * @param mixed $val
-     * @param string $type
-     *
-     * @return int 1 or 0 on failure
-     */
-    public function addScalar($val, $type = 'string')
-    {
-        $typeOf = null;
-        if (isset(static::$xmlrpcTypes[$type])) {
-            $typeOf = static::$xmlrpcTypes[$type];
-        }
-
-        if ($typeOf !== 1) {
-            error_log("XML-RPC: " . __METHOD__ . ": not a scalar type ($type)");
-            return 0;
-        }
-
-        // coerce booleans into correct values
-        // NB: we should either do it for datetimes, integers and doubles, too,
-        // or just plain remove this check, implemented on booleans only...
-        if ($type == static::$xmlrpcBoolean) {
-            if (strcasecmp($val, 'true') == 0 || $val == 1 || ($val == true && strcasecmp($val, 'false'))) {
-                $val = true;
-            } else {
-                $val = false;
-            }
-        }
-
-        switch ($this->mytype) {
-            case 1:
-                error_log('XML-RPC: ' . __METHOD__ . ': scalar xmlrpc value can have only one value');
-                return 0;
-            case 3:
-                error_log('XML-RPC: ' . __METHOD__ . ': cannot add anonymous scalar to struct xmlrpc value');
-                return 0;
-            case 2:
-                // we're adding a scalar value to an array here
-                $this->me['array'][] = new Value($val, $type);
-
-                return 1;
-            default:
-                // a scalar, so set the value and remember we're scalar
-                $this->me[$type] = $val;
-                $this->mytype = $typeOf;
-
-                return 1;
-        }
-    }
-
-    /**
-     * Add an array of xmlrpc values objects to an xmlrpc value.
-     *
-     * @param Value[] $values
-     *
-     * @return int 1 or 0 on failure
-     *
-     * @todo add some checking for $values to be an array of xmlrpc values?
-     */
-    public function addArray($values)
-    {
-        if ($this->mytype == 0) {
-            $this->mytype = static::$xmlrpcTypes['array'];
-            $this->me['array'] = $values;
-
-            return 1;
-        } elseif ($this->mytype == 2) {
-            // we're adding to an array here
-            $this->me['array'] = array_merge($this->me['array'], $values);
-
-            return 1;
-        } else {
-            error_log('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']');
-            return 0;
-        }
-    }
-
-    /**
-     * Add an array of named xmlrpc value objects to an xmlrpc value.
-     *
-     * @param Value[] $values
-     *
-     * @return int 1 or 0 on failure
-     *
-     * @todo add some checking for $values to be an array?
-     */
-    public function addStruct($values)
-    {
-        if ($this->mytype == 0) {
-            $this->mytype = static::$xmlrpcTypes['struct'];
-            $this->me['struct'] = $values;
-
-            return 1;
-        } elseif ($this->mytype == 3) {
-            // we're adding to a struct here
-            $this->me['struct'] = array_merge($this->me['struct'], $values);
-
-            return 1;
-        } else {
-            error_log('XML-RPC: ' . __METHOD__ . ': already initialized as a [' . $this->kindOf() . ']');
-            return 0;
-        }
-    }
-
-    /**
-     * Returns a string containing "struct", "array", "scalar" or "undef" describing the base type of the value.
-     *
-     * @return string
-     */
-    public function kindOf()
-    {
-        switch ($this->mytype) {
-            case 3:
-                return 'struct';
-                break;
-            case 2:
-                return 'array';
-                break;
-            case 1:
-                return 'scalar';
-                break;
-            default:
-                return 'undef';
-        }
-    }
-
-    protected function serializedata($typ, $val, $charsetEncoding = '')
-    {
-        $rs = '';
-
-        if (!isset(static::$xmlrpcTypes[$typ])) {
-            return $rs;
-        }
-
-        switch (static::$xmlrpcTypes[$typ]) {
-            case 1:
-                switch ($typ) {
-                    case static::$xmlrpcBase64:
-                        $rs .= "<${typ}>" . base64_encode($val) . "</${typ}>";
-                        break;
-                    case static::$xmlrpcBoolean:
-                        $rs .= "<${typ}>" . ($val ? '1' : '0') . "</${typ}>";
-                        break;
-                    case static::$xmlrpcString:
-                        // G. Giunta 2005/2/13: do NOT use htmlentities, since
-                        // it will produce named html entities, which are invalid xml
-                        $rs .= "<${typ}>" . Charset::instance()->encodeEntities($val, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</${typ}>";
-                        break;
-                    case static::$xmlrpcInt:
-                    case static::$xmlrpcI4:
-                        $rs .= "<${typ}>" . (int)$val . "</${typ}>";
-                        break;
-                    case static::$xmlrpcDouble:
-                        // avoid using standard conversion of float to string because it is locale-dependent,
-                        // and also because the xmlrpc spec forbids exponential notation.
-                        // sprintf('%F') could be most likely ok but it fails eg. on 2e-14.
-                        // The code below tries its best at keeping max precision while avoiding exp notation,
-                        // but there is of course no limit in the number of decimal places to be used...
-                        $rs .= "<${typ}>" . preg_replace('/\\.?0+$/', '', number_format((double)$val, 128, '.', '')) . "</${typ}>";
-                        break;
-                    case static::$xmlrpcDateTime:
-                        if (is_string($val)) {
-                            $rs .= "<${typ}>${val}</${typ}>";
-                        } elseif (is_a($val, 'DateTime')) {
-                            $rs .= "<${typ}>" . $val->format('Ymd\TH:i:s') . "</${typ}>";
-                        } elseif (is_int($val)) {
-                            $rs .= "<${typ}>" . strftime("%Y%m%dT%H:%M:%S", $val) . "</${typ}>";
-                        } else {
-                            // not really a good idea here: but what shall we output anyway? left for backward compat...
-                            $rs .= "<${typ}>${val}</${typ}>";
-                        }
-                        break;
-                    case static::$xmlrpcNull:
-                        if (PhpXmlRpc::$xmlrpc_null_apache_encoding) {
-                            $rs .= "<ex:nil/>";
-                        } else {
-                            $rs .= "<nil/>";
-                        }
-                        break;
-                    default:
-                        // no standard type value should arrive here, but provide a possibility
-                        // for xmlrpc values of unknown type...
-                        $rs .= "<${typ}>${val}</${typ}>";
-                }
-                break;
-            case 3:
-                // struct
-                if ($this->_php_class) {
-                    $rs .= '<struct php_class="' . $this->_php_class . "\">\n";
-                } else {
-                    $rs .= "<struct>\n";
-                }
-                $charsetEncoder = Charset::instance();
-                foreach ($val as $key2 => $val2) {
-                    $rs .= '<member><name>' . $charsetEncoder->encodeEntities($key2, PhpXmlRpc::$xmlrpc_internalencoding, $charsetEncoding) . "</name>\n";
-                    //$rs.=$this->serializeval($val2);
-                    $rs .= $val2->serialize($charsetEncoding);
-                    $rs .= "</member>\n";
-                }
-                $rs .= '</struct>';
-                break;
-            case 2:
-                // array
-                $rs .= "<array>\n<data>\n";
-                foreach ($val as $element) {
-                    //$rs.=$this->serializeval($val[$i]);
-                    $rs .= $element->serialize($charsetEncoding);
-                }
-                $rs .= "</data>\n</array>";
-                break;
-            default:
-                break;
-        }
-
-        return $rs;
-    }
-
-    /**
-     * Returns xml representation of the value. XML prologue not included.
-     *
-     * @param string $charsetEncoding the charset to be used for serialization. if null, US-ASCII is assumed
-     *
-     * @return string
-     */
-    public function serialize($charsetEncoding = '')
-    {
-        // add check? slower, but helps to avoid recursion in serializing broken xmlrpc values...
-        //if (is_object($o) && (get_class($o) == 'xmlrpcval' || is_subclass_of($o, 'xmlrpcval')))
-        //{
-        reset($this->me);
-        list($typ, $val) = each($this->me);
-
-        return '<value>' . $this->serializedata($typ, $val, $charsetEncoding) . "</value>\n";
-        //}
-    }
-
-    /**
-     * Checks whether a struct member with a given name is present.
-     * Works only on xmlrpc values of type struct.
-     *
-     * @param string $key the name of the struct member to be looked up
-     *
-     * @return boolean
-     *
-     * @deprecated use array access, e.g. isset($val[$key])
-     */
-    public function structmemexists($key)
-    {
-        return array_key_exists($key, $this->me['struct']);
-    }
-
-    /**
-     * Returns the value of a given struct member (an xmlrpc value object in itself).
-     * Will raise a php warning if struct member of given name does not exist.
-     *
-     * @param string $key the name of the struct member to be looked up
-     *
-     * @return Value
-     *
-     * @deprecated use array access, e.g. $val[$key]
-     */
-    public function structmem($key)
-    {
-        return $this->me['struct'][$key];
-    }
-
-    /**
-     * Reset internal pointer for xmlrpc values of type struct.
-     * @deprecated iterate directly over the object using foreach instead
-     */
-    public function structreset()
-    {
-        reset($this->me['struct']);
-    }
-
-    /**
-     * Return next member element for xmlrpc values of type struct.
-     *
-     * @return Value
-     *
-     * @deprecated iterate directly over the object using foreach instead
-     */
-    public function structeach()
-    {
-        return each($this->me['struct']);
-    }
-
-    /**
-     * Returns the value of a scalar xmlrpc value.
-     *
-     * @return mixed
-     */
-    public function scalarval()
-    {
-        reset($this->me);
-        list(, $b) = each($this->me);
-
-        return $b;
-    }
-
-    /**
-     * Returns the type of the xmlrpc value.
-     * For integers, 'int' is always returned in place of 'i4'.
-     *
-     * @return string
-     */
-    public function scalartyp()
-    {
-        reset($this->me);
-        list($a,) = each($this->me);
-        if ($a == static::$xmlrpcI4) {
-            $a = static::$xmlrpcInt;
-        }
-
-        return $a;
-    }
-
-    /**
-     * Returns the m-th member of an xmlrpc value of struct type.
-     *
-     * @param integer $key the index of the value to be retrieved (zero based)
-     *
-     * @return Value
-     *
-     * @deprecated use array access, e.g. $val[$key]
-     */
-    public function arraymem($key)
-    {
-        return $this->me['array'][$key];
-    }
-
-    /**
-     * Returns the number of members in an xmlrpc value of array type.
-     *
-     * @return integer
-     *
-     * @deprecated use count() instead
-     */
-    public function arraysize()
-    {
-        return count($this->me['array']);
-    }
-
-    /**
-     * Returns the number of members in an xmlrpc value of struct type.
-     *
-     * @return integer
-     *
-     * @deprecated use count() instead
-     */
-    public function structsize()
-    {
-        return count($this->me['struct']);
-    }
-
-    /**
-     * Returns the number of members in an xmlrpc value:
-     * - 0 for uninitialized values
-     * - 1 for scalars
-     * - the number of elements for structs and arrays
-     *
-     * @return integer
-     */
-    public function count()
-    {
-        switch ($this->mytype) {
-            case 3:
-                return count($this->me['struct']);
-            case 2:
-                return count($this->me['array']);
-            case 1:
-                return 1;
-            default:
-                return 0;
-        }
-    }
-
-    /**
-     * Implements the IteratorAggregate interface
-     *
-     * @return ArrayIterator
-     */
-    public function getIterator() {
-        switch ($this->mytype) {
-            case 3:
-                return new \ArrayIterator($this->me['struct']);
-            case 2:
-                return new \ArrayIterator($this->me['array']);
-            case 1:
-                return new \ArrayIterator($this->me);
-            default:
-                return new \ArrayIterator();
-        }
-        return new \ArrayIterator();
-    }
-
-
-    public function offsetSet($offset, $value) {
-
-        switch ($this->mytype) {
-            case 3:
-                if (!($value instanceof \PhpXmlRpc\Value)) {
-                    throw new \Exception('It is only possible to add Value objects to an XML-RPC Struct');
-                }
-                if (is_null($offset)) {
-                    // disallow struct members with empty names
-                    throw new \Exception('It is not possible to add anonymous members to an XML-RPC Struct');
-                } else {
-                    $this->me['struct'][$offset] = $value;
-                }
-                return;
-            case 2:
-                if (!($value instanceof \PhpXmlRpc\Value)) {
-                    throw new \Exception('It is only possible to add Value objects to an XML-RPC Array');
-                }
-                if (is_null($offset)) {
-                    $this->me['array'][] = $value;
-                } else {
-                    // nb: we are not checking that $offset is above the existing array range...
-                    $this->me['array'][$offset] = $value;
-                }
-                return;
-            case 1:
-// todo: handle i4 vs int
-                reset($this->me);
-                list($type,) = each($this->me);
-                if ($type != $offset) {
-                    throw new \Exception('');
-                }
-                $this->me[$type] = $value;
-                return;
-            default:
-                // it would be nice to allow empty values to be be turned into non-empty ones this way, but we miss info to do so
-                throw new \Exception("XML-RPC Value is of type 'undef' and its value can not be set using array index");
-        }
-    }
-
-    public function offsetExists($offset) {
-        switch ($this->mytype) {
-            case 3:
-                return isset($this->me['struct'][$offset]);
-            case 2:
-                return isset($this->me['array'][$offset]);
-            case 1:
-// todo: handle i4 vs int
-                return $offset == $this->scalartyp();
-            default:
-                return false;
-        }
-    }
-
-    public function offsetUnset($offset) {
-        switch ($this->mytype) {
-            case 3:
-                unset($this->me['struct'][$offset]);
-                return;
-            case 2:
-                unset($this->me['array'][$offset]);
-                return;
-            case 1:
-                // can not remove value from a scalar
-                throw new \Exception("XML-RPC Value is of type 'scalar' and its value can not be unset using array index");
-            default:
-                throw new \Exception("XML-RPC Value is of type 'undef' and its value can not be unset using array index");
-        }
-    }
-
-    public function offsetGet($offset) {
-        switch ($this->mytype) {
-            case 3:
-                return isset($this->me['struct'][$offset]) ? $this->me['struct'][$offset] : null;
-            case 2:
-                return isset($this->me['array'][$offset]) ? $this->me['array'][$offset] : null;
-            case 1:
-// on bad type: null or exception?
-                reset($this->me);
-                list($type, $value) = each($this->me);
-                return $type == $offset ? $value : null;
-            default:
-// return null or exception?
-                throw new \Exception("XML-RPC Value is of type 'undef' and can not be accessed using array index");
-        }
-    }
-}
\ No newline at end of file
diff --git a/apps/maarch_entreprise/tools/phpxmlrpc/src/Wrapper.php b/apps/maarch_entreprise/tools/phpxmlrpc/src/Wrapper.php
deleted file mode 100644
index 7a8af5ea4881b1312a539fa3247bc786aa0e6b1f..0000000000000000000000000000000000000000
--- a/apps/maarch_entreprise/tools/phpxmlrpc/src/Wrapper.php
+++ /dev/null
@@ -1,1113 +0,0 @@
-<?php
-/**
- * @author Gaetano Giunta
- * @copyright (C) 2006-2015 G. Giunta
- * @license code licensed under the BSD License: see file license.txt
- */
-
-namespace PhpXmlRpc;
-
-/**
- * PHP-XMLRPC "wrapper" class.
- * Generate stubs to transparently access xmlrpc methods as php functions and vice-versa.
- * Note: this class implements the PROXY pattern, but it is not named so to avoid confusion with http proxies.
- *
- * @todo use some better templating system for code generation?
- * @todo implement method wrapping with preservation of php objs in calls
- * @todo when wrapping methods without obj rebuilding, use return_type = 'phpvals' (faster)
- */
-class Wrapper
-{
-    /// used to hold a reference to object instances whose methods get wrapped by wrapPhpFunction(), in 'create source' mode
-    public static $objHolder = array();
-
-    /**
-     * Given a string defining a php type or phpxmlrpc type (loosely defined: strings
-     * accepted come from javadoc blocks), return corresponding phpxmlrpc type.
-     * Notes:
-     * - for php 'resource' types returns empty string, since resources cannot be serialized;
-     * - for php class names returns 'struct', since php objects can be serialized as xmlrpc structs
-     * - for php arrays always return array, even though arrays sometimes serialize as json structs
-     * - for 'void' and 'null' returns 'undefined'
-     *
-     * @param string $phpType
-     *
-     * @return string
-     */
-    public function php2XmlrpcType($phpType)
-    {
-        switch (strtolower($phpType)) {
-            case 'string':
-                return Value::$xmlrpcString;
-            case 'integer':
-            case Value::$xmlrpcInt: // 'int'
-            case Value::$xmlrpcI4:
-                return Value::$xmlrpcInt;
-            case Value::$xmlrpcDouble: // 'double'
-                return Value::$xmlrpcDouble;
-            case 'bool':
-            case Value::$xmlrpcBoolean: // 'boolean'
-            case 'false':
-            case 'true':
-                return Value::$xmlrpcBoolean;
-            case Value::$xmlrpcArray: // 'array':
-                return Value::$xmlrpcArray;
-            case 'object':
-            case Value::$xmlrpcStruct: // 'struct'
-                return Value::$xmlrpcStruct;
-            case Value::$xmlrpcBase64:
-                return Value::$xmlrpcBase64;
-            case 'resource':
-                return '';
-            default:
-                if (class_exists($phpType)) {
-                    return Value::$xmlrpcStruct;
-                } else {
-                    // unknown: might be any 'extended' xmlrpc type
-                    return Value::$xmlrpcValue;
-                }
-        }
-    }
-
-    /**
-     * Given a string defining a phpxmlrpc type return the corresponding php type.
-     *
-     * @param string $xmlrpcType
-     *
-     * @return string
-     */
-    public function xmlrpc2PhpType($xmlrpcType)
-    {
-        switch (strtolower($xmlrpcType)) {
-            case 'base64':
-            case 'datetime.iso8601':
-            case 'string':
-                return Value::$xmlrpcString;
-            case 'int':
-            case 'i4':
-                return 'integer';
-            case 'struct':
-            case 'array':
-                return 'array';
-            case 'double':
-                return 'float';
-            case 'undefined':
-                return 'mixed';
-            case 'boolean':
-            case 'null':
-            default:
-                // unknown: might be any xmlrpc type
-                return strtolower($xmlrpcType);
-        }
-    }
-
-    /**
-     * Given a user-defined PHP function, create a PHP 'wrapper' function that can
-     * be exposed as xmlrpc method from an xmlrpc server object and called from remote
-     * clients (as well as its corresponding signature info).
-     *
-     * Since php is a typeless language, to infer types of input and output parameters,
-     * it relies on parsing the javadoc-style comment block associated with the given
-     * function. Usage of xmlrpc native types (such as datetime.dateTime.iso8601 and base64)
-     * in the @param tag is also allowed, if you need the php function to receive/send
-     * data in that particular format (note that base64 encoding/decoding is transparently
-     * carried out by the lib, while datetime vals are passed around as strings)
-     *
-     * Known limitations:
-     * - only works for user-defined functions, not for PHP internal functions
-     *   (reflection does not support retrieving number/type of params for those)
-     * - functions returning php objects will generate special structs in xmlrpc responses:
-     *   when the xmlrpc decoding of those responses is carried out by this same lib, using
-     *   the appropriate param in php_xmlrpc_decode, the php objects will be rebuilt.
-     *   In short: php objects can be serialized, too (except for their resource members),
-     *   using this function.
-     *   Other libs might choke on the very same xml that will be generated in this case
-     *   (i.e. it has a nonstandard attribute on struct element tags)
-     *
-     * Note that since rel. 2.0RC3 the preferred method to have the server call 'standard'
-     * php functions (ie. functions not expecting a single Request obj as parameter)
-     * is by making use of the functions_parameters_type class member.
-     *
-     * @param callable $callable the PHP user function to be exposed as xmlrpc method/ a closure, function name, array($obj, 'methodname') or array('class', 'methodname') are ok
-     * @param string $newFuncName (optional) name for function to be created. Used only when return_source in $extraOptions is true
-     * @param array $extraOptions (optional) array of options for conversion. valid values include:
-     *                            - bool return_source     when true, php code w. function definition will be returned, instead of a closure
-     *                            - bool encode_php_objs   let php objects be sent to server using the 'improved' xmlrpc notation, so server can deserialize them as php objects
-     *                            - bool decode_php_objs   --- WARNING !!! possible security hazard. only use it with trusted servers ---
-     *                            - bool suppress_warnings remove from produced xml any warnings generated at runtime by the php function being invoked
-     *
-     * @return array|false false on error, or an array containing the name of the new php function,
-     *                     its signature and docs, to be used in the server dispatch map
-     *
-     * @todo decide how to deal with params passed by ref in function definition: bomb out or allow?
-     * @todo finish using phpdoc info to build method sig if all params are named but out of order
-     * @todo add a check for params of 'resource' type
-     * @todo add some trigger_errors / error_log when returning false?
-     * @todo what to do when the PHP function returns NULL? We are currently returning an empty string value...
-     * @todo add an option to suppress php warnings in invocation of user function, similar to server debug level 3?
-     * @todo add a verbatim_object_copy parameter to allow avoiding usage the same obj instance?
-     * @todo add an option to allow generated function to skip validation of number of parameters, as that is done by the server anyway
-     */
-    public function wrapPhpFunction($callable, $newFuncName = '', $extraOptions = array())
-    {
-        $buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
-
-        if (is_string($callable) && strpos($callable, '::') !== false) {
-            $callable = explode('::', $callable);
-        }
-        if (is_array($callable)) {
-            if (count($callable) < 2 || (!is_string($callable[0]) && !is_object($callable[0]))) {
-                error_log('XML-RPC: ' . __METHOD__ . ': syntax for function to be wrapped is wrong');
-                return false;
-            }
-            if (is_string($callable[0])) {
-                $plainFuncName = implode('::', $callable);
-            } elseif (is_object($callable[0])) {
-                $plainFuncName = get_class($callable[0]) . '->' . $callable[1];
-            }
-            $exists = method_exists($callable[0], $callable[1]);
-        } else if ($callable instanceof \Closure) {
-            // we do not support creating code which wraps closures, as php does not allow to serialize them
-            if (!$buildIt) {
-                error_log('XML-RPC: ' . __METHOD__ . ': a closure can not be wrapped in generated source code');
-                return false;
-            }
-
-            $plainFuncName = 'Closure';
-            $exists = true;
-        } else {
-            $plainFuncName = $callable;
-            $exists = function_exists($callable);
-        }
-
-        if (!$exists) {
-            error_log('XML-RPC: ' . __METHOD__ . ': function to be wrapped is not defined: ' . $plainFuncName);
-            return false;
-        }
-
-        $funcDesc = $this->introspectFunction($callable, $plainFuncName);
-        if (!$funcDesc) {
-            return false;
-        }
-
-        $funcSigs = $this->buildMethodSignatures($funcDesc);
-
-        if ($buildIt) {
-            $callable = $this->buildWrapFunctionClosure($callable, $extraOptions, $plainFuncName, $funcDesc);
-        } else {
-            $newFuncName = $this->newFunctionName($callable, $newFuncName, $extraOptions);
-            $code = $this->buildWrapFunctionSource($callable, $newFuncName, $extraOptions, $plainFuncName, $funcDesc);
-        }
-
-        $ret = array(
-            'function' => $callable,
-            'signature' => $funcSigs['sigs'],
-            'docstring' => $funcDesc['desc'],
-            'signature_docs' => $funcSigs['sigsDocs'],
-        );
-        if (!$buildIt) {
-            $ret['function'] = $newFuncName;
-            $ret['source'] = $code;
-        }
-        return $ret;
-    }
-
-    /**
-     * Introspect a php callable and its phpdoc block and extract information about its signature
-     *
-     * @param callable $callable
-     * @param string $plainFuncName
-     * @return array|false
-     */
-    protected function introspectFunction($callable, $plainFuncName)
-    {
-        // start to introspect PHP code
-        if (is_array($callable)) {
-            $func = new \ReflectionMethod($callable[0], $callable[1]);
-            if ($func->isPrivate()) {
-                error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is private: ' . $plainFuncName);
-                return false;
-            }
-            if ($func->isProtected()) {
-                error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is protected: ' . $plainFuncName);
-                return false;
-            }
-            if ($func->isConstructor()) {
-                error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is the constructor: ' . $plainFuncName);
-                return false;
-            }
-            if ($func->isDestructor()) {
-                error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is the destructor: ' . $plainFuncName);
-                return false;
-            }
-            if ($func->isAbstract()) {
-                error_log('XML-RPC: ' . __METHOD__ . ': method to be wrapped is abstract: ' . $plainFuncName);
-                return false;
-            }
-            /// @todo add more checks for static vs. nonstatic?
-        } else {
-            $func = new \ReflectionFunction($callable);
-        }
-        if ($func->isInternal()) {
-            // Note: from PHP 5.1.0 onward, we will possibly be able to use invokeargs
-            // instead of getparameters to fully reflect internal php functions ?
-            error_log('XML-RPC: ' . __METHOD__ . ': function to be wrapped is internal: ' . $plainFuncName);
-            return false;
-        }
-
-        // retrieve parameter names, types and description from javadoc comments
-
-        // function description
-        $desc = '';
-        // type of return val: by default 'any'
-        $returns = Value::$xmlrpcValue;
-        // desc of return val
-        $returnsDocs = '';
-        // type + name of function parameters
-        $paramDocs = array();
-
-        $docs = $func->getDocComment();
-        if ($docs != '') {
-            $docs = explode("\n", $docs);
-            $i = 0;
-            foreach ($docs as $doc) {
-                $doc = trim($doc, " \r\t/*");
-                if (strlen($doc) && strpos($doc, '@') !== 0 && !$i) {
-                    if ($desc) {
-                        $desc .= "\n";
-                    }
-                    $desc .= $doc;
-                } elseif (strpos($doc, '@param') === 0) {
-                    // syntax: @param type $name [desc]
-                    if (preg_match('/@param\s+(\S+)\s+(\$\S+)\s*(.+)?/', $doc, $matches)) {
-                        $name = strtolower(trim($matches[2]));
-                        //$paramDocs[$name]['name'] = trim($matches[2]);
-                        $paramDocs[$name]['doc'] = isset($matches[3]) ? $matches[3] : '';
-                        $paramDocs[$name]['type'] = $matches[1];
-                    }
-                    $i++;
-                } elseif (strpos($doc, '@return') === 0) {
-                    // syntax: @return type [desc]
-                    if (preg_match('/@return\s+(\S+)(\s+.+)?/', $doc, $matches)) {
-                        $returns = $matches[1];
-                        if (isset($matches[2])) {
-                            $returnsDocs = trim($matches[2]);
-                        }
-                    }
-                }
-            }
-        }
-
-        // execute introspection of actual function prototype
-        $params = array();
-        $i = 0;
-        foreach ($func->getParameters() as $paramObj) {
-            $params[$i] = array();
-            $params[$i]['name'] = '$' . $paramObj->getName();
-            $params[$i]['isoptional'] = $paramObj->isOptional();
-            $i++;
-        }
-
-        return array(
-            'desc' => $desc,
-            'docs' => $docs,
-            'params' => $params, // array, positionally indexed
-            'paramDocs' => $paramDocs, // array, indexed by name
-            'returns' => $returns,
-            'returnsDocs' =>$returnsDocs,
-        );
-    }
-
-    /**
-     * Given the method description given by introspection, create method signature data
-     *
-     * @todo support better docs with multiple types separated by pipes by creating multiple signatures
-     *       (this is questionable, as it might produce a big matrix of possible signatures with many such occurrences)
-     *
-     * @param array $funcDesc as generated by self::introspectFunction()
-     *
-     * @return array
-     */
-    protected function buildMethodSignatures($funcDesc)
-    {
-        $i = 0;
-        $parsVariations = array();
-        $pars = array();
-        $pNum = count($funcDesc['params']);
-        foreach ($funcDesc['params'] as $param) {
-            /* // match by name real param and documented params
-            $name = strtolower($param['name']);
-            if (!isset($funcDesc['paramDocs'][$name])) {
-                $funcDesc['paramDocs'][$name] = array();
-            }
-            if (!isset($funcDesc['paramDocs'][$name]['type'])) {
-                $funcDesc['paramDocs'][$name]['type'] = 'mixed';
-            }*/
-
-            if ($param['isoptional']) {
-                // this particular parameter is optional. save as valid previous list of parameters
-                $parsVariations[] = $pars;
-            }
-
-            $pars[] = "\$p$i";
-            $i++;
-            if ($i == $pNum) {
-                // last allowed parameters combination
-                $parsVariations[] = $pars;
-            }
-        }
-
-        if (count($parsVariations) == 0) {
-            // only known good synopsis = no parameters
-            $parsVariations[] = array();
-        }
-
-        $sigs = array();
-        $sigsDocs = array();
-        foreach ($parsVariations as $pars) {
-            // build a signature
-            $sig = array($this->php2XmlrpcType($funcDesc['returns']));
-            $pSig = array($funcDesc['returnsDocs']);
-            for ($i = 0; $i < count($pars); $i++) {
-                $name = strtolower($funcDesc['params'][$i]['name']);
-                if (isset($funcDesc['paramDocs'][$name]['type'])) {
-                    $sig[] = $this->php2XmlrpcType($funcDesc['paramDocs'][$name]['type']);
-                } else {
-                    $sig[] = Value::$xmlrpcValue;
-                }
-                $pSig[] = isset($funcDesc['paramDocs'][$name]['doc']) ? $funcDesc['paramDocs'][$name]['doc'] : '';
-            }
-            $sigs[] = $sig;
-            $sigsDocs[] = $pSig;
-        }
-
-        return array(
-            'sigs' => $sigs,
-            'sigsDocs' => $sigsDocs
-        );
-    }
-
-    /**
-     * Creates a closure that will execute $callable
-     * @todo validate params? In theory all validation is left to the dispatch map...
-     * @todo add support for $catchWarnings
-     *
-     * @param $callable
-     * @param array $extraOptions
-     * @param string $plainFuncName
-     * @param string $funcDesc
-     * @return \Closure
-     */
-    protected function buildWrapFunctionClosure($callable, $extraOptions, $plainFuncName, $funcDesc)
-    {
-        $function = function($req) use($callable, $extraOptions, $funcDesc)
-        {
-            $nameSpace = '\\PhpXmlRpc\\';
-            $encoderClass = $nameSpace.'Encoder';
-            $responseClass = $nameSpace.'Response';
-            $valueClass = $nameSpace.'Value';
-
-            // validate number of parameters received
-            // this should be optional really, as we assume the server does the validation
-            $minPars = count($funcDesc['params']);
-            $maxPars = $minPars;
-            foreach ($funcDesc['params'] as $i => $param) {
-                if ($param['isoptional']) {
-                    // this particular parameter is optional. We assume later ones are as well
-                    $minPars = $i;
-                    break;
-                }
-            }
-            $numPars = $req->getNumParams();
-            if ($numPars < $minPars || $numPars > $maxPars) {
-                return new $responseClass(0, 3, 'Incorrect parameters passed to method');
-            }
-
-            $encoder = new $encoderClass();
-            $options = array();
-            if (isset($extraOptions['decode_php_objs']) && $extraOptions['decode_php_objs']) {
-                $options[] = 'decode_php_objs';
-            }
-            $params = $encoder->decode($req, $options);
-
-            $result = call_user_func_array($callable, $params);
-
-            if (! is_a($result, $responseClass)) {
-                if ($funcDesc['returns'] == Value::$xmlrpcDateTime || $funcDesc['returns'] == Value::$xmlrpcBase64) {
-                    $result = new $valueClass($result, $funcDesc['returns']);
-                } else {
-                    $options = array();
-                    if (isset($extraOptions['encode_php_objs']) && $extraOptions['encode_php_objs']) {
-                        $options[] = 'encode_php_objs';
-                    }
-
-                    $result = $encoder->encode($result, $options);
-                }
-                $result = new $responseClass($result);
-            }
-
-            return $result;
-        };
-
-        return $function;
-    }
-
-    /**
-     * Return a name for a new function, based on $callable, insuring its uniqueness
-     * @param mixed $callable a php callable, or the name of an xmlrpc method
-     * @param string $newFuncName when not empty, it is used instead of the calculated version
-     * @return string
-     */
-    protected function newFunctionName($callable, $newFuncName, $extraOptions)
-    {
-        // determine name of new php function
-
-        $prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
-
-        if ($newFuncName == '') {
-            if (is_array($callable)) {
-                if (is_string($callable[0])) {
-                    $xmlrpcFuncName = "{$prefix}_" . implode('_', $callable);
-                } else {
-                    $xmlrpcFuncName = "{$prefix}_" . get_class($callable[0]) . '_' . $callable[1];
-                }
-            } else {
-                if ($callable instanceof \Closure) {
-                    $xmlrpcFuncName = "{$prefix}_closure";
-                } else {
-                    $callable = preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
-                        array('_', ''), $callable);
-                    $xmlrpcFuncName = "{$prefix}_$callable";
-                }
-            }
-        } else {
-            $xmlrpcFuncName = $newFuncName;
-        }
-
-        while (function_exists($xmlrpcFuncName)) {
-            $xmlrpcFuncName .= 'x';
-        }
-
-        return $xmlrpcFuncName;
-    }
-
-    /**
-     * @param $callable
-     * @param string $newFuncName
-     * @param array $extraOptions
-     * @param string $plainFuncName
-     * @param array $funcDesc
-     * @return string
-     *
-     * @todo add a nice phpdoc block in the generated source
-     */
-    protected function buildWrapFunctionSource($callable, $newFuncName, $extraOptions, $plainFuncName, $funcDesc)
-    {
-        $namespace = '\\PhpXmlRpc\\';
-
-        $encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
-        $decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
-        $catchWarnings = isset($extraOptions['suppress_warnings']) && $extraOptions['suppress_warnings'] ? '@' : '';
-
-        $i = 0;
-        $parsVariations = array();
-        $pars = array();
-        $pNum = count($funcDesc['params']);
-        foreach ($funcDesc['params'] as $param) {
-
-            if ($param['isoptional']) {
-                // this particular parameter is optional. save as valid previous list of parameters
-                $parsVariations[] = $pars;
-            }
-
-            $pars[] = "\$p[$i]";
-            $i++;
-            if ($i == $pNum) {
-                // last allowed parameters combination
-                $parsVariations[] = $pars;
-            }
-        }
-
-        if (count($parsVariations) == 0) {
-            // only known good synopsis = no parameters
-            $parsVariations[] = array();
-            $minPars = 0;
-            $maxPars = 0;
-        } else {
-            $minPars = count($parsVariations[0]);
-            $maxPars = count($parsVariations[count($parsVariations)-1]);
-        }
-
-        // build body of new function
-
-        $innerCode = "\$paramCount = \$req->getNumParams();\n";
-        $innerCode .= "if (\$paramCount < $minPars || \$paramCount > $maxPars) return new {$namespace}Response(0, " . PhpXmlRpc::$xmlrpcerr['incorrect_params'] . ", '" . PhpXmlRpc::$xmlrpcstr['incorrect_params'] . "');\n";
-
-        $innerCode .= "\$encoder = new {$namespace}Encoder();\n";
-        if ($decodePhpObjects) {
-            $innerCode .= "\$p = \$encoder->decode(\$req, array('decode_php_objs'));\n";
-        } else {
-            $innerCode .= "\$p = \$encoder->decode(\$req);\n";
-        }
-
-        // since we are building source code for later use, if we are given an object instance,
-        // we go out of our way and store a pointer to it in a static class var var...
-        if (is_array($callable) && is_object($callable[0])) {
-            self::$objHolder[$newFuncName] = $callable[0];
-            $innerCode .= "\$obj = PhpXmlRpc\\Wrapper::\$objHolder['$newFuncName'];\n";
-            $realFuncName = '$obj->' . $callable[1];
-        } else {
-            $realFuncName = $plainFuncName;
-        }
-        foreach ($parsVariations as $i => $pars) {
-            $innerCode .= "if (\$paramCount == " . count($pars) . ") \$retval = {$catchWarnings}$realFuncName(" . implode(',', $pars) . ");\n";
-            if ($i < (count($parsVariations) - 1))
-                $innerCode .= "else\n";
-        }
-        $innerCode .= "if (is_a(\$retval, '{$namespace}Response')) return \$retval; else\n";
-        if ($funcDesc['returns'] == Value::$xmlrpcDateTime || $funcDesc['returns'] == Value::$xmlrpcBase64) {
-            $innerCode .= "return new {$namespace}Response(new {$namespace}Value(\$retval, '{$funcDesc['returns']}'));";
-        } else {
-            if ($encodePhpObjects) {
-                $innerCode .= "return new {$namespace}Response(\$encoder->encode(\$retval, array('encode_php_objs')));\n";
-            } else {
-                $innerCode .= "return new {$namespace}Response(\$encoder->encode(\$retval));\n";
-            }
-        }
-        // shall we exclude functions returning by ref?
-        // if($func->returnsReference())
-        //     return false;
-
-        $code = "function $newFuncName(\$req) {\n" . $innerCode . "\n}";
-
-        return $code;
-    }
-
-    /**
-     * Given a user-defined PHP class or php object, map its methods onto a list of
-     * PHP 'wrapper' functions that can be exposed as xmlrpc methods from an xmlrpc server
-     * object and called from remote clients (as well as their corresponding signature info).
-     *
-     * @param string|object $className the name of the class whose methods are to be exposed as xmlrpc methods, or an object instance of that class
-     * @param array $extraOptions see the docs for wrapPhpMethod for basic options, plus
-     *                            - string method_type    'static', 'nonstatic', 'all' and 'auto' (default); the latter will switch between static and non-static depending on whether $className is a class name or object instance
-     *                            - string method_filter  a regexp used to filter methods to wrap based on their names
-     *                            - string prefix         used for the names of the xmlrpc methods created
-     *
-     * @return array|false false on failure
-     */
-    public function wrapPhpClass($className, $extraOptions = array())
-    {
-        $methodFilter = isset($extraOptions['method_filter']) ? $extraOptions['method_filter'] : '';
-        $methodType = isset($extraOptions['method_type']) ? $extraOptions['method_type'] : 'auto';
-        $prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : '';
-
-        $results = array();
-        $mList = get_class_methods($className);
-        foreach ($mList as $mName) {
-            if ($methodFilter == '' || preg_match($methodFilter, $mName)) {
-                $func = new \ReflectionMethod($className, $mName);
-                if (!$func->isPrivate() && !$func->isProtected() && !$func->isConstructor() && !$func->isDestructor() && !$func->isAbstract()) {
-                    if (($func->isStatic() && ($methodType == 'all' || $methodType == 'static' || ($methodType == 'auto' && is_string($className)))) ||
-                        (!$func->isStatic() && ($methodType == 'all' || $methodType == 'nonstatic' || ($methodType == 'auto' && is_object($className))))
-                    ) {
-                        $methodWrap = $this->wrapPhpFunction(array($className, $mName), '', $extraOptions);
-                        if ($methodWrap) {
-                            if (is_object($className)) {
-                                $realClassName = get_class($className);
-                            }else {
-                                $realClassName = $className;
-                            }
-                            $results[$prefix."$realClassName.$mName"] = $methodWrap;
-                        }
-                    }
-                }
-            }
-        }
-
-        return $results;
-    }
-
-    /**
-     * Given an xmlrpc client and a method name, register a php wrapper function
-     * that will call it and return results using native php types for both
-     * params and results. The generated php function will return a Response
-     * object for failed xmlrpc calls.
-     *
-     * Known limitations:
-     * - server must support system.methodsignature for the wanted xmlrpc method
-     * - for methods that expose many signatures, only one can be picked (we
-     *   could in principle check if signatures differ only by number of params
-     *   and not by type, but it would be more complication than we can spare time)
-     * - nested xmlrpc params: the caller of the generated php function has to
-     *   encode on its own the params passed to the php function if these are structs
-     *   or arrays whose (sub)members include values of type datetime or base64
-     *
-     * Notes: the connection properties of the given client will be copied
-     * and reused for the connection used during the call to the generated
-     * php function.
-     * Calling the generated php function 'might' be slow: a new xmlrpc client
-     * is created on every invocation and an xmlrpc-connection opened+closed.
-     * An extra 'debug' param is appended to param list of xmlrpc method, useful
-     * for debugging purposes.
-     *
-     * @todo allow caller to give us the method signature instead of querying for it, or just say 'skip it'
-     * @todo if we can not retrieve method signature, create a php function with varargs
-     * @todo allow the created function to throw exceptions on method calls failures
-     * @todo if caller did not specify a specific sig, shall we support all of them?
-     *       It might be hard (hence slow) to match based on type and number of arguments...
-     *
-     * @param Client $client an xmlrpc client set up correctly to communicate with target server
-     * @param string $methodName the xmlrpc method to be mapped to a php function
-     * @param array $extraOptions array of options that specify conversion details. Valid options include
-     *                            - integer signum              the index of the method signature to use in mapping (if method exposes many sigs)
-     *                            - integer timeout             timeout (in secs) to be used when executing function/calling remote method
-     *                            - string  protocol            'http' (default), 'http11' or 'https'
-     *                            - string  new_function_name   the name of php function to create, when return_source is used. If unspecified, lib will pick an appropriate name
-     *                            - string  return_source       if true return php code w. function definition instead of function itself (closure)
-     *                            - bool    encode_php_objs     let php objects be sent to server using the 'improved' xmlrpc notation, so server can deserialize them as php objects
-     *                            - bool    decode_php_objs     --- WARNING !!! possible security hazard. only use it with trusted servers ---
-     *                            - mixed   return_on_fault     a php value to be returned when the xmlrpc call fails/returns a fault response (by default the Response object is returned in this case). If a string is used, '%faultCode%' and '%faultString%' tokens will be substituted with actual error values
-     *                            - bool    debug               set it to 1 or 2 to see debug results of querying server for method synopsis
-     *                            - int     simple_client_copy  set it to 1 to have a lightweight copy of the $client object made in the generated code (only used when return_source = true)
-     *
-     * @return \closure|array|false false on failure, closure by default and array for return_source = true
-     */
-    public function wrapXmlrpcMethod($client, $methodName, $extraOptions = array())
-    {
-        $newFuncName = isset($extraOptions['new_function_name']) ? $extraOptions['new_function_name'] : '';
-
-        $buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
-
-        $mSig = $this->retrieveMethodSignature($client, $methodName, $extraOptions);
-        if (!$mSig) {
-            return false;
-        }
-
-        if ($buildIt) {
-            return $this->buildWrapMethodClosure($client, $methodName, $extraOptions, $mSig);
-        } else {
-            // if in 'offline' mode, retrieve method description too.
-            // in online mode, favour speed of operation
-            $mDesc = $this->retrieveMethodHelp($client, $methodName, $extraOptions);
-
-            $newFuncName = $this->newFunctionName($methodName, $newFuncName, $extraOptions);
-
-            $results = $this->buildWrapMethodSource($client, $methodName, $extraOptions, $newFuncName, $mSig, $mDesc);
-            /* was: $results = $this->build_remote_method_wrapper_code($client, $methodName,
-                $newFuncName, $mSig, $mDesc, $timeout, $protocol, $simpleClientCopy,
-                $prefix, $decodePhpObjects, $encodePhpObjects, $decodeFault,
-                $faultResponse, $namespace);*/
-
-            $results['function'] = $newFuncName;
-
-            return $results;
-        }
-
-    }
-
-    /**
-     * Retrieves an xmlrpc method signature from a server which supports system.methodSignature
-     * @param Client $client
-     * @param string $methodName
-     * @param array $extraOptions
-     * @return false|array
-     */
-    protected function retrieveMethodSignature($client, $methodName, array $extraOptions = array())
-    {
-        $namespace = '\\PhpXmlRpc\\';
-        $reqClass = $namespace . 'Request';
-        $valClass = $namespace . 'Value';
-        $decoderClass = $namespace . 'Encoder';
-
-        $debug = isset($extraOptions['debug']) ? ($extraOptions['debug']) : 0;
-        $timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
-        $protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
-        $sigNum = isset($extraOptions['signum']) ? (int)$extraOptions['signum'] : 0;
-
-        $req = new $reqClass('system.methodSignature');
-        $req->addparam(new $valClass($methodName));
-        $client->setDebug($debug);
-        $response = $client->send($req, $timeout, $protocol);
-        if ($response->faultCode()) {
-            error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method signature from remote server for method ' . $methodName);
-            return false;
-        }
-
-        $mSig = $response->value();
-        if ($client->return_type != 'phpvals') {
-            $decoder = new $decoderClass();
-            $mSig = $decoder->decode($mSig);
-        }
-
-        if (!is_array($mSig) || count($mSig) <= $sigNum) {
-            error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method signature nr.' . $sigNum . ' from remote server for method ' . $methodName);
-            return false;
-        }
-
-        return $mSig[$sigNum];
-    }
-
-    /**
-     * @param Client $client
-     * @param string $methodName
-     * @param array $extraOptions
-     * @return string in case of any error, an empty string is returned, no warnings generated
-     */
-    protected function retrieveMethodHelp($client, $methodName, array $extraOptions = array())
-    {
-        $namespace = '\\PhpXmlRpc\\';
-        $reqClass = $namespace . 'Request';
-        $valClass = $namespace . 'Value';
-
-        $debug = isset($extraOptions['debug']) ? ($extraOptions['debug']) : 0;
-        $timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
-        $protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
-
-        $mDesc = '';
-
-        $req = new $reqClass('system.methodHelp');
-        $req->addparam(new $valClass($methodName));
-        $client->setDebug($debug);
-        $response = $client->send($req, $timeout, $protocol);
-        if (!$response->faultCode()) {
-            $mDesc = $response->value();
-            if ($client->return_type != 'phpvals') {
-                $mDesc = $mDesc->scalarval();
-            }
-        }
-
-        return $mDesc;
-    }
-
-    /**
-     * @param Client $client
-     * @param string $methodName
-     * @param array $extraOptions
-     * @param string $mSig
-     * @return \Closure
-     *
-     * @todo should we allow usage of parameter simple_client_copy to mean 'do not clone' in this case?
-     */
-    protected function buildWrapMethodClosure($client, $methodName, array $extraOptions, $mSig)
-    {
-        // we clone the client, so that we can modify it a bit independently of the original
-        $clientClone = clone $client;
-        $function = function() use($clientClone, $methodName, $extraOptions, $mSig)
-        {
-            $timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
-            $protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
-            $encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
-            $decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
-            if (isset($extraOptions['return_on_fault'])) {
-                $decodeFault = true;
-                $faultResponse = $extraOptions['return_on_fault'];
-            } else {
-                $decodeFault = false;
-            }
-
-            $namespace = '\\PhpXmlRpc\\';
-            $reqClass = $namespace . 'Request';
-            $encoderClass = $namespace . 'Encoder';
-            $valueClass = $namespace . 'Value';
-
-            $encoder = new $encoderClass();
-            $encodeOptions = array();
-            if ($encodePhpObjects) {
-                $encodeOptions[] = 'encode_php_objs';
-            }
-            $decodeOptions = array();
-            if ($decodePhpObjects) {
-                $decodeOptions[] = 'decode_php_objs';
-            }
-
-            /// @todo check for insufficient nr. of args besides excess ones? note that 'source' version does not...
-
-            // support one extra parameter: debug
-            $maxArgs = count($mSig)-1; // 1st element is the return type
-            $currentArgs = func_get_args();
-            if (func_num_args() == ($maxArgs+1)) {
-                $debug = array_pop($currentArgs);
-                $clientClone->setDebug($debug);
-            }
-
-            $xmlrpcArgs = array();
-            foreach($currentArgs as $i => $arg) {
-                if ($i == $maxArgs) {
-                    break;
-                }
-                $pType = $mSig[$i+1];
-                if ($pType == 'i4' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' ||
-                    $pType == 'string' || $pType == 'dateTime.iso8601' || $pType == 'base64' || $pType == 'null'
-                ) {
-                    // by building directly xmlrpc values when type is known and scalar (instead of encode() calls),
-                    // we make sure to honour the xmlrpc signature
-                    $xmlrpcArgs[] = new $valueClass($arg, $pType);
-                } else {
-                    $xmlrpcArgs[] = $encoder->encode($arg, $encodeOptions);
-                }
-            }
-
-            $req = new $reqClass($methodName, $xmlrpcArgs);
-            // use this to get the maximum decoding flexibility
-            $clientClone->return_type = 'xmlrpcvals';
-            $resp = $clientClone->send($req, $timeout, $protocol);
-            if ($resp->faultcode()) {
-                if ($decodeFault) {
-                    if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) ||
-                            (strpos($faultResponse, '%faultString%') !== false))) {
-                        $faultResponse = str_replace(array('%faultCode%', '%faultString%'),
-                            array($resp->faultCode(), $resp->faultString()), $faultResponse);
-                    }
-                    return $faultResponse;
-                } else {
-                    return $resp;
-                }
-            } else {
-                return $encoder->decode($resp->value(), $decodeOptions);
-            }
-        };
-
-        return $function;
-    }
-
-    /**
-     * @param Client $client
-     * @param string $methodName
-     * @param array $extraOptions
-     * @param string $newFuncName
-     * @param array $mSig
-     * @param string $mDesc
-     * @return array
-     */
-    public function buildWrapMethodSource($client, $methodName, array $extraOptions, $newFuncName, $mSig, $mDesc='')
-    {
-        $timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
-        $protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
-        $encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
-        $decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
-        $clientCopyMode = isset($extraOptions['simple_client_copy']) ? (int)($extraOptions['simple_client_copy']) : 0;
-        $prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
-        if (isset($extraOptions['return_on_fault'])) {
-            $decodeFault = true;
-            $faultResponse = $extraOptions['return_on_fault'];
-        } else {
-            $decodeFault = false;
-            $faultResponse = '';
-        }
-
-        $namespace = '\\PhpXmlRpc\\';
-
-        $code = "function $newFuncName (";
-        if ($clientCopyMode < 2) {
-            // client copy mode 0 or 1 == full / partial client copy in emitted code
-            $verbatimClientCopy = !$clientCopyMode;
-            $innerCode = $this->buildClientWrapperCode($client, $verbatimClientCopy, $prefix, $namespace);
-            $innerCode .= "\$client->setDebug(\$debug);\n";
-            $this_ = '';
-        } else {
-            // client copy mode 2 == no client copy in emitted code
-            $innerCode = '';
-            $this_ = 'this->';
-        }
-        $innerCode .= "\$req = new {$namespace}Request('$methodName');\n";
-
-        if ($mDesc != '') {
-            // take care that PHP comment is not terminated unwillingly by method description
-            $mDesc = "/**\n* " . str_replace('*/', '* /', $mDesc) . "\n";
-        } else {
-            $mDesc = "/**\nFunction $newFuncName\n";
-        }
-
-        // param parsing
-        $innerCode .= "\$encoder = new {$namespace}Encoder();\n";
-        $plist = array();
-        $pCount = count($mSig);
-        for ($i = 1; $i < $pCount; $i++) {
-            $plist[] = "\$p$i";
-            $pType = $mSig[$i];
-            if ($pType == 'i4' || $pType == 'int' || $pType == 'boolean' || $pType == 'double' ||
-                $pType == 'string' || $pType == 'dateTime.iso8601' || $pType == 'base64' || $pType == 'null'
-            ) {
-                // only build directly xmlrpc values when type is known and scalar
-                $innerCode .= "\$p$i = new {$namespace}Value(\$p$i, '$pType');\n";
-            } else {
-                if ($encodePhpObjects) {
-                    $innerCode .= "\$p$i = \$encoder->encode(\$p$i, array('encode_php_objs'));\n";
-                } else {
-                    $innerCode .= "\$p$i = \$encoder->encode(\$p$i);\n";
-                }
-            }
-            $innerCode .= "\$req->addparam(\$p$i);\n";
-            $mDesc .= '* @param ' . $this->xmlrpc2PhpType($pType) . " \$p$i\n";
-        }
-        if ($clientCopyMode < 2) {
-            $plist[] = '$debug=0';
-            $mDesc .= "* @param int \$debug when 1 (or 2) will enable debugging of the underlying {$prefix} call (defaults to 0)\n";
-        }
-        $plist = implode(', ', $plist);
-        $mDesc .= '* @return ' . $this->xmlrpc2PhpType($mSig[0]) . " (or an {$namespace}Response obj instance if call fails)\n*/\n";
-
-        $innerCode .= "\$res = \${$this_}client->send(\$req, $timeout, '$protocol');\n";
-        if ($decodeFault) {
-            if (is_string($faultResponse) && ((strpos($faultResponse, '%faultCode%') !== false) || (strpos($faultResponse, '%faultString%') !== false))) {
-                $respCode = "str_replace(array('%faultCode%', '%faultString%'), array(\$res->faultCode(), \$res->faultString()), '" . str_replace("'", "''", $faultResponse) . "')";
-            } else {
-                $respCode = var_export($faultResponse, true);
-            }
-        } else {
-            $respCode = '$res';
-        }
-        if ($decodePhpObjects) {
-            $innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value(), array('decode_php_objs'));";
-        } else {
-            $innerCode .= "if (\$res->faultcode()) return $respCode; else return \$encoder->decode(\$res->value());";
-        }
-
-        $code = $code . $plist . ") {\n" . $innerCode . "\n}\n";
-
-        return array('source' => $code, 'docstring' => $mDesc);
-    }
-
-    /**
-     * Similar to wrapXmlrpcMethod, but will generate a php class that wraps
-     * all xmlrpc methods exposed by the remote server as own methods.
-     * For more details see wrapXmlrpcMethod.
-     *
-     * For a slimmer alternative, see the code in demo/client/proxy.php
-     *
-     * Note that unlike wrapXmlrpcMethod, we always have to generate php code here. It seems that php 7 will have anon classes...
-     *
-     * @param Client $client the client obj all set to query the desired server
-     * @param array $extraOptions list of options for wrapped code. See the ones from wrapXmlrpcMethod plus
-     *              - string method_filter      regular expression
-     *              - string new_class_name
-     *              - string prefix
-     *              - bool   simple_client_copy set it to true to avoid copying all properties of $client into the copy made in the new class
-     *
-     * @return mixed false on error, the name of the created class if all ok or an array with code, class name and comments (if the appropriatevoption is set in extra_options)
-     */
-    public function wrapXmlrpcServer($client, $extraOptions = array())
-    {
-        $methodFilter = isset($extraOptions['method_filter']) ? $extraOptions['method_filter'] : '';
-        $timeout = isset($extraOptions['timeout']) ? (int)$extraOptions['timeout'] : 0;
-        $protocol = isset($extraOptions['protocol']) ? $extraOptions['protocol'] : '';
-        $newClassName = isset($extraOptions['new_class_name']) ? $extraOptions['new_class_name'] : '';
-        $encodePhpObjects = isset($extraOptions['encode_php_objs']) ? (bool)$extraOptions['encode_php_objs'] : false;
-        $decodePhpObjects = isset($extraOptions['decode_php_objs']) ? (bool)$extraOptions['decode_php_objs'] : false;
-        $verbatimClientCopy = isset($extraOptions['simple_client_copy']) ? !($extraOptions['simple_client_copy']) : true;
-        $buildIt = isset($extraOptions['return_source']) ? !($extraOptions['return_source']) : true;
-        $prefix = isset($extraOptions['prefix']) ? $extraOptions['prefix'] : 'xmlrpc';
-        $namespace = '\\PhpXmlRpc\\';
-
-        $reqClass = $namespace . 'Request';
-        $decoderClass = $namespace . 'Encoder';
-
-        $req = new $reqClass('system.listMethods');
-        $response = $client->send($req, $timeout, $protocol);
-        if ($response->faultCode()) {
-            error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve method list from remote server');
-
-            return false;
-        } else {
-            $mList = $response->value();
-            if ($client->return_type != 'phpvals') {
-                $decoder = new $decoderClass();
-                $mList = $decoder->decode($mList);
-            }
-            if (!is_array($mList) || !count($mList)) {
-                error_log('XML-RPC: ' . __METHOD__ . ': could not retrieve meaningful method list from remote server');
-
-                return false;
-            } else {
-                // pick a suitable name for the new function, avoiding collisions
-                if ($newClassName != '') {
-                    $xmlrpcClassName = $newClassName;
-                } else {
-                    $xmlrpcClassName = $prefix . '_' . preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
-                            array('_', ''), $client->server) . '_client';
-                }
-                while ($buildIt && class_exists($xmlrpcClassName)) {
-                    $xmlrpcClassName .= 'x';
-                }
-
-                /// @todo add function setdebug() to new class, to enable/disable debugging
-                $source = "class $xmlrpcClassName\n{\npublic \$client;\n\n";
-                $source .= "function __construct()\n{\n";
-                $source .= $this->buildClientWrapperCode($client, $verbatimClientCopy, $prefix, $namespace);
-                $source .= "\$this->client = \$client;\n}\n\n";
-                $opts = array(
-                    'return_source' => true,
-                    'simple_client_copy' => 2, // do not produce code to copy the client object
-                    'timeout' => $timeout,
-                    'protocol' => $protocol,
-                    'encode_php_objs' => $encodePhpObjects,
-                    'decode_php_objs' => $decodePhpObjects,
-                    'prefix' => $prefix,
-                );
-                /// @todo build phpdoc for class definition, too
-                foreach ($mList as $mName) {
-                    if ($methodFilter == '' || preg_match($methodFilter, $mName)) {
-                        // note: this will fail if server exposes 2 methods called f.e. do.something and do_something
-                        $opts['new_function_name'] = preg_replace(array('/\./', '/[^a-zA-Z0-9_\x7f-\xff]/'),
-                            array('_', ''), $mName);
-                        $methodWrap = $this->wrapXmlrpcMethod($client, $mName, $opts);
-                        if ($methodWrap) {
-                            if (!$buildIt) {
-                                $source .= $methodWrap['docstring'];
-                            }
-                            $source .= $methodWrap['source'] . "\n";
-                        } else {
-                            error_log('XML-RPC: ' . __METHOD__ . ': will not create class method to wrap remote method ' . $mName);
-                        }
-                    }
-                }
-                $source .= "}\n";
-                if ($buildIt) {
-                    $allOK = 0;
-                    eval($source . '$allOK=1;');
-                    if ($allOK) {
-                        return $xmlrpcClassName;
-                    } else {
-                        error_log('XML-RPC: ' . __METHOD__ . ': could not create class ' . $xmlrpcClassName . ' to wrap remote server ' . $client->server);
-                        return false;
-                    }
-                } else {
-                    return array('class' => $xmlrpcClassName, 'code' => $source, 'docstring' => '');
-                }
-            }
-        }
-    }
-
-    /**
-     * Given necessary info, generate php code that will build a client object just like the given one.
-     * Take care that no full checking of input parameters is done to ensure that
-     * valid php code is emitted.
-     * @param Client $client
-     * @param bool $verbatimClientCopy when true, copy all of the state of the client, except for 'debug' and 'return_type'
-     * @param string $prefix used for the return_type of the created client
-     * @param string $namespace
-     *
-     * @return string
-     */
-    protected function buildClientWrapperCode($client, $verbatimClientCopy, $prefix = 'xmlrpc', $namespace = '\\PhpXmlRpc\\' )
-    {
-        $code = "\$client = new {$namespace}Client('" . str_replace("'", "\'", $client->path) .
-            "', '" . str_replace("'", "\'", $client->server) . "', $client->port);\n";
-
-        // copy all client fields to the client that will be generated runtime
-        // (this provides for future expansion or subclassing of client obj)
-        if ($verbatimClientCopy) {
-            foreach ($client as $fld => $val) {
-                if ($fld != 'debug' && $fld != 'return_type') {
-                    $val = var_export($val, true);
-                    $code .= "\$client->$fld = $val;\n";
-                }
-            }
-        }
-        // only make sure that client always returns the correct data type
-        $code .= "\$client->return_type = '{$prefix}vals';\n";
-        //$code .= "\$client->setDebug(\$debug);\n";
-        return $code;
-    }
-}
diff --git a/apps/maarch_entreprise/xml/index_letterbox.xml b/apps/maarch_entreprise/xml/index_letterbox.xml
index bbd2142df9165990f7d0677ccf20ed3bbe8d2b48..f9cc8b2accce6a345cd44d6739d73e8e350f7617 100755
--- a/apps/maarch_entreprise/xml/index_letterbox.xml
+++ b/apps/maarch_entreprise/xml/index_letterbox.xml
@@ -22,14 +22,6 @@
         <label>PO#</label>
         <type>string</type>
         <img>arrow-right</img>
-         <table>
-            <table_name>doctypes</table_name>
-            <foreign_key>type_id</foreign_key>
-            <foreign_label>description</foreign_label>
-            <where_clause>enabled = 'Y'</where_clause>
-            <order>order by description</order>
-        </table>
-        <default_value></default_value>
     </INDEX>
     <INDEX>
         <column>custom_t2</column>
diff --git a/core/class/resources_controler.php b/core/class/resources_controler.php
index 453a4ac6ace73d00f9984aff3e2d40d31ffb224b..610172838ab3bdec1f3adcf6c8a16b2c3a0f25c8 100755
--- a/core/class/resources_controler.php
+++ b/core/class/resources_controler.php
@@ -115,7 +115,8 @@ class resources_controler
                 $data, 
                 $storeResult['docserver_id'],
                 $status,
-                $fileFormat
+                $fileFormat,
+                $table
             );
             unlink($Fnm);
             //var_dump($data);exit;
@@ -156,7 +157,7 @@ class resources_controler
         }
     }
 
-    private function prepareStorage($data, $docserverId, $status, $fileFormat)
+    private function prepareStorage($data, $docserverId, $status, $fileFormat, $table)
     {
         $statusFound = false;
         $typistFound = false;
@@ -165,6 +166,7 @@ class resources_controler
         $userPrimaryEntity = false;
         $destinationFound = false;
         $initiatorFound = false;
+        $attachmentTypeFound = false;
         $db = new Database();
         for ($i=0;$i<count($data);$i++) {
             if (strtoupper($data[$i]['type']) == 'INTEGER' || strtoupper($data[$i]['type']) == 'FLOAT') {
@@ -217,6 +219,9 @@ class resources_controler
                         
                 }
             }
+            if (strtoupper($data[$i]['column']) == strtoupper('attachment_type')) {
+                $attachmentTypeFound = true;
+            }
         }
         if (!$typistFound && !$toAddressFound) {
             array_push(
@@ -307,7 +312,19 @@ class resources_controler
                     )
                 );
             }
-        }    
+        }
+
+        if (!$attachmentTypeFound && $table == 'res_attachments') {
+            array_push(
+                $data,
+                array(
+                    'column' => 'attachment_type',
+                    'value' => 'simple_attachment',
+                    'type' => 'string',
+                )
+            );
+        } 
+
         array_push(
             $data,
             array(
diff --git a/modules/attachments/choose_attachment.php b/modules/attachments/choose_attachment.php
index a26f2b2b2272d865e88e2ebb779f68e2d7141524..80bdbc019837751c0d485996d3217811f7461aae 100644
--- a/modules/attachments/choose_attachment.php
+++ b/modules/attachments/choose_attachment.php
@@ -94,16 +94,16 @@ $upFileOK = false;
         <?php
             if (!empty($_SESSION['upfile']['local_path']) && empty($_SESSION['error'])) { ?>
                 <i class="fa fa-check-square fa-2x" title="<?php echo _DOWNLOADED_FILE; ?>"></i>
-                <input type="button" id="fileButton" onclick="$$('#file')[0].click();" class="button"
+                <input type="button" id="fileButton" onclick="$j('#file').click();" class="button"
                        value="<?php if($_REQUEST['with_file'] == 'true'){ echo _WITHOUT_FILE; } else {echo $_FILES['file']['name']; }?>"
                        title="<?php if($_REQUEST['with_file'] == 'true'){ echo _WITHOUT_FILE; } else {echo $_FILES['file']['name']; }?>"
                        style="width: 85%;margin: 0px;margin-top: -10px;font-size: 12px;text-align: center;text-overflow: ellipsis;overflow: hidden;">
             <?php } elseif (!empty($_SESSION['error'])) { ?>
                 <i class="fa fa-remove fa-2x" title="<?php echo $_SESSION['error']; ?>"></i>
-                <input type="button" id="fileButton" onclick="$$('#file')[0].click();" class="button" value="<?php echo $_SESSION['error']; ?>" style="width: 85%;margin: 0px;margin-top: -10px;font-size: 12px;text-align: center;text-overflow: ellipsis;overflow: hidden;">
+                <input type="button" id="fileButton" onclick="$j('#file').click();" class="button" value="<?php echo $_SESSION['error']; ?>" style="width: 85%;margin: 0px;margin-top: -10px;font-size: 12px;text-align: center;text-overflow: ellipsis;overflow: hidden;">
             <?php } else { ?>
                 <i class="fa fa-remove fa-2x" title="<?php echo _NO_FILE_SELECTED; ?>"></i>
-                <input type="button" id="fileButton" onclick="$$('#file')[0].click();" class="button" value="<?php echo _CHOOSE_FILE; ?>" style="width: 85%;margin: 0px;margin-top: -10px;font-size: 12px;text-align: center;text-overflow: ellipsis;overflow: hidden;">
+                <input type="button" id="fileButton" onclick="$j('#file').click();" class="button" value="<?php echo _CHOOSE_FILE; ?>" style="width: 85%;margin: 0px;margin-top: -10px;font-size: 12px;text-align: center;text-overflow: ellipsis;overflow: hidden;">
             <?php } ?>
         <p style="display:none">
         <!-- window.parent.$('title').value = this.value.substring(0,this.value.indexOf('.')); -->
diff --git a/modules/attachments/del_attachment.php b/modules/attachments/del_attachment.php
index be8cb7277d5aeb44e5cb078771ed2c8958dd3731..37abd964e4054f7a0b94f186199011d1803321e1 100644
--- a/modules/attachments/del_attachment.php
+++ b/modules/attachments/del_attachment.php
@@ -156,18 +156,6 @@ if ($stmt->rowCount() > 0) {
 		var document_type = '<?php functions::xecho($info_doc['attachment_type']); ?>';
 		var is_version = '<?php functions::xecho($is_version); ?>';
 
-		if(window.parent.top.document.getElementById('ans_'+num_rep+'_'+res_id_doc)) {
-			var tab = window.parent.top.document.getElementById('tabricatorRight');
-			if(document_type == 'signed_response'){
-				window.parent.top.document.getElementById('ans_'+num_rep+'_'+res_id_doc).innerHTML = "<?php echo $attach_type; ?><sup><span class=\"\" style=\"\" id=\"\"></span></sup>";
-				window.parent.top.document.getElementById('ans_'+num_rep+'_'+res_id_doc).setAttribute('onclick','updateFunctionModifRep(\'<?php echo $document_id; ?>\', '+num_rep+', '+is_version+')');
-				window.parent.top.document.getElementById('ans_'+num_rep+'_'+res_id_doc).id = 'ans_'+num_rep+'_<?php echo $document_id; ?>';
-
-			}else{
-				tab.removeChild(window.parent.top.document.getElementById('ans_'+num_rep+'_'+res_id_doc));
-			}
-
-		}
 		if(window.parent.top.document.getElementById('content_'+num_rep+'_'+res_id_doc)) {
 			var tab = window.parent.top.document.getElementById('tabricatorRight');
 			
@@ -184,26 +172,6 @@ if ($stmt->rowCount() > 0) {
 			
 		}
 
-		if (window.parent.top.document.getElementById("sign_link")){
-			window.parent.top.document.getElementById("sign_link").style.display = '';
-			window.parent.top.document.getElementById("sign_link").setAttribute('onclick','signFile(<?php echo $document_id; ?>,'+is_version+',2);');	
-			window.parent.top.document.getElementById("sign_link").style.color = '#666';
-			window.parent.top.document.getElementById("sign_link_img").src = 'static.php?filename=sign.png';
-			window.parent.top.document.getElementById("sign_link_img").title= 'Signer ces projets de réponse (sans certificat)';
-			window.parent.top.document.getElementById("sign_link_img").style.cursor = 'pointer';
-			window.parent.top.document.getElementById("sign_link").removeAttribute('disabled');
-			window.parent.top.document.getElementById("sign_link").removeAttribute('href');
-		}
-
-		if (window.parent.top.document.getElementById("update_rep_link")) {
-			window.parent.top.document.getElementById("update_rep_link").style.display = '';
-			console.log("is_version = "+is_version);
-			/*if (is_version == 2) document.getElementById("update_rep_link").style.display = 'none';
-			else */if (is_version != 1) window.parent.top.document.getElementById("update_rep_link").setAttribute('onclick','modifyAttachmentsForm(\'index.php?display=true&module=attachments&page=attachments_content&id=<?php echo $document_id; ?>&relation=1&fromDetail=\',\'98%\',\'auto\');');	
-			else window.parent.top.document.getElementById("update_rep_link").setAttribute('onclick','modifyAttachmentsForm(\'index.php?display=true&module=attachments&page=attachments_content&id=<?php echo $document_id; ?>&relation=2&fromDetail=\',\'98%\',\'auto\');');	
-			
-		}
-		
 	}
 	
 	var eleframe1 =  parent.document.getElementsByName('list_attach');
diff --git a/modules/attachments/js/functions.js b/modules/attachments/js/functions.js
index c527c68d4c037ee2eb201fc757fad15c5b999105..97c60ab454efc1f6219306694e0dbaf009f95de7 100644
--- a/modules/attachments/js/functions.js
+++ b/modules/attachments/js/functions.js
@@ -1,8 +1,7 @@
 // Date + 60 jours, utile pour les transmissions
 function defineBackDate() {
-	var delay;
 	var date1 = new Date();
-	delay = $('withDelay').value
+	var delay = $j('#withDelay')[0].value;
 	date1.setDate(date1.getDate() + Number(delay));
 	var str_date = date1.toLocaleDateString();
     var t = str_date.split('/');
@@ -175,7 +174,6 @@ function addNewTransmission(prePath, docId, canCreateContact, langString, user)
     var div = document.createElement('div');
     $('transmission').appendChild(div);
     size = $('transmission').childElementCount;
-    //var lang = langString.split("#");
 
     $('newTransmissionButton' + (size - 1)).style.display = "none";
     $("divOr" + (size - 1)).style.display = "none";
@@ -272,70 +270,26 @@ function getTemplatesForSelect(path_to_script, attachment_type, selectToChange)
     {
       method:'post',
       parameters: {attachment_type: attachment_type},
-      onSuccess: function(answer){
+      onSuccess: function(answer) {
         $(selectToChange).innerHTML = answer.responseText;
       }
     });
 }
 
-function hide_index(mode_hide, display_val)
-{
-	var tr_link = $('attach_link_tr');
-	var tr_title = $('attach_title_tr');
-	var indexes = $('indexing_fields');
-	var comp_index = $('comp_indexes');
-	if(mode_hide == true)
-	{
-		if(tr_link && display_val)
-		{
-			Element.setStyle(tr_link, {display : display_val});
-			Element.setStyle(tr_title, {display : display_val});
-		}
-		if(indexes)
-		{
-			Element.setStyle(indexes, {display : 'none'});
-		}
-		if(comp_index)
-		{
-			Element.setStyle(comp_index, {display : 'none'});
-		}
-		//show link and hide index
-	}
-	else
-	{
-		if(tr_link && display_val)
-		{
-			Element.setStyle(tr_link, {display : 'none'});
-			Element.setStyle(tr_title, {display : 'none'});
-		}
-		if(indexes)
-		{
-			Element.setStyle(indexes, {display : display_val});
-
-		}
-		if(comp_index)
-		{
-			Element.setStyle(comp_index, {display : 'block'});
-		}
-		//hide link and show index
-	}
-}
-
 function showAttachmentsForm(path, width, height) {
-    
     if(typeof(width)==='undefined'){
-        var width = '800';
+        width = '800';
     }
-    
+
     if(typeof(height)==='undefined'){
-        var height = '480';
+        height = '480';
     }
-
     new Ajax.Request(path,
     {
         method:'post',
-        parameters: { url : path
-                    },
+        parameters: {
+            url : path
+        },
         onSuccess: function(answer) {
             eval("response = "+answer.responseText);
 
@@ -350,7 +304,7 @@ function showAttachmentsForm(path, width, height) {
 }
 
 function get_num_rep(res_id){
-	trig_elements = document.getElementsByClassName('trig');
+	var trig_elements = document.getElementsByClassName('trig');
 	for (i=0; i<trig_elements.length; i++){
 		var id = trig_elements[i].id;
 		var splitted_id = id.split("_");
@@ -360,7 +314,6 @@ function get_num_rep(res_id){
 }
 function ValidAttachmentsForm(path, form_id, fromAngular) {
 
-    //console.log(Form.serialize(form_id));
     new Ajax.Request(path,
     {
         asynchronous: false,
@@ -416,18 +369,6 @@ function ValidAttachmentsForm(path, form_id, fromAngular) {
                             $('viewframevalidRep' + num_rep + '_' + rep_id).src = $('viewframevalidRep' + num_rep + '_' + rep_id).src;
                     }
 
-                    if ($('ans_' + num_rep + '_' + rep_id)) {
-                        $('ans_' + num_rep + '_' + rep_id).innerHTML = response.title;
-                        if (response.isVersion) {
-                            $('ans_' + num_rep + '_' + rep_id).setAttribute('onclick', 'updateFunctionModifRep(\'' + response.majFrameId + '\', ' + num_rep + ', ' + response.isVersion + ');');
-                            $('ans_' + num_rep + '_' + rep_id).id = 'ans_' + num_rep + '_' + response.majFrameId;
-                        }
-                    }
-
-                    if ($('cur_idAffich')) {
-                        console.log('test refresh');
-                        loadNewId2('index.php?display=true&module=visa&page=update_visaPage', res_id_master, $('coll_id').value);
-                    }
                     eval(response.exec_js);
                 }
             } else {
@@ -438,14 +379,13 @@ function ValidAttachmentsForm(path, form_id, fromAngular) {
 }
 
 function modifyAttachmentsForm(path, width, height) {
-
     if(typeof(width)==='undefined'){
-        var width = '800';
+        width = '800';
     }
-    
+
     if(typeof(height)==='undefined'){
-        var height = '480';
-    }  
+        height = '480';
+    }
 
     new Ajax.Request(path,
     {
@@ -467,8 +407,6 @@ function modifyAttachmentsForm(path, width, height) {
 
 function setFinalVersion(path) {  
 
-var check = $('final').value;
-
     new Ajax.Request(path,
     {
         asynchronous:false,
@@ -486,8 +424,8 @@ var check = $('final').value;
 }
 
 function loadSelectedContact() {
-    ContactAndAddress = $('selectContactIdRes').value;
-    value = ContactAndAddress.split("#");  
+    var ContactAndAddress = $('selectContactIdRes').value;
+    var value = ContactAndAddress.split("#");
     $('contactidAttach').value=value[0];
     $('addressidAttach').value=value[1];
     $('contact_attach').value=value[2];
@@ -557,10 +495,8 @@ function setButtonStyle(radioButton, fileFormat, statusValidateButton) {
     }
 }
 
-
 function cleanTitle(str) {
     //permet de supprimer les # dans le titre qui bloque l'ouverture de l'applet java
     var res = str.replace(/#/g, " ");
     return(res);
 }
-
diff --git a/modules/avis/documents_list_with_avis.php b/modules/avis/documents_list_with_avis.php
index c984327ba906057e591d600fa9fd346f119d70ad..75761dca2e19eea6beac76468775d380e70cff1e 100755
--- a/modules/avis/documents_list_with_avis.php
+++ b/modules/avis/documents_list_with_avis.php
@@ -582,10 +582,7 @@ $status = 0;
 $content = $list->showList($tab, $paramsTab, $listKey, $_SESSION['current_basket']);
 // $debug = $list->debug(false);
 
-$content .= "<script>$$('#container')[0].setAttribute('style', 'width: 90%; min-width: 1000px;');".
-                    "$$('#content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');".
-                    "$$('#inner_content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');".
-                    // "$$('table#extended_list')[0].setAttribute('style', 'width: 100%; min-width: 900px; margin: 0;');".
-            "</script>";
+$content .= '<script>$j(\'#container\').attr(\'style\', \'width: 90%; min-width: 1000px;\');$j(\'#content\').attr(\'style\', \'width: auto; min-width: 1000px;\');';
+$content .= '$j(\'#inner_content\').attr(\'style\', \'width: auto; min-width: 1000px;\');</script>';
 
 echo "{'status' : " . $status . ", 'content' : '" . addslashes($debug.$content) . "', 'error' : '" . addslashes(functions::xssafe($error)) . "'}";
diff --git a/modules/basket/class/class_admin_basket_Abstract.php b/modules/basket/class/class_admin_basket_Abstract.php
index f8d11334f6aaf11b77ffefad42036f11710b1260..35f72b161ef52404ce5ef7d43b7b30cb1a50d446 100644
--- a/modules/basket/class/class_admin_basket_Abstract.php
+++ b/modules/basket/class/class_admin_basket_Abstract.php
@@ -345,9 +345,9 @@ abstract class admin_basket_Abstract extends Database
                               <?php } ?>  
 
                                 <p style="text-align:center;">
-                                    <i class="fa fa-search fa-2x" id="is_visible_only_on_search_icon" title="<?php echo _BASKET_VISIBLE_ONLY_ON_SEARCH;?>" style="<?php echo $css; ?>" onclick="$$('#is_visible_only_on_search')[0].click();"></i>
+                                    <i class="fa fa-search fa-2x" id="is_visible_only_on_search_icon" title="<?php echo _BASKET_VISIBLE_ONLY_ON_SEARCH;?>" style="<?php echo $css; ?>" onclick="$j('#is_visible_only_on_search').click();"></i>
                                      <?php if ($core_tools->is_module_loaded('folder')) { ?>
-                                    <i class="fa fa-folder-o fa-2x" id="is_folder_basket_icon" title="<?php echo _IS_FOLDER_BASKET;?>" style="<?php echo $css2; ?>" onclick="$$('#is_folder_basket')[0].click();"></i>
+                                    <i class="fa fa-folder-o fa-2x" id="is_folder_basket_icon" title="<?php echo _IS_FOLDER_BASKET;?>" style="<?php echo $css2; ?>" onclick="$j('#is_folder_basket').click();"></i>
                                 <?php } ?>
                                 <?php if ($core_tools->is_module_loaded('notifications')) { 
                                     if ($_SESSION['m_admin']['basket']['flag_notif'] === 'Y'){
@@ -355,7 +355,7 @@ abstract class admin_basket_Abstract extends Database
                                     }else{
                                         $css2='color:rgb(102, 102, 102);cursor:pointer;';
                                     }?>
-                                    <i class="fa fa-bell-o fa-2x" id="flag_notif_icon" title="<?php echo _ACTIVATE_NOTIFICATION;?>" style="<?php echo $css2; ?>" onclick="$$('#flag_notif')[0].click();"></i>
+                                    <i class="fa fa-bell-o fa-2x" id="flag_notif_icon" title="<?php echo _ACTIVATE_NOTIFICATION;?>" style="<?php echo $css2; ?>" onclick="$j('#flag_notif').click();"></i>
                                 <?php } ?>
                                 </p>
                                 <p class="buttons" style="text-align:center;">
diff --git a/modules/basket/groupbasket_popup.php b/modules/basket/groupbasket_popup.php
index fe27d75b6f0cc268a99f7834cd9009fe2567c249..dc10f8598c51f24c900f21026f97ebaa95716ca4 100644
--- a/modules/basket/groupbasket_popup.php
+++ b/modules/basket/groupbasket_popup.php
@@ -239,7 +239,7 @@ $time = $core_tools->get_session_time_expire();
                         echo '<li style="margin-top:5px;"><i style="font-weight:bold;font-style: italic;">'.ucfirst($module_name).'</i><ul>';
                         foreach ($actions_ids as $key => $action_id) {
                             ?>
-                            <li><input type="checkbox"  name="actions[]" value="<?php functions::xecho($action_id['ID']);?>" class="check group_action" id="checkbox_<?php functions::xecho($action_id['ID']); ?>" onclick="$$('#action_<?php functions::xecho($action_id['ID']); ?>_page_use')[0].click();show_config_action(<?php functions::xecho($action_id['ID']);?>, true, <?php if(!empty($action_id['ID'])){ echo 'true';}else{ echo 'false';}?>);" <?php
+                            <li><input type="checkbox"  name="actions[]" value="<?php functions::xecho($action_id['ID']);?>" class="check group_action" id="checkbox_<?php functions::xecho($action_id['ID']); ?>" onclick="$j('#action_<?php functions::xecho($action_id['ID']); ?>_page_use').click();show_config_action(<?php functions::xecho($action_id['ID']);?>, true, <?php if(!empty($action_id['ID'])){ echo 'true';}else{ echo 'false';}?>);" <?php
                         if (isset($action_id['ID'])
                             && $bask->is_action_defined_for_the_group(
                                 $action_id['ID'],
@@ -334,7 +334,7 @@ $time = $core_tools->get_session_time_expire();
     </form>
 </div>
 </div>
-<script type="text/javascript">$$('select').each(function(element) { new Chosen(element,{width: "226px", disable_search_threshold: 10,search_contains: true}); });</script>
+<script type="text/javascript">$j('select').each(function(i, element) { new Chosen(element,{width: "226px", disable_search_threshold: 10,search_contains: true}); });</script>
 
 </body>
 </html>
diff --git a/modules/basket/js/functions.js b/modules/basket/js/functions.js
index 52b69fdbed283ff27ec3471114c3206060c8c483..9337a9304bfb9d999d359871da531097d0daa1d6 100644
--- a/modules/basket/js/functions.js
+++ b/modules/basket/js/functions.js
@@ -1,10 +1,7 @@
 
-//document.write('<script type="text/javascript" src="js/scrollbox.js"></script>');
-
  function show_config_action( id_action, inside_scrollbox, show_when_disabled)
  {
-    //var div_to_show = $('action_'+id_action);
-    var chkbox = $('checkbox_'+id_action)
+    var chkbox = $('checkbox_'+id_action);
 
     if(chkbox && (chkbox.disabled == false || show_when_disabled == true) )
     {
@@ -25,7 +22,7 @@
                 var actions_uses = $(id_action+'_actions_uses');
                 actions_uses.style.display = 'none';
             }
-            for(i=0; i < childs.length; i++)
+            for(var i=0; i < childs.length; i++)
             {
                 if(childs[i].id=='action_'+id_action)
                 {
@@ -42,17 +39,6 @@
 
  }
 
- function check_this_box( id_box)
- {
-    var to_check = $(id_box);
-
-    if(to_check && to_check.disabled == false)
-    {
-        to_check.checked = 'checked';
-    }
- }
-
-
  function manage_actions(id, inside_scrollbox, path_manage_script)
  {
     var hide_other_actions = false;
@@ -141,7 +127,7 @@
         {
             var childs = main_div.firstChild.childNodes;
         }
-        for(i=0; i < childs.length; i++)
+        for(var i=0; i < childs.length; i++)
         {
             childs[i].style.display = 'none';
         }
@@ -179,7 +165,6 @@ function check_form_baskets(id_form)
                 {
                     if(reg_user.test(elems[i].value))
                     {
-                        //return 1; // Ok
                         found = true;
                     }
                     else
@@ -216,7 +201,6 @@ function check_form_baskets(id_form)
 function check_form_baskets_secondary(id_form)
 {
     var form = $(id_form);
-    var reg_user = new RegExp("^.+, .+ (.+)$");
     if (typeof(form) != 'undefined') {
         var found = false;
         var elems = document.getElementsByTagName('INPUT');
@@ -246,7 +230,6 @@ function check_form_baskets_secondary(id_form)
 function valid_actions_param(id_form)
 {
     var frm = $(id_form);
-    //var reg_chosen = new RegExp("_chosen$");
     var selects = frm.getElementsByTagName('select'); //Array
     for(var i=0; i< selects.length;i++)
     {
@@ -257,39 +240,6 @@ function valid_actions_param(id_form)
     }
 }
 
-function moveInWF(way, collId, resId, role, userId)
-{
-    if (way != '' && collId != '' &&  resId != '' && role != '' && userId != '') {
-        //~ console.log(way);
-        //~ console.log(collId);
-        //~ console.log(resId);
-        //~ console.log(role);
-        //~ console.log(userId);
-        new Ajax.Request(
-            'index.php?display=true&module=basket&page=ajaxMoveInWF&display=true',
-            {
-                method:'post',
-                asynchronous : false,
-                parameters: {
-                    way : way,
-                    collId : collId,
-                    resId : resId,
-                    role : role,
-                    userId : userId
-                },
-                onSuccess: function(answer) {
-                    eval('response=' + answer.responseText);
-                    if (response.status > 0) {
-                        window.alert(response.error_txt);
-                     } else {
-                         //$('send').click();
-                     }
-                }
-            }
-        );  
-    }
-}
-
 function simpleAjaxReturn(url){
     new Ajax.Request(url,
     {
diff --git a/modules/cases/js/functions.js b/modules/cases/js/functions.js
index b4c80cfc86361edf3ff8f4aab8a215126f112c39..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100755
--- a/modules/cases/js/functions.js
+++ b/modules/cases/js/functions.js
@@ -1,21 +0,0 @@
-function unlink_case(path_manage_script,case_id,res_id){
-	new Ajax.Request(path_manage_script,
-	{
-		method:'post',
-		parameters: { 
-			case_id : case_id,
-			res_id : res_id,
-		},
-		onSuccess: function(answer){
-			eval('response='+answer.responseText);
-			if(response){
-				window.location.href='index.php?page=details&dir=indexing_searching&id='+res_id;
-			}else{
-				alert('Something went wrong...');
-			}
-		},
-		onFailure: function(){
-			alert('Something went wrong...');
-		}
-	});
-}
\ No newline at end of file
diff --git a/modules/entities/js/functions.js b/modules/entities/js/functions.js
index 5f76a9c8964b319ecc2bcc5df3f4235d3436c085..37462fb2ea1f7121adaffdde265295a2139c183d 100644
--- a/modules/entities/js/functions.js
+++ b/modules/entities/js/functions.js
@@ -85,34 +85,6 @@ function change_entity(
     }
 }
 
-// Load list of listmodels to fill select list (index, validate)
-// >>> type of list (entity_id, type_id, custom list type)
-// >>> type of element to fill (select or list)
-// >>> id of element to fill
-function select_listmodels(
-	objectType, 
-	returnElementType, 
-	returnElementId
-) {
-	new Ajax.Request(
-		'index.php?display=true&module=entities&page=select_listmodels',
-        {
-            method:'post',
-            parameters: { 
-				objectType : objectType,
-				returnElementType : returnElementType
-            },
-            onSuccess: function(answer)
-				{
-					var returnElement = $(returnElementId);
-					if(returnElement != null && returnElement.nodeName.toUpperCase() == returnElementType.toUpperCase()) {
-						returnElement.innerHTML += answer.responseText;
-					}
-				}
-        }
-	);
-}
-
 // Load listmodel to session[origin]
 // >>> type of list (entity_id, type_id, custom list type)
 // >>> id of list (entity_id, type_id, custom id)
@@ -293,15 +265,7 @@ function validate_difflist_type() {
   
 }
 
-function saveListDiff(
-    mode,
-    table, 
-    collId, 
-    resId,
-    userId,
-    concatList,
-    onlyCC
-) {
+function saveListDiff(mode, table, collId, resId, userId, concatList, onlyCC) {
     new Ajax.Request(
         'index.php?display=true&module=entities&page=save_list_diff',
         {
@@ -317,9 +281,7 @@ function saveListDiff(
             },
             onSuccess: function(answer){
                 eval("response = "+answer.responseText);
-                //alert(answer.responseText);
                 if (response.status == 0) {
-                    //alert(window.opener.document);
                     var div_diff_list_message = $('div_diff_list_message');
                     if (div_diff_list_message != null) {
                         div_diff_list_message.innerHTML = response.div_content;
diff --git a/modules/fileplan/js/functions.js b/modules/fileplan/js/functions.js
index 8ede96ec61abad29d8908a7c6f1bd68d4d9e7d0a..6ade855c9dad4778424c78b991f3bb3cd1b4180c 100644
--- a/modules/fileplan/js/functions.js
+++ b/modules/fileplan/js/functions.js
@@ -1,24 +1,21 @@
 function showFileplanForm (path, extraValues, width, height) {
     
     if(typeof(width)==='undefined'){
-        var width = '500px';
+        width = '500px';
     }
     if(typeof(height)==='undefined'){
-        var height = '230px';
-    } 
+        height = '230px';
+    }
     if ($('divList')) {
         $('divList').style.display = 'none';
     }
     new Ajax.Request(path,
     {
         method:'post',
-        parameters: { url : path,
-                      'values[]': extraValues
-                    }, 
-        onLoading: function(answer) {
-            //show loading
-            // $('loading').style.display='block';
-        },  
+        parameters: {
+            url : path,
+            'values[]': extraValues
+        },
         onSuccess: function(answer) {
             eval("response = "+answer.responseText);
             if(response.status == 0){
@@ -28,7 +25,6 @@ function showFileplanForm (path, extraValues, width, height) {
             } else {
                 window.top.$('main_error').innerHTML = response.error;
             }
-            // $('loading').style.display='none';
         }
     });
 }
@@ -41,9 +37,6 @@ function validFileplanForm(path, form_id) {
 		method:'post',
 		parameters: Form.serialize(form_id),
 		encoding: 'UTF-8',
-		onLoading: function(answer) {
-			// $('loading').style.display='inline';
-		},
 		onSuccess: function(answer) {
 			eval("response = "+answer.responseText);
 			if(response.status == 0){
@@ -51,7 +44,6 @@ function validFileplanForm(path, form_id) {
 			} else {
 				alert(response.error);
 			}
-			// $('loading').style.display='none';
 		}
 	});
 }
@@ -63,9 +55,6 @@ function execFileplanScript(path) {
         method:'post',
         parameters: { url : path
                     },   
-        onLoading: function(answer) {
-            // $('loading').style.display='block';
-        },                        
         onSuccess: function(answer){
             eval("response = "+answer.responseText);
             if(response.status == 0){
@@ -73,7 +62,6 @@ function execFileplanScript(path) {
             } else {
                 window.top.$('main_error').innerHTML = response.error;
             }
-            // $('loading').style.display='none';
         }
     });
 }
@@ -81,7 +69,7 @@ function execFileplanScript(path) {
 function planIsChecked(idForm, fieldName) {
 
     if(typeof(fieldName)==='undefined'){
-        var fieldName = 'field[]';
+        fieldName = 'field[]';
     }
     var count = 0;
     var thisForm =  document.getElementById(idForm);
@@ -90,7 +78,6 @@ function planIsChecked(idForm, fieldName) {
             if(thisForm.elements[i].checked == true) count ++;
         }
     }
-    // alert(count);
     var oneIsChecked = (count > 0) ? true: false;
 
     return oneIsChecked;
@@ -99,9 +86,8 @@ function planIsChecked(idForm, fieldName) {
 function getFieldsCheckedValues(idForm, fieldName) {
 
     if(typeof(fieldName)==='undefined'){
-        var fieldName = 'field[]';
+        fieldName = 'field[]';
     }
-    // var checkedValues = '';
     var checkedValues = [];
     
     var thisForm =  document.getElementById(idForm);
@@ -109,17 +95,14 @@ function getFieldsCheckedValues(idForm, fieldName) {
         if (thisForm.elements[i].type == 'checkbox' && thisForm.elements[i].name == fieldName) {
             if(thisForm.elements[i].checked == true) 
                 checkedValues.push(thisForm.elements[i].value);
-                // checkedValues += thisForm.elements[i].value + ',';
         }
     }
-    // alert(checkedValues);
     return checkedValues;
 }
 
 function showFileplanList(path, idForm, width, height, error) {
 
     var isChecked = planIsChecked(idForm);
-    // alert(isChecked);
     if(isChecked == true) {
         
         var checkedValues = getFieldsCheckedValues(idForm);
@@ -140,9 +123,10 @@ function loadFileplanList(idField, idList, path) {
     new Ajax.Request(path,
     {
         method:'post',
-        parameters: { url : path,
-                      param: fieldValue,
-                    },   
+        parameters: {
+            url : path,
+            param: fieldValue
+        },
         onLoading: function(answer) {
             //show loading
             $('loadingFileplan').style.display='block';
diff --git a/modules/folder/js/functions.js b/modules/folder/js/functions.js
index ce51879ff95d3a02c287db53c18587bcd7a4d3dc..b9327903012469494a9f64d625f9f41df8e5b204 100644
--- a/modules/folder/js/functions.js
+++ b/modules/folder/js/functions.js
@@ -1,49 +1,3 @@
-/**
- * Fill the Folder field in indexing page (basing on the subfolder field value)
- *
- * @param path_to_script String Path to the Ajax script
- **/
-function fill_folder(path_to_script)
-{
-	var subfolder_value = $('subfolder').value;
-	var subfolder_id = subfolder_value.substring(subfolder_value.indexOf('(')+1, subfolder_value.indexOf(')'));
-	//console.log(subfolder_id);
-	if(path_to_script)
-	{
-		new Ajax.Request(path_to_script,
-		{
-			method:'post',
-			parameters:
-			{
-				id_subfolder : subfolder_id
-			},
-			 onSuccess: function(answer){
-				eval("response = "+answer.responseText);
-				//alert(answer.responseText);
-				if(response.status == 0 )
-				{
-					$('folder').value = response.value;
-				}
-				else
-				{
-					if(console)
-					{
-						console.log('Erreur Ajax');
-					}
-				}
-			}
-		});
-	}
-	else
-	{
-		if(console)
-		{
-			console.log('Error fill_folder ');
-		}
-	}
-}
-
-
 function valid_viewfolder(url)
 {
 	var type_choice = '';
@@ -106,71 +60,6 @@ function valid_viewfolder(url)
 				date_fin : datefin
 						},
 		        onSuccess: function(answer){
-			//	alert(answer.responseText);
-				var div_to_fill = $('result_folderviewstat');
-				div_to_fill.innerHTML = answer.responseText;
-			}
-		});
-	}
-}
-
-function valid_histfolder(url)
-{
-	var type_choice = '';
-	var action_id = '';
-	var datestart = '';
-	var datefin = '';
-	var error = '';
-	var input = $('folder_id');
-	var period_item = $('period');
-	var action_item = $('action');
-	if(input)
-	{
-		id_folder = input.value;
-	}
-
-	if(period_item && period_item.checked)
-	{
-		type_choice = 'period';
-		var datestart_item = $('datestart');
-		if(datestart_item)
-		{
-			datestart = datestart_item.value;
-		}
-		var datefin_item = $('datefin');
-		if(datefin_item)
-		{
-			datefin = datefin_item.value;
-		}
-	}
-	else if(action_item && action_item.checked)
-	{
-		type_choice = 'action';
-		var actions_list = $('action_id');
-		//console.log(actions_list);
-		if(actions_list)
-		{
-			action_id =  actions_list.options[actions_list.selectedIndex].value;
-		}
-	}
-	else
-	{
-		error = 'empty_type_choice';
-	}
-	if(type_choice  != '' && url && error == '' )
-	{
-		new Ajax.Request(url,
-		{
-		    method:'post',
-		    parameters: {
-				type_report : type_choice,
-				date_start : datestart,
-				date_fin : datefin,
-				id_action : action_id,
-				folder_id : id_folder
-						},
-		        onSuccess: function(answer){
-			//	alert(answer.responseText);
 				var div_to_fill = $('result_folderviewstat');
 				div_to_fill.innerHTML = answer.responseText;
 			}
@@ -193,15 +82,15 @@ function get_folder_index(url, foldertype, id_div)
 			method:'post',
 			parameters: {
 				foldertype_id : foldertype
-					},
-					onSuccess: function(answer){
-						var div_to_fill = $(id_div);
-					//	console.log(div_to_fill);
-						if(div_to_fill)
-						{
-							div_to_fill.innerHTML = answer.responseText;
-						}
-					}
+			},
+			onSuccess: function(answer){
+				var div_to_fill = $(id_div);
+
+				if(div_to_fill)
+				{
+					div_to_fill.innerHTML = answer.responseText;
+				}
+			}
 		});
 	}
 }
@@ -240,20 +129,18 @@ function search_change_coll(url, id_coll)
 
 function get_ft_opt_index(url)
 {
-	if(url)
-    {
+	if(url) {
         new Ajax.Request(url,
         {
             method:'post',
             parameters: {},
-                    onSuccess: function(answer){
-                        var div_to_fill = $('opt_index');
-                    //  console.log(div_to_fill);
-                        if(div_to_fill)
-                        {
-                            div_to_fill.innerHTML = answer.responseText;
-                        }
-                    }
+			onSuccess: function(answer){
+				var div_to_fill = $('opt_index');
+				if(div_to_fill)
+				{
+					div_to_fill.innerHTML = answer.responseText;
+				}
+			}
         });
     }
 }
diff --git a/modules/notes/js/functions.js b/modules/notes/js/functions.js
index d4685a3b4e5bc70c4be4c360deb89491527f0f08..6b993323a41c15de2d34bd2077a0d2d50e5b4b99 100644
--- a/modules/notes/js/functions.js
+++ b/modules/notes/js/functions.js
@@ -1,11 +1,11 @@
 function showNotesForm(path, width, height) {
     
     if(typeof(width)==='undefined'){
-        var width = '800';
+        width = '800';
     }
     
     if(typeof(height)==='undefined'){
-        var height = '480';
+        height = '480';
     }  
     
     new Ajax.Request(path,
@@ -27,7 +27,7 @@ function showNotesForm(path, width, height) {
     });
 }
 
-function validNotesForm (path, form_id) {
+function validNotesForm(path, form_id) {
 
     new Ajax.Request(path,
     {
@@ -70,4 +70,4 @@ function addTemplateToNote(templateNotes, path)
             }
         }
     });
-}
\ No newline at end of file
+}
diff --git a/modules/notifications/batch/logs/test.txt b/modules/notifications/batch/logs/process_email_stack/.gitkeep
similarity index 100%
rename from modules/notifications/batch/logs/test.txt
rename to modules/notifications/batch/logs/process_email_stack/.gitkeep
diff --git a/modules/notifications/batch/logs/process_event_stack/.gitkeep b/modules/notifications/batch/logs/process_event_stack/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/modules/notifications/batch/logs/process_letterbox_alerts/.gitkeep b/modules/notifications/batch/logs/process_letterbox_alerts/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/modules/notifications/js/functions.js b/modules/notifications/js/functions.js
index 8ed5e09a904bd933bd530a8a56b08d0de9af69fb..d56077fc36d9ddb2ef90ebda7ba7ede89917cfbf 100755
--- a/modules/notifications/js/functions.js
+++ b/modules/notifications/js/functions.js
@@ -3,14 +3,6 @@ function change_properties_box(difftype_id, path_manage_script, diff_list_id, or
     var div_id = diff_list_id;
     var origin_arg = origin_keyword || '';
   
-    //~ if($('destination_mandatory'))
-    //~ {
-        //~ var isMandatory = $('destination_mandatory').style.display;
-    //~ }
-    //~ else
-    //~ {
-        //~ var isMandatory = "none";
-    //~ }
     document.getElementById(div_id).style = "height:0px; width:600px; border:0px;";
     if(difftype_id != null)
     {	
@@ -90,13 +82,13 @@ function loadDiffusionProperties(difftype_id, path_manage_script, updatediv_id)
 					var selected_list = response.div_content.split(',');
 					var complete_list = $("frmevent").elements["diffusion_values[]"];
 					var diffusion_properties = $("frmevent").elements["diffusion_properties[]"];
-					for (i=0;i<complete_list.length;i++)
+					for (var i=0;i<complete_list.length;i++)
 					{
 						complete_list[i].selected = false;
 					}
-					for (i=0;i<complete_list.length;i++)
+					for (var i=0;i<complete_list.length;i++)
 					{
-						for(j=0;j<selected_list.length;j++)
+						for(var j=0;j<selected_list.length;j++)
 						{
 							if(complete_list[i].value == selected_list[j]) 
 							{
@@ -105,11 +97,6 @@ function loadDiffusionProperties(difftype_id, path_manage_script, updatediv_id)
 						}
 					}
 					Move(complete_list,diffusion_properties);
-                    /*if(diff_list_div != null)
-                    {
-                        diff_list_div.innerHTML = response.div_content;
-                    }*/
-					
                 }
                 else
                 {
@@ -131,7 +118,7 @@ function loadDiffusionProperties(difftype_id, path_manage_script, updatediv_id)
 
 function loadAttachforProperties(difftype_id, path_manage_script, updatediv_id)
 {
-    var div_id = updatediv_id
+    var div_id = updatediv_id;
 	if(difftype_id != null)
     {
         new Ajax.Request(path_manage_script,
@@ -143,17 +130,16 @@ function loadAttachforProperties(difftype_id, path_manage_script, updatediv_id)
 				eval("response = "+answer.responseText);
 				if(response.status == 0 )
                 {
-					var diff_list_div = $(div_id);
 					var selected_list = response.div_content.split(',');
 					var complete_list = $("frmevent").elements["attachfor_values[]"];
 					var attachfor_properties = $("frmevent").elements["attachfor_properties[]"];
-					for (i=0;i<complete_list.length;i++)
+					for (var i=0;i<complete_list.length;i++)
 					{
 						complete_list[i].selected = false;
 					}
-					for (i=0;i<complete_list.length;i++)
+					for (var i=0;i<complete_list.length;i++)
 					{
-						for(j=0;j<selected_list.length;j++)
+						for(var j=0;j<selected_list.length;j++)
 						{
 							if(complete_list[i].value == selected_list[j]) 
 							{
diff --git a/modules/reports/js/functions.js b/modules/reports/js/functions.js
index 6901f8b62c09299265fc05fef5035b7f3539c823..4f4fca4e67665cee84e80b4793242456a621d2d0 100644
--- a/modules/reports/js/functions.js
+++ b/modules/reports/js/functions.js
@@ -1,7 +1,6 @@
 
 function fill_report_result(url_report)
 {
-//	alert(url_report);
 	if(url_report)
 	{
 		var fct_args  = '';
@@ -16,7 +15,6 @@ function fill_report_result(url_report)
 				fct_args += tmp2[0]+'#'+tmp2[1]+'$$';
 			}
 		}
-		//console.log(fct_args);
 		$j.ajax(
 		{
 			url : url_report,
diff --git a/modules/sendmail/js/functions.js b/modules/sendmail/js/functions.js
index d83b27c9fb213a37f42fdf6603f85a995d2a33ed..8c52ba5f15e6e28c77319e1a334f2eeb9daf451f 100644
--- a/modules/sendmail/js/functions.js
+++ b/modules/sendmail/js/functions.js
@@ -11,13 +11,6 @@ var addEmailAdress = function (idField, idList, theUrlToListScript, paramNameSrv
          });
  };
 
-/*
-function addTemplateToEmail(modele){
-    $(body_from_html).value = modele + '<br>';
-    tinyMCE.execCommand('mceInsertContent',false,modele);  
-}
-*/
-
 function addTemplateToEmail(templateMails, path){
 
     new Ajax.Request(path,
@@ -30,18 +23,9 @@ function addTemplateToEmail(templateMails, path){
             eval("response = " + answer.responseText);
             if (response.status == 0) {
                 var strContent = response.content;
-                //var strContentReplace = strContent.replace(reg, '\n') + '<p></p>';
-                //var strContentReplace = strContent.replace(/\\n/g, '<p>') + '<p><p>';
                 var strContentReplace = strContent.replace(/\\n/g, '');
-                //tinyMCE.execCommand('mceInsertContent',false,strContentReplace); 
                 tinyMCE.execCommand('mceSetContent',false,strContentReplace);
             } 
-
-            /*
-            else {
-                window.top.$('main_error').innerHTML = response.error;
-            }
-            */
         }
     });
 }
@@ -66,15 +50,15 @@ function changeSignature(selected, mailSignaturesJS){
 function showEmailForm(path, width, height, iframe_container_id) {
     
     if(typeof(width)==='undefined'){
-        var width = '820px';
+        width = '820px';
     }
     
     if(typeof(height)==='undefined'){
-        var height = '545px';
+        height = '545px';
     }  
 	
     if(typeof(iframe_container_id)==='undefined'){
-        var iframe_container_id = '';
+        iframe_container_id = '';
     }  
     new Ajax.Request(path,
     {
@@ -121,7 +105,6 @@ function updateAdress(path, action, adress, target, array_index, email_format_te
                     alert(response.error);
                     eval(response.exec_js);
                 }
-                // $('loading_' + target).style.display='none';
             }
         });
     } else {
@@ -132,7 +115,7 @@ function updateAdress(path, action, adress, target, array_index, email_format_te
     }
 }
 
-function validEmailForm (path, form_id) {
+function validEmailForm(path, form_id) {
 
     var attachments = $j("#joined_files input.check");
 
@@ -173,24 +156,20 @@ function validEmailForm (path, form_id) {
     });
 }
 
-function validEmailFormForSendToContact (path, form_id, path2, status) {
-    // var content = tinyMCE.get('body_from_html').getContent(); // 
-    // alert(content);
+function validEmailFormForSendToContact(path, form_id, path2, status) {
     tinyMCE.triggerSave();
     new Ajax.Request(path,
     {
         asynchronous:false,
         method:'post',
-        // parameters: Form.serialize(form_id)+ '&body_from_html=' + content,   
-        parameters: Form.serialize(form_id),   
+        parameters: Form.serialize(form_id),
         encoding: 'UTF-8',                       
         onSuccess: function(answer){
             eval("response = "+answer.responseText);
             if(response.status == 0){
                 eval(response.exec_js);
-                changeStatusForActionSendToContact(path2, status)
-                window.parent.destroyModal('form_email'); 
-
+                changeStatusForActionSendToContact(path2, status);
+                window.parent.destroyModal('form_email');
             } else {
                 alert(response.error);
                 eval(response.exec_js);
@@ -207,16 +186,14 @@ function validEmailFormForSendToContact (path, form_id, path2, status) {
         parameters: {status : status},   
         encoding: 'UTF-8',                       
         onSuccess : function(){
-                  //window.top.location.reload();
-                  parent.document.getElementById('storage').click();
-              }
+          parent.document.getElementById('storage').click();
+        }
     });
  }
 
 function extractEmailAdress(field, item) {
     var fullAdress = item.innerHTML;
-    var email = fullAdress.match(/\(([^)]+)\)/)[1];
-    field.value = email;
+    field.value = fullAdress.match(/\(([^)]+)\)/)[1];
 }
 
 function validateEmail(email) { 
diff --git a/modules/templates/class/templates_controler_Abstract.php b/modules/templates/class/templates_controler_Abstract.php
index b8f120abc121aa55f857b7324af10c5d281198eb..e642873647d36b6d60a11966b8076fe797a9f770 100755
--- a/modules/templates/class/templates_controler_Abstract.php
+++ b/modules/templates/class/templates_controler_Abstract.php
@@ -1,33 +1,11 @@
 <?php
-
-/*
-*   Copyright 2008-2016 Maarch
-*
-*   This file is part of Maarch Framework.
-*
-*   Maarch Framework is free software: you can redistribute it and/or modify
-*   it under the terms of the GNU General Public License as published by
-*   the Free Software Foundation, either version 3 of the License, or
-*   (at your option) any later version.
-*
-*   Maarch Framework is distributed in the hope that it will be useful,
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*   GNU General Public License for more details.
-*
-*   You should have received a copy of the GNU General Public License
-*   along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
 /**
-* @brief  Contains the controler of template object 
-* (create, save, modify, etc...)
-* 
-* 
-* @file
-* @author Laurent Giovannoni
-* @date $date$
-* @version $Revision$
+* Copyright Maarch since 2008 under licence GPLv3.
+* See LICENCE.txt file at the root folder for more details.
+* This file is part of Maarch software.
+
+* @brief   templates_controler_Abstract
+* @author  dev <dev@maarch.org>
 * @ingroup templates
 */
 
@@ -36,11 +14,11 @@ $_ENV['DEBUG'] = false;
 
 // Loads the required class
 try {
-    require_once ('modules/templates/class/templates.php');
-    require_once ('modules/templates/templates_tables_definition.php');
-    require_once ('core/class/ObjectControlerAbstract.php');
-    require_once ('core/class/ObjectControlerIF.php');
-    require_once ('core/class/SecurityControler.php');
+    include_once 'modules/templates/class/templates.php';
+    include_once 'modules/templates/templates_tables_definition.php';
+    include_once 'core/class/ObjectControlerAbstract.php';
+    include_once 'core/class/ObjectControlerIF.php';
+    include_once 'core/class/SecurityControler.php';
 } catch (Exception $e) {
     functions::xecho($e->getMessage()) . ' // ';
 }
@@ -171,21 +149,12 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         $sec = new SecurityControler();
         $error = '';
 
-
-        // $template->template_label = $f->protect_string_db(
-        //     $f->wash($template->template_label, 'no', _TEMPLATE_LABEL.' ', 'yes', 0, 255)
-        // );
-        // $template->template_comment = $f->protect_string_db(
-        //     $f->wash($template->template_comment, 'no', _TEMPLATE_COMMENT.' ', 'yes', 0, 255)
-        // );
-
-
         $template->template_label = $f->wash($template->template_label, 'no', _TEMPLATE_LABEL.' ', 'yes', 0, 255);
         $template->template_comment = $f->wash($template->template_comment, 'no', _TEMPLATE_COMMENT.' ', 'yes', 0, 255);
 
         
-        $template->template_content = str_replace(';', '###', $template->template_content);        
-        $template->template_content = str_replace('--', '___', $template->template_content); 
+        $template->template_content = str_replace(';', '###', $template->template_content);
+        $template->template_content = str_replace('--', '___', $template->template_content);
         $allowedTags = '<html><head><body><title>'; //Structure
         $allowedTags .= '<h1><h2><h3><h4><h5><h6><b><i><tt><u><strike><blockquote><pre><blink><font><big><small><sup><sub><strong><em>'; // Text formatting
         $allowedTags .='<p><br><hr><center><div><span>'; // Text position
@@ -220,10 +189,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             );
         } else {
             if ($template->template_type == 'OFFICE') {
-                if (
-                    $mode == 'add' 
-                    && !$_SESSION['m_admin']['templates']['applet']
-                ) {
+                if ($mode == 'add' && !$_SESSION['m_admin']['templates']['applet']) {
                     $return = array(
                         'status' => 'ko', 
                         'value' => $template, 
@@ -231,8 +197,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
                     );
                     return $return;
                 }
-                if (
-                    ($mode == 'up' || $mode == 'add') 
+                if (($mode == 'up' || $mode == 'add') 
                     && $_SESSION['m_admin']['templates']['applet']
                 ) {
                     $storeInfos = array();
@@ -389,7 +354,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             'value' => $template->template_id,
         );
         if ($_SESSION['history']['templatedel'] == 'true') {
-            require_once('core/class/class_history.php');
+            include_once 'core/class/class_history.php';
             $history = new history();
             $history->add(
                 _TEMPLATES_TABLE_NAME, $template->template_id, 'DEL', 'templatedel',
@@ -452,7 +417,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
     */
     public function templateExists($template_id) 
     {
-        if (!isset ($template_id) || empty ($template_id)) {
+        if (!isset($template_id) || empty($template_id)) {
             return false;
         }
         $db = new Database();
@@ -571,9 +536,10 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
     public function getAllTemplatesForProcess($entityId) 
     {
         $db = new Database();
-        $stmt = $db->query('select * from ' . _TEMPLATES_TABLE_NAME . ' t, ' . _TEMPLATES_ASSOCIATION_TABLE_NAME . ' ta '
-                . 'where t.template_id = ta.template_id and ta.what = ? and ta.value_field = ? ORDER BY t.template_label',
-                ['destination', $entityId]
+        $stmt = $db->query(
+            'select * from ' . _TEMPLATES_TABLE_NAME . ' t, ' . _TEMPLATES_ASSOCIATION_TABLE_NAME . ' ta '
+            . 'where t.template_id = ta.template_id and ta.what = ? and ta.value_field = ? ORDER BY t.template_label',
+            ['destination', $entityId]
         );
         $templates = [];
         while ($res = $stmt->fetchObject()) {
@@ -592,17 +558,17 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
     
     public function updateTemplateEntityAssociation($templateId)
     {
-		
         $db = new Database();
-        $db->query("delete from " . _TEMPLATES_ASSOCIATION_TABLE_NAME 
+        $db->query(
+            "delete from " . _TEMPLATES_ASSOCIATION_TABLE_NAME 
             . " where template_id = ? and what = 'destination' ", array($templateId)
         );
        
         for ($i=0;$i<count($_SESSION['m_admin']['templatesEntitiesSelected']);$i++) {
-            $db->query("insert into " . _TEMPLATES_ASSOCIATION_TABLE_NAME 
+            $db->query(
+                "insert into " . _TEMPLATES_ASSOCIATION_TABLE_NAME 
                 . " (template_id, what, value_field, maarch_module) VALUES (?, 'destination', ? , 'entities')", 
                 array($templateId, $_SESSION['m_admin']['templatesEntitiesSelected'][$i])
-                
             ); 
         }
     }
@@ -615,7 +581,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             return $items;
         }
         if (empty($field)) {
-            $stmt = $db->query("select distinct what from " 
+            $stmt = $db->query(
+                "select distinct what from " 
                 . _TEMPLATES_ASSOCIATION_TABLE_NAME
                 . " where template_id = ? ", array($templateId)
             );
@@ -623,10 +590,11 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
                 $items[$res->what] = array();
             }
             foreach (array_keys($items) as $key) {
-                $stmt = $db->query("select value_field from " 
+                $stmt = $db->query(
+                    "select value_field from " 
                     . _TEMPLATES_ASSOCIATION_TABLE_NAME 
                     . " where template_id = ? and what = ? ", array($templateId, $key)
-                    );
+                );
                 $items[$key] = array();
                 while ($res = $stmt->fetchObject()) {
                     array_push($items[$key], $res->value_field);
@@ -634,7 +602,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             }
         } else {
             $items[$field] = array();
-            $stmt = $db->query("select value_field from " 
+            $stmt = $db->query(
+                "select value_field from " 
                 . _TEMPLATES_ASSOCIATION_TABLE_NAME 
                 . " where template_id = ? and what = ? ", array($templateId, $field)
             );
@@ -676,9 +645,9 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         $datasources = array();
         //Browse all files of the style template dir
         $xmlcontent = simplexml_load_file($configXml);
-        foreach($xmlcontent->datasource as $datasource) {
+        foreach ($xmlcontent->datasource as $datasource) {
             //<id> <label> <script>    
-            if(@constant((string) $datasource->label)) {
+            if (@constant((string) $datasource->label)) {
                 $label = constant((string)$datasource->label);
             } else {
                 $label = (string) $datasource->label;
@@ -742,17 +711,19 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
     }
     
     //returns file ext
-    function extractFileExt($sFullPath) {
+    function extractFileExt($sFullPath)
+    {
         $sName = $sFullPath;
         if (strpos($sName, '.')==0) {
             $ExtractFileExt = '';
         } else {
-            $ExtractFileExt = explode ('.', $sName);
+            $ExtractFileExt = explode('.', $sName);
         }
         return end($ExtractFileExt);
     }
     
-    function storeTemplateFile() {
+    function storeTemplateFile()
+    {
         if (!$_SESSION['m_admin']['templates']['applet']) {
             $tmpFileName = 'cm_tmp_file_' . $_SESSION['user']['UserId']
                 . '_' . rand() . '.' 
@@ -762,11 +733,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
                     )
                 );
             $tmpFilePath = $_SESSION['config']['tmppath'] . $tmpFileName;
-            if (!copy(
-                    $_SESSION['m_admin']['templates']['current_style'],
-                    $tmpFilePath
-                )
-            ) {
+            if (!copy($_SESSION['m_admin']['templates']['current_style'], $tmpFilePath)) {
+
                 $_SESSION['error'] = _PB_TO_COPY_STYLE_ON_TMP . ' ' . $tmpFilePath;
                 return false;
             } else {
@@ -800,12 +768,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
                     'templates',
                     $fileTemplateInfos
                 );
-                if (!file_exists(
-                        $storeInfos['path_template']
-                        .  str_replace("#", DIRECTORY_SEPARATOR, $storeInfos['destination_dir'])
-                        . $storeInfos['file_destination_name']
-                    )
-                ) {
+                if (!file_exists($storeInfos['path_template'] . str_replace("#", DIRECTORY_SEPARATOR, $storeInfos['destination_dir']) . $storeInfos['file_destination_name'])) {
+
                     $_SESSION['error'] = $storeInfos['error'];
                     return false;
                 }
@@ -831,7 +795,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             $fileNameOnTmp = $_SESSION['config']['tmppath'] . 'tmp_template_' . $_SESSION['user']['UserId']
             . '_' . rand() . '.' . $fileExtension;
             $handle = fopen($fileNameOnTmp, 'w');
-            if (fwrite($handle, $templateObj->template_content) === FALSE) {
+            if (fwrite($handle, $templateObj->template_content) === false) {
                 return false;
             }
             fclose($handle);
@@ -841,7 +805,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             $fileNameOnTmp = $_SESSION['config']['tmppath'] . 'tmp_template_' . $_SESSION['user']['UserId']
             . '_' . rand() . '.' . $fileExtension;
             $handle = fopen($fileNameOnTmp, 'w');
-            if (fwrite($handle, $templateObj->template_content) === FALSE) {
+            if (fwrite($handle, $templateObj->template_content) === false) {
                 return false;
             }
             fclose($handle);
@@ -853,7 +817,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             $stmt = $dbTemplate->query($query);
             $resDs = $stmt->fetchObject();
             $pathToDs = $resDs->path_template;
-            $pathToTemplateOnDs = $pathToDs . str_replace(
+            $pathToTemplateOnDs = $pathToDs
+                . str_replace(
                     "#", 
                     DIRECTORY_SEPARATOR, 
                     $templateObj->template_path
@@ -870,13 +835,14 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             $xmlfile = 'modules/templates/xml/datasources.xml';
             $xmlfileCustom = $_SESSION['config']['corepath'] 
             . 'custom/' . $_SESSION['custom_override_id'] . '/' . $xmlfile;
-             if (file_exists($xmlfileCustom)) {
+            
+            if (file_exists($xmlfileCustom)) {
                 $xmlfile = $xmlfileCustom;
             }
             $fulllist = array();
             $fulllist = $this->getTemplatesDatasources($xmlfile);
             foreach ($fulllist as $ds) {
-                if ($datasourceId == $ds['id']){
+                if ($datasourceId == $ds['id']) {
                     return (object)$ds;
                 }
             }
@@ -884,7 +850,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         return null;
     }
     
-    protected function getBaseDatasources() {
+    protected function getBaseDatasources()
+    {
         $datasources = array();
         
         // Date and time
@@ -893,32 +860,32 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         $datasources['datetime'][0]['timestamp'] = time();
         
         // Session
-        if(isset($_SESSION)) {
+        if (isset($_SESSION)) {
             // Config (!!! database)
-            if(count($_SESSION['config']) > 0) {
+            if (count($_SESSION['config']) > 0) {
                 $datasources['config'][0] = $_SESSION['config'];
                 $datasources['config'][0]['linktoapp'] = $_SESSION['config']['businessappurl']."index.php";
             }
             
             // Current basket
-            if(count($_SESSION['current_basket']) > 0) {
-                foreach($_SESSION['current_basket'] as $name => $value) {
-                    if(!is_array($value)) {
+            if (count($_SESSION['current_basket']) > 0) {
+                foreach ($_SESSION['current_basket'] as $name => $value) {
+                    if (!is_array($value)) {
                         $datasources['basket'][0][$name] = $value;
                     }
                 }
             }
             
             // User
-            if(count($_SESSION['user']) > 0) {
-                foreach($_SESSION['user'] as $name => $value) {
-                    if(!is_array($value)) {
+            if (count($_SESSION['user']) > 0) {
+                foreach ($_SESSION['user'] as $name => $value) {
+                    if (!is_array($value)) {
                         $datasources['user'][0][strtolower($name)] = $value;
                     }
                 }
-                if(count($_SESSION['user']['entities']) > 0) {
-                    foreach($_SESSION['user']['entities'] as $entity) {
-                        if($entity['ENTITY_ID'] === $_SESSION['user']['primaryentity']['id']) {
+                if (count($_SESSION['user']['entities']) > 0) {
+                    foreach ($_SESSION['user']['entities'] as $entity) {
+                        if ($entity['ENTITY_ID'] === $_SESSION['user']['primaryentity']['id']) {
                             $datasources['user'][0]['entity'] = $_SESSION['user']['entities'][0]['ENTITY_LABEL'];
                             $datasources['user'][0]['role'] = $_SESSION['user']['entities'][0]['ROLE'];
                         }
@@ -927,7 +894,6 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             }
             
         }
-    
         return $datasources;
     }
     
@@ -941,8 +907,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
     */
     public function merge($templateId, $params=array(), $outputType) 
     {
-        require_once 'core/class/class_functions.php';
-        require_once 'modules/templates/templates_tables_definition.php';
+        include_once 'core/class/class_functions.php';
+        include_once 'modules/templates/templates_tables_definition.php';
         include_once 'apps/maarch_entreprise/tools/tbs/tbs_class_php5.php';
         include_once 'apps/maarch_entreprise/tools/tbs/tbs_plugin_opentbs.php';
 
@@ -953,19 +919,19 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         
         $datasources = $this->getBaseDatasources();
         // Make params array for datasrouce script
-        foreach($params as $paramName => $paramValue) {
+        foreach ($params as $paramName => $paramValue) {
             $$paramName = $paramValue;
         }
         //Retrieve script for datasources
         $datasourceObj = $this->getDatasourceScript($templateObj->template_datasource);
-        if($datasourceObj->script) {
-            require $datasourceObj->script;
+        if ($datasourceObj->script) {
+            include $datasourceObj->script;
         }
         
         // Merge with TBS
         $TBS = new clsTinyButStrong;
         $TBS->NoErr = true;
-        if($templateObj->template_type == 'OFFICE') {
+        if ($templateObj->template_type == 'OFFICE') {
             $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
             $TBS->LoadTemplate($pathToTemplate, OPENTBS_ALREADY_UTF8);
         } else {
@@ -974,7 +940,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         
         foreach ($datasources as $name => $datasource) {
             // Scalar values or arrays ?
-            if(!is_array($datasource)) {
+            if (!is_array($datasource)) {
                 $TBS->MergeField($name, $datasource);
             } else {
                 $TBS->MergeBlock($name, 'array', $datasource);
@@ -989,7 +955,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
 
             foreach ($datasources as $name => $datasource) {
                 // Scalar values or arrays ?
-                if(!is_array($datasource)) {
+                if (!is_array($datasource)) {
                     $TBS->MergeField($name, $datasource);
                 } else {
                     $TBS->MergeBlock($name, 'array', $datasource);
@@ -1000,7 +966,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
                 $TBS->LoadTemplate('#word/footer1.xml');
                 foreach ($datasources as $name => $datasource) {
                     // Scalar values or arrays ?
-                    if(!is_array($datasource)) {
+                    if (!is_array($datasource)) {
                         $TBS->MergeField($name, $datasource);
                     } else {
                         $TBS->MergeBlock($name, 'array', $datasource);
@@ -1013,7 +979,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
 
         switch($outputType) {
         case 'content':
-            if($templateObj->template_type == 'OFFICE') {
+            if ($templateObj->template_type == 'OFFICE') {
                 $TBS->Show(OPENTBS_STRING);
             } else {
                 $TBS->Show(TBS_NOTHING);
@@ -1027,7 +993,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
             $fileNameOnTmp = 'tmp_file_' . $_SESSION['user']['UserId']
             . '_' . rand() . '.' . $fileExtension;
             $myFile = $_SESSION['config']['tmppath'] . $fileNameOnTmp;
-            if($templateObj->template_type == 'OFFICE') {
+            if ($templateObj->template_type == 'OFFICE') {
                 $TBS->Show(OPENTBS_FILE, $myFile);
             } else {
                 $TBS->Show(TBS_NOTHING);
diff --git a/modules/templates/datasources/letterbox_attachment.php b/modules/templates/datasources/letterbox_attachment.php
index a483d9ed53915891f93a204ec07d8f212cccda2d..56b1e40ef95f13439a280c1498b35b3cd66e7b68 100644
--- a/modules/templates/datasources/letterbox_attachment.php
+++ b/modules/templates/datasources/letterbox_attachment.php
@@ -31,6 +31,8 @@ $doc['category_id'] = html_entity_decode($_SESSION['coll_categories']['letterbox
 
 $doc['nature_id'] = $_SESSION['mail_natures'][$doc['nature_id']];
 
+
+//INITIATOR INFO OF DOCUMENT
 $stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($doc['initiator']));
 $initiator = $stmt2->fetch(PDO::FETCH_ASSOC);
 
@@ -40,8 +42,19 @@ if (!empty($initiator)) {
         $doc['initiator_'.$column] = $value;
     }
 }
+
 $datasources['res_letterbox'][] = $doc;
 
+//COMPLEMENTARY CURRENT USER INFO
+$stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($_SESSION['user']['primaryentity']['id']));
+$dest = $stmt2->fetch(PDO::FETCH_ASSOC);
+
+if (!empty($dest)) {
+    foreach ($dest as $column => $value) {     
+        $datasources['user'][0][$column] = $value;
+    }
+}
+
 
 //multicontact
 $stmt = $dbDatasource->query("SELECT * FROM contacts_res WHERE res_id = ? AND contact_id = ? ", array($doc['res_id'], $res_contact_id));
@@ -196,7 +209,7 @@ while ($avis = $stmt->fetchObject()) {
             $datasources['avis'][0]['firstname'.$i] = $avisContact->firstname;
             $datasources['avis'][0]['lastname'.$i] = $avisContact->lastname;
             $datasources['avis'][0]['entity'.$i] = str_replace($avisEntity->entity_id . ': ', '', $avisEntity->entity_label);
-            if($avisContent){
+            if ($avisContent) {
                 $datasources['avis'][0]['note'.$i] = $avisContent->note_text;
                 $datasources['avis'][0]['date_note'.$i] = $avisContent->note_text;
             }
@@ -212,7 +225,7 @@ if (isset($_SESSION['transmissionContacts'])) {
 
     if (isset($_SESSION['upfileTransmissionNumber']) && $_SESSION['transmissionContacts'][$_SESSION['upfileTransmissionNumber']]) {
         $curNb = $_SESSION['upfileTransmissionNumber'];
-        foreach($_SESSION['transmissionContacts'][$curNb] as $key => $value) {
+        foreach ($_SESSION['transmissionContacts'][$curNb] as $key => $value) {
             if ($key == 'title')
                 $datasources['transmissions'][0]['currentContact_' . $key] = $contacts->get_civility_contact($value);
             else
@@ -221,7 +234,7 @@ if (isset($_SESSION['transmissionContacts'])) {
     }
 
     for ($nb = 1; $_SESSION['transmissionContacts'][$nb]; $nb++) {
-        foreach($_SESSION['transmissionContacts'][$nb] as $key => $value) {
+        foreach ($_SESSION['transmissionContacts'][$nb] as $key => $value) {
             if ($key == 'title')
                 $datasources['transmissions'][0][$key . $nb] = $contacts->get_civility_contact($value);
             else
@@ -232,7 +245,7 @@ if (isset($_SESSION['transmissionContacts'])) {
 
 $img_file_name = $_SESSION['config']['tmppath'].$_SESSION['user']['UserId'].time().rand()."_barcode_attachment.png";
 
-require_once('apps/maarch_entreprise/tools/pdfb/barcode/pi_barcode.php');
+require_once 'apps/maarch_entreprise/tools/pdfb/barcode/pi_barcode.php';
 $objCode = new pi_barcode();
 
 $objCode->setCode($chronoAttachment);
diff --git a/modules/thumbnails/js/functions.js b/modules/thumbnails/js/functions.js
index df31c99fddd37a23eb9f607651718679e8aa9ede..ef04b662d3e18dba17d3c5f7de2ef55f7c8398bd 100644
--- a/modules/thumbnails/js/functions.js
+++ b/modules/thumbnails/js/functions.js
@@ -8,8 +8,6 @@ function showThumb(divName, resId, collId)
         parameters: { resId : resId, collId : collId},
         onSuccess: function(answer) {
             eval("response = "+answer.responseText);
-            //console.log(response.toShow);
-            //console.log("divname " + divName+resId);
             $(divName+resId).innerHTML = response.toShow;
         }
     });
diff --git a/modules/visa/documents_list_with_signatory.php b/modules/visa/documents_list_with_signatory.php
index 21a94657615aa8a2187dfd6d3b80afdc4c66430b..10bd3d775891ee3ef3ee2f987e06674d345cfcab 100644
--- a/modules/visa/documents_list_with_signatory.php
+++ b/modules/visa/documents_list_with_signatory.php
@@ -601,10 +601,7 @@ $status = 0;
 $content = $list->showList($tab, $paramsTab, $listKey, $_SESSION['current_basket']);
 // $debug = $list->debug(false);
 
-$content .= "<script>$$('#container')[0].setAttribute('style', 'width: 90%; min-width: 1000px;');".
-                    "$$('#content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');".
-                    "$$('#inner_content')[0].setAttribute('style', 'width: auto; min-width: 1000px;');".
-                    // "$$('table#extended_list')[0].setAttribute('style', 'width: 100%; min-width: 900px; margin: 0;');".
-            "</script>";
+$content .= '<script>$j(\'#container\').attr(\'style\', \'width: 90%; min-width: 1000px;\');$j(\'#content\').attr(\'style\', \'width: auto; min-width: 1000px;\');';
+$content .= '$j(\'#inner_content\').attr(\'style\', \'width: auto; min-width: 1000px;\');</script>';
 
 echo "{'status' : " . $status . ", 'content' : '" . addslashes($debug.$content) . "', 'error' : '" . addslashes(functions::xssafe($error)) . "'}";
diff --git a/modules/visa/js/functions.js b/modules/visa/js/functions.js
index 184e6e6633bec6a92482dfe5aa02ac5f1755cdc0..f8367932382afe478cb290f91ab8e13d535803d5 100644
--- a/modules/visa/js/functions.js
+++ b/modules/visa/js/functions.js
@@ -1,4 +1,3 @@
-var docLockInterval;
 function addVisaUser(users) {
     if (!users) {
         nb_visa = $j(".droptarget").length;
@@ -79,7 +78,7 @@ function resetPosVisa () {
         $j("#" + this.id).find(".visaUserPos").text(i);
         i++;
     });
-    i--
+    i--;
     $j("#visa_" + i).find(".visaUserSign").css("visibility","visible");
 }
 function updateVisaWorkflow(resId) {
@@ -292,680 +291,15 @@ function initDragNDropVisa() {
         });
 }
 
-function manageFrame(button) {
-
-	var firstDiv = $("visa_listDoc");
-	var secondDiv = $("visa_left");
-	var thirdDiv = $("visa_right");
-
-	var right = "fa fa-arrow-circle-o-right fa-2x";
-	var left = "fa fa-arrow-circle-o-left fa-2x";
-
-	if (button.id == "firstFrame") {
-
-		if (firstDiv.style.display != "none") {
-			firstDiv.style.display = "none";
-			button.className = right;
-		} else {
-			firstDiv.style.display = "";
-			button.className = left;
-		}
-	} else if (button.id == "secondFrame") {
-
-		if (secondDiv.style.display != "none") {
-			$("thirdFrame").style.display = "none";
-			secondDiv.style.display = "none";
-			button.className = right;
-		} else {
-			$("thirdFrame").style.display = "";
-			secondDiv.style.display = "";
-			button.className = left;
-		}
-	} else if (button.id == "thirdFrame") {
-
-		if (thirdDiv.style.display != "none") {
-			$("secondFrame").style.display = "none";
-			thirdDiv.style.display = "none";
-			button.className = left;
-		} else {
-			$("secondFrame").style.display = "";
-			thirdDiv.style.display = "";
-			button.className = right;
-		}
-	}
-
-	if (firstDiv.style.display != "none" && secondDiv.style.display != "none" && thirdDiv.style.display != "none") {
-		firstDiv.style.width = "15%";
-		$("firstFrame").style.marginLeft = "13.8%";
-		secondDiv.style.width = "41%";
-		$("secondFrame").style.marginLeft = "40.9%";
-		thirdDiv.style.width = "41%";
-		$("thirdFrame").style.marginLeft = "0.6%";
-	} else if (firstDiv.style.display != "none" && (secondDiv.style.display == "none" || thirdDiv.style.display == "none")) {
-		firstDiv.style.width = "15%";
-		$("firstFrame").style.marginLeft = "13.8%";
-		if (secondDiv.style.display == "none") {
-			thirdDiv.style.width = "82%";
-			$("secondFrame").style.marginLeft = "0.2%";
-		}
-		else {
-			secondDiv.style.width = "82%";
-			$("thirdFrame").style.marginLeft = "83%";
-		}
-	} else if (firstDiv.style.display == "none" && secondDiv.style.display != "none" && thirdDiv.style.display != "none") {
-		$("firstFrame").style.marginLeft = "-0.5%";
-		secondDiv.style.width = "48%";
-		$("secondFrame").style.marginLeft = "47%";
-		thirdDiv.style.width = "48%";
-		$("thirdFrame").style.marginLeft = "0.6%"
-	} else if (firstDiv.style.display == "none" && (secondDiv.style.display == "none" || thirdDiv.style.display == "none")) {
-		$("firstFrame").style.marginLeft = "-0.5%";
-		if (secondDiv.style.display == "none") {
-			thirdDiv.style.width = "98%";
-			$("secondFrame").style.marginLeft = "0.2%";
-		}
-		else {
-			secondDiv.style.width = "98%";
-			$("thirdFrame").style.marginLeft = "97.5%";
-		}
-	}
-}
-
 function setTitle(input) {
 	input.title = input.value;
 }
 
-function	triggerFlashMsg($divName, $msg) {
-    var div = $($divName);
-
-    div.innerHTML = $msg;
-    div.style.display = 'table-cell';
-    Element.hide.delay(5, $divName);
-}
-
-/* Fonctions ajoutées par DIS */
-
-//Fonction permettant de lancer les 2 modules Tabricator côte à côte pour les différentes pages d'action (formation circuit de visa, visa ..)
-function launchTabri(){
-	var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-	var tabricatorLeft = new Tabricator('tabricatorLeft', 'DT');
-}
-
-
-
-function loadNewId(path_update, newId, collId, idToDisplay) {
-    new Ajax.Request(path_update,
-            {
-                method: 'post',
-                parameters: {
-                    res_id: newId,
-                    coll_id: collId,
-                    action: parent.$('action_id').value
-                },
-                asynchronous: false,
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText);
-                    //console.log(response);
-                    if (response.status == 0) { //document verouillé
-                        alert(response.error);
-                    } else {
-                        /* Modification dans la liste de gauche */
-                        var zone_old = 'list_doc_' + parent.$('cur_resId').value;
-                        var zone_new = 'list_doc_' + newId;
-                        //console.log(zone_new);
-                        clearInterval(docLockInterval);
-                        //unlock old doc
-                        new Ajax.Request('index.php?display=true&dir=actions&page=docLocker', {method: 'post', parameters: {'AJAX_CALL': true, 'unlock': true, 'res_id': parent.$('cur_resId').value}, onSuccess: function (answer) {/*var cur_url=window.location.href;*/
-                                if (cur_url.indexOf('&directLinkToAction') != -1)
-                                    cur_url = cur_url.replace('&directLinkToAction', '');
-                                window.location.href = cur_url;
-                            }});
-                        //lock the new doc
-                        docLockInterval = setInterval("new Ajax.Request('index.php?display=true&dir=actions&page=docLocker',{ method:'post', parameters: {'AJAX_CALL': true, 'lock': true, 'res_id': " + newId + " } });", 50000);
-                        if ($(zone_new)) {
-                            $(zone_new).className = 'selectedId';
-                        }
-                        if ($(zone_old)) {
-                            $(zone_old).className = 'unselectedId';
-                        }
-
-                        parent.$('cur_resId').value = newId;
-
-                        if (idToDisplay == 'chrono_number') {
-                            parent.$('numIdDocPage').innerHTML = parent.$('chrn_id_' + newId).innerHTML;
-                        } else {
-                            parent.$('numIdDocPage').innerHTML = newId;
-                        }
-                        //console.log('display: '+idToDisplay);
-                    }
-                    if (response.status == 1) { //page de visa
-                        parent.$('tabricatorLeft').innerHTML = response.left_html;
-                        parent.$('tabricatorRight').innerHTML = response.right_html;
-                        parent.$("send_action").setAttribute('onclick', response.valid_button);
-                        
-                        updateFunctionModifRep(response.id_rep, 1, response.is_vers_rep);
-
-                        //console.log("Initialisation onglets de la partie droite");
-                        var tabricatorLeft = new Tabricator('tabricatorLeft', 'DT');
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-                        
-                        eval(response.exec_js);
-
-                    }
-
-                    if (response.status == 2) { //page préparation circuit
-                        parent.$('tabricatorRight').innerHTML = response.right_html;
-                        parent.$("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-                        //console.log("MAJ OK");
-                    }
-
-                    if (response.status == 3) { //page envoi mail
-                        parent.$('tabricatorRight').innerHTML = response.right_html;
-                        parent.$("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-
-                        showEmailForm('index.php?display=true&module=sendmail&page=sendmail_ajax_content&mode=add&identifier=' + newId + '&origin=document&coll_id=' + collId + '&size=medium', '820px', '545px', 'sendmail_iframe');
-                    }
-
-                    if (response.status == 4) { //page impression dossier
-                        parent.$('tabricatorRight').innerHTML = response.right_html;
-                        parent.$("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-                        //console.log("MAJ OK");
-                    }
-                },
-                onFailure: function () {
-                    //console.log("Probleme de Mise à jour !");
-                }
-            });
-
-}
-
-function loadNewId2(path_update, newId, collId, idToDisplay) {
-    new Ajax.Request(path_update,
-            {
-                method: 'post',
-                parameters: {
-                    res_id: newId,
-                    coll_id: collId,
-                    action: $('action_id').value
-                },
-                asynchronous: false,
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText);
-                    //console.log(response);
-                    if (response.status == 0) { //document verouillé
-                        alert(response.error);
-                    } else {
-                  
-                        /* Modification dans la liste de gauche */
-                        var zone_old = 'list_doc_' + $('cur_resId').value;
-                        var zone_new = 'list_doc_' + newId;
-                        //console.log(zone_new);
-                        clearInterval(docLockInterval);
-                        //unlock old doc
-                        new Ajax.Request('index.php?display=true&dir=actions&page=docLocker', {method: 'post', parameters: {'AJAX_CALL': true, 'unlock': true, 'res_id': $('cur_resId').value}, onSuccess: function (answer) {/*var cur_url=window.location.href;*/
-                                if (cur_url.indexOf('&directLinkToAction') != -1)
-                                    cur_url = cur_url.replace('&directLinkToAction', '');
-                                window.location.href = cur_url;
-                            }});
-                        //lock the new doc
-                        docLockInterval = setInterval("new Ajax.Request('index.php?display=true&dir=actions&page=docLocker',{ method:'post', parameters: {'AJAX_CALL': true, 'lock': true, 'res_id': " + newId + " } });", 50000);
-
-                        if($(zone_new)){
-                            $(zone_new).className = 'selectedId';
-                        }
-                        if($(zone_old)){
-                            $(zone_old).className = 'unselectedId';
-                        }
-                        $('cur_resId').value = newId;
-
-                        if (idToDisplay == 'chrono_number') {
-                            $('numIdDocPage').innerHTML = $('chrn_id_' + newId).innerHTML;
-                        } else {
-                            $('numIdDocPage').innerHTML = newId;
-                        }
-                        //console.log('display: '+idToDisplay);
-                    }
-                    if (response.status == 1) { //page de visa
-                        $('tabricatorLeft').innerHTML = response.left_html;
-                        $('tabricatorRight').innerHTML = response.right_html;
-                        $("send_action").setAttribute('onclick', response.valid_button);
-
-                        updateFunctionModifRep(response.id_rep, 1, response.is_vers_rep);
-
-                        console.log("Initialisation onglets de la partie droite");
-                        var tabricatorLeft = new Tabricator('tabricatorLeft', 'DT');
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-
-                    }
-
-                    if (response.status == 2) { //page préparation circuit
-                        $('tabricatorRight').innerHTML = response.right_html;
-                        $("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-                        //console.log("MAJ OK");
-                    }
-
-                    if (response.status == 3) { //page envoi mail
-                        $('tabricatorRight').innerHTML = response.right_html;
-                        $("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-
-                        showEmailForm('index.php?display=true&module=sendmail&page=sendmail_ajax_content&mode=add&identifier=' + newId + '&origin=document&coll_id=' + collId + '&size=medium', '820px', '545px', 'sendmail_iframe');
-                    }
-
-                    if (response.status == 4) { //page impression dossier
-                        $('tabricatorRight').innerHTML = response.right_html;
-                        $("send_action").setAttribute('onclick', response.valid_button);
-                        var tabricatorRight = new Tabricator('tabricatorRight', 'DT');
-                        //console.log("MAJ OK");
-                    }
-                },
-                onFailure: function () {
-                    //console.log("Probleme de Mise à jour !");
-                }
-            });
-
-}
-
-function previousDoc(path_update,collId){
-	var current = parent.$('cur_resId').value;
-	$('list_doc_'+current).previousSibling.click();
-}
-
-function nextDoc(path_update,collId){
-	var current = parent.$('cur_resId').value;
-	$('list_doc_'+current).nextSibling.click();
-        
-}
-
-function updateFunctionModifRep(idReponse, num_rep, is_version){
-	if(idReponse == 0){
-		if (parent.document.getElementById("update_rep_link")) {
-			parent.document.getElementById("update_rep_link").style.display = 'none';
-		}
-		if (parent.document.getElementById("sign_link")) {
-			parent.document.getElementById("sign_link").style.display = 'none';
-		}
-
-	}else{
-		new Ajax.Request("index.php?display=true&page=checkSignFile&module=visa&res_id="+idReponse,
-		{
-			method:'post',
-			onSuccess: function(answer){
-				eval("response = "+answer.responseText);
-				if (response.status == 1){
-					if (parent.document.getElementById("sign_link")){
-						parent.document.getElementById("sign_link").style.display = '';
-						parent.document.getElementById("sign_link").setAttribute('onclick','document.getElementById("list_attach").src="index.php?display=true&module=attachments&page=del_attachment&relation=1&id='+idReponse+'&fromDetail="');	
-						parent.document.getElementById("sign_link").style.color = 'green';
-						parent.document.getElementById("sign_link_img").src = 'static.php?filename=sign_valid.png';
-						parent.document.getElementById("sign_link_img").title= 'Enlever la signature';
-						parent.document.getElementById("sign_link_img").style.cursor = 'not-allowed';
-						parent.document.getElementById("sign_link").setAttribute('disabled','disabled');
-
-					}
-					if (parent.document.getElementById("sign_link_certif")){
-						parent.document.getElementById("sign_link_certif").setAttribute('onclick','');	
-						parent.document.getElementById("sign_link_certif").style.color = 'green';
-					}
-					
-					if (parent.document.getElementById("update_rep_link")) {
-						parent.document.getElementById("update_rep_link").style.display = 'none';
-					}
-				}
-				else if (response.status == 0){
-					if (parent.document.getElementById("sign_link")){
-						parent.document.getElementById("sign_link").style.display = '';
-						parent.document.getElementById("sign_link").setAttribute('onclick','signFile('+idReponse+','+is_version+',2);');	
-						parent.document.getElementById("sign_link").style.color = '';
-						parent.document.getElementById("sign_link_img").src = 'static.php?filename=sign.png';
-						parent.document.getElementById("sign_link_img").title= 'Signer ces projets de réponse (sans certificat)';
-						parent.document.getElementById("sign_link_img").style.cursor = 'pointer';
-						parent.document.getElementById("sign_link").removeAttribute('disabled');
-					}
-					if (parent.document.getElementById("sign_link_certif")){
-						parent.document.getElementById("sign_link_certif").setAttribute('onclick','signFile('+idReponse+','+is_version+',0);');	
-						parent.document.getElementById("sendPIN").setAttribute('onclick','signFile('+idReponse+','+is_version+',\'\', $(\'valuePIN\').value);');	
-						parent.document.getElementById("valuePIN").setAttribute('onKeyPress','if (event.keyCode == 13) signFile('+idReponse+','+is_version+',\'\', $(\'valuePIN\').value);');	
-						parent.document.getElementById("sign_link_certif").style.color = '';
-						parent.document.getElementById("sign_link_img").src = 'static.php?filename=sign.png';
-					}
-					if (parent.document.getElementById("update_rep_link")) {
-						parent.document.getElementById("update_rep_link").style.display = '';
-						console.log("is_version = "+is_version);
-						/*if (is_version == 2) document.getElementById("update_rep_link").style.display = 'none';
-						else */if (is_version != 1) parent.document.getElementById("update_rep_link").setAttribute('onclick','modifyAttachmentsForm(\'index.php?display=true&module=attachments&page=attachments_content&id='+idReponse+'&relation=1&fromDetail=\',\'98%\',\'auto\');');	
-						else parent.document.getElementById("update_rep_link").setAttribute('onclick','modifyAttachmentsForm(\'index.php?display=true&module=attachments&page=attachments_content&id='+idReponse+'&relation=2&fromDetail=\',\'98%\',\'auto\');');	
-						
-					}
-				}
-			}
-		});
-		parent.document.getElementById("cur_idAffich").setAttribute('value',num_rep);
-		parent.document.getElementById("cur_rep").setAttribute('value',idReponse);
-	}
-}
-
-function hasAllAnsSigned(id_doc){
-	var retour = 'null';
-	new Ajax.Request("index.php?display=true&page=checkAllAnsSigned&module=visa&res_id="+id_doc,
-	{
-		method:'post',
-		asynchronous:false,
-		onSuccess: function(answer){
-			eval("response = "+answer.responseText);
-			retour = response.status;
-		}
-	});
-	return retour;
-}
-
-function signFile(res_id,isVersion, mode, pinCode){
-	var reg = /^[0-9]{4}$/;
-	var func_onclic;
-	if(pinCode == undefined || pinCode=='')
-    {
-        pinCode='';
-    }
-	else if (!reg.test(pinCode)){
-		//alert("Le code PIN doit comporter 4 chiffres");
-		$('badPin').style.display = 'block';
-		$('badPin').innerHTML = 'Le format est incorrect (4 chiffres)';
-		$('valuePIN').value = "";
-	}
-	else {
-		$('modalPIN').style.display = 'none';
-		new Ajax.Request("index.php?display=true&module=visa&page=encodePinCode",
-		{
-			method:'post',
-			asynchronous:false,
-			parameters: { 
-				pinCode : pinCode
-			}			
-		});
-	}
-	if (mode == 2){
-
-		var path = '';
-		if (isVersion == 0) path = 'index.php?display=true&module=visa&page=sign_file&collId=letterbox_coll&id='+res_id;
-		else if (isVersion == 1) path = 'index.php?display=true&module=visa&page=sign_file&collId=letterbox_coll&isVersion&id='+res_id;
-		else if (isVersion == 2) path = 'index.php?display=true&module=visa&page=sign_file&collId=letterbox_coll&isOutgoing&id='+res_id;
-		new Ajax.Request(path,
-		{
-			method:'post',
-			onSuccess: function(answer){
-				eval("response = "+answer.responseText);
-				if (response.status == 0){
-					if ($('cur_idAffich')) var num_rep = $('cur_idAffich').value;
-					if ($('cur_rep')){
-						var newId = response.new_id;
-						var oldRep = $('cur_rep').value;
-						$('cur_rep').value = newId;
-					}
-					if ($('cur_resId')) var num_idMaster = $('cur_resId').value;
-					if ($('update_rep_link')){
-						$('update_rep_link').style.display = 'none';
-					}
-					if ($('sign_link')){
-						$("sign_link").style.display = '';
-						link = 'index.php?display=true&module=attachments&page=del_attachment&relation=1&id='+newId;
-						$("sign_link").setAttribute('onclick','document.getElementById(\'list_attach\').src="'+link+'"');	
-						$("sign_link").style.color = 'green';
-						$("sign_link_img").src = 'static.php?filename=sign_valid.png';
-						$("sign_link_img").title= 'Enlever la signature';
-						$("sign_link_img").style.cursor = 'not-allowed';
-						$("sign_link").setAttribute('disabled','disabled');	
-						//console.log($('sign_link').style);
-					}
-					if ($('sign_link_certif')){
-						$('sign_link_certif').style.color = 'green';
-						$('sign_link_certif').setAttribute('onclick','');	
-					}
-					
-					if(oldRep == newId-1){
-						oldRep = res_id;
-					}
-					if($('viewframevalidRep'+num_rep+'_'+oldRep)) {
-						$('viewframevalidRep'+num_rep+'_'+oldRep).src = "index.php?display=true&module=attachments&page=view_attachment&res_id_master="+num_idMaster+"&id="+newId;			
-						$('viewframevalidRep'+num_rep+'_'+oldRep).id = 'viewframevalidRep'+num_rep+'_'+newId;
-					}
-
-					
-					if($('ans_'+num_rep+'_'+oldRep)) {
-						$('ans_'+num_rep+'_'+oldRep).setAttribute('onclick','updateFunctionModifRep(\''+newId+'\', '+num_rep+', 0);');		
-						$('ans_'+num_rep+'_'+oldRep).id = 'ans_'+num_rep+'_'+newId;							
-					}
-
-					if($('content_'+num_rep+'_'+oldRep)) {
-						$('content_'+num_rep+'_'+oldRep).id = 'content_'+num_rep+'_'+newId;							
-					}
-					var zone_id = 'signedDoc_'+$('cur_resId').value;
-                                        
-                                        if($(zone_id)){
-                                            if (hasAllAnsSigned($('cur_resId').value) == 1){
-						$(zone_id).style.visibility = 'visible';
-                                            }
-                                            else{
-                                                    $(zone_id).style.visibility = 'hidden';
-                                            }
-                                        }
-					
-					$('ans_'+num_rep+'_'+newId).innerHTML='<sup><i class="fa fa-certificate fa-lg fa-fw" style="color:#fdd16c"></i></sup>Réponse signée';
-					$('ans_'+num_rep+'_'+newId).title=$('ans_'+num_rep+'_'+newId).title;
-					//$('list_attach').src = 'index.php?display=true&module=attachments&page=frame_list_attachments&template_selected=documents_list_attachments_simple&load&attach_type_exclude=converted_pdf,print_folder';
-                                        
-                                        loadToolbarBadge('attachments_tab','index.php?display=true&module=attachments&page=load_toolbar_attachments&origin=document&resId='+$('cur_resId').value+'&collId=letterbox_coll');
-				}
-				else{
-					alert(response.error);
-					console.log(func_onclic);
-					$("sign_link").setAttribute('onclick',func_onclic);
-				}	
-				//$("sign_link").removeAttribute("onclick");
-				//$("sign_link_img").style.display = 'none';
-				//$('sign_link').className = 'fa fa-spinner fa-2x fa-spin';
-				document.getElementById("sign_link").className = document.getElementById("sign_link").className.replace( /(?:^|\s)fa fa-spinner fa-2x fa-spin(?!\S)/g , "" )
-				$('sign_link').title="";
-				$("sign_link_img").style.display = '';
-			},
-			onCreate: function(answer){
-				func_onclic = $("sign_link").getAttribute("onclick");
-				$("sign_link").removeAttribute("onclick");
-				$("sign_link_img").style.display = 'none';
-				$('sign_link').className = 'fa fa-spinner fa-2x fa-spin';
-				$('sign_link').title="en cours de traitement..."
-			}
-		});
-	}
-	else {
-		new Ajax.Request("index.php?display=true&module=visa&page=checkPinCode",
-		{
-			method:'post',
-			onSuccess: function(answer){
-				eval("response = "+answer.responseText);
-				if (response.status == 1){
-					$('badPin').style.display = 'none';
-					if (isVersion == 0) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-					else if (isVersion == 1) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&isVersion&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-					else if (isVersion == 2) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&isOutgoing&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-				}
-				else if (response.status == 0){
-					if (mode == 1){
-						if (isVersion == 0) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-						else if (isVersion == 1) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&isVersion&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-						else if (isVersion == 2) window.open('index.php?display=true&module=visa&page=sign_ans&collId=letterbox_coll&isOutgoing&id='+res_id+'&modeSign='+mode,'','height=301, width=301,scrollbars=yes,resizable=yes');
-					}
-					
-					else {
-							var attr = document.getElementById("sendPIN").getAttribute('onclick').split(',');	
-							document.getElementById("sendPIN").setAttribute('onclick',attr[0]+','+attr[1]+','+mode+','+attr[3]);	
-							
-							var attr2 = document.getElementById("valuePIN").getAttribute('onKeyPress').split(',');	
-							document.getElementById("valuePIN").setAttribute('onKeyPress',attr2[0]+','+attr2[1]+','+mode+','+attr2[3]);	
-							
-							$('modalPIN').style.display = 'block';
-							//console.log("Code PIN :"+pinCode);
-					}
-				}
-			}
-		});
-	
-	}
-	
-}
-
 //load applet in a modal
 function loadAppletSign(url){
     displayModal(url, 'VisaApplet', 300, 300);
 }
 
-
-function translateError(key){
-	var message = "";
-	switch(key){
-		case "300" :
-			message = "L'exécutable de signature est introuvable. Veuillez contacter votre administrateur.";break;
-		case "99" :
-			message = "Erreur lors de la signature numérique";break;
-		case "98" :
-			message = "Code PIN erroné";break;
-		case "97" :
-			message = "Trop de tentatives infructueuses pour le code PIN. Veuillez contacter votre administrateur.";break;
-		case "12" :
-			message = "Le répertoire PDF destination n'a pas de droit d'écriture. Veuillez contacter votre administrateur";break;
-		case "16" :
-			message = "Le code PIN doit comporter 4 chiffres";break;
-		case "51" :
-			message = "Anomalie lors de l'incrustation de l'imagette de signature";break;
-		default :
-			message = "";break;
-	}
-	return message;
-}
-
-
-//destroy the modal of the applet and launch an ajax script
-function endOfAppletSign(objectType, theMsg, newId)
-{
-    if (objectType == 'ans_project') {
-		if (newId != 0){
-			endAttachmentSign(newId);
-		}
-		else{
-			if (theMsg != '' && theMsg != ' ') {
-				if ($('maarchcm_error')) {
-					$('maarchcm_error').innerHTML = translateError(theMsg);
-					$('maarchcm_error').style.display = "block";
-				}
-				if (theMsg == "98"){
-					window.opener.$('modalPIN').style.display = 'block';
-					window.opener.$('badPin').innerHTML = 'Code PIN incorrect (3 essais maximum)';
-					window.opener.$('badPin').style.display = 'block';
-					window.close();
-				}
-			}
-		}
-    }
-    //destroyModal('CMApplet');
-}
-
-function endAttachmentSign(newId)
-{
-	if (window.opener.$('cur_idAffich')) var num_rep = window.opener.$('cur_idAffich').value;
-	if (window.opener.$('cur_rep')){
-		var oldRep = window.opener.$('cur_rep').value;
-		window.opener.$('cur_rep').value = newId;
-	}
-	if (window.opener.$('cur_resId')) var num_idMaster = window.opener.$('cur_resId').value;
-	
-	if (window.opener.$('update_rep_link')){
-		window.opener.$('update_rep_link').style.display = 'none';
-	}
-	if (window.opener.$('sign_link')){
-		window.opener.$('sign_link').style.color = 'green';
-		window.opener.$('sign_link').setAttribute('onclick','');	
-	}
-	
-	if (window.opener.$('sign_link_certif')){
-		window.opener.$('sign_link_certif').style.color = 'green';
-		window.opener.$('sign_link_certif').setAttribute('onclick','');
-	}
-	if(window.opener.$('viewframevalidRep'+num_rep+'_'+oldRep)) {
-		window.opener.$('viewframevalidRep'+num_rep+'_'+oldRep).src = "index.php?display=true&module=attachments&page=view_attachment&res_id_master="+num_idMaster+"&id="+newId;	
-		window.opener.$('viewframevalidRep'+num_rep+'_'+oldRep).id = 'viewframevalidRep'+num_rep+'_'+newId;
-	}
-	
-	if(window.opener.$('ans_'+num_rep+'_'+oldRep)) {
-		window.opener.$('ans_'+num_rep+'_'+oldRep).setAttribute('onclick','updateFunctionModifRep(\''+newId+'\', '+num_rep+', 0);');	
-		$('ans_'+num_rep+'_'+oldRep).id = 'ans_'+num_rep+'_'+newId;				
-	}
-	
-	var zone_id = 'signedDoc_'+window.opener.$('cur_resId').value;
-	if (hasAllAnsSigned(window.opener.$('cur_resId').value) == 1){
-		window.opener.$(zone_id).style.visibility = 'visible';
-	}
-	else{
-		window.opener.$(zone_id).style.visibility = 'hidden';
-	}
-	
-	
-    window.close();
-}
-function generateWaybill(resId)
-{
-    //console.log("Génération du bordereau");
-    new Ajax.Request("index.php?display=true&module=visa&page=visa_waybill",
-            {
-                method: 'post',
-                parameters: {res_id: resId
-                },
-                asynchronous: false,
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText);
-                    if (response.status == 1) {
-                        //console.log("path = "+response.path);
-                        //console.log("code = "+response.code);
-                        new Ajax.Request("index.php?display=true&module=visa&page=put_barcode",
-                                {
-                                    method: 'post',
-                                    parameters: {path: response.path,
-                                        res_id: resId,
-                                        code: response.code
-                                    },
-                                    asynchronous: false,
-                                    onSuccess: function (answer) {
-                                        eval("response2 = " + answer.responseText);
-                                        if (response2.status == 1) {
-                                            //console.log("path = "+response2.path);
-                                        }
-                                    }
-                                });
-                    }
-                }
-            });
-
-}
-
-function showNotesPage(id_tabricator) {
-    var tab = $(id_tabricator);
-    var tabDT = tab.getElementsByTagName('DT');
-    for (var i = 0; i < tabDT.length; i++) {
-        tabDT[i].setAttribute("class", "trig");
-        if (tabDT[i].id == "onglet_notes")
-            tabDT[i].setAttribute("class", "trig open");
-    }
-
-    var tabDD = tab.getElementsByTagName('DD');
-    for (var i = 0; i < tabDD.length; i++) {
-        tabDD[i].style.display = "none";
-        if (tabDD[i].id == "page_notes")
-            tabDD[i].style.display = "block";
-    }
-}
-
 function printFolder(res_id, coll_id, form_id, path) {
     //console.log("printFolder");
     new Ajax.Request(path,
diff --git a/modules/visa/show_visaListDocBasket_tab.php b/modules/visa/show_visaListDocBasket_tab.php
deleted file mode 100644
index 7990160c7b11bfb0364831e546a3b48b7adba68f..0000000000000000000000000000000000000000
--- a/modules/visa/show_visaListDocBasket_tab.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-require_once 'core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'class_request.php';
-require_once 'core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'class_security.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-
-$core_tools = new core_tools();
-$core_tools->load_lang();
-$core_tools->load_html();
-$core_tools->load_header('', true, false);
-$core_tools->load_js();
-
-$res_id = $_REQUEST["resId"];
-$coll_id = $_REQUEST["collId"];
-$view = $_REQUEST["view"];
-
-$security = new security();
-$right = $security->test_right_doc($coll_id, $res_id);
-
-if(!$right){
-    exit(_NO_RIGHT_TXT);
-}
-
-$visa = new visa();
-$db = new Database();
-
-$frm_str .= '<div class="listDocsBasket">';
-$tab_docs = $visa->getDocsBasket();
-//$frm_str .= '<pre>'.print_r($tab_docs,true).'</pre>';
-//$selectedCat = '';
-$list_docs = '';
-$data = array();
-foreach ($tab_docs as $num => $res_id_doc) {
-
-    $stmt = $db->query(
-            "select alt_identifier, status, category_id, priority, destination, "
-            . " dest_contact_id, exp_contact_id, dest_user_id, exp_user_id, address_id, "
-            . " subject, admission_date, process_limit_date"
-            . " from " . $view
-            . " where res_id = ?", array($res_id_doc)
-    );
-    $resChrono_doc = $stmt->fetchObject();
-    $chrono_number_doc = $resChrono_doc->alt_identifier;
-    $cat_id = $resChrono_doc->category_id;
-    $doc_status = $resChrono_doc->status;
-    $doc_priority = $resChrono_doc->priority;
-    $doc_destination = $resChrono_doc->destination;
-    $doc_dest_contact_id = $resChrono_doc->dest_contact_id;
-    $doc_exp_contact_id = $resChrono_doc->exp_contact_id;
-    $doc_dest_user_id = $resChrono_doc->dest_user_id;
-    $doc_exp_user_id = $resChrono_doc->exp_user_id;
-    $doc_address_id = $resChrono_doc->address_id;
-    $doc_subject = $resChrono_doc->subject;
-    $doc_admission_date = functions::format_date_db($resChrono_doc->admission_date);
-    $doc_process_limit_date = functions::format_date_db($resChrono_doc->process_limit_date);
-
-    $allAnsSigned = true;
-    $stmt2 = $db->query("SELECT status from res_view_attachments where (attachment_type='response_project' OR attachment_type='outgoing_mail') and res_id_master = ?", array($res_id_doc));
-    while ($line = $stmt2->fetchObject()) {
-        if ($line->status == 'TRA' || $line->status == 'A_TRA') {
-            $allAnsSigned = false;
-        }
-    }
-
-    if ($allAnsSigned)
-        $classSign = "visibility:visible;";
-    else
-        $classSign = "visibility:hidden;";
-
-    $list_docs .= $res_id_doc . "#";
-
-    if ($res_id_doc == $res_id) {
-        $classLine = ' class="selectedId " ';
-    } else
-        $classLine = ' class="unselectedId " ';
-
-    $id_to_display = _ID_TO_DISPLAY;
-
-    $frm_str .= '<div ' . $classLine . ' onmouseover="this.style.cursor=\'pointer\';" onclick="loadNewId(\'index.php?display=true&module=visa&page=update_visaPage\',' . $res_id_doc . ',\'' . $coll_id . '\',\'' . $id_to_display . '\');" id="list_doc_' . $res_id_doc . '">';
-    //check_category($coll_id, $res_id_doc);
-    //$data = get_general_data($coll_id, $res_id_doc, 'minimal', array(), $cat_id);
-
-    if ($res_id_doc == $res_id) {
-        $selectedCat = $cat_id;
-        $curNumDoc = $num;
-        $curdest = $doc_destination;
-    }
-
-    $frm_str .= '<ul>';
-    $frm_str .= '<li><b style="float:left;">';
-    $frm_str .= '<span id = "chrn_id_' . $res_id_doc . '">' . $chrono_number_doc . '</span> <i class="fa fa-certificate" id="signedDoc_' . $res_id_doc . '" style="' . $classSign . '" ></i> '/* . ' - ' .$res_id_doc */;
-
-    //priority
-    $color = '';
-    $color = 'color:' . $_SESSION['mail_priorities_color'][$doc_priority] . ';';
-
-    $frm_str .= '</b><i class="fa fa-circle" aria-hidden="true" style="float:right;' . $color . '" title="' . $_SESSION['mail_priorities'][$doc_priority] . '"></i></li>';
-
-    $frm_str .= '<li style="clear:both;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">';
-    $frm_str .= '<i class="fa fa-user" title="Contact"></i> ';
-
-    //BEGIN CASE OF CONTACT
-    $data = array();
-
-    if ($doc_dest_user_id <> '' || $doc_exp_user_id <> '') {
-        if ($doc_dest_user_id <> '') {
-            $contactIdentifier = $doc_dest_user_id;
-        } elseif ($doc_exp_user_id <> '') {
-            $contactIdentifier = $doc_exp_user_id;
-        }
-        $data['type_contact'] = 'internal';
-        $stmt2 = $db->query(
-                'SELECT lastname, firstname FROM '
-                . $_SESSION['tablename']['users']
-                . " WHERE user_id = ?", array($contactIdentifier)
-        );
-        $res = $stmt2->fetchObject();
-        $data['contact'] = $res->lastname . ' ' . $res->firstname;
-        $data['contactId'] = $line->{$contactIdentifier};
-    } elseif ($doc_dest_contact_id <> '' || $doc_exp_contact_id <> '') {
-
-        if ($doc_dest_contact_id <> '') {
-            $contactIdentifier = $doc_dest_contact_id;
-        } elseif ($doc_exp_contact_id <> '') {
-            $contactIdentifier = $doc_exp_contact_id;
-        }
-
-        $data['type_contact'] = 'external';
-
-        // $stmt2 = $db->query("SELECT address_id FROM mlb_coll_ext WHERE res_id = ?", array($res_id));
-        // $resAddress = $stmt2->fetchObject();
-        $addressId = $doc_address_id;
-
-        $stmt2 = $db->query('SELECT is_corporate_person, is_private, contact_lastname, contact_firstname, society, society_short, contact_purpose_id, address_num, address_street, address_postal_code, address_town, lastname, firstname FROM view_contacts WHERE contact_id = ? and ca_id = ?', array($contactIdentifier, $addressId));
-        $res = $stmt2->fetchObject();
-
-        if ($res->is_corporate_person == 'Y') {
-            $data['contact'] = $res->society . ' ';
-            if (!empty($res->society_short)) {
-                $data['contact'] .= '(' . $res->society_short . ') ';
-            }
-        } else {
-            $data['contact'] = $res->contact_lastname . ' ' . $res->contact_firstname . ' ';
-            if (!empty($res->society)) {
-                $data['contact'] .= '(' . $res->society . ') ';
-            }
-        }
-
-        if ($res->is_private == 'Y') {
-            $data['contact'] .= '(' . _CONFIDENTIAL_ADDRESS . ')';
-        } else {
-            require_once("apps" . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_contacts_v2.php");
-            $contact = new contacts_v2();
-            $data['contact'] .= '- ' . $contact->get_label_contact($res->contact_purpose_id, $_SESSION['tablename']['contact_purposes']) . ' : ';
-            if (!empty($res->lastname) || !empty($res->firstname)) {
-                $data['contact'] .= $res->lastname . ' ' . $res->firstname . ' ';
-            }
-            if (!empty($res->address_num) || !empty($res->address_street) || !empty($res->address_town) || !empty($res->address_postal_code)) {
-                $data['contact'] .= ', ' . $res->address_num . ' ' . $res->address_street . ' ' . $res->address_postal_code . ' ' . strtoupper($res->address_town);
-            }
-        }
-        $data['contactId'] = $contactIdentifier;
-        $data['addressId'] = $addressId;
-    }
-    //TODO CASE OF MULTICONTACTS
-    // else if ($arr[$i] == 'is_multicontacts') {
-    //     if (!empty ($line->{$arr[$i]})) {
-    //         $data['type_contact'] = 'multi_external';
-    //     }
-    // }
-    //echo $data['contact'];exit;
-    //END CASE OF CONTACT
-
-    if (isset($data['contact']) && !empty($data['contact'])) {
-        $frm_str .= '<span title="'.$data['contact'].'">'.$data['contact'].'</span>';
-    } else {
-        $frm_str .= _MULTI . '-' . _DEST;
-    }
-    $frm_str .= '</li>';
-
-    $frm_str .= '<li>';
-    $frm_str .= '<i class="fa fa-file" title="Objet"></i> ';
-    if (isset($doc_subject) && !empty($doc_subject)) {
-        $frm_str .= '<span title="'.$doc_subject.'">'.$doc_subject.'</span>';
-    }
-    $frm_str .= '</li>';
-
-    $frm_str .= '<li>';
-    $frm_str .= '<i class="fa fa-calendar " title="Date d\'arrivée"></i> ';
-    $frm_str .= $doc_admission_date;
-    $frm_str .= ' <i class="fa fa-bell" title="Date limite"></i> ';
-    $frm_str .= $doc_process_limit_date;
-    $frm_str .= '</li>';
-
-    $frm_str .= '</ul>';
-
-    $frm_str .= '</div>';
-}
-$frm_str .= '</div>';
-
-$frm_str .= '<div class="toolbar" style="text-align:center;">';
-$frm_str .= '<table style="width:100%;">';
-$frm_str .= '<tr>';
-$frm_str .= '<td style="width:50%";">';
-$frm_str .= '<a href="javascript://" id="previous_doc" onclick="previousDoc(\'index.php?display=true&module=visa&page=update_visaPage\', \'' . $coll_id . '\');"><i class="fa fa-chevron-up fa-2x" title="Précédent"></i></a>';
-
-$frm_str .= '</td>';
-
-$frm_str .= '<td style="width:50%";">';
-$frm_str .= '<a href="javascript://" id="next_doc" onclick="nextDoc(\'index.php?display=true&module=visa&page=update_visaPage\', \'' . $coll_id . '\');"><i class="fa fa-chevron-down fa-2x" title="Suivant"></i></a>';
-
-$frm_str .= '</td>';
-
-//$frm_str .= '<td style="width:33%";">';	
-//$frm_str .= '<a href="javascript://" id="cancel" onclick="javascript:$(\'baskets\').style.visibility=\'visible\';destroyModal(\'modal_'.$id_action.'\');reinit();"><i class="fa fa-backward fa-2x" title="Annuler"></i></a>';
-//$frm_str .= '</td>';
-$frm_str .= '</tr>';
-$frm_str .= '</table>';
-$frm_str .= '</div>';
-
-echo $frm_str;
diff --git a/modules/visa/update_visaPage.php b/modules/visa/update_visaPage.php
deleted file mode 100644
index 5c4e95ec054bfecd59af902ef0dd6ca8bd7d5444..0000000000000000000000000000000000000000
--- a/modules/visa/update_visaPage.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-$db = new Database();
-$core_tools =new core_tools();
-        
-$res_id = $_REQUEST['res_id'];
-$_SESSION['doc_id'] = $res_id;
-$coll_id = $_REQUEST['coll_id'];
-// Ouverture de la modal
-	$frm_str = '';
-	$docLockerCustomPath = 'apps/maarch_entreprise/actions/docLocker.php';
-    $docLockerPath = $_SESSION['config']['businessappurl'] . '/actions/docLocker.php';
-    if (is_file($docLockerCustomPath))
-        require_once $docLockerCustomPath;
-    else if (is_file($docLockerPath))
-        require_once $docLockerPath;
-    else
-        exit("can't find docLocker.php");
-
-    $docLocker = new docLocker($res_id);
-    if (!$docLocker->canOpen()) {
-        echo "{status : 0,error:'"._DOC_LOCKER_RES_ID."".$res_id.""._DOC_LOCKER_USER." ".$_SESSION['userLock']."'}";
-        exit();
-    }
-
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR
-			. "class" . DIRECTORY_SEPARATOR
-			. "class_modules_tools.php";
-include('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.'definition_mail_categories.php');
-require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php");
-$sec =new security();
-$core =new core_tools();
-
-$data = get_general_data($coll_id, $res_id, 'minimal');
-			
-/* Partie centrale*/
-$left_html = '';
-
-
-//Onglet document
-if ($data['category_id']['value'] != 'outgoing'){
-    $pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=view_resource_controler&visu&id='. $res_id.'&collid='.$coll_id;
-    $left_html .= '<dt id="onglet_entrant" style="padding-top: 6px;" onclick="loadSpecificTab(\'viewframevalidDoc\',\''.$pathScriptTab.'\');return false;">'._INCOMING.' <sup><span id="nb_note" style="'.$style2.'" class="'.$class.'">'.$nbr_notes.'</span></sup></dt><dd style="overflow-y: hidden;">';
-    $left_html .= '<iframe src="'.$pathScriptTab.'" name="viewframevalidDoc" id="viewframevalidDoc"  scrolling="auto" frameborder="0"  style="width:100%;height:100%;" ></iframe></dd>';
-
-    $left_html .= '</dd>';
-}else{
-    $js .= '$$(\'#visa_tab\')[0].click();';
-}
-	
-//Onglet Circuit 
-$pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&page=show_visa_tab&module=visa&resId='.$res_id.'&collId='.$coll_id.'&destination=';
-$left_html .= '<dt id="visa_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'workflow_visa\',\''.$pathScriptTab.'\');return false;">'._VISA_WORKFLOW.'<span id="visa_tab_img"></span><span id="visa_tab_badge"></span></dt><dd id="page_circuit" style="overflow-x: hidden;">';
-$left_html .= '<h2>'._VISA_WORKFLOW.'</h2>';
-$left_html .= '<iframe src="" name="workflow_visa" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="workflow_visa"></iframe>';
-$left_html .= '</dd>';
-
-//LOAD TOOLBAR BADGE
-$toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=visa&page=load_toolbar_visa&origin=parent&resId='.$res_id.'&collId='.$coll_id;
-$js .='loadToolbarBadge(\'visa_tab\',\''.$toolbarBagde_script.'\');';
-
-//Onglet Avancement 
-$pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=document_workflow_history&id='. $res_id .'&coll_id='. $coll_id.'&load&size=full';
-$left_html .= '<dt id="onglet_avancement" style="padding-top: 6px;" onclick="loadSpecificTab(\'workflow_history_document\',\''.$pathScriptTab.'\');return false;">Avancement <sup><span id="nb_note" style="'.$style2.'" class="'.$class.'">'.$nbr_notes.'</span></sup></dt><dd id="page_avancement" style="overflow-x: hidden;">';
-$left_html .= '<h2>'. _WF .'</h2>';
-$left_html .= '<iframe src="" name="workflow_history_document" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="workflow_history_document"></iframe>';
-$left_html .= '<br/>';
-$left_html .= '<br/>';
-
-$pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=document_history&id='. $res_id .'&coll_id='. $coll_id.'&load&size=full';
-$left_html .= '<span style="cursor: pointer;" onmouseover="this.style.cursor=\'pointer\';" onclick="new Effect.toggle(\'history_document\', \'blind\', {delay:0.2});whatIsTheDivStatus(\'history_document\', \'divStatus_all_history_div\');loadSpecificTab(\'history_document\',\''.$pathScriptTab.'\');return false;">';
-$left_html .= '<span id="divStatus_all_history_div" style="color:#1C99C5;"><i class="fa fa-plus-square-o"></i></span>';
-$left_html .= '<b>&nbsp;'. _ALL_HISTORY .'</b>';
-$left_html .= '</span>';
-$left_html .= '<iframe src="" name="history_document" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="history_document" style="display:none;"></iframe>';
-
-$left_html .= '</dd>';
-
-//Onglet notes
-if ($core->is_module_loaded('notes')) {
-
-    $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=notes&identifier=' . $res_id . '&origin=document&coll_id=' . $coll_id . '&load&size=full';
-    $left_html .= '<dt id="notes_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'list_notes_doc\',\'' . $pathScriptTab . '\');return false;">' . _NOTES . '<span id="notes_tab_img"></span><span id="notes_tab_badge"></span></dt><dd id="page_notes" style="overflow-x: hidden;"><h2>' . _NOTES . '</h2><iframe name="list_notes_doc" id="list_notes_doc" src="" frameborder="0" scrolling="yes" width="99%" height="570px"></iframe></dd> ';
-
-    //LOAD TOOLBAR BADGE
-    $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=load_toolbar_notes&origin=parent&resId='.$res_id.'&collId='.$coll_id;
-    $js .='loadToolbarBadge(\'notes_tab\',\''.$toolbarBagde_script.'\');';
-}
-
-/* Partie droite */
-$right_html = '';
-$visa = new visa();
-$tab_path_rep_file = $visa->get_rep_path($res_id, $coll_id);
-	$cptAttach = count($tab_path_rep_file);
-	if ($cptAttach < 6) {
-		$viewMode = 'extended';
-	} elseif ($cptAttach < 10) {
-		$viewMode = 'small';
-	} else {
-		$viewMode = 'verysmall';
-	}
-	for ($i = 0; $i < $cptAttach; $i++) {
-            $num_rep = $i + 1;
-            if ($viewMode == 'verysmall') {
-                $titleRep = $i + 1;
-            } elseif ($viewMode == 'small') {
-                $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']], 0, 10);
-            } else {
-                if (strlen($tab_path_rep_file[$i]['title']) > 15)
-                    $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']], 0, 15) . '...';
-                else
-                    $titleRep = $_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']];
-            }
-            if ($tab_path_rep_file[$i]['attachment_type'] == 'signed_response') {
-                $titleRep = '<i style="color:#fdd16c" class="fa fa-certificate fa-lg fa-fw"></i>' . $titleRep;
-            }
-            $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=visa&page=view_pdf_attachement&res_id_master=' . $res_id . '&id=' . $tab_path_rep_file[$i]['res_id'];
-            $right_html .= '<dt style="padding-top: 6px;" title="'
-                    . $tab_path_rep_file[$i]['title'] . '" id="ans_' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '" onclick="loadSpecificTab(\'viewframevalidRep' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '\',\'' . $pathScriptTab . '\');updateFunctionModifRep(\''
-                    . $tab_path_rep_file[$i]['res_id'] . '\', ' . $num_rep . ', ' . $tab_path_rep_file[$i]['is_version'] . ');">' . $titleRep
-                    . ' <sup><span class="" style="" id=""></span></sup></dt><dd id="content_' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '">';
-            if($i==0){
-                $right_html .= '<iframe src="'.$pathScriptTab.'" name="viewframevalidRep' . $num_rep . '" id="viewframevalidRep' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '"  scrolling="auto" frameborder="0" style="width:100%;height:100%;" ></iframe>';
-
-            }  else {
-                $right_html .= '<iframe src="" name="viewframevalidRep' . $num_rep . '" id="viewframevalidRep' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '"  scrolling="auto" frameborder="0" style="width:100%;height:100%;" ></iframe>';
-  
-            }
-            $right_html .= '</dd>';
-            //$right_html .= '<script>console.log('.$cptAttach.');</script>';
-           
-        }
-            
-        $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=attachments&page=frame_list_attachments&template_selected=documents_list_attachments_simple&load&attach_type_exclude=converted_pdf,print_folder';
-            
-        $right_html .= '<dt title="' . _ATTACHED_DOC .'" id="attachments_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'list_attach\',\''.$pathScriptTab.'\');$(\'cur_idAffich\').value=0;updateFunctionModifRep(0,0,0);">PJ<span id="attachments_tab_img"></span><span id="attachments_tab_badge"></span></dt><dd id="page_pj">';
-
-        //LOAD TOOLBAR BADGE
-        $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=attachments&page=load_toolbar_attachments&origin=parent&resId='.$res_id.'&collId='.$coll_id;
-        $js .='loadToolbarBadge(\'attachments_tab\',\''.$toolbarBagde_script.'\');';
-        
-        if ($core_tools->is_module_loaded('attachments')) {
-        require 'modules/templates/class/templates_controler.php';
-        $templatesControler = new templates_controler();
-        $templates = array();
-        $templates = $templatesControler->getAllTemplatesForProcess($curdest);
-        $_SESSION['destination_entity'] = $curdest;
-        //var_dump($templates);
-        $right_html .= '<div id="list_answers_div" onmouseover="this.style.cursor=\'pointer\';" style="width:100%;height:100%;">';
-            $right_html .= '<div class="block" style="margin-top:-2px;height:95%;">';
-                $right_html .= '<div id="processframe" name="processframe" style="height:100%;">';
-                    $right_html .= '<center><h2>' . _PJ . ', ' . _ATTACHEMENTS . '</h2></center>';
-                   
-                    $right_html .= '<div class="ref-unit">';
-                    
-                    $right_html .= '<center>';
-                    if ($core_tools->is_module_loaded('templates')) {
-                        $right_html .= '<input type="button" name="attach" id="attach" class="button" value="'
-                            . _CREATE_PJ
-                            .'" onclick="showAttachmentsForm(\'' . $_SESSION['config']['businessappurl']
-                            . 'index.php?display=true&module=attachments&page=attachments_content\')" />';
-                    }
-                    $right_html .= '</center><iframe name="list_attach" id="list_attach" src="" '
-                    . 'frameborder="0" width="100%" scrolling="yes" height="600px" scrolling="yes" ></iframe>';
-                    $right_html .= '</div>';
-                $right_html .= '</div>';
-            $right_html .= '</div>';
-            //$right_html .= '<hr />';
-        $right_html .= '</div>';
-    }
-	
-	
-        $right_html .= '</dd>';
-						
-
-	$valid_but = 'valid_action_form( \'index_file\', \'index.php?display=true&page=manage_action&module=core\', \''.$_REQUEST['action'].'\', \''.$res_id.'\', \'res_letterbox\', \'null\', \''.$coll_id.'\', \'page\');';
-
-//echo "{status : 1,avancement:'".$avancement_html."',circuit:'".$circuit_html."',notes_dt:'".$notes_html_dt."',notes_dd:'".$notes_html_dd."'}";
-echo "{status : 1,left_html:'".addslashes($left_html)."',right_html:'".addslashes($right_html)."',valid_button:'".addslashes($valid_but)."',id_rep:'".$tab_path_rep_file[0]['res_id']."',is_vers_rep:'".$tab_path_rep_file[0]['is_version']."',exec_js:'".addslashes($js)."'}";
-exit();
diff --git a/modules/visa/visa_mail.php b/modules/visa/visa_mail.php
index 1c344e5eb3a864fc991968d6174294178e14a247..3291dd53deefb88d50bca611507310f11f99853f 100644
--- a/modules/visa/visa_mail.php
+++ b/modules/visa/visa_mail.php
@@ -49,372 +49,7 @@ function writeLogIndex($EventInfo)
 
 function get_form_txt($values, $path_manage_action,  $id_action, $table, $module, $coll_id, $mode )
 {
-    //DECLARATIONS
-    include('apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR.'definition_mail_categories.php');
-    require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-    require_once("core" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_security.php");
-    require_once("apps" . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_business_app_tools.php");
-    require_once("modules" . DIRECTORY_SEPARATOR . "basket" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php");
-    require_once("apps" . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_types.php");
-    require_once("core" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_request.php");
-    
-    //INSTANTIATE
-    $sec = new security();
-    $core_tools = new core_tools();
-    $b = new basket();
-    $type = new types();
-    $business = new business_app_tools();
-    $visa = new visa();
-    $db = new Database();
-
-    //INITIALIZE
-    $frm_str = '';
-    $_SESSION['stockCheckbox']= '';
-    unset($_SESSION['m_admin']['contact']);
-    $_SESSION['req'] = "action";
-    $res_id = $values[0];
-    $_SESSION['doc_id'] = $res_id;
-    $_SESSION['current_basket']['lastBasketFromAction'] = $_SESSION['current_basket']['id'];
-    $view = $sec->retrieve_view_from_coll_id($coll_id);
-    $stmt = $db->query("select alt_identifier,category_id, status from " . $view . " where res_id = ?", array($res_id));
-    $resChrono = $stmt->fetchObject();
-    $chrono_number = $resChrono->alt_identifier;
-    $cat_id = $resChrono->category_id;
-    //LAUNCH DOCLOCKER
-    $docLockerCustomPath = 'apps/maarch_entreprise/actions/docLocker.php';
-    $docLockerPath = $_SESSION['config']['businessappurl'] . '/actions/docLocker.php';
-    
-    if (is_file($docLockerCustomPath)){
-        require_once $docLockerCustomPath;
-    }else if (is_file($docLockerPath)){
-        require_once $docLockerPath;
-    }else{
-        exit("can't find docLocker.php");
-    }
-    
-    $docLocker = new docLocker($res_id);
-    if (!$docLocker->canOpen()) {
-        $docLockerscriptError = '<script>';
-        $docLockerscriptError .= 'destroyModal("modal_' . $id_action . '");';
-        $docLockerscriptError .= 'alert("' . _DOC_LOCKER_RES_ID . '' . $res_id . '' . _DOC_LOCKER_USER . ' ' . $_SESSION['userLock'] . '");';
-        $docLockerscriptError .= '</script>';
-        return $docLockerscriptError;
-    }
-
-    // DocLocker constantly 
-    $frm_str .= '<script>';
-    $frm_str .= 'docLockInterval = setInterval("new Ajax.Request(\'' . $_SESSION['config']['businessappurl'] . 'index.php?display=true&dir=actions&page=docLocker\',{ method:\'post\', parameters: {\'AJAX_CALL\': true, \'lock\': true, \'res_id\': ' . $res_id . '} });", 5000);';
-    $frm_str .= '</script>';
-
-    $docLocker->lock();
-
-    //MODAL CONTENT
-    $frm_str .= '<h2 class="tit" id="action_title">' . _VISA_MAIL . ' ' . _NUM . '<span id="numIdDocPage">';
-
-    if(_ID_TO_DISPLAY == 'res_id'){
-        $frm_str .= $res_id;
-    } else if (_ID_TO_DISPLAY == 'chrono_number'){
-        $frm_str .= $chrono_number;
-    }
-
-    $frm_str .='</span>';
-
-    $frm_str .= '</h2>';
-    $frm_str .='<i onmouseover="this.style.cursor=\'pointer\';" ' . 'onclick="new Ajax.Request(\'' . $_SESSION['config']['businessappurl'] . 'index.php?display=true&dir=actions&page=docLocker\',{ method:\'post\', parameters: {\'AJAX_CALL\': true, \'unlock\': true, \'res_id\': ' . $res_id . '}, onSuccess: function(answer){var cur_url=window.location.href; if (cur_url.indexOf(\'&directLinkToAction\') != -1) cur_url=cur_url.replace(\'&directLinkToAction\',\'\');window.location.href=cur_url;} });javascript:$(\'baskets\').style.visibility=\'visible\';destroyModal(\'modal_'.$id_action.'\');reinit();" class="fa fa-times-circle fa-2x closeModale" title="'._CLOSE.'"/>';
-    $frm_str .= '</i>';
-    $frm_str .= '<div>';
-    $pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&page=show_visaListDocBasket_tab&module=visa&resId='. $res_id.'&collId='.$coll_id.'&view='.$view;
-    $frm_str .= '<i id="firstFrame" class="fa fa-arrow-circle-o-right fa-2x" style="margin-left: 13.8%;cursor: pointer" onclick="loadSpecificTab(\'show_visaListDocBasket_tab\',\''.$pathScriptTab.'\');manageFrame(this)"></i>';
-    $frm_str .= '<i id="secondFrame" class="fa fa-arrow-circle-o-left fa-2x" style="margin-left: 40.9%;cursor: pointer" onclick="manageFrame(this)"></i>';
-    $frm_str .= '<i id="thirdFrame" class="fa fa-arrow-circle-o-right fa-2x" style="margin-left: 0.6%;cursor: pointer" onclick="manageFrame(this)"></i>';
-    $frm_str .= '</div>';
-        
-    //List of documents
-    $frm_str .= '<div id="visa_listDoc" style="display:none;">';
-        $frm_str .= '<iframe src="" name="show_visaListDocBasket_tab" id="show_visaListDocBasket_tab"  scrolling="auto" frameborder="0"  style="width:100%;height:100%;" ></iframe></dd>';
-
-    $frm_str .= '</div>';
-
-    $frm_str .= '<div id="visa_left" style="display:none;">';
-
-    //TODO BEGIN OF CLEAN
-    $frm_str .= '<dl id="tabricatorLeft" >';
-	
-    //Onglet document
-    if ($cat_id != 'outgoing'){
-        $pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=view_resource_controler&visu&id='. $res_id.'&collid='.$coll_id;
-        $frm_str .= '<dt id="onglet_entrant" style="padding-top: 6px;" onclick="loadSpecificTab(\'viewframevalidDoc\',\''.$pathScriptTab.'\');return false;">'._INCOMING.' <sup><span id="" style="'.$style2.'" class="'.$class.'"></span></sup></dt><dd style="overflow-y: hidden;">';
-        $frm_str .= '<iframe src="" name="viewframevalidDoc" id="viewframevalidDoc"  scrolling="auto" frameborder="0"  style="width:100%;height:100%;" ></iframe></dd>';
-
-        $frm_str .= '</dd>';
-        $frm_str .= '<script>$$(\'#onglet_entrant\')[0].click();</script>';
-    }else{
-        $frm_str .= '<script>$$(\'#visa_tab\')[0].click();</script>';
-    }
-	
-	
-    //Onglet Circuit 
-    $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&page=show_visa_tab&module=visa&resId='.$res_id.'&collId='.$coll_id.'&visaStep=true&destination='.$data['destination']['value'];
-    $frm_str .= '<dt id="visa_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'workflow_visa\',\''.$pathScriptTab.'\');return false;">'._VISA_WORKFLOW.'<span id="visa_tab_img"></span><span id="visa_tab_badge"></span></dt><dd id="page_circuit" style="overflow-x: hidden;">';
-    $frm_str .= '<h2>'._VISA_WORKFLOW.'</h2>';
-    $frm_str .= '<iframe src="" name="workflow_visa" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="workflow_visa"></iframe>';
-    $frm_str .= '</dd>';
-    //LOAD TOOLBAR BADGE
-    $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=visa&page=load_toolbar_visa&resId='.$res_id.'&collId='.$coll_id;
-    $frm_str .='<script>loadToolbarBadge(\'visa_tab\',\''.$toolbarBagde_script.'\');</script>';
-
-
-    //Onglet Avancement 
-    $pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=document_workflow_history&id='. $res_id .'&coll_id='. $coll_id.'&load&size=full';
-    $frm_str .= '<dt id="onglet_avancement" style="padding-top: 6px;" onclick="loadSpecificTab(\'workflow_history_document\',\''.$pathScriptTab.'\');return false;">Avancement <sup><span id="" style="'.$style2.'" class="'.$class.'"></span></sup></dt><dd id="page_avancement" style="overflow-x: hidden;">';
-    $frm_str .= '<h2>'. _WF .'</h2>';
-    $frm_str .= '<iframe src="" name="workflow_history_document" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="workflow_history_document"></iframe>';
-    $frm_str .= '<br/>';
-    $frm_str .= '<br/>';
-
-    $pathScriptTab = $_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=document_history&id='. $res_id .'&coll_id='. $coll_id.'&load&size=full';
-    $frm_str .= '<span style="cursor: pointer;" onmouseover="this.style.cursor=\'pointer\';" onclick="new Effect.toggle(\'history_document\', \'blind\', {delay:0.2});whatIsTheDivStatus(\'history_document\', \'divStatus_all_history_div\');loadSpecificTab(\'history_document\',\''.$pathScriptTab.'\');return false;">';
-    $frm_str .= '<span id="divStatus_all_history_div" style="color:#1C99C5;"><i class="fa fa-plus-square-o"></i></span>';
-    $frm_str .= '<b>&nbsp;'. _ALL_HISTORY .'</b>';
-    $frm_str .= '</span>';
-    $frm_str .= '<iframe src="" name="history_document" width="100%" height="620px" align="left" scrolling="yes" frameborder="0" id="history_document" style="display:none;"></iframe>';
-
-    $frm_str .= '</dd>';
-	
-    //Onglet notes
-    if ($core->is_module_loaded('notes')) {
-
-        $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=notes&identifier=' . $res_id . '&origin=document&coll_id=' . $coll_id . '&load&size=full';
-        $frm_str .= '<dt id="notes_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'list_notes_doc\',\'' . $pathScriptTab . '\');return false;">' . _NOTES . '<span id="notes_tab_img"></span><span id="notes_tab_badge"></span></dt><dd id="page_notes" style="overflow-x: hidden;"><h2>' . _NOTES . '</h2><iframe name="list_notes_doc" id="list_notes_doc" src="" frameborder="0" scrolling="yes" width="99%" height="570px"></iframe></dd> ';
-        
-        //LOAD TOOLBAR BADGE
-        $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=load_toolbar_notes&resId='.$res_id.'&collId='.$coll_id;
-        $frm_str .='<script>loadToolbarBadge(\'notes_tab\',\''.$toolbarBagde_script.'\');</script>';
-    }
-    $frm_str .= '</dl>';
-    $frm_str .= '</div>';
-	
-    $frm_str .= '<div id="visa_right" style="display:none;">';
-    $frm_str .= '<div style="height:100%;">';
-    $frm_str .= '<dl id="tabricatorRight" >';
-    $tab_path_rep_file = $visa->get_rep_path($res_id, $coll_id);
-    $cptAttach = count($tab_path_rep_file);
-    if ($cptAttach < 6) {
-            $viewMode = 'extended';
-    } elseif ($cptAttach < 10) {
-            $viewMode = 'small';
-    } else {
-            $viewMode = 'verysmall';
-    }
-    for ($i = 0; $i < $cptAttach; $i++) {
-        $num_rep = $i + 1;
-        if ($viewMode == 'verysmall') {
-            $titleRep = $i + 1;
-        } elseif ($viewMode == 'small') {
-            $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']], 0, 10);
-        } else {
-            if (strlen($tab_path_rep_file[$i]['title']) > 15){
-                $titleRep = substr($_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']], 0, 15) . '...';
-            }else{
-                $titleRep = $_SESSION['attachment_types'][$tab_path_rep_file[$i]['attachment_type']];
-            }
-        }
-        if ($tab_path_rep_file[$i]['attachment_type'] == 'signed_response') {
-            $titleRep = '<sup><i style="color:#fdd16c" class="fa fa-certificate fa-lg fa-fw"></i></sup>' . $titleRep;
-        }
-        $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=visa&page=view_pdf_attachement&res_id_master=' . $res_id . '&id=' . $tab_path_rep_file[$i]['res_id'];
-        $frm_str .= '<dt style="padding-top: 6px;" title="'
-                . $tab_path_rep_file[$i]['title'] . '" id="ans_' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '" onclick="loadSpecificTab(\'viewframevalidRep' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '\',\'' . $pathScriptTab . '\');updateFunctionModifRep(\''
-                . $tab_path_rep_file[$i]['res_id'] . '\', ' . $num_rep . ', ' . $tab_path_rep_file[$i]['is_version'] . ');">' . $titleRep
-                . ' <sup><span class="" style="" id=""></span></sup></dt><dd id="content_' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '">';
-        $frm_str .= '<iframe src="" name="viewframevalidRep' . $num_rep . '" id="viewframevalidRep' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '"  scrolling="auto" frameborder="0" style="width:100%;height:100%;" ></iframe>';
-        $frm_str .= '</dd>';
-        //$frm_str .= '<script>console.log('.$cptAttach.');</script>';
-        if($i==0){
-            $frm_str .= '<script>$$(\'#ans_' . $num_rep . '_' . $tab_path_rep_file[$i]['res_id'] . '\')[0].click();</script>';
-        }
-
-    }
-            
-    $pathScriptTab = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=attachments&page=frame_list_attachments&template_selected=documents_list_attachments_simple&load&attach_type_exclude=converted_pdf,print_folder';
-
-    $frm_str .= '<dt title="' . _ATTACHED_DOC .'" id="attachments_tab" style="padding-top: 6px;" onclick="loadSpecificTab(\'list_attach\',\''.$pathScriptTab.'\');$(\'cur_idAffich\').value=0;updateFunctionModifRep(0,0,0);">PJ<span id="attachments_tab_img"></span><span id="attachments_tab_badge"></span></dt><dd id="page_pj">';
-
-    //LOAD TOOLBAR BADGE
-    $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=attachments&page=load_toolbar_attachments&resId='.$res_id.'&collId='.$coll_id;
-    $frm_str .='<script>loadToolbarBadge(\'attachments_tab\',\''.$toolbarBagde_script.'\');</script>';
-        
-    if ($core_tools->is_module_loaded('attachments')) {
-        require 'modules/templates/class/templates_controler.php';
-        $templatesControler = new templates_controler();
-        $templates = array();
-        $templates = $templatesControler->getAllTemplatesForProcess($curdest);
-        $_SESSION['destination_entity'] = $curdest;
-        //var_dump($templates);
-        $frm_str .= '<div id="list_answers_div" onmouseover="this.style.cursor=\'pointer\';" style="width:100%;height:100%;">';
-            $frm_str .= '<div class="block" style="margin-top:-2px;height:95%;">';
-                $frm_str .= '<div id="processframe" name="processframe" style="height:100%;">';
-                    $frm_str .= '<center><h2>' . _PJ . ', ' . _ATTACHEMENTS . '</h2></center>';
-
-                    $frm_str .= '<div class="ref-unit">';
-
-                    $frm_str .= '<center>';
-                    if ($core_tools->is_module_loaded('templates')) {
-                        $frm_str .= '<input type="button" name="attach" id="attach" class="button" value="'
-                            . _CREATE_PJ
-                            .'" onclick="showAttachmentsForm(\'' . $_SESSION['config']['businessappurl']
-                            . 'index.php?display=true&module=attachments&page=attachments_content\')" />';
-                    }
-                    $frm_str .= '</center><iframe name="list_attach" id="list_attach" src="" '
-                    . 'frameborder="0" width="100%" scrolling="yes" height="600px" scrolling="yes" ></iframe>';
-                    $frm_str .= '</div>';
-                $frm_str .= '</div>';
-            $frm_str .= '</div>';
-            //$frm_str .= '<hr />';
-        $frm_str .= '</div>';
-    }
-	
-	
-    $frm_str .= '</dd>';
-
-
-    $frm_str .= '</dl>';
-    $frm_str .= '<div class="toolbar">';
-    $frm_str .= '<table style="width:100%;">';	
-
-    $frm_str .= '<tr>';
-    $frm_str .= '<td>';	
-    $frm_str .= '<form name="index_file" method="post" id="index_file" action="#" class="forms " style="text-align:left;">';
-    $frm_str .= 'Consigne &nbsp;<input type="text" value="'.$visa->getConsigne($res_id, $coll_id, $_SESSION['user']['UserId']).'" style="width:50%;" readonly class="readonly"/><br/>';
-    
-    //GET ACTION LIST BY AJAX REQUEST
-    $frm_str .= '<span id="actionSpan"></span>';
-    $frm_str .= '<script>';
-        $frm_str .= 'change_category_actions(\'' 
-            . $_SESSION['config']['businessappurl'] 
-            . 'index.php?display=true&dir=indexing_searching&page=change_category_actions'
-            . '&resId=' . $res_id . '&collId=' . $coll_id . '\',\'' . $res_id . '\',\'' . $coll_id . '\',\''.$cat_id.'\');';
-    $frm_str .= '</script>';
-    $frm_str .= '<input type="button" name="send" id="send_action" value="'._VALIDATE.'" class="button" onclick="new Ajax.Request(\'' 
-            . $_SESSION['config']['businessappurl'] . 'index.php?display=true&dir=actions&page=docLocker\',{ method:\'post\', parameters: {\'AJAX_CALL\': true, \'unlock\': true, \'res_id\': ' . $res_id . '} });valid_action_form( \'index_file\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$res_id.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');"/> ';
-    //
-    
-    /*$frm_str .= '<b>'._ACTIONS.' : </b>';
-    $actions  = $b->get_actions_from_current_basket($res_id, $coll_id, 'PAGE_USE');
-    if(count($actions) > 0)
-    {
-        $frm_str .='<select name="chosen_action" id="chosen_action">';
-        $frm_str .='<option value="">'._CHOOSE_ACTION.'</option>';
-        for($ind_act = 0; $ind_act < count($actions);$ind_act++)
-        {
-            if (!($actions[$ind_act]['VALUE'] == "end_action" && $visa->getCurrentStep($res_id, $coll_id, 'VISA_CIRCUIT') == $visa->nbVisa($res_id, $coll_id))){
-                $frm_str .='<option value="'.$actions[$ind_act]['VALUE'].'"';
-                if($ind_act==0)
-                {
-                    $frm_str .= 'selected="selected"';
-                }
-                $frm_str .= '>'.$actions[$ind_act]['LABEL'].'</option>';
-            }
-        }
-        $frm_str .='</select> ';
-        $table = $sec->retrieve_table_from_coll($coll_id);
-        $frm_str .= '<input type="button" name="send" id="send_action" value="'._VALIDATE.'" class="button" onclick="new Ajax.Request(\'' 
-            . $_SESSION['config']['businessappurl'] . 'index.php?display=true&dir=actions&page=docLocker\',{ method:\'post\', parameters: {\'AJAX_CALL\': true, \'unlock\': true, \'res_id\': ' . $res_id . '} });valid_action_form( \'index_file\', \''.$path_manage_action.'\', \''. $id_action.'\', \''.$res_id.'\', \''.$table.'\', \''.$module.'\', \''.$coll_id.'\', \''.$mode.'\');"/> ';
-    }*/
-
-
-    $frm_str .= '<input type="hidden" name="cur_rep" id="cur_rep" value="'.$tab_path_rep_file[0]['res_id'].'" >';
-    $frm_str .= '<input type="hidden" name="cur_idAffich" id="cur_idAffich" value="1" >';
-    $frm_str .= '<input type="hidden" name="cur_resId" id="cur_resId" value="'.$res_id.'" >';
-    $frm_str .= '<input type="hidden" name="list_docs" id="list_docs" value="'.$list_docs.'" >';
-
-    $frm_str .= '<input type="hidden" name="values" id="values" value="'.$res_id.'" />';
-    $frm_str .= '<input type="hidden" name="action_id" id="action_id" value="'.$id_action.'" />';
-    $frm_str .= '<input type="hidden" name="mode" id="mode" value="'.$mode.'" />';
-    $frm_str .= '<input type="hidden" name="table" id="table" value="'.$table.'" />';
-    $frm_str .= '<input type="hidden" name="coll_id" id="coll_id" value="'.$coll_id.'" />';
-    $frm_str .= '<input type="hidden" name="module" id="module" value="'.$module.'" />';
-    $frm_str .= '<input type="hidden" name="category_id" id="category_id" value="'.$cat_id.'" />';
-    $frm_str .= '<input type="hidden" name="req" id="req" value="second_request" />';
-
-
-    //$frm_str .= '<input type="hidden" name="next_resId" id="next_resId" value="'.$nextId.'" >';
-    $frm_str .= '</form>';
-    $frm_str .= '</td>';
-    $frm_str .= '<td style="width:25%;">';	
-    //if ($core->test_service('sign_document', 'visa', false) && $currentStatus == 'ESIG') {
-    if ($core->test_service('sign_document', 'visa', false) ) {
-            $color = ' style="float:left;color:#666;" ';
-            $img = '<img id="sign_link_img" src="'.$_SESSION['config']['businessappurl'].'static.php?filename=sign.png" title="Signer ces projets de réponse (sans certificat)" />';
-            if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response'){
-                    $color = ' style="float:left;color:green;cursor:not-allowed;" ';
-                    $img = '<img id="sign_link_img" src="'.$_SESSION['config']['businessappurl'].'static.php?filename=sign_valid.png" title="Enlever la signature" />';
-            } 
-
-            if ($_SESSION['modules_loaded']['visa']['showAppletSign'] == "true"){
-                    $frm_str .= '<a href="javascript://" id="sign_link_certif" '.$color.' onclick="';
-                    if ($tab_path_rep_file[0]['attachment_type'] != 'signed_response') $frm_str .= 'signFile('.$tab_path_rep_file[0]['res_id'].','.$tab_path_rep_file[0]['is_version'].',0);';
-                    $frm_str .= '"><i class="fm fm-file-fingerprint fm-3x" title="Signer ces projets de réponse (avec certificat)"></i></a>';
-            }
-            if ($tab_path_rep_file[0]['attachment_type'] != 'signed_response'){
-                    $frm_str .= ' <a href="javascript://" id="sign_link" '.$color.' onclick="';
-                    $frm_str .= 'signFile('.$tab_path_rep_file[0]['res_id'].','.$tab_path_rep_file[0]['is_version'].',2);';
-            }else{
-                    $frm_str .= ' <a target="list_attach" href="';
-                    $frm_str .= 'index.php?display=true&module=attachments&page=del_attachment&relation=1&id='.$tab_path_rep_file[0]['res_id'];
-            } 
-            $frm_str .= '" id="sign_link" '.$color.'>'.$img.'</a>';
-    }
-
-    $displayModif = ' style="float:right;" ';
-    if ($tab_path_rep_file[0]['attachment_type'] == 'signed_response')
-            $displayModif = ' style="float:right;display:none;" ';
-
-    $frm_str .= ' <a href="javascript://" id="update_rep_link" '.$displayModif.'onclick="';
-
-    /*if ($tab_path_rep_file[0]['attachment_type'] == 'outgoing_mail'){
-            $frm_str .= 'window.open(\''
-    . $_SESSION['config']['businessappurl'] . 'index.php?display=true'
-    . '&module=content_management&page=applet_popup_launcher&objectType=resourceEdit'
-    . '&objectId='
-    . $tab_path_rep_file[0]['res_id']
-    . '&objectTable='
-    . $table
-    . '\', \'\', \'height=200, width=250,scrollbars=no,resizable=no,directories=no,toolbar=no\');';
-    }
-    else*/ 
-    if ($tab_path_rep_file[0]['is_version'] == 0 || $tab_path_rep_file[0]['is_version'] == 2) {
-        $frm_str .= 'modifyAttachmentsForm(\''.$_SESSION['config']['businessappurl'] 
-            . 'index.php?display=true&module=attachments&page=attachments_content&id='
-            . $tab_path_rep_file[0]['res_id'] . '&relation=1&fromDetail=\',\'98%\',\'auto\');';
-    } else {
-       $frm_str .= 'modifyAttachmentsForm(\''.$_SESSION['config']['businessappurl'] 
-            . 'index.php?display=true&module=attachments&page=attachments_content&id='
-            . $tab_path_rep_file[0]['res_id'] . '&relation=2&fromDetail=\',\'98%\',\'auto\');';
-    }
-    $frm_str .= '"><i class="fa fa-pencil-square-o fa-3x" title="Modifier la réponse"></i></a>';
-
-    $frm_str .= '</td>';
-    $frm_str .= '</tr>';	
-    $frm_str .= '</table>';	
-
-    $frm_str .= '</div>';
-    $frm_str .= '</div>';
-
-    $frm_str .= '<div id="modalPIN">';
-    $frm_str .= '<p id="badPin" style="display:none;color:red;font-weight:bold;text-align:center;margin-top: -15px">'. _BAD_PIN .'</p>';
-    $frm_str .= '<label for="valuePIN">Saisissez votre code PIN</label>';
-    $frm_str .= '<input type="password" name="valuePIN" id="valuePIN" onKeyPress="if (event.keyCode == 13) signFile('.$tab_path_rep_file[0]['res_id'].','.$tab_path_rep_file[0]['is_version'].',\'\', $(\'valuePIN\').value);"/><br/>';
-    $frm_str .= '<input type="button" name="sendPIN" id="sendPIN" value="'._VALIDATE.'" class="button" onclick="signFile('.$tab_path_rep_file[0]['res_id'].','.$tab_path_rep_file[0]['is_version'].',\'\', $(\'valuePIN\').value);" />';
-    $frm_str .= '&nbsp;<input type="button" name="cancelPIN" id="cancelPIN" value="'._CANCEL.'" class="button" onclick="$(\'badPin\').style.display = \'none\';$(\'modalPIN\').style.display = \'none\';" />';
-    $frm_str .= '</div>';
-
-    /*** Extra javascript ***/
-    $frm_str .= '<script type="text/javascript">launchTabri();window.scrollTo(0,0);$(\'divList\').style.display = \'none\';';
-    $frm_str .='var height = (parseInt($(\'visa_left\').parentElement.style.height.replace(/px/,""))-65)+"px";$(\'visa_listDoc\').style.height=height;$(\'visa_left\').style.height=height;$(\'visa_right\').style.height=height;$(\'tabricatorRight\').style.height=(parseInt($(\'tabricatorRight\').offsetHeight)-20)+"px";height = (parseInt($(\'tabricatorRight\').offsetHeight)-150)+"px";$(\'list_attach\').style.height=height;';
-    $frm_str .= '$(\'visa_left\').style.display=\'block\';$(\'visa_right\').style.display=\'block\';manageFrame(\'firstFrame\');';
-    $frm_str .='</script>';
-    return addslashes($frm_str);
+    //Keep this file because of manage action
 }
 
 /**
@@ -474,39 +109,6 @@ function get_value_fields($values, $field)
 function manage_form($arr_id, $history, $id_action, $label_action, $status,  $coll_id, $table, $values_form )
 {
 	$res_id = $arr_id[0];
-	
-	$act_chosen = get_value_fields($values_form, 'chosen_action');
-	
-	/*if ($act_chosen == "end_action"){
-		require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php");
-		require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php");
-		$sec = new security();
-		
-		
-		$replaceValues = array();
-		array_push(
-			$replaceValues,
-			array(
-				'column' => 'process_date',
-				'value' => 'CURRENT_TIMESTAMP',
-				'type' => 'date',
-			)
-		);
-		$where = 'res_id = ? and item_id = ? and difflist_type = ?';
-		$array_what[] = $res_id;
-		$array_what[] = $_SESSION['user']['UserId'];
-		$array_what[] = 'VISA_CIRCUIT';
-		
-		$request = new request();
-		$table = 'listinstance';
-		$request->PDOupdate($table, $replaceValues, $where, $array_what, $_SESSION['config']['databasetype']);
-		
-		$circuit_visa = new visa();
-		if ($circuit_visa->allUserVised($res_id, $coll_id, 'VISA_CIRCUIT')){
-			$up_request = "UPDATE res_letterbox SET status='ESIG' WHERE res_id = $res_id";
-			$db = new Database();
-			$db->query("UPDATE res_letterbox SET status='ESIG' WHERE res_id = ?", array($res_id));
-		}
-	}*/
+
     return array('result' => $res_id.'#', 'history_msg' => '');
 }
diff --git a/package.json b/package.json
index 342915691aff90a2da41e05b098aac94cbb5a73d..c99e457318e24639794ef52bded94bbe5980330a 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
     "angular-in-memory-web-api": "~0.2.5",
     "browserify": "^13.0.1",
     "typescript": "^2.3.0",
-    "uglifyjs": "^2.4.10",
+    "uglify-js": "^3.0.9",
     "@types/jquery": "^2.0.40",
     "@types/node": "^7.0.8"
   },