// ==UserScript==
// @name Planner Plus
// @namespace https://docs.scriptcat.org/
// @version 1.6.2
// @description The shortcut key is `~`.
// @author Shu Su
// @homepage https://scriptcat.org/en/script-show-page/5384
// @homepageURL https://scriptcat.org/en/script-show-page/5384
// @match https://tasks.office.com/*
// @match https://planner.cloud.microsoft/*
// @icon data:image/x-icon;base64,AAABAAEAQEAAAAEAIAAoQAAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAA9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAA9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPWpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP8AAAAAAAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA/wAAAAD1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/9alA//WpQP/1qUD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI//WpQP/1qUD/9alA//WpQP/NOsj/9alA//WpQP/1qUD/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP/1qUD/9alA//WpQP/1qUD/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAM06yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/9alA//WpQP8AAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAALY4cv8AAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv8AAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv8AAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/AAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/AAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALY4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2OHL/tjhy/7Y4cv+2OHL/tjhy/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAM06yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/wAAAADNOsj/zTrI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP/NOsj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM06yP/NOsj/zTrI/806yP/NOsj/zTrI/806yP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
// @require https://code.jquery.com/jquery-4.0.0.min.js
// @grant GM_addStyle
// @grant GM_info
// @license MIT
// ==/UserScript==
/* global $ */
(function () {
"use strict";
const properties = {
status: "idle",
startTime: "",
interval: -1,
animateTimer: -1,
routeMonitorTimer: -1,
timerHandles: new Set(),
previewWaitTimer: -1,
previewCloseTimer: -1,
currentHighlightedRow: null,
fullscreenEnteredByScript: false,
themeChangeHandler: null,
allUsers: [],
currentUser: null,
currentIndex: 0,
defaultElapsedTime: 90,
rightDefault: 250,
runWhenTimers: new Set(),
isPageActive: false,
pageUrl: "",
routeScope: "",
rightMin: 0,
rightMax: 1000,
groupBy: "",
defaultAutoFocusContent: false,
defaultAutoPreviewActivity: false,
previewCollapsedNavigation: false,
previewRequestId: 0,
openingPreviewTask: false,
previewReturnUrl: "",
keydownHandler: null,
themeMediaQuery: null,
resolvedTheme: "light",
roundConfig: null,
voiceListenerBound: false,
voiceChangedHandler: null,
voiceRefreshTimer: -1,
voiceRequestId: 0,
voiceDelayTimer: -1,
voiceWarmupTimer: -1,
};
const validUiLanguages = ["system", "en", "zh-CN"];
const localeMessages = {
general: {
settings: { en: "Planner Plus settings", "zh-CN": "Planner Plus 设置" },
subtitle: { en: "Configure taskboard lottery", "zh-CN": "配置任务板抽签" },
close: { en: "Close", "zh-CN": "关闭" },
general: { en: "General", "zh-CN": "常规" },
language: { en: "Language", "zh-CN": "语言" },
languageDescription: { en: "Choose the plugin display language.", "zh-CN": "选择插件显示语言。" },
theme: { en: "Theme", "zh-CN": "主题" },
themeDescription: { en: "Light, dark, or follow system", "zh-CN": "浅色、深色或跟随系统。" },
system: { en: "System", "zh-CN": "系统" },
english: { en: "English", "zh-CN": "English" },
chinese: { en: "中文", "zh-CN": "中文" },
light: { en: "Light", "zh-CN": "浅色" },
dark: { en: "Dark", "zh-CN": "深色" },
taskboard: { en: "TASKBOARD", "zh-CN": "任务板" },
floatingPosition: { en: "Floating button position", "zh-CN": "浮动按钮位置" },
floatingPositionDescription: { en: "Distance from the right edge of the screen.", "zh-CN": "距离屏幕右侧的距离。" },
elapsedTime: { en: "Elapsed time threshold", "zh-CN": "超时阈值" },
elapsedTimeDescription: { en: "How long the current participant can remain active.", "zh-CN": "当前参与者可以保持活动状态的时长。" },
autoFocus: { en: "Auto-focus content", "zh-CN": "自动聚焦内容" },
autoFocusDescription: { en: "Give the board more room while drawing. Changes apply in the next lottery round.", "zh-CN": "抽签时为任务板留出更多空间。更改将在下一轮抽签时生效。" },
autoPreview: { en: "Auto preview activity", "zh-CN": "自动预览活动" },
autoPreviewDescription: { en: "Show task previews after each participant is drawn. Changes apply in the next lottery round.", "zh-CN": "每次抽取参与者后显示任务预览。更改将在下一轮抽签时生效。" },
startLotteryAlt: { en: "Start lottery", "zh-CN": "开始抽签" },
drawNextAlt: { en: "Draw next participant", "zh-CN": "抽取下一位参与者" },
tooltip: { en: "Left-click: Start lottery
Right-click: Open settings", "zh-CN": "左键:开始抽签
右键:打开设置" },
drawTooltip: { en: "Left-click: Draw next participant
Right-click: Open settings", "zh-CN": "左键:抽取下一位参与者
右键:打开设置" },
unitPixels: { en: "px", "zh-CN": "px" },
unitSeconds: { en: "sec", "zh-CN": "秒" },
timerStatus: { en: "{{name}}: {{seconds}}", "zh-CN": "{{name}}:{{seconds}}" },
voice: { en: "Voice", "zh-CN": "语音" },
voiceDescription: { en: "Choose voices used to announce taskboard participants.", "zh-CN": "选择任务板叫名时使用的语音。" },
total: { en: "Total", "zh-CN": "总计" },
filtered: { en: "Filtered", "zh-CN": "筛选后" },
checked: { en: "Checked", "zh-CN": "已勾选" },
preview: { en: "Preview", "zh-CN": "试听" },
name: { en: "Name", "zh-CN": "名称" },
localService: { en: "LocalService", "zh-CN": "本地服务" },
languageFilter: { en: "Language", "zh-CN": "语言" },
selectVoice: { en: "Select {{name}}", "zh-CN": "选择 {{name}}" },
previewVoice: { en: "Preview {{name}}", "zh-CN": "试听 {{name}}" },
customPreviewText: { en: "Custom preview text", "zh-CN": "自定义试听文本" },
useCustomPreviewText: { en: "Use custom preview text", "zh-CN": "使用自定义文本试听" },
useCustomPreviewTextDescription: { en: "When unchecked, a built-in preview text matching the selected voice language is used. Check it to use the text above.", "zh-CN": "未勾选时,会按当前实际调用语音的语言使用内置试听文本;勾选后才使用上方文本。" },
remoteStartupProtection: { en: "Remote voice startup protection", "zh-CN": "远程语音首字保护" },
remoteStartupProtectionDescription: { en: "For LocalService=false only: wait briefly after canceling playback, warm up the same voice, then play the text.", "zh-CN": "仅对 LocalService=false 生效:取消旧播放后短暂等待,并以同声线预热后再播放文本。" },
loadingBrowserVoices: { en: "Loading browser voices…", "zh-CN": "正在读取浏览器语音…" },
noVoicesMatch: { en: "No voices match the current filters.", "zh-CN": "没有匹配当前筛选条件的语音。" },
enterPreviewText: { en: "Enter preview text first.", "zh-CN": "请先输入试听文本。" },
previewingVoice: { en: "Previewing {{name}}…", "zh-CN": "正在试听 {{name}}…" },
randomVoice: { en: "Random", "zh-CN": "随机" },
simulateUsage: { en: "Simulate actual usage", "zh-CN": "模拟实际使用" },
selectAllWindowVoices: { en: "Select all window voices", "zh-CN": "全选本窗口语音" },
checkedVoiceSnapshot: { en: "This is a snapshot of checked voices. Changes apply when closed.", "zh-CN": "这是已勾选语音的快照,关闭窗口时才会应用变更。" },
checkedVoices: { en: "Checked voices", "zh-CN": "已勾选语音" },
manageCheckedVoices: { en: "Manage checked voices", "zh-CN": "管理已勾选语音" },
voiceManagerCount: { en: "{{count}} voices · {{checked}} checked", "zh-CN": "共 {{count}} 个语音 · 已勾选 {{checked}} 个" },
filterName: { en: "Filter Name", "zh-CN": "筛选名称" },
filterLocalService: { en: "Filter LocalService", "zh-CN": "筛选本地服务" },
filterLanguage: { en: "Filter Language", "zh-CN": "筛选语言" },
clear: { en: "Clear", "zh-CN": "清除" },
searchVoiceName: { en: "Search voice name", "zh-CN": "搜索语音名称" },
searchLanguage: { en: "Search language", "zh-CN": "搜索语言" },
all: { en: "All", "zh-CN": "全部" },
allLanguages: { en: "All languages", "zh-CN": "所有语言" },
browserDefaultVoice: { en: "Browser default voice", "zh-CN": "浏览器默认语音" },
checkedVoiceCount: { en: "{{count}} checked voices", "zh-CN": "已勾选 {{count}} 个语音" },
checkedVoiceSummary: { en: "{{languages}} · {{count}} checked voices", "zh-CN": "{{languages}} · 已勾选 {{count}} 个语音" },
loadedBrowserVoices: { en: "Loaded {{count}} browser voices", "zh-CN": "已读取 {{count}} 个浏览器语音" },
waitingBrowserVoices: { en: "Waiting for browser voices…", "zh-CN": "正在等待浏览器语音…" },
noBrowserVoicesReturned: { en: "No browser voices were returned.", "zh-CN": "浏览器未返回任何语音。" },
totalChecked: { en: "Total {{total}} · Checked {{checked}}", "zh-CN": "总计 {{total}} · 已勾选 {{checked}}" },
common: { en: "Common", "zh-CN": "常用" },
favorite: { en: "Favorite", "zh-CN": "收藏" },
other: { en: "Other", "zh-CN": "其他" },
addToCommon: { en: "Add to favorites", "zh-CN": "添加到收藏" },
removeFromCommon: { en: "Remove from favorites", "zh-CN": "从收藏中移除" },
},
preview: {
close: { en: "Close activity preview", "zh-CN": "关闭活动预览" },
previous: { en: "Previous", "zh-CN": "上一个" },
previousTask: { en: "Previous task", "zh-CN": "上一个任务" },
next: { en: "Next", "zh-CN": "下一个" },
nextTask: { en: "Next task", "zh-CN": "下一个任务" },
openOriginal: { en: "Open original task", "zh-CN": "打开原任务" },
empty: { en: "No activity preview is available for this task.", "zh-CN": "此任务没有可用的活动预览。" },
untitled: { en: "Untitled task", "zh-CN": "未命名任务" },
checklist: { en: "Completed {{completed}} / {{total}}", "zh-CN": "已完成 {{completed}} / {{total}}" },
noChecklist: { en: "No checklist data", "zh-CN": "暂无清单数据" },
incomplete: { en: "Some content is not fully displayed. Open the original task to view it.", "zh-CN": "还有内容未完全显示,请打开原任务查看。" },
summary: { en: "{{name}} - {{task}} - {{seconds}}", "zh-CN": "{{name}} - {{task}} - {{seconds}}" },
},
errors: {
initializationFailed: { en: "Planner Plus: Initialization failed. Please reload the board and try again.", "zh-CN": "Planner Plus:初始化失败,请重新加载任务板后重试。" },
readGroupsFailed: { en: "Planner Plus: Failed to read the current groups. Please try again after the board finishes loading.", "zh-CN": "Planner Plus:无法读取当前分组,请等待任务板加载完成后重试。" },
noDrawableGroups: { en: "Planner Plus: No drawable groups were found on the board. Please check that the board has finished loading.", "zh-CN": "Planner Plus:任务板上没有可抽取的分组,请确认任务板已加载完成。" },
},
};
const resolveUiLanguage = (value) => value === "zh-CN" || (value === "system" && /^zh(?:-|$)/i.test(navigator.language || "")) ? "zh-CN" : "en";
const getLocaleText = (key, value = configs.language, variables = {}) => {
const parts = key.split(".");
let entry = localeMessages;
parts.forEach((part) => { entry = entry?.[part]; });
let text = entry?.[resolveUiLanguage(value)] || key;
return text.replace(/\{\{(\w+)\}\}/g, (_, name) => variables[name] ?? "");
};
const markLocale = (root = document) => {
const keys = {
"Configure taskboard lottery": "general.subtitle",
"Floating button position": "general.floatingPosition",
"Distance from the right edge of the screen.": "general.floatingPositionDescription",
"Elapsed time threshold": "general.elapsedTime",
"How long the current participant can remain active.": "general.elapsedTimeDescription",
"Auto-focus content": "general.autoFocus",
"Give the board more room while drawing. Changes apply in the next lottery round.": "general.autoFocusDescription",
"Auto preview activity": "general.autoPreview",
"Show task previews after each participant is drawn. Changes apply in the next lottery round.": "general.autoPreviewDescription",
"TASKBOARD": "general.taskboard",
"Open original task": "preview.openOriginal",
"打开原任务": "preview.openOriginal",
"No activity preview is available for this task.": "preview.empty",
"暂无清单数据": "preview.noChecklist",
"还有内容未完全显示,请打开原任务查看": "preview.incomplete",
"Previous": "preview.previous",
"Previous task": "preview.previousTask",
"Next": "preview.next",
"Next task": "preview.nextTask",
"Close activity preview": "preview.close",
};
$(root).find("*:not(script):not(style)").each(function () {
const element = $(this);
if (element.children().length === 0) {
const key = keys[element.text().trim()];
if (key) element.attr("data-i18n", key);
}
});
};
const renderLocale = (root = document) => {
markLocale(root);
$(root).find("[data-i18n]").addBack("[data-i18n]").each(function () {
const element = $(this);
const text = getLocaleText(element.attr("data-i18n"));
const attribute = element.attr("data-i18n-attr");
if (attribute) element.attr(attribute, text);
const ariaKey = element.attr("data-i18n-aria-label");
if (ariaKey) element.attr("aria-label", getLocaleText(ariaKey));
if (!attribute && !ariaKey) element.html(text);
});
$(root).find(".planner-plus-preview__checklist-count[data-checklist-total]").each(function () {
const element = $(this);
const completed = Number(element.attr("data-checklist-completed")) || 0;
const total = Number(element.attr("data-checklist-total")) || 0;
element.text(total > 0 ? getLocaleText("preview.checklist", configs.language, { completed, total }) : getLocaleText("preview.noChecklist"));
});
const dialogTitle = $(root).find("#plannerPlusDialogTitle");
if (dialogTitle.length) dialogTitle.text(`${getLocaleText("general.settings")} (v${GM_info.script.version})`);
$(root).find(".planner-plus-modal__close").attr("aria-label", getLocaleText("general.close"));
};
let configs = {
theme: "system",
language: "system",
elapsedTime: properties.defaultElapsedTime,
right: properties.rightDefault,
autoFocusContent: properties.defaultAutoFocusContent,
autoPreviewActivity: properties.defaultAutoPreviewActivity,
voice: {
configured: false,
checkedVoiceIds: [],
useCustomPreviewText: false,
customPreviewText: "",
protectRemoteStartup: true,
},
};
const constants = {
extension: "plannerPlus",
start: "plannerPlusStart",
startImg: "plannerPlusStartImg",
lottery: "plannerPlusLottery",
timer: "plannerPlusTimer",
lotteryImg: "plannerPlusLotteryImg",
dialog: "plannerPlusDialog",
dialogIcon: "plannerPlusDialogIcon",
preview: "plannerPlusActivityPreview",
bucket: ["Group by: Bucket", "分组依据: 存储桶"],
assignedTo: ["Group by: Assigned to", "分组依据: 分配对象"],
uselessColumns: ["Unassigned", "Planner Agent", "Former member"],
};
const statuses = {
idle: "idle",
initializing: "initializing",
ready: "ready",
drawing: "drawing",
finished: "finished",
destroyed: "destroyed",
};
const images = {
configChevron:
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTcgMTBsNSA1IDUtNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBmaWxsPSJub25lIi8+PC9zdmc+",
wheel:
"data:image/png;base64,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",
plugin:
"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PGNpcmNsZSBjeD0iMzIiIGN5PSIzMiIgcj0iMjgiIGZpbGw9IiMwYzY2ZTQiLz48cGF0aCBkPSJtMjAgNDQgMjEtMjEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSI2IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTggMThsMiA1IDUgMi01IDItMiA1LTItNS01LTIgNS0yWk00NSAzOWwxLjUgMy41TDUwIDQ0bC0zLjUgMS41TDQ1IDQ5bC0xLjUtMy41TDQwIDQ0bDMuNS0xLjVaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTM2IDE4aDh2OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg=="
};
const elements = {
start: () => $(`#${constants.start}`),
startImg: () => $(`#${constants.startImg}`),
lottery: () => $(`#${constants.lottery}`),
timer: () => $(`#${constants.timer}`),
lotteryImg: () => $(`#${constants.lotteryImg}`),
dialog: () => $(`#${constants.dialog}`),
groupBy: () =>
document.querySelector(
'#basicPlanView [data-testid="group-by-menu-button"], ' +
'[data-testid="group-by-menu-button"], ' +
'[data-groupby-button="true"], ' +
'#basicPlanView [role="toolbar"] .fui-Button.fui-MenuButton',
),
};
const util = (() => {
const t = {};
t.setTimeout = (callback, delay, property) => {
const timer = setTimeout(() => {
properties.timerHandles.delete(timer);
if (property) properties[property] = -1;
callback();
}, delay);
properties.timerHandles.add(timer);
if (property) properties[property] = timer;
return timer;
};
t.positionTooltip = (wrap) => {
const tooltip = wrap?.querySelector?.(".planner-plus-tooltip");
if (!wrap || !tooltip) {
return;
}
const rect = wrap.getBoundingClientRect();
const tooltipRect = tooltip.getBoundingClientRect();
const gap = 10;
const width = tooltipRect.width || 280;
const height = tooltipRect.height || 48;
const spaces = {
right: window.innerWidth - rect.right,
bottom: window.innerHeight - rect.bottom,
left: rect.left,
top: rect.top,
};
const placement =
spaces.right >= width + gap
? "right"
: spaces.bottom >= height + gap
? "bottom"
: spaces.left >= width + gap
? "left"
: "top";
tooltip.classList.remove(
"planner-plus-tooltip--right",
"planner-plus-tooltip--bottom",
"planner-plus-tooltip--left",
"planner-plus-tooltip--top",
);
tooltip.classList.add(`planner-plus-tooltip--${placement}`);
};
t.clearTimeout = (property) => {
const timer = properties[property];
if (timer !== -1) {
clearTimeout(timer);
properties.timerHandles.delete(timer);
properties[property] = -1;
}
};
t.clearInterval = (property) => {
const timer = properties[property];
if (timer !== -1) {
clearInterval(timer);
properties.timerHandles.delete(timer);
properties[property] = -1;
}
};
t.clearRegisteredTimers = () => {
properties.timerHandles.forEach((timer) => {
clearTimeout(timer);
clearInterval(timer);
});
properties.timerHandles.clear();
properties.interval = -1;
properties.animateTimer = -1;
properties.routeMonitorTimer = -1;
properties.previewWaitTimer = -1;
properties.previewCloseTimer = -1;
};
t.save = () => {
try {
const json = JSON.stringify(configs);
localStorage.setItem(constants.extension, json);
} catch (error) {
console.warn(
"TeamTools - PlannerPlus: Failed to save configuration.",
error,
);
}
};
t.getGroupBy = () => {
const element = elements.groupBy();
if (!element) {
return "";
}
const ariaLabel =
element.getAttribute("aria-label") || element.ariaLabel;
return typeof ariaLabel === "string" ? ariaLabel.trim() : "";
};
t.getColumnLabel = (element) => {
if (!element) {
return "";
}
const ariaLabel =
element.getAttribute("aria-label") || element.ariaLabel;
return typeof ariaLabel === "string" ? ariaLabel.trim() : "";
};
t.load = () => {
const defaults = {
theme: "system",
language: "system",
elapsedTime: properties.defaultElapsedTime,
right: properties.rightDefault,
autoFocusContent: properties.defaultAutoFocusContent,
autoPreviewActivity: properties.defaultAutoPreviewActivity,
voice: { configured: false, checkedVoiceIds: [], checkedVoiceIdsInitialized: false, useCustomPreviewText: false, customPreviewText: "", protectRemoteStartup: true, filters: { name: "", localService: "all", languageMode: "all", languages: [] }, commonLanguages: ["en-US", "zh-CN"] },
};
const normalizeVoice = (value) => {
const voice = value && typeof value === "object" ? value : {};
const filters = voice.filters && typeof voice.filters === "object" ? voice.filters : {};
return {
configured: voice.configured === true,
filters: {
name: typeof filters.name === "string" ? filters.name : "",
localService: ["all", "true", "false"].includes(filters.localService) ? filters.localService : "all",
languageMode: ["all", "include", "none"].includes(filters.languageMode) ? filters.languageMode : (Array.isArray(filters.languages) && filters.languages.length ? "include" : "all"),
languages: Array.isArray(filters.languages) ? [...new Set(filters.languages.filter((x) => typeof x === "string" && x))] : [],
},
checkedVoiceIds: Array.isArray(voice.checkedVoiceIds) ? [...new Set(voice.checkedVoiceIds.filter((x) => typeof x === "string" && x))] : [],
checkedVoiceIdsInitialized: voice.checkedVoiceIdsInitialized === true || (Array.isArray(voice.checkedVoiceIds) && voice.checkedVoiceIds.length > 0),
commonLanguages: Array.isArray(voice.commonLanguages) ? [...new Set(voice.commonLanguages.filter((x) => typeof x === "string" && x))] : [...defaults.voice.commonLanguages],
useCustomPreviewText: voice.useCustomPreviewText === true,
customPreviewText: typeof voice.customPreviewText === "string" ? voice.customPreviewText : "",
protectRemoteStartup: voice.protectRemoteStartup !== false,
};
};
try {
const json = localStorage.getItem(constants.extension);
if (!json) {
configs = defaults;
return;
}
const parsed = JSON.parse(json);
const theme = ["light", "dark", "system"].includes(parsed.theme)
? parsed.theme
: defaults.theme;
const language = validUiLanguages.includes(parsed.language)
? parsed.language
: defaults.language;
const elapsedTime = Number(parsed.elapsedTime);
const right = Number(parsed.right);
configs = {
theme,
language,
elapsedTime:
Number.isFinite(elapsedTime) && elapsedTime > 0
? Math.min(Math.floor(elapsedTime), 3600)
: defaults.elapsedTime,
right: Number.isFinite(right)
? Math.min(
Math.max(Math.floor(right), properties.rightMin),
properties.rightMax,
)
: defaults.right,
autoFocusContent:
typeof parsed.autoFocusContent === "boolean"
? parsed.autoFocusContent
: defaults.autoFocusContent,
autoPreviewActivity:
typeof parsed.autoPreviewActivity === "boolean"
? parsed.autoPreviewActivity
: defaults.autoPreviewActivity,
voice: normalizeVoice(parsed.voice),
};
} catch (error) {
console.warn(
"TeamTools - PlannerPlus: Failed to load configuration. Using defaults.",
error,
);
configs = defaults;
}
};
t.applyTheme = () => {
const media = properties.themeMediaQuery || (typeof window.matchMedia === "function" ? window.matchMedia("(prefers-color-scheme: dark)") : null);
properties.themeMediaQuery = media;
const theme = configs.theme;
const resolved = theme === "system" ? (media && media.matches ? "dark" : "light") : theme;
properties.resolvedTheme = resolved;
[elements.start()[0], elements.lottery()[0], elements.dialog()[0], document.getElementById(constants.preview)].forEach((element) => {
if (element) {
element.setAttribute("data-planner-plus-theme", resolved);
}
});
if (media && !properties.themeChangeHandler) {
properties.themeChangeHandler = () => {
if (configs.theme === "system") t.applyTheme();
};
if (typeof media.addEventListener === "function") media.addEventListener("change", properties.themeChangeHandler);
else if (typeof media.addListener === "function") media.addListener(properties.themeChangeHandler);
}
};
t.random = (arr) => {
const temp = $.map(arr, (el) => {
return {
val: el,
_factor: Math.random(),
};
}).sort((x, y) => x._factor - y._factor);
return $.map(temp, (el) => el.val);
};
t.getVoiceId = (voice) => `${voice.voiceURI || ""}\u0000${voice.name || ""}\u0000${voice.lang || ""}`;
t.getVoices = () => {
if (
!window.speechSynthesis ||
typeof window.speechSynthesis.getVoices !== "function"
) {
return [];
}
try {
const voices = window.speechSynthesis
.getVoices()
.map((voice) => ({ id: t.getVoiceId(voice), name: voice.name || "Unnamed voice", lang: voice.lang || "und", voiceURI: voice.voiceURI || "", localService: Boolean(voice.localService), default: Boolean(voice.default), nativeVoice: voice }));
const checked = new Set(configs.voice?.checkedVoiceIds || []);
const selected = voices.filter((voice) => checked.has(voice.id));
return t.random(selected.length ? selected : voices);
} catch (error) {
console.warn(
"TeamTools - PlannerPlus: Failed to load speech voices.",
error,
);
return [];
}
};
t.speech = (text) => {
const voice = t.getVoices()[0] || null;
t.speakVoice(text, voice, "taskboard");
};
t.runWhen = (conditionFunc, callbackFunc, timeout = 30000) => {
const delay = 300;
const startTime = Date.now();
const poll = () => {
if (properties.status !== statuses.initializing) {
return;
}
if (Date.now() - startTime >= timeout) {
console.warn(
"TeamTools - PlannerPlus: Timed out while waiting for Planner board.",
{
groupBy: util.getGroupBy(),
boardColumns: document.querySelectorAll(
"ul[data-testid=taskBoardView] > li",
).length,
},
);
return;
}
let matched = false;
try {
matched = conditionFunc();
} catch (error) {
console.warn(
"TeamTools - PlannerPlus: Failed to detect Planner board.",
error,
);
return;
}
if (matched && properties.status === statuses.initializing) {
try {
callbackFunc();
} catch (error) {
console.warn(
"TeamTools - PlannerPlus: Failed to initialize the board.",
error,
);
t.stopRunWhen();
t.reset();
window.alert(
getLocaleText("errors.initializationFailed"),
);
}
return;
}
const timer = t.setTimeout(() => {
properties.runWhenTimers.delete(timer);
poll();
}, delay);
properties.runWhenTimers.add(timer);
};
poll();
};
t.stopRunWhen = () => {
properties.runWhenTimers.forEach((timer) => {
clearTimeout(timer);
properties.timerHandles.delete(timer);
});
properties.runWhenTimers.clear();
};
t.resetTimer = () => {
t.clearTimer();
properties.startTime = new Date().getTime();
properties.interval = setInterval(() => {
const currentTime = new Date().getTime();
const value = parseInt((currentTime - properties.startTime) / 1000, 10);
t.setTime(value);
}, 100);
properties.timerHandles.add(properties.interval);
};
t.clearTimer = () => {
t.clearInterval("interval");
t.setTime(-1);
};
t.setTime = (value) => {
if (value === -1) {
elements.timer().text("");
} else {
elements.timer().text(getLocaleText("general.timerStatus", configs.language, { name: properties.currentUser.name, seconds: value }));
elements.timer().toggleClass("is-over-threshold", value >= configs.elapsedTime);
const preview = $(`#${constants.preview}`);
if (preview.length > 0) {
preview.find(".planner-plus-preview__summary").toggleClass("is-over-threshold", value >= configs.elapsedTime).text(
getLocaleText("preview.summary", configs.language, { name: properties.currentUser.name, task: preview.data("task-title") || "", seconds: value }),
);
}
}
};
t.callName = () => {
t.speech(properties.currentUser.name);
};
t.end = () => {
t.toggleElements(false);
elements.start().show();
elements.lottery().hide();
t.reset();
properties.roundConfig = null;
};
t.reset = () => {
t.stopRunWhen();
properties.currentIndex = 0;
properties.status = statuses.idle;
};
t.animate = () => {
t.clearTimeout("animateTimer");
elements.lotteryImg().addClass("planner-plus-animate");
t.setTimeout(() => {
elements.lotteryImg().removeClass("planner-plus-animate");
}, 1000, "animateTimer");
};
t.jumpToRow = () => {
if (!properties.currentUser) {
return;
}
const row = $(
`[data-planner-plus-id="${properties.currentUser.id}"]`,
);
const rowElement = row[0];
if (!rowElement) {
return;
}
t.resetRow();
properties.currentHighlightedRow = rowElement;
row
.addClass("planner-plus-highlight-row")
.toggleClass(
"planner-plus-highlight-row-dark",
properties.resolvedTheme === "dark",
);
if (typeof rowElement.scrollIntoView === "function") {
rowElement.scrollIntoView({
behavior: "smooth",
block: "start",
inline: "nearest",
});
}
};
t.resetRow = () => {
const row = $(properties.currentHighlightedRow);
row.removeClass("planner-plus-highlight-row planner-plus-highlight-row-dark");
properties.currentHighlightedRow = null;
};
t.getRouteScope = (url) => {
try {
const parsed = new URL(url, location.href);
const route = `${parsed.pathname}${parsed.hash}`.replace(
/\/(?:task|tasks)(?:\/|$).*/i,
"",
);
return `${parsed.origin}${route}`;
} catch {
return url;
}
};
t.closePreview = (immediate = false) => {
properties.previewRequestId += 1;
t.clearTimeout("previewWaitTimer");
const preview = $(`#${constants.preview}`);
if (preview.length > 0) {
preview.data("plannerPlusAvatarObserver")?.disconnect();
}
if (preview.length === 0) {
document
.querySelector('[data-testid="task-board-root"].planner-plus-preview-host')
?.classList.remove("planner-plus-preview-host");
return;
}
if (immediate) {
t.clearTimeout("previewCloseTimer");
preview.remove();
document
.querySelector('[data-testid="task-board-root"].planner-plus-preview-host')
?.classList.remove("planner-plus-preview-host");
return;
}
t.clearTimeout("previewCloseTimer");
preview.addClass("is-closing");
const previewElement = preview[0];
t.setTimeout(() => {
previewElement.remove();
if (!document.getElementById(constants.preview)) {
document
.querySelector('[data-testid="task-board-root"].planner-plus-preview-host')
?.classList.remove("planner-plus-preview-host");
}
}, 220, "previewCloseTimer");
};
t.focusPreviewContent = () => {
const focusTarget = $(`#${constants.preview} .planner-plus-preview__content`)[0];
if (focusTarget && focusTarget.isConnected && typeof focusTarget.focus === "function") {
focusTarget.focus({ preventScroll: true });
return true;
}
return false;
};
t.restoreLotteryFocus = () => {
if (t.focusPreviewContent()) {
return true;
}
const lotteryTarget = elements.lotteryImg()[0];
if (lotteryTarget && lotteryTarget.isConnected && typeof lotteryTarget.focus === "function") {
lotteryTarget.focus({ preventScroll: true });
return true;
}
return false;
};
t.showActivityPreview = () => {
t.closePreview();
const requestId = ++properties.previewRequestId;
const autoPreviewActivity =
properties.roundConfig?.autoPreviewActivity ?? configs.autoPreviewActivity;
if (!autoPreviewActivity || !properties.currentUser) {
return;
}
const userId = properties.currentUser.id;
const startedAt = Date.now();
const waitForVirtualContent = () => {
if (
requestId !== properties.previewRequestId ||
!properties.currentUser ||
properties.currentUser.id !== userId
) {
return;
}
const participant = document.querySelector(
`[data-planner-plus-id="${userId}"]`,
);
const previewCount = participant
? participant.querySelectorAll(
'[data-testid="task-board-card"] [data-testid="task-card-preview"]',
).length
: 0;
const animationFinished = Date.now() - startedAt >= 1050;
if (animationFinished && previewCount > 0) {
t.showActivityPreviewNow();
return;
}
if (Date.now() - startedAt >= 5000) {
console.warn(
"TeamTools - PlannerPlus: Timed out waiting for virtual task previews.",
{ userId, previewCount },
);
return;
}
t.setTimeout(waitForVirtualContent, 80, "previewWaitTimer");
};
waitForVirtualContent();
};
t.showActivityPreviewNow = () => {
t.closePreview();
const autoPreviewActivity =
properties.roundConfig?.autoPreviewActivity ?? configs.autoPreviewActivity;
if (!autoPreviewActivity || !properties.currentUser) {
return;
}
const participant = document.querySelector(
`[data-planner-plus-id="${properties.currentUser.id}"]`,
);
if (!participant) {
return;
}
const contentRoot = document.querySelector('[data-testid="task-board-root"]');
if (!contentRoot) {
return;
}
contentRoot.classList.add("planner-plus-preview-host");
const taskCards = [...participant.querySelectorAll('[data-testid="task-board-card"]')];
const items = taskCards
.map((card) =>
[...card.querySelectorAll('[data-testid="task-card-preview"]')].map(
(preview) => {
const clonedPreview = preview.cloneNode(true);
clonedPreview.classList.add("planner-plus-preview-task-content");
return clonedPreview;
},
),
);
if (items.length === 0) {
return;
}
const taskChecklist = taskCards.map((card) => {
const indicator = card.querySelector('[data-testid="checklist-indicator"]');
const label = indicator?.getAttribute("aria-label") || "";
const match = label.match(/(\d+)\s+of\s+(\d+)/i);
return match
? { completed: Number(match[1]), total: Number(match[2]) }
: { completed: 0, total: 0 };
});
const taskTitles = taskCards.map(
(card) =>
card.querySelector('[data-testid="task-card-title"]')?.textContent.trim() ||
getLocaleText("preview.untitled"),
);
const avatarImage = participant.querySelector('[role="img"] img, img[alt]');
const avatarSrc = avatarImage?.getAttribute("src") || "";
const avatarAlt = avatarImage?.getAttribute("alt") || properties.currentUser.name;
const avatarInitials = properties.currentUser.name
.split(/\s+/)
.filter(Boolean)
.map((part) => part[0])
.join("")
.slice(0, 2)
.toUpperCase();
let index = 0;
const overlay = $(`