Informationen für iGZ-Mitglieder 17/2023: IG Metall gibt Scheitern der Tarifverhandlungen für TV BZ ME bekannt / IGBCE kündigt Tarifvertrag zur Zusatzvergütung in der Industrie | GZ (2023)

Zeitarbeit per E-Mail

Melden Sie sich jetzt für unseren Newsletter an und erhalten Sie ihn

Veröffentlichen Sie jede Woche die neuesten Branchennachrichten und -themen

'); group_wrapper.find('.loader-overlay').animate({"opacity": 1}, 300); },完成:函数(响应){ group_wrapper.find('.loader-overlay').animate({"opacity": 0}, 300); setTimeout(function () { group_wrapper.find('.loader-overlay').remove(); }, 300); },成功:函数(响应){ show_notification(response.msg,response.result); } }); }); body.find('input[name=mainOfficeId]').val(body.find('input[name=prefill_mainOfficeId]').val()); body.find('.page-template-myigz-dashboard input[name=email]').each(function (i) { let email_field = $(this); 让parents = email_field.parents('.tab-profile-员工,.tab-profile-companies'); if (!parents.length) { email_field.val(body.find('input[name=prefill_email]').val()); } }); body.find('input[name=token]').val(body.find('input[name=prefill_token]').val()); body.find('input[name=unternehmen]').val(body.find('input[name=prefill_firmenname]').val()); body.find('input[name=mitgliedsnummer]').val(body.find('input[name=prefill_member_no]').val()); body.find('input[name=userid]').val(+body.find('span#UserID').text()); body.on('click', '#upload-sepa-mandate .btn-sepa-mandate', function(e) { e.preventDefault(); let btn = $(this); let form = btn.parent() ; letwrapper = form.parent(); let file =wrapper.find('input[type=file]'); if (file.length > 0) { if (file.val() !== "") { letwrapper = form.parent(); neka cf7 =wrapper.find('.wpcf7-form'); cf7.find('input[name=mitgliedsnummer]').val(form.find('input[name=member_no]) ]').val()); cf7.find('.wpcf7-submit').click(); show_notification('Datei wurde gesendet', '成功'); } else { show_notification('Bitte wählen Sie eine Datei aus) !', '错误'); } } else { let cf7 =wrapper.find('.wpcf7-form'); cf7.find('.wpcf7-submit').click(); } }); body.on('wpcf7mailsent', '#sepa-mandate-form', funkcija (e) { show_notification('Mandat wurde gesendet', '成功'); }); body.on('click', '.btn-save', function (e) { e.preventDefault(); let btn = $(this); let form = btn.parents('form'); let sendEmails = [ ]; neka pass1 = form.find('input[name=password]'); neka pass2 = form.find('input[name=password_repeat]'); neka hasPasswordFields = pass1 && pass2; neka email1 = form.find( 'input[name=email]');let email2 = form.find('input[name=email_repeat]');let hasEmailFields = email1 && email2;letfirmenname = form.find('input[name=firmenname]') ; if (firmenname.val() !==firmenname.data('val')) { sendEmails.push('firmenname'); } let form_valid = form.valid(); let pass_valid = !hasPasswordFields || hasPasswordFields.length = == 0 || (hasPasswordFields && (pass1.next('p').hasClass('强密码') && pass1.val() === pass2.val())); | hasEmailFields.length === 0 || (hasEmailFields && email1.val() === email2.val()); if (btn.hasClass('btn-change-password')) { 让passwordOldField = form.find ('输入[名称=password_old' );让passwordNewField = form.find('输入[名称=密码');让passwordNewRepeatField = form.find('input[name=password_repeat');如果(passwordOldField.val()===““){passwordOldField. addClass('错误'); passwortOldField.parents('.ttr-input').addClass('error');表单有效=假; } else {passwordNewField.removeClass('Fehler'); lozinkaOldField.parents('.ttr-input').removeClass('greška'); } if (passwordNewField.val() === "" ||passwordNewField.next('.strength.strong-password').length === 0) {passwordNewField.addClass('error'); passwortNewField.parents('.ttr-input').addClass('greška'); passwortNewField.parents('.ttr-input').data('placeholder', 'Neues Passwort ist zu unsicher'); passwordNewField.parents('.ttr-input').attr('data-placeholder', 'Neues Passwort ist zu unsicher');表单有效=假; } else {passwordNewField.removeClass('错误'); passwortNewField.parents('.ttr-input').removeClass('greška'); } if (passwordNewRepeatField.val() === "" ||passwordNewRepeatField.val() !==passwordNewRepeatField.val()) {passwordNewRepeatField.addClass('error'); } passwortNewRepeatField.parents('.ttr-input').addClass('greška'); passwordNewRepeatField.parents('.ttr-input').data('placeholder', 'Passwörter stimmen nicht überein'); passwordNewRepeatField.parents('.ttr-input').attr('data-placeholder', 'Passwörter stimmen nicht überein');表单有效=假; } else {passwordNewRepeatField.removeClass('错误'); passwortNewRepeatField.parents('.ttr-input').removeClass('greška'); neka error_txt = form.parents('.group-wrapper').find('> p'); if (!form_valid) { if (!error_txt.hasClass('error')) { error_txt.addClass('error'); } } } else { error_txt.removeClass('error');如果(form_valid){仪表板_save_data(btn,sendEmails);让siblingForm = form.parent().find('#proof_of_business_form'); if (siblingForm.length === 1) { let mitgliedsnummer =siblingForm.find('input[name=mitgliedsnummer]').val();让proof_of_business =siblingForm.find('input[name=proof_of_business]').val (); if (mitgliedsnummer !== nedefinirano && mitgliedsnummer !== "" &&proof_of_business !== nedefinirano &&proof_of_business !== "") {siblingForm.find('.wpcf7-submit').click(); } } } }); body.on('change','input[name=proof_of_business]', function (e) { e.preventDefault(); let input = $(this); let group_wrapper = input.parents('.group-wrapper') ; let btn = group_wrapper.find('.btn-save'); if (input.val() !== "") { btn.removeClass('btn-disabled'); btn.prop('disabled', false ); } else { if (!btn.hasClass('btn-onemogućeno')) { btn.addClass('btn-onemogućeno'); } btn.prop('onemogućeno', istina); } }); body.on('输入剪切粘贴', '.tab-profile-kompanije 输入', funkcija (e) { let element = $(this); let tab = element.parents('.tab-profile-companies') ;让 form = element.parents('form'); 让 btn = form.find('.btn-save'); 让firmenname = $('.tab-profile-companies input[name=firmenname]'); 让firmenname_changed =firmenname.val() !==firmenname.data('value'); letfirmenname2 = $('.tab-profile-companies input[name=firmenname2]'); letfirmenname2_changed =firmenname2.val() !== Firmenname2 .data('value'); let strasse = $('.tab-profile-companies input[name=strasse]'); let strasse_changed = strasse.val() !== strasse.data('value'); neka postleitzahl = $('.tab-profile-companies input[name=postleitzahl]'); neka postleitzahl_changed = postleitzahl.val().toString() !== postleitzahl.data('value').toString(); neka ort = $('.tab-profile-companies input[name=ort]'); let ort_changed = ort.val() !== ort.data('value'); let Bundesland = $('.tab-profile - tvrtke input[name=bundesland]'); neka Bundesland_changed = Bundesland.val() !== Bundesland.data('value');让区域 = $('.tab-profile-companies input[name=region]') ; letregion_changed =region.val() !==region.data('value');让土地 = $('.tab-profile-companies input[name=land]');让 land_changed = land.val() != = land.data('value');让 file_upload_form = $(this).parents('.tab-profile-companies').find('#proof_of_business_form'); neka file_upload_field = file_upload_form.find('.business-register-file input[type=file]'); if (!firmenname_changed && !firmenname2_changed && !strasse_changed && !postleitzahl_changed && !ort_changed && !bundesland_changed && !region_changed && !land_changed) { file_upload_form.addClass('隐藏字段'); } file_upload_field.addClass('隐藏字段'); file_upload_field.prop('必需', false); } else { let memberno_field = file_upload_form.find('input[name=mitgliedsnummer]'); memberno_field.val($('.tab-profile-companies input[name=membershop_no]').val()); file_upload_form.removeClass('隐藏字段'); file_upload_field.removeClass('隐藏字段'); file_upload_field.prop('必需', true); } if ((!firmenname_changed && !firmenname2_changed && !strasse_changed && !postleitzahl_changed && !ort_changed && !bundesland_changed && !region_changed && !land_changed) || $('input[name=proof_of_business]').val() !== "" ) { btn.removeClass('btn-onemogućeno'); btn.prop('禁用', false); } else { if (!btn.hasClass('btn-disabled')) { btn.addClass('btn-disabled'); } } btn.prop('禁用', istina); } }); $('.crm-get-file').each(function (index) { let element = $(this); let btn_preview = element.find('a.btn.btn-primary.file-preview'); neka btn_download = element.find('a.btn.btn-primary.file-download'); $.ajax({ Typ: "POST", URL: Ajaxurl, Daten: { Aktion: "crm_get_file", crmGuid: element.data ("guid"), Typ: element.data("type") }, beforeSend: function () { }, Complete: function (response) { }, success: function (response) { if (response.src) { btn_preview .data('src', Response.src); btn_download.attr('href', Response.src); element.removeClass('hidden'); } else { element.remove(); } } }); }) ; body.on('change', '.confirm-deactivation', function (e) { e.preventDefault(); let check = $(this); let akcije = check.parents('.actions'); let btn = akcije.find('.btn'); neka info = akcije.find('span'); if (check.is(':checked')) { info.removeClass('隐藏'); btn.removeClass('禁用'); btn.removeClass('btn-onemogućeno'); btn.removeClass('btn-deaktiviranje-onemogućeno'); btn.addClass('btn-deaktiviranje'); } else { info.addClass('hidden'); btn.removeClass('btn-deaktiviraj'); btn.addClass('onemogućeno'); btn.addClass('btn-onemogućeno'); btn.addClass('btn-deaktiviranje-onemogućeno'); } }); body.on('click', '.btn-deactivate', function (e) { e.preventDefault(); let btn = $(this); let group_wrapper = btn.parents('.group_wrapper'); $.ajax ({ type: "POST", url: ajaxurl, data: { action: 'igz_crm_deactivate', crmGuid: btn.data('crmguid'), userEmail: btn.data('email') }, beforeSend: function () { group_wrapper.append('

