diff options
author | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-23 20:06:46 +0000 |
---|---|---|
committer | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-11-23 20:07:18 +0000 |
commit | 203467c278519b1be6fc8a319616f83b02e175f7 (patch) | |
tree | eb226111a155cad1c68cc6aa0d1b9616eb1c0913 /jenkins | |
parent | 835e7047aac597982e6fbfb6f790814624f305bb (diff) |
force: #73: 1: [TCWG CI] https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/
Results :
| # reset_artifacts:
| -10
| # build_bmk_llvm:
| -3
| # benchmark -- -O2_marm:
| 1
| # imagick_r_base.default,538.imagick_r failed to run
| # leela_r_base.default,541.leela_r failed to run
check_regression status : 1
Diffstat (limited to 'jenkins')
-rw-r--r-- | jenkins/build-name | 2 | ||||
-rw-r--r-- | jenkins/notify-full.log | 3800 | ||||
-rw-r--r-- | jenkins/notify-init.log | 138 | ||||
-rw-r--r-- | jenkins/rewrite.log | 26 | ||||
-rw-r--r-- | jenkins/run-build.env | 11 |
5 files changed, 136 insertions, 3841 deletions
diff --git a/jenkins/build-name b/jenkins/build-name index 33c362c..1b8a7c1 100644 --- a/jenkins/build-name +++ b/jenkins/build-name @@ -1 +1 @@ -#71-llvm-R1 +#73-R# leela_r_base.default,541.leela_r failed to run-force diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log index 90eb8d9..2211690 100644 --- a/jenkins/notify-full.log +++ b/jenkins/notify-full.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -d: -f 1 -+ host=tcwg-snow_bmk-02 ++ host=tcwg-jade-03 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_1 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_2 + local opts +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 4 -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' -+ opts=-p36468 ++ opts=-p56191 + local env_vars -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 5 -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ++ env_vars='ssh_host=tcwg-jade-03 ssh_port=56191' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_1 -+ ssh -p36468 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=36468 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_1 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_2 ++ ssh -p56191 tcwg-jade-03 'export ssh_host=tcwg-jade-03 ssh_port=56191 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_2 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ijQW9spm0p7HwZnUtLFx7CCA __stage full __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -70,9 +70,9 @@ + declare -a changed_components + declare print_commits_f print_result_f print_config_f print_last_icommit_f + dump_model_only=false -# setup_notify_environment + setup_notify_environment + echo '# setup_notify_environment' +# setup_notify_environment + top_artifacts=artifacts ++ get_current_manifest '{rr[ci_project]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_project]}' @@ -81,37 +81,37 @@ ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x -# Debug traces : + ci_config=llvm-arm-master-O2 + echo '# Debug traces :' +# Debug traces : ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/70/ +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/ ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/' # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/70/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/ +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/ # Using dir : artifacts - -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/' + echo '# Using dir : artifacts' + + echo '' + mkdir -p artifacts/notify + '[' -f /home/tcwg-buildslave/.jipdate.yml ']' + set +x -# check_source_changes + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes +# check_source_changes + echo '# check_source_changes' ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' onsuccess '!=' init ']' ++ '[' force '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,96 +121,19 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' -+++ echo -ne llvm -+++ delim=' ' ++++ '[' xbaseline '!=' xbaseline ']' +++ echo -++ for c in $(print_updated_components) -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ '[' xa09e32e5fe13e3b64bef1defddf71a9e83022e76 '!=' x4f330b7f756e3244f7b7a9a654ea153c23d80319 ']' -++ echo -ne llvm -++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 1 = 0 ']' -+ '[' 1 = 1 ']' -+ changed_single_component=llvm -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ first_bad=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ last_good=4f330b7f756e3244f7b7a9a654ea153c23d80319 -+ local res -+ res=0 -+ wait 49820 -+ git -C llvm rev-parse --verify HEAD -+ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' -+ set -euf -o pipefail +x -+ single_commit_p llvm -+ set -euf -o pipefail -+ local c=llvm -+ local base_rev cur_rev sha1 -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ git -C llvm rev-parse 'a09e32e5fe13e3b64bef1defddf71a9e83022e76^@' -+ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") -+ '[' 78c7201d6835aac6be3b48a821f7dde6879ea7ff = 4f330b7f756e3244f7b7a9a654ea153c23d80319 ']' -+ return 1 ++ '[' 0 = 0 ']' # Debug traces : -# change_kind=single_component : llvm -+ change_kind=single_component +# change_kind=no_change : ++ change_kind=no_change ++ changed_single_component= + echo '# Debug traces :' -+ echo '# change_kind=single_component : llvm' -+ for c in "${changed_components[@]}" -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ git -C llvm rev-list --count 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -# rev for llvm : 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 (629 commits) - -# post_interesting_commits -+ c_commits=629 -+ echo '# rev for llvm : 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 (629 commits)' ++ echo '# change_kind=no_change : ' + echo '' + + setup_stages_to_run + '[' ignore = onregression ']' + '[' ignore = precommit ']' @@ -234,26 +157,27 @@ + post_interesting_commits init + set -euf -o pipefail + echo '# post_interesting_commits' +# post_interesting_commits + local stage=init -+ '[' single_component '!=' single_commit ']' ++ '[' no_change '!=' single_commit ']' + return + '[' full '!=' full ']' + bmk_generate_extra_details + set -euf -o pipefail + local artifacts_mail_dir + artifacts_mail_dir=artifacts/notify -+ /home/tcwg-buildslave/workspace/tcwg_bmk_1/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose ++ /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/../bmk-scripts/output-bmk-results.py artifacts/results-vs-prev/compare-results-internal.csv artifacts/results-vs-prev/bmk-specific-variability.csv artifacts/notify/ sample build verbose + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false -+ '[' xsingle_component '!=' xsingle_commit ']' ++ '[' xno_change '!=' xsingle_commit ']' + return + post_interesting_commits full + set -euf -o pipefail # post_interesting_commits + echo '# post_interesting_commits' + local stage=full -+ '[' single_component '!=' single_commit ']' ++ '[' no_change '!=' single_commit ']' + return + true + generate_jira_dir @@ -264,7 +188,7 @@ ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 -++ '[' xsingle_component '!=' xsingle_commit ']' +++ '[' xno_change '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' @@ -284,8 +208,7 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ '[' -f artifacts/notify/symbol.regression ']' -++ improved_or_regressed=improvement +++ improved_or_regressed=regression ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -295,27 +218,28 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='speeds up by' +++ changed_by='slowed down by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.improvement ']' -++ '[' -f artifacts/notify/symbol.improvement ']' -++ short_diag='No change' -++ echo 'No change' +++ '[' -f artifacts/notify/exe.regression ']' +++ IFS=, +++ read metric bmk symbol short_diag long_diag ++++ head -n1 artifacts/notify/exe.regression +++ echo '541.leela_r failed to run' ++ print_artifacts_url 'notify/mail-body.txt/*view*/' ++ set -euf -o pipefail ++ local url +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x -++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/artifact/artifacts +++ url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/artifact/artifacts ++ '[' '' '!=' '' ']' -++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/artifact/artifacts/notify/mail-body.txt/*view*/' +++ echo 'https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files + echo '# print all notification files' + true @@ -323,3524 +247,16 @@ + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail -+ local c=llvm -+ '[' llvm = '' ']' -+ local -A emails -+ emails["tcwg-validation@linaro.org"]=bcc -+ emails["author"]=cc -+ emails["committer"]=to -+ case "$ci_project/$ci_config:$c" in -+ emails["author"]=no -+ emails["committer"]=no -+ emails["maxim.kuvyrkov@linaro.org"]=to -+ local c email base_rev cur_rev -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+ read -r email -++ git -C llvm log --pretty=%ae 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ local precommit_postcommit=postcommit ++ local c= + '[' '' = '' ']' -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+ read -r email -++ git -C llvm log --pretty=%ce 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ emails["$email"]=no -+ read -r email -+ unset 'emails[author]' 'emails[committer]' -+ local type -+ recipients=() -+ local -a recipients -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=bcc -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ recipients+=("$type:$email") -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=to -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ recipients+=("$email") -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ for email in "${!emails[@]}" -+ type=no -+ case "$precommit_postcommit:$type" in -+ case "$type" in -+ IFS=, -+ echo bcc:tcwg-validation@linaro.org,maxim.kuvyrkov@linaro.org ++ echo bcc:tcwg-validation@linaro.org ++ return 0 ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline -++ '[' single_component = no_change ']' -++ local more_lines -++ '[' single_component = single_commit ']' -++ '[' single_component = single_component ']' -++ local new_commits c base_rev cur_rev c_commits components -++ local commits_or_patches -++ '[' '' '!=' '' ']' -++ commits_or_patches=commits -++ new_commits=0 -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+++ git -C llvm rev-list --count 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ c_commits=629 -++ new_commits=629 -+++ echo llvm -+++ tr ' ' , -++ components=llvm -++ echo '629 commits in llvm' -++ '[' --oneline = --oneline ']' +++ '[' no_change = no_change ']' +++ echo 'baseline build' ++ return 0 ++ bmk_print_result --oneline ++ set -euf -o pipefail @@ -3850,8 +266,7 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ '[' -f artifacts/notify/symbol.regression ']' -++ improved_or_regressed=improvement +++ improved_or_regressed=regression ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -3861,87 +276,38 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='speeds up by' +++ changed_by='slowed down by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ assert_with_msg 'Builds with infra problems should never get here' '[' 0 '!=' 125 ']' +++ assert_with_msg 'Builds with infra problems should never get here' '[' 1 '!=' 125 ']' ++ set -euf -o pipefail +x ++ local metric bmk symbol short_diag long_diag -++ '[' -f artifacts/notify/exe.improvement ']' -++ '[' -f artifacts/notify/symbol.improvement ']' -++ short_diag='No change' -++ echo 'No change' -+ echo '[Linaro-TCWG-CI]' '629 commits in llvm: No change' +++ '[' -f artifacts/notify/exe.regression ']' +++ IFS=, +++ read metric bmk symbol short_diag long_diag ++++ head -n1 artifacts/notify/exe.regression +++ echo '541.leela_r failed to run' ++ echo '[Linaro-TCWG-CI]' 'baseline build: 541.leela_r failed to run' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/artifact/artifacts ++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -+ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/70/artifact/artifacts ++ good_artifacts_url=https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/artifact/artifacts + cat ++ print_commits --short ++ sed -e 's/^/ | /' ++ set -euf -o pipefail ++ false ++ local print_arg=--short -++ '[' single_component = no_change ']' -++ local more_lines -++ '[' single_component = single_commit ']' -++ '[' single_component = single_component ']' -++ local new_commits c base_rev cur_rev c_commits components -++ local commits_or_patches -++ '[' '' '!=' '' ']' -++ commits_or_patches=commits -++ new_commits=0 -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+++ git -C llvm rev-list --count 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ c_commits=629 -++ new_commits=629 -+++ echo llvm -+++ tr ' ' , -++ components=llvm -++ echo '629 commits in llvm' -++ '[' --short = --oneline ']' -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -+++ git -C llvm rev-list --count 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ c_commits=629 -++ '[' '' '!=' '' ']' -++ git -C llvm log -n 5 --oneline 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ '[' 629 -gt 5 ']' -++ echo '... and 624 more commits in llvm' -++ '[' '' '!=' '' ']' +++ '[' no_change = no_change ']' +++ echo 'baseline build' ++ return 0 ++ bmk_print_result --short ++ set -euf -o pipefail @@ -3951,8 +317,7 @@ ++ '[' full '!=' full ']' ++ local improved_or_regressed ++ '[' -f artifacts/notify/exe.regression ']' -++ '[' -f artifacts/notify/symbol.regression ']' -++ improved_or_regressed=improvement +++ improved_or_regressed=regression ++ declare -A changed_by_msg ++ changed_by_msg[size-regression]='grew in size by' ++ changed_by_msg[size-improvement]='reduced in size by' @@ -3962,18 +327,25 @@ ++ changed_by_msg[num_vect_loops-improvement]='increased the number of vect loops by' ++ changed_by_msg[num_sve_loops-regression]='reduced the number of sve instructions by' ++ changed_by_msg[num_sve_loops-improvement]='increased the number of sve instructions by' -++ changed_by='speeds up by' +++ changed_by='slowed down by' ++ case ${rr[metric_id]} in ++ exe_threshold=3 ++ symbol_threshold=15 ++ case "$print_arg" in -++ '[' -f artifacts/notify/exe.improvement ']' -++ '[' -f artifacts/notify/symbol.improvement ']' -++ '[' -f artifacts/notify/exe.improvement ']' -++ '[' -f artifacts/notify/symbol.improvement ']' -++ echo 'No change' +++ '[' -f artifacts/notify/exe.regression ']' +++ sort -gr -o artifacts/notify/exe.regression artifacts/notify/exe.regression +++ echo 'the following benchmarks slowed down by more than 3%:' +++ local metric exe symbol short_diag long_diag +++ IFS=, +++ read metric exe symbol short_diag long_diag +++ echo '- 541.leela_r failed to run
' +++ '[' -f artifacts/notify/541.leela_r.symbols-regression ']' +++ IFS=, +++ read metric exe symbol short_diag long_diag +++ '[' -f artifacts/notify/symbol.regression ']' +++ '[' -f artifacts/notify/exe.regression ']' ++ bmk_print_config -++ . /home/tcwg-buildslave/workspace/tcwg_bmk_1/jenkins-scripts/tcwg_bmk-config.sh +++ . /home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/tcwg_bmk-config.sh +++ [[ -v rr[ci_project] ]] +++ [[ -v rr[ci_config] ]] +++ declare -A bmk_data @@ -4028,8 +400,8 @@ +++ data_key=tcwg_bmk-code_speed-cpu2017rate--llvm-arm +++ data=tk1_32:spec2017_rate_nofortran +++ '[' xtk1_32:spec2017_rate_nofortran = xunset ']' -+++ cut -d: -f2 +++ echo tk1_32:spec2017_rate_nofortran ++++ cut -d: -f2 ++ bmk_suite='SPEC CPU2017' ++ publish_save_temps=true ++ cat @@ -4052,13 +424,13 @@ ++ case "$(tcwg_bmk_hw)" in +++ tcwg_bmk_hw +++ local data data_key -++++ cut -d- -f1-6 ++++ echo tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2 +++++ cut -d- -f1-6 +++ data_key=tcwg_bmk-code_speed-cpu2017rate--llvm-arm +++ data=tk1_32:spec2017_rate_nofortran +++ '[' xtk1_32:spec2017_rate_nofortran = xunset ']' -+++ cut -d: -f1 +++ echo tk1_32:spec2017_rate_nofortran ++++ cut -d: -f1 ++ hw='NVidia TK1 4x Cortex-A15' ++ cat +++ print_gnu_target arm @@ -4067,16 +439,16 @@ +++ case "$target" in +++ target=arm-linux-gnueabihf +++ echo arm-linux-gnueabihf -+ '[' single_component '!=' single_commit ']' ++ '[' no_change '!=' single_commit ']' + return # generate dashboard ++ echo '# generate dashboard' ++ generate_dashboard_squad ++ local results_date # generate_dashboard_squad ... Skipping # post_dashboard_squad ... Skipping -+ echo '# generate dashboard' -+ generate_dashboard_squad -+ local results_date + echo '# generate_dashboard_squad' + false + echo '... Skipping' @@ -4088,8 +460,8 @@ + return + false + post_to_jira -# post_to_jira + set -euf -o pipefail +# post_to_jira + echo '# post_to_jira' + local post_card_comment=false + local post_template_comment=false diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log index dc726cc..018b5c9 100644 --- a/jenkins/notify-init.log +++ b/jenkins/notify-init.log @@ -1,27 +1,27 @@ ++ pwd ++ cat -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh ++ remote_exec 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ./jenkins-scripts/round-robin-notify.sh '@@rr[top_artifacts]' artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -d: -f 1 -+ host=tcwg-snow_bmk-02 ++ host=tcwg-jade-03 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 2 + port= + local dir +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 3 -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_1 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_2 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 4 -+ opts=-p36468 ++ opts=-p56191 + local env_vars +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 5 -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ++ env_vars='ssh_host=tcwg-jade-03 ssh_port=56191' + shift + local -a cmd + cmd=() @@ -58,10 +58,10 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q tcwg_bmk-build.sh -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_1 -+ ssh -p36468 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=36468 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_1 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_2 ++ ssh -p56191 tcwg-jade-03 'export ssh_host=tcwg-jade-03 ssh_port=56191 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_2 && exec ./jenkins-scripts/round-robin-notify.sh @@rr\[top_artifacts\] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh' -/home/tcwg-buildslave/workspace/tcwg_bmk_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh +/home/tcwg-buildslave/workspace/tcwg_bmk_2/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_bmk-build.sh + false + dryrun= @@ -81,37 +81,37 @@ ++ get_current_manifest '{rr[ci_config]}' ++ get_manifest artifacts/manifest.sh '{rr[ci_config]}' ++ set +x -# Debug traces : + ci_config=llvm-arm-master-O2 + echo '# Debug traces :' +# Debug traces : ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/70/ -# Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/70/' +# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/ ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/' + echo '# Using dir : base-artifacts' +# Using dir : base-artifacts ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/ +# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/ # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/71/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017rate--llvm-arm-master-O2-build/73/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify + '[' -f /home/tcwg-buildslave/.jipdate.yml ']' + set +x -# check_source_changes + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes +# check_source_changes + echo '# check_source_changes' ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x -+ '[' onsuccess '!=' init ']' ++ '[' force '!=' init ']' + IFS=' ' + read -r -a changed_components ++ print_changed_components @@ -121,94 +121,18 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' -+++ echo -ne llvm -+++ delim=' ' ++++ '[' xbaseline '!=' xbaseline ']' +++ echo -++ for c in $(print_updated_components) -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ '[' xa09e32e5fe13e3b64bef1defddf71a9e83022e76 '!=' x4f330b7f756e3244f7b7a9a654ea153c23d80319 ']' -++ echo -ne llvm -++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 1 = 0 ']' -+ '[' 1 = 1 ']' -+ changed_single_component=llvm -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ first_bad=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ last_good=4f330b7f756e3244f7b7a9a654ea153c23d80319 -+ local res -+ res=0 -+ wait 49709 -+ git -C llvm rev-parse --verify HEAD -+ assert_with_msg 'Cannot parse HEAD in repo llvm' '[' 0 = 0 ']' -+ set -euf -o pipefail +x -+ single_commit_p llvm -+ set -euf -o pipefail -+ local c=llvm -+ local base_rev cur_rev sha1 -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ git -C llvm rev-parse 'a09e32e5fe13e3b64bef1defddf71a9e83022e76^@' ++ '[' 0 = 0 ']' ++ change_kind=no_change # Debug traces : -# change_kind=single_component : llvm -+ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") -+ '[' 78c7201d6835aac6be3b48a821f7dde6879ea7ff = 4f330b7f756e3244f7b7a9a654ea153c23d80319 ']' -+ return 1 -+ change_kind=single_component -+ echo '# Debug traces :' -+ echo '# change_kind=single_component : llvm' -+ for c in "${changed_components[@]}" -++ get_baseline_git llvm_rev -++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=4f330b7f756e3244f7b7a9a654ea153c23d80319 -++ get_current_git llvm_rev -++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=a09e32e5fe13e3b64bef1defddf71a9e83022e76 -++ git -C llvm rev-list --count 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 -# rev for llvm : 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 (629 commits) +# change_kind=no_change : -+ c_commits=629 -+ echo '# rev for llvm : 4f330b7f756e3244f7b7a9a654ea153c23d80319..a09e32e5fe13e3b64bef1defddf71a9e83022e76 (629 commits)' ++ changed_single_component= ++ echo '# Debug traces :' ++ echo '# change_kind=no_change : ' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -231,13 +155,13 @@ + print_config_f=bmk_print_config + generate_extra_details_f=bmk_generate_extra_details + post_interesting_commits init -# post_interesting_commits + set -euf -o pipefail +# post_interesting_commits + echo '# post_interesting_commits' + local stage=init -+ '[' single_component '!=' single_commit ']' ++ '[' no_change '!=' single_commit ']' + return -Init stage ran successfully. + '[' init '!=' full ']' + echo 'Init stage ran successfully.' +Init stage ran successfully. + exit 0 diff --git a/jenkins/rewrite.log b/jenkins/rewrite.log index 195f78f..fd61248 100644 --- a/jenkins/rewrite.log +++ b/jenkins/rewrite.log @@ -1,27 +1,27 @@ -++ cat ++ pwd -+ remote_exec 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 +++ cat ++ remote_exec 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ./jenkins-scripts/round-robin-baseline.sh '@@rr[top_artifacts]' artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100 + set -euf -o pipefail + local host -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -d: -f 1 -+ host=tcwg-snow_bmk-02 ++ host=tcwg-jade-03 + local port -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 2 + port= + local dir -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 3 -+ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_1 ++ dir=/home/tcwg-buildslave/workspace/tcwg_bmk_2 + local opts -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 4 -+ opts=-p36468 ++ opts=-p56191 + local env_vars +++ echo 'tcwg-jade-03::/home/tcwg-buildslave/workspace/tcwg_bmk_2:-p56191:ssh_host=tcwg-jade-03 ssh_port=56191' ++ cut -s -d: -f 5 -++ echo 'tcwg-snow_bmk-02::/home/tcwg-buildslave/workspace/tcwg_bmk_1:-p36468:ssh_host=tcwg-snow_bmk-02 ssh_port=36468' -+ env_vars='ssh_host=tcwg-snow_bmk-02 ssh_port=36468' ++ env_vars='ssh_host=tcwg-jade-03 ssh_port=56191' + shift + local -a cmd + cmd=() @@ -58,8 +58,8 @@ + for i in "$@" + cmd+=("$(printf '%q' "$i")") ++ printf %q 100 -++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_1 -+ ssh -p36468 tcwg-snow_bmk-02 'export ssh_host=tcwg-snow_bmk-02 ssh_port=36468 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_1 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' +++ printf %q /home/tcwg-buildslave/workspace/tcwg_bmk_2 ++ ssh -p56191 tcwg-jade-03 'export ssh_host=tcwg-jade-03 ssh_port=56191 && cd /home/tcwg-buildslave/workspace/tcwg_bmk_2 && exec ./jenkins-scripts/round-robin-baseline.sh @@rr\[top_artifacts\] artifacts __build_script tcwg_bmk-build.sh __push_base_artifacts true __rewrite_base_artifacts true __rewrite_num 100' + declare -g rewrite_base_artifacts_first=true + true + update_baseline diff --git a/jenkins/run-build.env b/jenkins/run-build.env index 474b028..86d5fbb 100644 --- a/jenkins/run-build.env +++ b/jenkins/run-build.env @@ -1,15 +1,14 @@ -build_name="#71" +build_name="#73" docker_opts=(--distro default --arch armhf --node -tcwg-snow_bmk-02 +tcwg-jade-03 --ssh_info true ) source build_container.sh trap "cleanup_all_containers" EXIT -build_name="#71-llvm" -branch_opt=(==rr\[llvm_git\] -https://github.com/llvm/llvm-project.git#main ) -build_name="#71-llvm-R1" +build_name="#73" +branch_opt=() +build_name="#73-R# leela_r_base.default,541.leela_r failed to run-force" |