Wird geladen...

'); group_wrapper.find('.loader-overlay').animate({"opacity": 1}, 300); },完成:函数(响应){ group_wrapper.find('.loader-overlay').animate({"opacity": 0}, 300); show_notification(response.responseJSON.msg, '成功'); setTimeout(function () { group_wrapper.find('.loader-overlay').remove(); }, 300); },成功:函数(响应){ } }); }); body.on('click', '.btn-invite', function (e) { e.preventDefault(); let element = $(this); let form = element.parents('form'); let formData = form .serializeArray(); neka group_wrapper = form.parent(); $.ajax({ type: "POST", url: ajaxurl, data: { action: 'igz_send_invitations', formData: formData }, beforeSend: function () { group_wrapper 。附加('

Wird geladen...

'); group_wrapper.find('.loader-overlay').animate({"opacity": 1}, 300); }, gotovo: funkcija(odgovor) { group_wrapper.find('.loader-overlay').animate ({"opacity": 0}, 300); neka is_only_button = element.is(':first-of-type') && element.is(':last-of-type'); element.attr("type" ) !== "checkbox" && !is_only_button ? element.css({"display": "none"}): false; show_notification(response.responseJSON.msg, 'success'); setTimeout(function () { group_wrapper.find ('.loader-overlay').remove(); }, 300); }, uspjeh: funkcija(odgovor) { } }); }); funkcija nadzorna ploča_save_data(element) { neka forma = element.parents('form' ); neka formData = form.serializeArray(); neka formDataChanged = []; neka parametri = []; neka group_wrapper = form.parent(); neka crmGuid = element.data("crmguid"); neka grupa = element.data ('group'); neka tip podataka = ""; neka vrijednost podataka = ""; if (element.data('group') === 'član') { for (let i = 0; i < formData.length ; i++) { let name = formData[i].name; } let value = formData[i].value; let dataField = form.find('input[name=' + name + ']'); let dataValue = dataField .data('value'); if (value !== dataValue) { formDataChanged.push(formData[i]); } } } neka firma = ""; neka anred = ""; neka vorname = ""; neka nachname = ""; neka avenue = ""; neka plz = ""; neka vidra = ""; if (element.hasClass('btn-distributor')) { dataType = "setDistributor"; } form-data = " "; form.attr('id', 'temp-active-form'); form.find('input[type=checkbox]').each(function (index) { let field = $(this); let value = field .attr('vrijednost'); if (vrijednost !== nedefinirano) { if (field.is(':checked')) { formData += formData === '' ? value : ',' + value; } else { dataValue += dataValue === '' ? value : ',' + Wert; } } }); Firma = form.find('input[name=firma]').val(); anrede = bilden. find( 'input[name=anrede]').val(); vorname = form.find('input[name=vorname]').val(); nachname = form.find('input[name=nachname]'). val(); strasse = form.find('input[name=strasse]').val(); plz = form.find('input[name=postleitzahl]').val(); ort = form. find( 'input[name=ort]').val(); } let email = form.find('input[type=email]').val(); let emailOld = form.find('input[type= email] ').data('vrijednost'); E-Mail = E-Mail! == nedefinirano && email! ==E-posta stara? Email: ""; let Privacy = form.find('label.checkbox.accept-privacy').data('value'); let action = "igz_crm_" + group + "_update"; jQuery.ajax({ type : "POST", url: ajaxurl, data: { action: akcija, crmGuid: crmGuid, formData: formData, datatype: dataType, firma: firma, anrede: anrede, vorname: vorname, nachname: nachname, strasse: strasse, plz : plz , ort: ort, dataValue: dataValue, args: args, request: element.data('request'), email: email, privatnost !== nedefinirano? privatnost: ""}, beforeSend : function () { group_wrapper. dodati('

Wird geladen...

'); group_wrapper.find('.loader-overlay').animate({"opacity": 1}, 300); }, complete: function (response) { group_wrapper.find('.loader-overlay').animate({"opacity": 0}, 300); let is_only_button = element.is(':first-of-type') && element.is(':last-of-type'); element.attr("type") !== "checkbox" && !is_only_button ? element.css({"display": "none"}) : false; group_wrapper.find('.actions .btn-cancel').css({"display": "none"}); group_wrapper.find('.actions .btn-edit').css({"display": "inline-flex"}); group_wrapper.find('.ttr-input').each(function () { let input = $(this); input.hasClass('always-focused') ? input.removeClass('always-focused') : false; }); show_notification(response.responseJSON.msg, 'success'); setTimeout(function () { group_wrapper.find('.loader-overlay').remove(); }, 300); form.attr('id', ''); }, success: function (response) { } }); }});//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlcyI6WyJjb250ZW50LWRhc2hib2FyZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuXG5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgkKSB7XG4gICAgbGV0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbiAgICBpZiAoIWJvZHkuaGFzQ2xhc3MoJ2xvZ2dlZC1pbicpKSB7XG4gICAgICAgIGxldCBhY3Rpb24gPSB1cmxQYXJhbXMuZ2V0KCdhY3Rpb24nKTtcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gXCJyZXNldFwiKSB7XG4gICAgICAgICAgICBib2R5LmFwcGVuZCgnPHNwYW4gY2xhc3M9XCJoaWRkZW5cIj48YSBjbGFzcz1cImxpZ2h0Ym94IGxpZ2h0Ym94LXBhc3N3b3JkLXJlc2V0XCIgZGF0YS11c2VyPVwiJyArIHVybFBhcmFtcy5nZXQoJ3VzZXInKSArICdcIiBkYXRhLXRva2VuPVwiJyArIHVybFBhcmFtcy5nZXQoJ3Rva2VuJykgKyAnXCI+PC9hPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgIGJvZHkuZmluZCgnLmxpZ2h0Ym94LmxpZ2h0Ym94LXBhc3N3b3JkLXJlc2V0JykuY2xpY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdyZWdpc3RlcicpIHtcbiAgICAgICAgICAgIGxldCBoaWRkZW5fbm90aWZpY2F0aW9uID0gYm9keS5maW5kKCcuaGlkZGVuLW5vdGlmaWNhdGlvbicpO1xuICAgICAgICAgICAgaWYgKGhpZGRlbl9ub3RpZmljYXRpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoaWRkZW5fbm90aWZpY2F0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNob3dfbm90aWZpY2F0aW9uKGhpZGRlbl9ub3RpZmljYXRpb24udGV4dCgpLCBoaWRkZW5fbm90aWZpY2F0aW9uLmRhdGEoJ3R5cGUnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYoYm9keS5oYXNDbGFzcygncGFnZS10ZW1wbGF0ZS1teWlnei1kYXNoYm9hcmQnKSkge1xuICAgICAgICBjb25zdCBuYXZCdXR0b24gPSAkKCcubW9iaWxlLW5hdi1idXR0b246Zmlyc3QnKTtcbiAgICAgICAgY29uc3QgaWd6QnV0dG9uID0gbmF2QnV0dG9uLmNsb25lKCk7XG4gICAgICAgIGlnekJ1dHRvbi5hdHRyKCdpZCcsICdteWlnei1tb2JpbGUtYnV0dG9uJyk7XG4gICAgICAgIGlnekJ1dHRvbi5odG1sKCc8YSBocmVmPVwiI1wiPjxpIGNsYXNzPVwiZmEgZmEtcmVndWxhciBmYS1jaXJjbGUtdXNlclwiPjwvaT48L2E+Jyk7XG4gICAgICAgIGlnekJ1dHRvbi5pbnNlcnRCZWZvcmUobmF2QnV0dG9uKTtcbiAgICAgICAgaWd6QnV0dG9uLm9uKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBib2R5LmFkZENsYXNzKCdteWlnei1tZW51LWFjdGl2ZScpO1xuICAgICAgICAgICAgJCgnLm92ZXJsYXktbW9iaWxlLW5hdicpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbXlJR1pCdXR0b24gPSAkKCcjYnRuLW15aWd6LW1vYmlsZScpO1xuICAgICAgICBteUlHWkJ1dHRvbi5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgaWd6QnV0dG9uLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICQoJyNidG4tbXlpZ3otaGVhZGVyJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG5cbiAgICAgICAgICAgIGlmKHdpbmRvd1dpZHRoIDwgMTAyNCB8fCBpZ3pCdXR0b24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWd6QnV0dG9uLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IG5hdiA9ICQoJyNzZWN0aW9uLWRhc2hib2FyZCA+IC5jb250YWluZXIgPiBuYXYuY29sJyk7XG4gICAgICAgIG5hdi5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnaGFzLXN1Yi10YWJzJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5uZXh0KCkuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9keS5yZW1vdmVDbGFzcygnbXlpZ3otbWVudS1hY3RpdmUgbW9iaWxlLW5hdi1hY3RpdmUnKTtcbiAgICAgICAgICAgICQoJy5vdmVybGF5LW1vYmlsZS1uYXYnKS5hZGQobmF2QnV0dG9uWzBdLmZpcnN0Q2hpbGQpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkYXNoYm9hcmQtdGFiJykpIHtcbiAgICAgICAgbGV0IHRhYmJlZCA9IGJvZHkuZmluZCgnI3NlY3Rpb24tZGFzaGJvYXJkID4gLnRhYmJlZCcpO1xuICAgICAgICBsZXQgdGFiYmVkX2NsYXNzZXMgPSB0YWJiZWQuYXR0cignY2xhc3MnKS5zcGxpdChcIiBcIik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFiYmVkX2NsYXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0YWJiZWRfY2xhc3Nlc1tpXS5pbmRleE9mKCd0YWItJykgPj0gMCkge1xuICAgICAgICAgICAgICAgIHRhYmJlZF9jbGFzc2VzW2ldID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Rhc2hib2FyZC10YWInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0YWJiZWQuYXR0cignY2xhc3MnLCB0YWJiZWRfY2xhc3Nlcy5qb2luKCcgJykpO1xuICAgIH1cblxuICAgIC8vIHJlZGlyZWN0cyBpZS4gL215aWd6LyN0YWItc2hvcC1jYXJ0IHRvIGNvcmVzcG9uZGluZyB0YWJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyKDEsMyk9PVwidGFiXCIpIHtcbiAgICAgICAgbGV0IHRhYj13aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSk7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJChcIltkYXRhLXRhYj0nXCIrdGFiK1wiJ11cIikuY2xpY2soKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICBib2R5Lm9uKCdjbGljaycsICcuYnRuLWVkaXQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGxldCBidG4gPSAkKHRoaXMpO1xuICAgICAgICBsZXQgZ3JvdXAgPSBidG4uZGF0YSgnZ3JvdXAnKTtcbiAgICAgICAgbGV0IGdyb3VwX3dyYXBwZXIgPSBidG4ucGFyZW50cygnLmdyb3VwLXdyYXBwZXInKTtcblxuICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy50dHItaW5wdXQnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBpbnB1dCA9ICQodGhpcyk7XG4gICAgICAgICAgICAhaW5wdXQuaGFzQ2xhc3MoJ2Fsd2F5cy1mb2N1c2VkJykgPyBpbnB1dC5hZGRDbGFzcygnYWx3YXlzLWZvY3VzZWQnKSA6IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBidG4uY3NzKHtcImRpc3BsYXlcIjogXCJub25lXCJ9KTtcbiAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcuYWN0aW9ucyAuYnRuLXNhdmUnKS5jc3Moe1wiZGlzcGxheVwiOiBcImlubGluZS1mbGV4XCJ9KTtcbiAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcuYWN0aW9ucyAuYnRuLWNhbmNlbCcpLmNzcyh7XCJkaXNwbGF5XCI6IFwiaW5saW5lLWZsZXhcIn0pO1xuICAgIH0pO1xuXG4gICAgYm9keS5vbignY2xpY2snLCAnLmJ0bi1jYW5jZWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGxldCBidG4gPSAkKHRoaXMpO1xuICAgICAgICBsZXQgZ3JvdXAgPSBidG4uZGF0YSgnZ3JvdXAnKTtcbiAgICAgICAgbGV0IGdyb3VwX3dyYXBwZXIgPSBidG4ucGFyZW50cygnLmdyb3VwLXdyYXBwZXInKTtcblxuICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy50dHItaW5wdXQnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBpbnB1dCA9ICQodGhpcyk7XG4gICAgICAgICAgICBpbnB1dC5yZW1vdmVDbGFzcygnYWx3YXlzLWZvY3VzZWQnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnRuLmNzcyh7XCJkaXNwbGF5XCI6IFwibm9uZVwifSk7XG4gICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLmFjdGlvbnMgLmJ0bi1zYXZlJykuY3NzKHtcImRpc3BsYXlcIjogXCJub25lXCJ9KTtcbiAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcuYWN0aW9ucyAuYnRuLWVkaXQnKS5jc3Moe1wiZGlzcGxheVwiOiBcImlubGluZS1mbGV4XCJ9KTtcbiAgICB9KTtcblxuICAgIGJvZHkub24oJ2NsaWNrJywgJy50YWJiZWQgbmF2IC50YWInLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgbGV0IG5ld190YWIgPSAkKHRoaXMpLmRhdGEoJ3RhYicpO1xuICAgICAgICBsZXQgdGFiYmVkID0gYm9keS5maW5kKCcjc2VjdGlvbi1kYXNoYm9hcmQgPiAudGFiYmVkJyk7XG4gICAgICAgIGxldCB0YWJiZWRfY2xhc3NlcyA9IHRhYmJlZC5hdHRyKCdjbGFzcycpLnNwbGl0KFwiIFwiKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJiZWRfY2xhc3Nlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRhYmJlZF9jbGFzc2VzW2ldLmluZGV4T2YoJ3RhYi0nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGFiYmVkX2NsYXNzZXNbaV0gPSBuZXdfdGFiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRhYmJlZC5hdHRyKCdjbGFzcycsIHRhYmJlZF9jbGFzc2VzLmpvaW4oJyAnKSk7XG4gICAgfSk7XG5cbiAgICBib2R5Lm9uKCdpbnB1dCBjdXQgcGFzdGUnLCAnLmVtYWlsLWZpZWxkIGlucHV0W3R5cGU9ZW1haWxdJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBsZXQgZmllbGQgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgdmFsID0gZmllbGQudmFsKCk7XG4gICAgICAgIGxldCBvbGRWYWwgPSBmaWVsZC5kYXRhKCd2YWx1ZScpO1xuICAgICAgICBsZXQgd3JhcHBlciA9IGZpZWxkLnBhcmVudHMoJy5ncm91cC13cmFwcGVyJyk7XG4gICAgICAgIGxldCByZXBlYXRGaWVsZCA9IHdyYXBwZXIuZmluZCgnaW5wdXRbbmFtZT1lbWFpbF9yZXBlYXRdJyk7XG5cbiAgICAgICAgaWYgKHZhbCAhPT0gb2xkVmFsKSB7XG4gICAgICAgICAgICByZXBlYXRGaWVsZC5wcm9wKCdyZXF1aXJlZCcsdHJ1ZSk7XG4gICAgICAgICAgICByZXBlYXRGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykucmVtb3ZlQ2xhc3MoJ2hpZGRlbi1maWVsZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVwZWF0RmllbGQucHJvcCgncmVxdWlyZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICBsZXQgcmVwZWF0RmllbGRXcmFwcGVyID0gcmVwZWF0RmllbGQucGFyZW50cygnLnR0ci1pbnB1dCcpO1xuICAgICAgICAgICAgaWYgKCFyZXBlYXRGaWVsZFdyYXBwZXIuaGFzQ2xhc3MoJ2hpZGRlbi1maWVsZCcpKSB7XG4gICAgICAgICAgICAgICAgcmVwZWF0RmllbGRXcmFwcGVyLmFkZENsYXNzKCdoaWRkZW4tZmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgYm9keS5vbignY2xpY2snLCAnLmJ0bi1ldmVudC1wYXJ0aWNpcGF0ZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IGJ0biA9ICQodGhpcyk7XG4gICAgICAgIGxldCBncm91cF93cmFwcGVyID0gYnRuLnBhcmVudHMoJy5ncm91cF93cmFwcGVyJyk7XG4gICAgICAgIGxldCBldmVudF9pZCA9IGJ0bi5kYXRhKFwiZXZlbnQtaWRcIik7XG4gICAgICAgIGxldCBjb250YWN0X2lkID0gYnRuLmRhdGEoXCJjb250YWN0LWlkXCIpO1xuICAgICAgICBsZXQgcGFydGljaXBhbnRfaWQgPSBidG4uZGF0YShcImlkXCIpO1xuXG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB0eXBlOiBcIlBPU1RcIixcbiAgICAgICAgICAgIHVybDogYWpheHVybCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb246IFwiaWd6X2NybV9ldmVudHNfcGFydGljaXBhdGVcIixcbiAgICAgICAgICAgICAgICBldmVudF9pZDogZXZlbnRfaWQsXG4gICAgICAgICAgICAgICAgY29udGFjdF9pZDogY29udGFjdF9pZCxcbiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudF9pZDogcGFydGljaXBhbnRfaWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5hcHBlbmQoJzxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheVwiPjxkaXYgY2xhc3M9XCJsb2FkZXJcIj5Mb2FkaW5nLi4uPC9kaXY+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcubG9hZGVyLW92ZXJsYXknKS5hbmltYXRlKHtcIm9wYWNpdHlcIjogMX0sIDMwMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLmxvYWRlci1vdmVybGF5JykuYW5pbWF0ZSh7XCJvcGFjaXR5XCI6IDB9LCAzMDApO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLmxvYWRlci1vdmVybGF5JykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBzaG93X25vdGlmaWNhdGlvbihyZXNwb25zZS5tc2csIHJlc3BvbnNlLnJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYm9keS5maW5kKCdpbnB1dFtuYW1lPW1haW5PZmZpY2VJZF0nKS52YWwoYm9keS5maW5kKCdpbnB1dFtuYW1lPXByZWZpbGxfbWFpbk9mZmljZUlkXScpLnZhbCgpKTtcbiAgICBib2R5LmZpbmQoJy5wYWdlLXRlbXBsYXRlLW15aWd6LWRhc2hib2FyZCBpbnB1dFtuYW1lPWVtYWlsXScpLmVhY2goZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgbGV0IGVtYWlsX2ZpZWxkID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IHBhcmVudHMgPSBlbWFpbF9maWVsZC5wYXJlbnRzKCcudGFiLXByb2ZpbGUtZW1wbG95ZWVzLCAudGFiLXByb2ZpbGUtY29tcGFuaWVzJyk7XG4gICAgICAgIGlmICghcGFyZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGVtYWlsX2ZpZWxkLnZhbChib2R5LmZpbmQoJ2lucHV0W25hbWU9cHJlZmlsbF9lbWFpbF0nKS52YWwoKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBib2R5LmZpbmQoJ2lucHV0W25hbWU9dG9rZW5dJykudmFsKGJvZHkuZmluZCgnaW5wdXRbbmFtZT1wcmVmaWxsX3Rva2VuXScpLnZhbCgpKTtcbiAgICBib2R5LmZpbmQoJ2lucHV0W25hbWU9dW50ZXJuZWhtZW5dJykudmFsKGJvZHkuZmluZCgnaW5wdXRbbmFtZT1wcmVmaWxsX2Zpcm1lbm5hbWVdJykudmFsKCkpO1xuICAgIGJvZHkuZmluZCgnaW5wdXRbbmFtZT1taXRnbGllZHNudW1tZXJdJykudmFsKGJvZHkuZmluZCgnaW5wdXRbbmFtZT1wcmVmaWxsX21lbWJlcl9ub10nKS52YWwoKSk7XG4gICAgYm9keS5maW5kKCdpbnB1dFtuYW1lPXVzZXJpZF0nKS52YWwoK2JvZHkuZmluZCgnc3BhbiNVc2VySUQnKS50ZXh0KCkpO1xuXG4gICAgYm9keS5vbignY2xpY2snLCAnI3VwbG9hZC1zZXBhLW1hbmRhdGUgLmJ0bi1zZXBhLW1hbmRhdGUnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IGJ0biA9ICQodGhpcyk7XG4gICAgICAgIGxldCBmb3JtID0gYnRuLnBhcmVudCgpO1xuICAgICAgICBsZXQgd3JhcHBlciA9IGZvcm0ucGFyZW50KCk7XG5cbiAgICAgICAgbGV0IGZpbGUgPSB3cmFwcGVyLmZpbmQoJ2lucHV0W3R5cGU9ZmlsZV0nKTtcbiAgICAgICAgaWYgKGZpbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKGZpbGUudmFsKCkgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBsZXQgd3JhcHBlciA9IGZvcm0ucGFyZW50KCk7XG4gICAgICAgICAgICAgICAgbGV0IGNmNyA9IHdyYXBwZXIuZmluZCgnLndwY2Y3LWZvcm0nKTtcbiAgICAgICAgICAgICAgICBjZjcuZmluZCgnaW5wdXRbbmFtZT1taXRnbGllZHNudW1tZXJdJykudmFsKGZvcm0uZmluZCgnaW5wdXRbbmFtZT1tZW1iZXJfbm9dJykudmFsKCkpO1xuICAgICAgICAgICAgICAgIGNmNy5maW5kKCcud3BjZjctc3VibWl0JykuY2xpY2soKTtcbiAgICAgICAgICAgICAgICBzaG93X25vdGlmaWNhdGlvbignRGF0ZWkgd3VyZGUgZ2VzZW5kZXQnLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzaG93X25vdGlmaWNhdGlvbignQml0dGUgd8OkaGxlbiBTaWUgZWluZSBEYXRlaSBhdXMhJywgJ2Vycm9yJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgY2Y3ID0gd3JhcHBlci5maW5kKCcud3BjZjctZm9ybScpO1xuICAgICAgICAgICAgY2Y3LmZpbmQoJy53cGNmNy1zdWJtaXQnKS5jbGljaygpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBib2R5Lm9uKCd3cGNmN21haWxzZW50JywgJyNzZXBhLW1hbmRhdGUtZm9ybScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHNob3dfbm90aWZpY2F0aW9uKCdNYW5kYXQgd3VyZGUgZ2VzZW5kZXQnLCAnc3VjY2VzcycpO1xuICAgIH0pO1xuXG4gICAgYm9keS5vbignY2xpY2snLCAnLmJ0bi1zYXZlJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBsZXQgYnRuID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IGZvcm0gPSBidG4ucGFyZW50cygnZm9ybScpO1xuICAgICAgICBsZXQgc2VuZEVtYWlscyA9IFtdO1xuXG4gICAgICAgIGxldCBwYXNzMSA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1wYXNzd29yZF0nKTtcbiAgICAgICAgbGV0IHBhc3MyID0gZm9ybS5maW5kKCdpbnB1dFtuYW1lPXBhc3N3b3JkX3JlcGVhdF0nKTtcbiAgICAgICAgbGV0IGhhc1Bhc3N3b3JkRmllbGRzID0gcGFzczEgJiYgcGFzczI7XG5cbiAgICAgICAgbGV0IGVtYWlsMSA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1lbWFpbF0nKTtcbiAgICAgICAgbGV0IGVtYWlsMiA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1lbWFpbF9yZXBlYXRdJyk7XG4gICAgICAgIGxldCBoYXNFbWFpbEZpZWxkcyA9IGVtYWlsMSAmJiBlbWFpbDI7XG5cbiAgICAgICAgbGV0IGZpcm1lbm5hbWUgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9ZmlybWVubmFtZV0nKTtcbiAgICAgICAgaWYgKGZpcm1lbm5hbWUudmFsKCkgIT09IGZpcm1lbm5hbWUuZGF0YSgndmFsJykpIHtcbiAgICAgICAgICAgIHNlbmRFbWFpbHMucHVzaCgnZmlybWVubmFtZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvcm1fdmFsaWQgPSBmb3JtLnZhbGlkKCk7XG4gICAgICAgIGxldCBwYXNzX3ZhbGlkID0gIWhhc1Bhc3N3b3JkRmllbGRzIHx8IGhhc1Bhc3N3b3JkRmllbGRzLmxlbmd0aCA9PT0gMCB8fCAoaGFzUGFzc3dvcmRGaWVsZHMgJiYgKHBhc3MxLm5leHQoJ3AnKS5oYXNDbGFzcygnc3Ryb25nLXBhc3N3b3JkJykgJiYgcGFzczEudmFsKCkgPT09IHBhc3MyLnZhbCgpKSk7XG4gICAgICAgIGxldCBtYWlsX3ZhbGlkID0gIWhhc0VtYWlsRmllbGRzIHx8IGhhc0VtYWlsRmllbGRzLmxlbmd0aCA9PT0gMCB8fCAoaGFzRW1haWxGaWVsZHMgJiYgZW1haWwxLnZhbCgpID09PSBlbWFpbDIudmFsKCkpO1xuXG4gICAgICAgIGlmIChidG4uaGFzQ2xhc3MoJ2J0bi1jaGFuZ2UtcGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgbGV0IHBhc3N3b3JkT2xkRmllbGQgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9cGFzc3dvcmRfb2xkJyk7XG4gICAgICAgICAgICBsZXQgcGFzc3dvcmROZXdGaWVsZCA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1wYXNzd29yZCcpO1xuICAgICAgICAgICAgbGV0IHBhc3N3b3JkTmV3UmVwZWF0RmllbGQgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9cGFzc3dvcmRfcmVwZWF0Jyk7XG5cbiAgICAgICAgICAgIGlmIChwYXNzd29yZE9sZEZpZWxkLnZhbCgpID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmRPbGRGaWVsZC5hZGRDbGFzcygnZXJyb3InKTtcbiAgICAgICAgICAgICAgICBwYXNzd29yZE9sZEZpZWxkLnBhcmVudHMoJy50dHItaW5wdXQnKS5hZGRDbGFzcygnZXJyb3InKTtcbiAgICAgICAgICAgICAgICBmb3JtX3ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3RmllbGQucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmRPbGRGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXNzd29yZE5ld0ZpZWxkLnZhbCgpID09PSBcIlwiIHx8IHBhc3N3b3JkTmV3RmllbGQubmV4dCgnLnN0cmVuZ3RoLnN0cm9uZy1wYXNzd29yZCcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3RmllbGQuYWRkQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmROZXdGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykuYWRkQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmROZXdGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykuZGF0YSgncGxhY2Vob2xkZXInLCAnTmV1ZXMgUGFzc3dvcnQgaXN0IHp1IHVuc2ljaGVyJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmROZXdGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykuYXR0cignZGF0YS1wbGFjZWhvbGRlcicsICdOZXVlcyBQYXNzd29ydCBpc3QgenUgdW5zaWNoZXInKTtcbiAgICAgICAgICAgICAgICBmb3JtX3ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3RmllbGQucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmROZXdGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXNzd29yZE5ld1JlcGVhdEZpZWxkLnZhbCgpID09PSBcIlwiIHx8IHBhc3N3b3JkTmV3UmVwZWF0RmllbGQudmFsKCkgIT09IHBhc3N3b3JkTmV3RmllbGQudmFsKCkpIHtcbiAgICAgICAgICAgICAgICBwYXNzd29yZE5ld1JlcGVhdEZpZWxkLmFkZENsYXNzKCdlcnJvcicpO1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3UmVwZWF0RmllbGQucGFyZW50cygnLnR0ci1pbnB1dCcpLmFkZENsYXNzKCdlcnJvcicpO1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3UmVwZWF0RmllbGQucGFyZW50cygnLnR0ci1pbnB1dCcpLmRhdGEoJ3BsYWNlaG9sZGVyJywgJ1Bhc3N3w7ZydGVyIHN0aW1tZW4gbmljaHQgw7xiZXJlaW4nKTtcbiAgICAgICAgICAgICAgICBwYXNzd29yZE5ld1JlcGVhdEZpZWxkLnBhcmVudHMoJy50dHItaW5wdXQnKS5hdHRyKCdkYXRhLXBsYWNlaG9sZGVyJywgJ1Bhc3N3w7ZydGVyIHN0aW1tZW4gbmljaHQgw7xiZXJlaW4nKTtcbiAgICAgICAgICAgICAgICBmb3JtX3ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkTmV3UmVwZWF0RmllbGQucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmROZXdSZXBlYXRGaWVsZC5wYXJlbnRzKCcudHRyLWlucHV0JykucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBlcnJvcl90eHQgPSBmb3JtLnBhcmVudHMoJy5ncm91cC13cmFwcGVyJykuZmluZCgnPiBwJyk7XG4gICAgICAgICAgICBpZiAoIWZvcm1fdmFsaWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yX3R4dC5oYXNDbGFzcygnZXJyb3InKSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcl90eHQuYWRkQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlcnJvcl90eHQucmVtb3ZlQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm9ybV92YWxpZCkge1xuICAgICAgICAgICAgZGFzaGJvYXJkX3NhdmVfZGF0YShidG4sIHNlbmRFbWFpbHMpO1xuXG4gICAgICAgICAgICBsZXQgc2libGluZ0Zvcm0gPSBmb3JtLnBhcmVudCgpLmZpbmQoJyNwcm9vZl9vZl9idXNpbmVzc19mb3JtJyk7XG4gICAgICAgICAgICBpZiAoc2libGluZ0Zvcm0ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1pdGdsaWVkc251bW1lciA9IHNpYmxpbmdGb3JtLmZpbmQoJ2lucHV0W25hbWU9bWl0Z2xpZWRzbnVtbWVyXScpLnZhbCgpO1xuICAgICAgICAgICAgICAgIGxldCBwcm9vZl9vZl9idXNpbmVzcyA9IHNpYmxpbmdGb3JtLmZpbmQoJ2lucHV0W25hbWU9cHJvb2Zfb2ZfYnVzaW5lc3NdJykudmFsKCk7XG4gICAgICAgICAgICAgICAgaWYgKG1pdGdsaWVkc251bW1lciAhPT0gdW5kZWZpbmVkICYmIG1pdGdsaWVkc251bW1lciAhPT0gXCJcIiAmJiBwcm9vZl9vZl9idXNpbmVzcyAhPT0gdW5kZWZpbmVkICYmIHByb29mX29mX2J1c2luZXNzICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHNpYmxpbmdGb3JtLmZpbmQoJy53cGNmNy1zdWJtaXQnKS5jbGljaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgYm9keS5vbignY2hhbmdlJywnaW5wdXRbbmFtZT1wcm9vZl9vZl9idXNpbmVzc10nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGxldCBpbnB1dCA9ICQodGhpcyk7XG4gICAgICAgIGxldCBncm91cF93cmFwcGVyID0gaW5wdXQucGFyZW50cygnLmdyb3VwLXdyYXBwZXInKTtcbiAgICAgICAgbGV0IGJ0biA9IGdyb3VwX3dyYXBwZXIuZmluZCgnLmJ0bi1zYXZlJyk7XG5cbiAgICAgICAgaWYgKGlucHV0LnZhbCgpICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBidG4ucmVtb3ZlQ2xhc3MoJ2J0bi1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgYnRuLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFidG4uaGFzQ2xhc3MoJ2J0bi1kaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgYnRuLmFkZENsYXNzKCdidG4tZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ0bi5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBib2R5Lm9uKCdpbnB1dCBjdXQgcGFzdGUnLCAnLnRhYi1wcm9maWxlLWNvbXBhbmllcyBpbnB1dCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgbGV0IHRhYiA9IGVsZW1lbnQucGFyZW50cygnLnRhYi1wcm9maWxlLWNvbXBhbmllcycpO1xuICAgICAgICBsZXQgZm9ybSA9IGVsZW1lbnQucGFyZW50cygnZm9ybScpO1xuICAgICAgICBsZXQgYnRuID0gZm9ybS5maW5kKCcuYnRuLXNhdmUnKTtcbiAgICAgICAgbGV0IGZpcm1lbm5hbWUgPSAkKCcudGFiLXByb2ZpbGUtY29tcGFuaWVzIGlucHV0W25hbWU9ZmlybWVubmFtZV0nKTtcbiAgICAgICAgbGV0IGZpcm1lbm5hbWVfY2hhbmdlZCA9IGZpcm1lbm5hbWUudmFsKCkgIT09IGZpcm1lbm5hbWUuZGF0YSgndmFsdWUnKTtcbiAgICAgICAgbGV0IGZpcm1lbm5hbWUyID0gJCgnLnRhYi1wcm9maWxlLWNvbXBhbmllcyBpbnB1dFtuYW1lPWZpcm1lbm5hbWUyXScpO1xuICAgICAgICBsZXQgZmlybWVubmFtZTJfY2hhbmdlZCA9IGZpcm1lbm5hbWUyLnZhbCgpICE9PSBmaXJtZW5uYW1lMi5kYXRhKCd2YWx1ZScpO1xuICAgICAgICBsZXQgc3RyYXNzZSA9ICQoJy50YWItcHJvZmlsZS1jb21wYW5pZXMgaW5wdXRbbmFtZT1zdHJhc3NlXScpO1xuICAgICAgICBsZXQgc3RyYXNzZV9jaGFuZ2VkID0gc3RyYXNzZS52YWwoKSAhPT0gc3RyYXNzZS5kYXRhKCd2YWx1ZScpO1xuICAgICAgICBsZXQgcG9zdGxlaXR6YWhsID0gJCgnLnRhYi1wcm9maWxlLWNvbXBhbmllcyBpbnB1dFtuYW1lPXBvc3RsZWl0emFobF0nKTtcbiAgICAgICAgbGV0IHBvc3RsZWl0emFobF9jaGFuZ2VkID0gcG9zdGxlaXR6YWhsLnZhbCgpLnRvU3RyaW5nKCkgIT09IHBvc3RsZWl0emFobC5kYXRhKCd2YWx1ZScpLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBvcnQgPSAkKCcudGFiLXByb2ZpbGUtY29tcGFuaWVzIGlucHV0W25hbWU9b3J0XScpO1xuICAgICAgICBsZXQgb3J0X2NoYW5nZWQgPSBvcnQudmFsKCkgIT09IG9ydC5kYXRhKCd2YWx1ZScpO1xuICAgICAgICBsZXQgYnVuZGVzbGFuZCA9ICQoJy50YWItcHJvZmlsZS1jb21wYW5pZXMgaW5wdXRbbmFtZT1idW5kZXNsYW5kXScpO1xuICAgICAgICBsZXQgYnVuZGVzbGFuZF9jaGFuZ2VkID0gYnVuZGVzbGFuZC52YWwoKSAhPT0gYnVuZGVzbGFuZC5kYXRhKCd2YWx1ZScpO1xuICAgICAgICBsZXQgcmVnaW9uID0gJCgnLnRhYi1wcm9maWxlLWNvbXBhbmllcyBpbnB1dFtuYW1lPXJlZ2lvbl0nKTtcbiAgICAgICAgbGV0IHJlZ2lvbl9jaGFuZ2VkID0gcmVnaW9uLnZhbCgpICE9PSByZWdpb24uZGF0YSgndmFsdWUnKTtcbiAgICAgICAgbGV0IGxhbmQgPSAkKCcudGFiLXByb2ZpbGUtY29tcGFuaWVzIGlucHV0W25hbWU9bGFuZF0nKTtcbiAgICAgICAgbGV0IGxhbmRfY2hhbmdlZCA9IGxhbmQudmFsKCkgIT09IGxhbmQuZGF0YSgndmFsdWUnKTtcblxuICAgICAgICBsZXQgZmlsZV91cGxvYWRfZm9ybSA9ICQodGhpcykucGFyZW50cygnLnRhYi1wcm9maWxlLWNvbXBhbmllcycpLmZpbmQoJyNwcm9vZl9vZl9idXNpbmVzc19mb3JtJyk7XG4gICAgICAgIGxldCBmaWxlX3VwbG9hZF9maWVsZCA9IGZpbGVfdXBsb2FkX2Zvcm0uZmluZCgnLmJ1c2luZXNzLXJlZ2lzdGVyLWZpbGUgaW5wdXRbdHlwZT1maWxlXScpO1xuICAgICAgICBpZiAoIWZpcm1lbm5hbWVfY2hhbmdlZCAmJiAhZmlybWVubmFtZTJfY2hhbmdlZCAmJiAhc3RyYXNzZV9jaGFuZ2VkICYmICFwb3N0bGVpdHphaGxfY2hhbmdlZCAmJiAhb3J0X2NoYW5nZWQgJiYgIWJ1bmRlc2xhbmRfY2hhbmdlZCAmJiAhcmVnaW9uX2NoYW5nZWQgJiYgIWxhbmRfY2hhbmdlZCkge1xuICAgICAgICAgICAgZmlsZV91cGxvYWRfZm9ybS5hZGRDbGFzcygnaGlkZGVuLWZpZWxkJyk7XG4gICAgICAgICAgICBmaWxlX3VwbG9hZF9maWVsZC5hZGRDbGFzcygnaGlkZGVuLWZpZWxkJyk7XG4gICAgICAgICAgICBmaWxlX3VwbG9hZF9maWVsZC5wcm9wKCdyZXF1aXJlZCcsIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtZW1iZXJub19maWVsZCA9IGZpbGVfdXBsb2FkX2Zvcm0uZmluZCgnaW5wdXRbbmFtZT1taXRnbGllZHNudW1tZXJdJyk7XG4gICAgICAgICAgICBtZW1iZXJub19maWVsZC52YWwoJCgnLnRhYi1wcm9maWxlLWNvbXBhbmllcyBpbnB1dFtuYW1lPW1lbWJlcnNob3Bfbm9dJykudmFsKCkpO1xuICAgICAgICAgICAgZmlsZV91cGxvYWRfZm9ybS5yZW1vdmVDbGFzcygnaGlkZGVuLWZpZWxkJyk7XG4gICAgICAgICAgICBmaWxlX3VwbG9hZF9maWVsZC5yZW1vdmVDbGFzcygnaGlkZGVuLWZpZWxkJyk7XG4gICAgICAgICAgICBmaWxlX3VwbG9hZF9maWVsZC5wcm9wKCdyZXF1aXJlZCcsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCghZmlybWVubmFtZV9jaGFuZ2VkICYmICFmaXJtZW5uYW1lMl9jaGFuZ2VkICYmICFzdHJhc3NlX2NoYW5nZWQgJiYgIXBvc3RsZWl0emFobF9jaGFuZ2VkICYmICFvcnRfY2hhbmdlZCAmJiAhYnVuZGVzbGFuZF9jaGFuZ2VkICYmICFyZWdpb25fY2hhbmdlZCAmJiAhbGFuZF9jaGFuZ2VkKSB8fCAkKCdpbnB1dFtuYW1lPXByb29mX29mX2J1c2luZXNzXScpLnZhbCgpICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBidG4ucmVtb3ZlQ2xhc3MoJ2J0bi1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgYnRuLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFidG4uaGFzQ2xhc3MoJ2J0bi1kaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgYnRuLmFkZENsYXNzKCdidG4tZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ0bi5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKCcuY3JtLWdldC1maWxlJykuZWFjaChmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgYnRuX3ByZXZpZXcgPSBlbGVtZW50LmZpbmQoJ2EuYnRuLmJ0bi1wcmltYXJ5LmZpbGUtcHJldmlldycpO1xuICAgICAgICBsZXQgYnRuX2Rvd25sb2FkID0gZWxlbWVudC5maW5kKCdhLmJ0bi5idG4tcHJpbWFyeS5maWxlLWRvd25sb2FkJyk7XG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB0eXBlOiBcIlBPU1RcIixcbiAgICAgICAgICAgIHVybDogYWpheHVybCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb246IFwiY3JtX2dldF9maWxlXCIsXG4gICAgICAgICAgICAgICAgY3JtR3VpZDogZWxlbWVudC5kYXRhKFwiZ3VpZFwiKSxcbiAgICAgICAgICAgICAgICB0eXBlOiBlbGVtZW50LmRhdGEoXCJ0eXBlXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmVmb3JlU2VuZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ0bl9wcmV2aWV3LmRhdGEoJ3NyYycsIHJlc3BvbnNlLnNyYyk7XG4gICAgICAgICAgICAgICAgICAgIGJ0bl9kb3dubG9hZC5hdHRyKCdocmVmJywgcmVzcG9uc2Uuc3JjKTtcblxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBib2R5Lm9uKCdjaGFuZ2UnLCAnLmNvbmZpcm0tZGVhY3RpdmF0aW9uJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBsZXQgY2hlY2sgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgYWN0aW9ucyA9IGNoZWNrLnBhcmVudHMoJy5hY3Rpb25zJyk7XG4gICAgICAgIGxldCBidG4gPSBhY3Rpb25zLmZpbmQoJy5idG4nKTtcbiAgICAgICAgbGV0IGluZm8gPSBhY3Rpb25zLmZpbmQoJ3NwYW4nKTtcbiAgICAgICAgaWYgKGNoZWNrLmlzKCc6Y2hlY2tlZCcpKSB7XG4gICAgICAgICAgICBpbmZvLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIGJ0bi5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIGJ0bi5yZW1vdmVDbGFzcygnYnRuLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBidG4ucmVtb3ZlQ2xhc3MoJ2J0bi1kZWFjdGl2YXRlLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBidG4uYWRkQ2xhc3MoJ2J0bi1kZWFjdGl2YXRlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmZvLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIGJ0bi5yZW1vdmVDbGFzcygnYnRuLWRlYWN0aXZhdGUnKTtcbiAgICAgICAgICAgIGJ0bi5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIGJ0bi5hZGRDbGFzcygnYnRuLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBidG4uYWRkQ2xhc3MoJ2J0bi1kZWFjdGl2YXRlLWRpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGJvZHkub24oJ2NsaWNrJywgJy5idG4tZGVhY3RpdmF0ZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IGJ0biA9ICQodGhpcyk7XG4gICAgICAgIGxldCBncm91cF93cmFwcGVyID0gYnRuLnBhcmVudHMoJy5ncm91cF93cmFwcGVyJyk7XG5cbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHR5cGU6IFwiUE9TVFwiLFxuICAgICAgICAgICAgdXJsOiBhamF4dXJsLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogJ2lnel9jcm1fZGVhY3RpdmF0ZScsXG4gICAgICAgICAgICAgICAgY3JtR3VpZDogYnRuLmRhdGEoJ2NybWd1aWQnKSxcbiAgICAgICAgICAgICAgICB1c2VyRW1haWw6IGJ0bi5kYXRhKCdlbWFpbCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmVmb3JlU2VuZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuYXBwZW5kKCc8ZGl2IGNsYXNzPVwibG9hZGVyLW92ZXJsYXlcIj48ZGl2IGNsYXNzPVwibG9hZGVyXCI+TG9hZGluZy4uLjwvZGl2PjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLmxvYWRlci1vdmVybGF5JykuYW5pbWF0ZSh7XCJvcGFjaXR5XCI6IDF9LCAzMDApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy5sb2FkZXItb3ZlcmxheScpLmFuaW1hdGUoe1wib3BhY2l0eVwiOiAwfSwgMzAwKTtcblxuICAgICAgICAgICAgICAgIHNob3dfbm90aWZpY2F0aW9uKHJlc3BvbnNlLnJlc3BvbnNlSlNPTi5tc2csICdzdWNjZXNzJyk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcubG9hZGVyLW92ZXJsYXknKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGJvZHkub24oJ2NsaWNrJywgJy5idG4taW52aXRlJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgICAgIGxldCBmb3JtID0gZWxlbWVudC5wYXJlbnRzKCdmb3JtJyk7XG4gICAgICAgIGxldCBmb3JtRGF0YSA9IGZvcm0uc2VyaWFsaXplQXJyYXkoKTtcbiAgICAgICAgbGV0IGdyb3VwX3dyYXBwZXIgPSBmb3JtLnBhcmVudCgpO1xuXG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB0eXBlOiBcIlBPU1RcIixcbiAgICAgICAgICAgIHVybDogYWpheHVybCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdpZ3pfc2VuZF9pbnZpdGF0aW9ucycsXG4gICAgICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmVmb3JlU2VuZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuYXBwZW5kKCc8ZGl2IGNsYXNzPVwibG9hZGVyLW92ZXJsYXlcIj48ZGl2IGNsYXNzPVwibG9hZGVyXCI+TG9hZGluZy4uLjwvZGl2PjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLmxvYWRlci1vdmVybGF5JykuYW5pbWF0ZSh7XCJvcGFjaXR5XCI6IDF9LCAzMDApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy5sb2FkZXItb3ZlcmxheScpLmFuaW1hdGUoe1wib3BhY2l0eVwiOiAwfSwgMzAwKTtcblxuICAgICAgICAgICAgICAgIGxldCBpc19vbmx5X2J1dHRvbiA9IGVsZW1lbnQuaXMoJzpmaXJzdC1vZi10eXBlJykgJiYgZWxlbWVudC5pcygnOmxhc3Qtb2YtdHlwZScpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihcInR5cGVcIikgIT09IFwiY2hlY2tib3hcIiAmJiAhaXNfb25seV9idXR0b24gPyBlbGVtZW50LmNzcyh7XCJkaXNwbGF5XCI6IFwibm9uZVwifSkgOiBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHNob3dfbm90aWZpY2F0aW9uKHJlc3BvbnNlLnJlc3BvbnNlSlNPTi5tc2csICdzdWNjZXNzJyk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcubG9hZGVyLW92ZXJsYXknKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGRhc2hib2FyZF9zYXZlX2RhdGEoZWxlbWVudCkge1xuICAgICAgICBsZXQgZm9ybSA9IGVsZW1lbnQucGFyZW50cygnZm9ybScpO1xuICAgICAgICBsZXQgZm9ybURhdGEgPSBmb3JtLnNlcmlhbGl6ZUFycmF5KCk7XG4gICAgICAgIGxldCBmb3JtRGF0YUNoYW5nZWQgPSBbXTtcbiAgICAgICAgbGV0IGFyZ3MgPSBbXTtcbiAgICAgICAgbGV0IGdyb3VwX3dyYXBwZXIgPSBmb3JtLnBhcmVudCgpO1xuICAgICAgICBsZXQgY3JtR3VpZCA9IGVsZW1lbnQuZGF0YShcImNybWd1aWRcIik7XG4gICAgICAgIGxldCBncm91cCA9IGVsZW1lbnQuZGF0YSgnZ3JvdXAnKTtcbiAgICAgICAgbGV0IGRhdGFUeXBlID0gXCJcIjtcbiAgICAgICAgbGV0IGRhdGFWYWx1ZSA9IFwiXCI7XG4gICAgICAgIGlmIChlbGVtZW50LmRhdGEoJ2dyb3VwJykgPT09ICdtZW1iZXInKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1EYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBmb3JtRGF0YVtpXS5uYW1lO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGZvcm1EYXRhW2ldLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhRmllbGQgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9JyArIG5hbWUgKyAnXScpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhVmFsdWUgPSBkYXRhRmllbGQuZGF0YSgndmFsdWUnKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT09IGRhdGFWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YUNoYW5nZWQucHVzaChmb3JtRGF0YVtpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZpcm1hID0gXCJcIjtcbiAgICAgICAgbGV0IGFucmVkZSA9IFwiXCI7XG4gICAgICAgIGxldCB2b3JuYW1lID0gXCJcIjtcbiAgICAgICAgbGV0IG5hY2huYW1lID0gXCJcIjtcbiAgICAgICAgbGV0IHN0cmFzc2UgPSBcIlwiO1xuICAgICAgICBsZXQgcGx6ID0gXCJcIjtcbiAgICAgICAgbGV0IG9ydCA9IFwiXCI7XG4gICAgICAgIGlmIChlbGVtZW50Lmhhc0NsYXNzKCdidG4tZGlzdHJpYnV0b3InKSkge1xuICAgICAgICAgICAgZGF0YVR5cGUgPSBcInNldERpc3RyaWJ1dG9yXCI7XG4gICAgICAgICAgICBmb3JtRGF0YSA9IFwiXCI7XG5cbiAgICAgICAgICAgIGZvcm0uYXR0cignaWQnLCAndGVtcC1hY3RpdmUtZm9ybScpO1xuICAgICAgICAgICAgZm9ybS5maW5kKCdpbnB1dFt0eXBlPWNoZWNrYm94XScpLmVhY2goZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBmaWVsZC5hdHRyKCd2YWx1ZScpO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5pcygnOmNoZWNrZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEgKz0gZm9ybURhdGEgPT09ICcnID8gdmFsdWUgOiAnLCcgKyB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFWYWx1ZSArPSBkYXRhVmFsdWUgPT09ICcnID8gdmFsdWUgOiAnLCcgKyB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmaXJtYSA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1maXJtYV0nKS52YWwoKTtcbiAgICAgICAgICAgIGFucmVkZSA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1hbnJlZGVdJykudmFsKCk7XG4gICAgICAgICAgICB2b3JuYW1lID0gZm9ybS5maW5kKCdpbnB1dFtuYW1lPXZvcm5hbWVdJykudmFsKCk7XG4gICAgICAgICAgICBuYWNobmFtZSA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1uYWNobmFtZV0nKS52YWwoKTtcbiAgICAgICAgICAgIHN0cmFzc2UgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9c3RyYXNzZV0nKS52YWwoKTtcbiAgICAgICAgICAgIHBseiA9IGZvcm0uZmluZCgnaW5wdXRbbmFtZT1wb3N0bGVpdHphaGxdJykudmFsKCk7XG4gICAgICAgICAgICBvcnQgPSBmb3JtLmZpbmQoJ2lucHV0W25hbWU9b3J0XScpLnZhbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVtYWlsID0gZm9ybS5maW5kKCdpbnB1dFt0eXBlPWVtYWlsXScpLnZhbCgpO1xuICAgICAgICBsZXQgZW1haWxPbGQgPSBmb3JtLmZpbmQoJ2lucHV0W3R5cGU9ZW1haWxdJykuZGF0YSgndmFsdWUnKTtcbiAgICAgICAgZW1haWwgPSBlbWFpbCAhPT0gdW5kZWZpbmVkICYmIGVtYWlsICE9PSBlbWFpbE9sZCA/IGVtYWlsIDogXCJcIjtcbiAgICAgICAgbGV0IHByaXZhY3kgPSBmb3JtLmZpbmQoJ2xhYmVsLmNoZWNrYm94LmFjY2VwdC1wcml2YWN5JykuZGF0YSgndmFsdWUnKTtcbiAgICAgICAgbGV0IGFjdGlvbiA9IFwiaWd6X2NybV9cIiArIGdyb3VwICsgXCJfdXBkYXRlXCI7XG4gICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgIHR5cGU6IFwiUE9TVFwiLFxuICAgICAgICAgICAgdXJsOiBhamF4dXJsLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICAgICAgICAgIGNybUd1aWQ6IGNybUd1aWQsXG4gICAgICAgICAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBkYXRhVHlwZSxcbiAgICAgICAgICAgICAgICBmaXJtYTogZmlybWEsXG4gICAgICAgICAgICAgICAgYW5yZWRlOiBhbnJlZGUsXG4gICAgICAgICAgICAgICAgdm9ybmFtZTogdm9ybmFtZSxcbiAgICAgICAgICAgICAgICBuYWNobmFtZTogbmFjaG5hbWUsXG4gICAgICAgICAgICAgICAgc3RyYXNzZTogc3RyYXNzZSxcbiAgICAgICAgICAgICAgICBwbHo6IHBseixcbiAgICAgICAgICAgICAgICBvcnQ6IG9ydCxcbiAgICAgICAgICAgICAgICBkYXRhVmFsdWU6IGRhdGFWYWx1ZSxcbiAgICAgICAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgICAgICAgIHJlcXVlc3Q6IGVsZW1lbnQuZGF0YSgncmVxdWVzdCcpLFxuICAgICAgICAgICAgICAgIGVtYWlsOiBlbWFpbCxcbiAgICAgICAgICAgICAgICBwcml2YWN5OiBwcml2YWN5ICE9PSB1bmRlZmluZWQgPyBwcml2YWN5IDogXCJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBncm91cF93cmFwcGVyLmFwcGVuZCgnPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5XCI+PGRpdiBjbGFzcz1cImxvYWRlclwiPkxvYWRpbmcuLi48L2Rpdj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy5sb2FkZXItb3ZlcmxheScpLmFuaW1hdGUoe1wib3BhY2l0eVwiOiAxfSwgMzAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcubG9hZGVyLW92ZXJsYXknKS5hbmltYXRlKHtcIm9wYWNpdHlcIjogMH0sIDMwMCk7XG5cbiAgICAgICAgICAgICAgICBsZXQgaXNfb25seV9idXR0b24gPSBlbGVtZW50LmlzKCc6Zmlyc3Qtb2YtdHlwZScpICYmIGVsZW1lbnQuaXMoJzpsYXN0LW9mLXR5cGUnKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmF0dHIoXCJ0eXBlXCIpICE9PSBcImNoZWNrYm94XCIgJiYgIWlzX29ubHlfYnV0dG9uID8gZWxlbWVudC5jc3Moe1wiZGlzcGxheVwiOiBcIm5vbmVcIn0pIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcuYWN0aW9ucyAuYnRuLWNhbmNlbCcpLmNzcyh7XCJkaXNwbGF5XCI6IFwibm9uZVwifSk7XG4gICAgICAgICAgICAgICAgZ3JvdXBfd3JhcHBlci5maW5kKCcuYWN0aW9ucyAuYnRuLWVkaXQnKS5jc3Moe1wiZGlzcGxheVwiOiBcImlubGluZS1mbGV4XCJ9KTtcblxuICAgICAgICAgICAgICAgIGdyb3VwX3dyYXBwZXIuZmluZCgnLnR0ci1pbnB1dCcpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5wdXQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5oYXNDbGFzcygnYWx3YXlzLWZvY3VzZWQnKSA/IGlucHV0LnJlbW92ZUNsYXNzKCdhbHdheXMtZm9jdXNlZCcpIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc2hvd19ub3RpZmljYXRpb24ocmVzcG9uc2UucmVzcG9uc2VKU09OLm1zZywgJ3N1Y2Nlc3MnKTtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBncm91cF93cmFwcGVyLmZpbmQoJy5sb2FkZXItb3ZlcmxheScpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgICAgICAgICAgZm9ybS5hdHRyKCdpZCcsICcnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImNvbnRlbnQtZGFzaGJvYXJkLm1pbi5qcyJ9

FAQs

Was ist der branchenzuschlag? ›

Branchenzuschläge ermöglichen eine stufenweise Annäherung der Löhne von Zeitarbeitern an das Arbeitsentgelt vergleichbarer Stammmitarbeiter in der Einsatzbranche. Neben dem tariflichen Basisentgelt erhalten Leiharbeitnehmer nach einem bestimmten Einsatzzeitraum im selben Kundenbetrieb Zuschläge auf ihren Tariflohn.

Welche Branchenzuschlagstarifverträge gibt es? ›

Es sieht Ergänzungen und Änderungen folgender Branchenzuschlagstarifverträge vor:
  • Tarifvertrag über Branchenzuschläge für Arbeitnehmerüberlassungen in der Chemischen Industrie (TV BZ Chemie)
  • Tarifvertrag über Branchenzuschläge für Arbeitnehmerüberlassungen in der Papier erzeugenden Industrie (TV BZ PE – gewerblich)
Jul 5, 2023

Was bedeutet Deckelung auf Vergleichsentgelt? ›

Branchenzuschlag auf 90% des Vergleichsentgelts begrenzt

zu reduzieren ist. Deren Höhe wird sodann im Verhandlungsergebnis der Tarifvertragsparteien vom 22. Mai 2012 auf 10% festgelegt. Richtigerweise kommt es dabei nicht darauf an, ob in dem Kundenbetrieb tatsächlich eine Leistungszulage gezahlt wird oder nicht.

Was zahlen Firmen an Zeitarbeitsfirmen? ›

Entleiher zahlen an die Leiharbeitsfirmen einen sog. Verrechnungssatz. Das ist in der Regel etwa das Doppelte des Bruttostundenlohns, den der Leiharbeiter von seinem Verleihunternehmen als Stundenlohn erhält.

Wie ist die Bezahlung bei Zeitarbeitsfirmen? ›

Wer zahlt die Zeitarbeitsfirma. Im Prinzip werden die Zeitarbeitsfirmen selbst von den Firmen bezahlt, welche die Mitarbeiter ausleihen. Diese zahlen dem Zeitunternehmen einen Stundenverrechnungssatz.

Was ist der Unterschied zwischen BAP und iGZ? ›

Unterschiede zwischen den Verbänden

Worin besteht dann überhaupt der Unterschied zwischen den beiden Verbänden? Der iGZ ist der mitgliederstärkste Verband Deutschlands mit über 3.500 Mitgliedsunternehmen, während der BAP mehr als 1.800 Mitglieder umfasst. Der wichtigste Unterschied liegt aber in den Tarifverträgen.

Wann muss Equal Pay bezahlt werden? ›

Der gesetzliche Equal Pay Grundsatz greift, wenn ein Zeitarbeitnehmer 9 Monate beim Entleihbetrieb beschäftigt war. Die Zeitarbeitskraft erhält also ab dem 10. Monat eine gleichwertige Bezahlung wie ein vergleichbarer Stammarbeitnehmer beim Kunden.

Für wen gelten branchenzuschläge? ›

Branchenzuschläge gelten für alle Unternehmen bzw. Zeitarbeitnehmer in Deutschland, die dem jeweiligen Industriezweig bzw. der jeweiligen Branche zugehören und dort tätig sind. Im Regelfall erreichen Zeitarbeitnehmer die erste Stufe nach einer zuschlagsfreien Einarbeitungszeit von 4 bis 6 Wochen.

Wer zahlt wenn Leiharbeiter krank ist? ›

ABER: Neue Zeitarbeitnehmer haben im Falle einer Krankheit in den ersten vier Wochen (der „Wartezeit“) keinen Anspruch auf eine Entgeltfortzahlung – sie erhalten ausschließlich das Krankengeld der Krankenkassen. Die Einzelheiten zu Lohnfortzahlung sind im Tarifvertrag und Entgeltfortzahlungsgesetz geregelt.

Wie hoch ist die Ablösesumme bei Zeitarbeit? ›

Wie hoch ist die Ablösesumme bei Zeitarbeit? Gemäß BGH gilt folgende Staffelung: Übernahme innerhalb der ersten drei Monate 15 % des Jahresbruttoeinkommens.

Was bedeutet 90 Deckelung? ›

Die Deckelung tritt bei 90% des laufenden regelmäßigen Stundenentgelts eines vergleichbaren Arbeitsnehmers des Kundenbetriebs ein. Allerdings dürfte sie nicht dazu führen, dass nach einer Einsatzdauer von sechs Wochen kein Zuschlag gezahlt wird.

Wann gelten branchenzuschläge? ›

Branchenzuschläge gelten für alle Unternehmen bzw. Zeitarbeitnehmer in Deutschland, die dem jeweiligen Industriezweig bzw. der jeweiligen Branche zugehören und dort tätig sind. Im Regelfall erreichen Zeitarbeitnehmer die erste Stufe nach einer zuschlagsfreien Einarbeitungszeit von 4 bis 6 Wochen.

Wer zahlt die branchenzuschläge? ›

Anspruch besteht, wenn der Verleiher Mitglied in den Verleihverbänden iGZ oder BAP/BZA ist oder im Arbeitsvertrag auf den sogenannten Tarifvertrag Branchenzuschläge Bezug genommen wird. Ob der jeweilige Einsatzbetrieb tarifgebunden ist, spielt dabei keine Rolle. Die Zuschläge zahlt der Arbeitgeber, also der Verleiher.

Sind branchenzuschläge Pflicht? ›

Grundsätzlich werden die Branchenzuschläge nach bestimmten ununterbrochenen Einsatzdauern im Unternehmen fällig. Dabei zählen auch Feiertage, Urlaub und Krankheitstage mit Lohnfortzahlungsanspruch.

Wann branchenzuschläge Zeitarbeit? ›

Der Branchenzuschlag ist ein nach der Einsatzdauer gestaffelter Prozentsatz, der auf das jeweilige Stundenentgelt aufgeschlagen wird. Er ist zu zahlen, wenn ein Leiharbeitnehmer in einem Unternehmen dieser Branchen länger als sechs beziehungsweise vier Wochen (Tarifverträge ver. di) eingesetzt wird.

References

Top Articles
Latest Posts
Article information

Author: Kareem Mueller DO

Last Updated: 11/01/2023

Views: 6305

Rating: 4.6 / 5 (66 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Kareem Mueller DO

Birthday: 1997-01-04

Address: Apt. 156 12935 Runolfsdottir Mission, Greenfort, MN 74384-6749

Phone: +16704982844747

Job: Corporate Administration Planner

Hobby: Mountain biking, Jewelry making, Stone skipping, Lacemaking, Knife making, Scrapbooking, Letterboxing

Introduction: My name is Kareem Mueller DO, I am a vivacious, super, thoughtful, excited, handsome, beautiful, combative person who loves writing and wants to share my knowledge and understanding with you.